From 25ccfff86a5b29c9c1ec9b3d01fe1dc796e9afa0 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Thu, 21 Jun 2018 12:46:11 -0400 Subject: [PATCH] Split crypto and tls libraries into directories I am calling the crypto library "crypt_ops", since I want higher-level crypto things to be separated from lower-level ones. This library will hold only the low-level ones, once we have it refactored. --- .gitignore | 7 +-- Makefile.am | 6 ++- src/common/include.am | 43 ------------------ src/include.am | 2 + src/{common => lib/crypt_ops}/aes.c | 0 src/{common => lib/crypt_ops}/aes.h | 0 .../crypt_ops}/compat_openssl.h | 0 src/{common => lib/crypt_ops}/crypto.c | 0 src/{common => lib/crypt_ops}/crypto.h | 0 .../crypt_ops}/crypto_curve25519.c | 0 .../crypt_ops}/crypto_curve25519.h | 0 src/{common => lib/crypt_ops}/crypto_dh.c | 0 src/{common => lib/crypt_ops}/crypto_dh.h | 0 src/{common => lib/crypt_ops}/crypto_digest.c | 0 src/{common => lib/crypt_ops}/crypto_digest.h | 0 .../crypt_ops}/crypto_ed25519.c | 0 .../crypt_ops}/crypto_ed25519.h | 0 src/{common => lib/crypt_ops}/crypto_format.c | 0 src/{common => lib/crypt_ops}/crypto_format.h | 0 src/{common => lib/crypt_ops}/crypto_hkdf.c | 0 src/{common => lib/crypt_ops}/crypto_hkdf.h | 0 .../crypt_ops}/crypto_openssl_mgt.c | 0 .../crypt_ops}/crypto_openssl_mgt.h | 0 src/{common => lib/crypt_ops}/crypto_pwbox.c | 0 src/{common => lib/crypt_ops}/crypto_pwbox.h | 0 src/{common => lib/crypt_ops}/crypto_rand.c | 0 src/{common => lib/crypt_ops}/crypto_rand.h | 0 src/{common => lib/crypt_ops}/crypto_rsa.c | 0 src/{common => lib/crypt_ops}/crypto_rsa.h | 0 src/{common => lib/crypt_ops}/crypto_s2k.c | 0 src/{common => lib/crypt_ops}/crypto_s2k.h | 0 src/{common => lib/crypt_ops}/crypto_util.c | 0 src/{common => lib/crypt_ops}/crypto_util.h | 0 src/lib/crypt_ops/include.am | 44 +++++++++++++++++++ src/{common => lib/tls}/buffers_tls.c | 0 src/{common => lib/tls}/buffers_tls.h | 0 src/{common => lib/tls}/ciphers.inc | 0 src/lib/tls/include.am | 20 +++++++++ src/{common => lib/tls}/tortls.c | 0 src/{common => lib/tls}/tortls.h | 0 src/rust/build.rs | 2 +- 41 files changed, 75 insertions(+), 49 deletions(-) rename src/{common => lib/crypt_ops}/aes.c (100%) rename src/{common => lib/crypt_ops}/aes.h (100%) rename src/{common => lib/crypt_ops}/compat_openssl.h (100%) rename src/{common => lib/crypt_ops}/crypto.c (100%) rename src/{common => lib/crypt_ops}/crypto.h (100%) rename src/{common => lib/crypt_ops}/crypto_curve25519.c (100%) rename src/{common => lib/crypt_ops}/crypto_curve25519.h (100%) rename src/{common => lib/crypt_ops}/crypto_dh.c (100%) rename src/{common => lib/crypt_ops}/crypto_dh.h (100%) rename src/{common => lib/crypt_ops}/crypto_digest.c (100%) rename src/{common => lib/crypt_ops}/crypto_digest.h (100%) rename src/{common => lib/crypt_ops}/crypto_ed25519.c (100%) rename src/{common => lib/crypt_ops}/crypto_ed25519.h (100%) rename src/{common => lib/crypt_ops}/crypto_format.c (100%) rename src/{common => lib/crypt_ops}/crypto_format.h (100%) rename src/{common => lib/crypt_ops}/crypto_hkdf.c (100%) rename src/{common => lib/crypt_ops}/crypto_hkdf.h (100%) rename src/{common => lib/crypt_ops}/crypto_openssl_mgt.c (100%) rename src/{common => lib/crypt_ops}/crypto_openssl_mgt.h (100%) rename src/{common => lib/crypt_ops}/crypto_pwbox.c (100%) rename src/{common => lib/crypt_ops}/crypto_pwbox.h (100%) rename src/{common => lib/crypt_ops}/crypto_rand.c (100%) rename src/{common => lib/crypt_ops}/crypto_rand.h (100%) rename src/{common => lib/crypt_ops}/crypto_rsa.c (100%) rename src/{common => lib/crypt_ops}/crypto_rsa.h (100%) rename src/{common => lib/crypt_ops}/crypto_s2k.c (100%) rename src/{common => lib/crypt_ops}/crypto_s2k.h (100%) rename src/{common => lib/crypt_ops}/crypto_util.c (100%) rename src/{common => lib/crypt_ops}/crypto_util.h (100%) create mode 100644 src/lib/crypt_ops/include.am rename src/{common => lib/tls}/buffers_tls.c (100%) rename src/{common => lib/tls}/buffers_tls.h (100%) rename src/{common => lib/tls}/ciphers.inc (100%) create mode 100644 src/lib/tls/include.am rename src/{common => lib/tls}/tortls.c (100%) rename src/{common => lib/tls}/tortls.h (100%) diff --git a/.gitignore b/.gitignore index 2716bac831..d797f4f53d 100644 --- a/.gitignore +++ b/.gitignore @@ -141,9 +141,6 @@ uptime-*.json /src/common/libor-ctime.a /src/common/libor-ctime-testing.a /src/common/libor-ctime.lib -/src/common/libor-crypto.a -/src/common/libor-crypto-testing.a -/src/common/libor-crypto.lib /src/common/libor-event.a /src/common/libor-event-testing.a /src/common/libor-event.lib @@ -169,10 +166,14 @@ uptime-*.json # /src/lib /src/lib/libtor-compress.a /src/lib/libtor-compress-testing.a +/src/lib/libtor-crypt-ops.a +/src/lib/libtor-crypt-ops-testing.a /src/lib/libtor-ctime.a /src/lib/libtor-ctime-testing.a /src/lib/libtor-err.a /src/lib/libtor-err-testing.a +/src/lib/libtor-tls.a +/src/lib/libtor-tls-testing.a /src/lib/libtor-trace.a # /src/or/ diff --git a/Makefile.am b/Makefile.am index 62c0e2a4a1..4ccee670e6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -52,14 +52,16 @@ TOR_UTIL_TESTING_LIBS = \ # Internal crypto libraries used in Tor TOR_CRYPTO_LIBS = \ - src/common/libor-crypto.a \ + src/lib/libtor-tls.a \ + src/lib/libtor-crypt-ops.a \ $(LIBKECCAK_TINY) \ $(LIBDONNA) # Variants of the above for linking the testing variant of tor (for coverage # and tests) TOR_CRYPTO_TESTING_LIBS = \ - src/common/libor-crypto-testing.a \ + src/lib/libtor-tls-testing.a \ + src/lib/libtor-crypt-ops-testing.a \ $(LIBKECCAK_TINY) \ $(LIBDONNA) diff --git a/src/common/include.am b/src/common/include.am index 2869c2ac9d..fb5472f3b9 100644 --- a/src/common/include.am +++ b/src/common/include.am @@ -1,13 +1,11 @@ noinst_LIBRARIES += \ src/common/libor.a \ - src/common/libor-crypto.a \ src/common/libor-event.a if UNITTESTS_ENABLED noinst_LIBRARIES += \ src/common/libor-testing.a \ - src/common/libor-crypto-testing.a \ src/common/libor-event-testing.a endif @@ -83,24 +81,6 @@ LIBOR_A_SRC = \ src/common/src_common_libor_testing_a-log.$(OBJEXT) \ src/common/log.$(OBJEXT): micro-revision.i -LIBOR_CRYPTO_A_SRC = \ - src/common/aes.c \ - src/common/buffers_tls.c \ - src/common/crypto.c \ - src/common/crypto_dh.c \ - src/common/crypto_digest.c \ - src/common/crypto_format.c \ - src/common/crypto_hkdf.c \ - src/common/crypto_openssl_mgt.c \ - src/common/crypto_pwbox.c \ - src/common/crypto_rand.c \ - src/common/crypto_rsa.c \ - src/common/crypto_s2k.c \ - src/common/crypto_util.c \ - src/common/tortls.c \ - src/common/crypto_curve25519.c \ - src/common/crypto_ed25519.c - LIBOR_EVENT_A_SRC = \ src/common/compat_libevent.c \ src/common/procmon.c \ @@ -108,53 +88,31 @@ LIBOR_EVENT_A_SRC = \ src/ext/timeouts/timeout.c src_common_libor_a_SOURCES = $(LIBOR_A_SRC) -src_common_libor_crypto_a_SOURCES = $(LIBOR_CRYPTO_A_SRC) src_common_libor_event_a_SOURCES = $(LIBOR_EVENT_A_SRC) if UNITTESTS_ENABLED src_common_libor_testing_a_SOURCES = $(LIBOR_A_SRC) -src_common_libor_crypto_testing_a_SOURCES = $(LIBOR_CRYPTO_A_SRC) src_common_libor_event_testing_a_SOURCES = $(LIBOR_EVENT_A_SRC) else src_common_libor_testing_a_SOURCES = -src_common_libor_crypto_testing_a_SOURCES = src_common_libor_event_testing_a_SOURCES = endif src_common_libor_testing_a_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS) -src_common_libor_crypto_testing_a_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS) src_common_libor_event_testing_a_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS) src_common_libor_testing_a_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS) -src_common_libor_crypto_testing_a_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS) src_common_libor_event_testing_a_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS) COMMONHEADERS = \ src/common/address.h \ src/common/address_set.h \ src/common/buffers.h \ - src/common/buffers_tls.h \ - src/common/aes.h \ - src/common/ciphers.inc \ src/common/compat.h \ src/common/compat_libevent.h \ - src/common/compat_openssl.h \ src/common/compat_threads.h \ src/common/compat_time.h \ src/common/confline.h \ src/common/container.h \ - src/common/crypto.h \ - src/common/crypto_dh.h \ - src/common/crypto_digest.h \ - src/common/crypto_curve25519.h \ - src/common/crypto_ed25519.h \ - src/common/crypto_format.h \ - src/common/crypto_hkdf.h \ - src/common/crypto_openssl_mgt.h \ - src/common/crypto_pwbox.h \ - src/common/crypto_rand.h \ - src/common/crypto_rsa.h \ - src/common/crypto_s2k.h \ - src/common/crypto_util.h \ src/common/handles.h \ src/common/memarea.h \ src/common/linux_syscalls.inc \ @@ -165,7 +123,6 @@ COMMONHEADERS = \ src/common/timers.h \ src/common/token_bucket.h \ src/common/torlog.h \ - src/common/tortls.h \ src/common/util.h \ src/common/util_bug.h \ src/common/util_format.h \ diff --git a/src/include.am b/src/include.am index d4b348b4ef..e82943f733 100644 --- a/src/include.am +++ b/src/include.am @@ -3,6 +3,8 @@ include src/lib/err/include.am include src/lib/cc/include.am include src/lib/ctime/include.am include src/lib/compress/include.am +include src/lib/crypt_ops/include.am +include src/lib/tls/include.am include src/lib/trace/include.am include src/common/include.am include src/trunnel/include.am diff --git a/src/common/aes.c b/src/lib/crypt_ops/aes.c similarity index 100% rename from src/common/aes.c rename to src/lib/crypt_ops/aes.c diff --git a/src/common/aes.h b/src/lib/crypt_ops/aes.h similarity index 100% rename from src/common/aes.h rename to src/lib/crypt_ops/aes.h diff --git a/src/common/compat_openssl.h b/src/lib/crypt_ops/compat_openssl.h similarity index 100% rename from src/common/compat_openssl.h rename to src/lib/crypt_ops/compat_openssl.h diff --git a/src/common/crypto.c b/src/lib/crypt_ops/crypto.c similarity index 100% rename from src/common/crypto.c rename to src/lib/crypt_ops/crypto.c diff --git a/src/common/crypto.h b/src/lib/crypt_ops/crypto.h similarity index 100% rename from src/common/crypto.h rename to src/lib/crypt_ops/crypto.h diff --git a/src/common/crypto_curve25519.c b/src/lib/crypt_ops/crypto_curve25519.c similarity index 100% rename from src/common/crypto_curve25519.c rename to src/lib/crypt_ops/crypto_curve25519.c diff --git a/src/common/crypto_curve25519.h b/src/lib/crypt_ops/crypto_curve25519.h similarity index 100% rename from src/common/crypto_curve25519.h rename to src/lib/crypt_ops/crypto_curve25519.h diff --git a/src/common/crypto_dh.c b/src/lib/crypt_ops/crypto_dh.c similarity index 100% rename from src/common/crypto_dh.c rename to src/lib/crypt_ops/crypto_dh.c diff --git a/src/common/crypto_dh.h b/src/lib/crypt_ops/crypto_dh.h similarity index 100% rename from src/common/crypto_dh.h rename to src/lib/crypt_ops/crypto_dh.h diff --git a/src/common/crypto_digest.c b/src/lib/crypt_ops/crypto_digest.c similarity index 100% rename from src/common/crypto_digest.c rename to src/lib/crypt_ops/crypto_digest.c diff --git a/src/common/crypto_digest.h b/src/lib/crypt_ops/crypto_digest.h similarity index 100% rename from src/common/crypto_digest.h rename to src/lib/crypt_ops/crypto_digest.h diff --git a/src/common/crypto_ed25519.c b/src/lib/crypt_ops/crypto_ed25519.c similarity index 100% rename from src/common/crypto_ed25519.c rename to src/lib/crypt_ops/crypto_ed25519.c diff --git a/src/common/crypto_ed25519.h b/src/lib/crypt_ops/crypto_ed25519.h similarity index 100% rename from src/common/crypto_ed25519.h rename to src/lib/crypt_ops/crypto_ed25519.h diff --git a/src/common/crypto_format.c b/src/lib/crypt_ops/crypto_format.c similarity index 100% rename from src/common/crypto_format.c rename to src/lib/crypt_ops/crypto_format.c diff --git a/src/common/crypto_format.h b/src/lib/crypt_ops/crypto_format.h similarity index 100% rename from src/common/crypto_format.h rename to src/lib/crypt_ops/crypto_format.h diff --git a/src/common/crypto_hkdf.c b/src/lib/crypt_ops/crypto_hkdf.c similarity index 100% rename from src/common/crypto_hkdf.c rename to src/lib/crypt_ops/crypto_hkdf.c diff --git a/src/common/crypto_hkdf.h b/src/lib/crypt_ops/crypto_hkdf.h similarity index 100% rename from src/common/crypto_hkdf.h rename to src/lib/crypt_ops/crypto_hkdf.h diff --git a/src/common/crypto_openssl_mgt.c b/src/lib/crypt_ops/crypto_openssl_mgt.c similarity index 100% rename from src/common/crypto_openssl_mgt.c rename to src/lib/crypt_ops/crypto_openssl_mgt.c diff --git a/src/common/crypto_openssl_mgt.h b/src/lib/crypt_ops/crypto_openssl_mgt.h similarity index 100% rename from src/common/crypto_openssl_mgt.h rename to src/lib/crypt_ops/crypto_openssl_mgt.h diff --git a/src/common/crypto_pwbox.c b/src/lib/crypt_ops/crypto_pwbox.c similarity index 100% rename from src/common/crypto_pwbox.c rename to src/lib/crypt_ops/crypto_pwbox.c diff --git a/src/common/crypto_pwbox.h b/src/lib/crypt_ops/crypto_pwbox.h similarity index 100% rename from src/common/crypto_pwbox.h rename to src/lib/crypt_ops/crypto_pwbox.h diff --git a/src/common/crypto_rand.c b/src/lib/crypt_ops/crypto_rand.c similarity index 100% rename from src/common/crypto_rand.c rename to src/lib/crypt_ops/crypto_rand.c diff --git a/src/common/crypto_rand.h b/src/lib/crypt_ops/crypto_rand.h similarity index 100% rename from src/common/crypto_rand.h rename to src/lib/crypt_ops/crypto_rand.h diff --git a/src/common/crypto_rsa.c b/src/lib/crypt_ops/crypto_rsa.c similarity index 100% rename from src/common/crypto_rsa.c rename to src/lib/crypt_ops/crypto_rsa.c diff --git a/src/common/crypto_rsa.h b/src/lib/crypt_ops/crypto_rsa.h similarity index 100% rename from src/common/crypto_rsa.h rename to src/lib/crypt_ops/crypto_rsa.h diff --git a/src/common/crypto_s2k.c b/src/lib/crypt_ops/crypto_s2k.c similarity index 100% rename from src/common/crypto_s2k.c rename to src/lib/crypt_ops/crypto_s2k.c diff --git a/src/common/crypto_s2k.h b/src/lib/crypt_ops/crypto_s2k.h similarity index 100% rename from src/common/crypto_s2k.h rename to src/lib/crypt_ops/crypto_s2k.h diff --git a/src/common/crypto_util.c b/src/lib/crypt_ops/crypto_util.c similarity index 100% rename from src/common/crypto_util.c rename to src/lib/crypt_ops/crypto_util.c diff --git a/src/common/crypto_util.h b/src/lib/crypt_ops/crypto_util.h similarity index 100% rename from src/common/crypto_util.h rename to src/lib/crypt_ops/crypto_util.h diff --git a/src/lib/crypt_ops/include.am b/src/lib/crypt_ops/include.am new file mode 100644 index 0000000000..b881c689d8 --- /dev/null +++ b/src/lib/crypt_ops/include.am @@ -0,0 +1,44 @@ + +noinst_LIBRARIES += src/lib/libtor-crypt-ops.a + +if UNITTESTS_ENABLED +noinst_LIBRARIES += src/lib/libtor-crypt-ops-testing.a +endif + +src_lib_libtor_crypt_ops_a_SOURCES = \ + src/lib/crypt_ops/aes.c \ + src/lib/crypt_ops/crypto.c \ + src/lib/crypt_ops/crypto_curve25519.c \ + src/lib/crypt_ops/crypto_dh.c \ + src/lib/crypt_ops/crypto_digest.c \ + src/lib/crypt_ops/crypto_ed25519.c \ + src/lib/crypt_ops/crypto_format.c \ + src/lib/crypt_ops/crypto_hkdf.c \ + src/lib/crypt_ops/crypto_openssl_mgt.c \ + src/lib/crypt_ops/crypto_pwbox.c \ + src/lib/crypt_ops/crypto_rand.c \ + src/lib/crypt_ops/crypto_rsa.c \ + src/lib/crypt_ops/crypto_s2k.c \ + src/lib/crypt_ops/crypto_util.c + +src_lib_libtor_crypt_ops_testing_a_SOURCES = \ + $(src_lib_libtor_crypt_ops_a_SOURCES) +src_lib_libtor_crypt_ops_testing_a_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS) +src_lib_libtor_crypt_ops_testing_a_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS) + +noinst_HEADERS += \ + src/lib/crypt_ops/aes.h \ + src/lib/crypt_ops/compat_openssl.h \ + src/lib/crypt_ops/crypto_curve25519.h \ + src/lib/crypt_ops/crypto_dh.h \ + src/lib/crypt_ops/crypto_digest.h \ + src/lib/crypt_ops/crypto_ed25519.h \ + src/lib/crypt_ops/crypto_format.h \ + src/lib/crypt_ops/crypto.h \ + src/lib/crypt_ops/crypto_hkdf.h \ + src/lib/crypt_ops/crypto_openssl_mgt.h \ + src/lib/crypt_ops/crypto_pwbox.h \ + src/lib/crypt_ops/crypto_rand.h \ + src/lib/crypt_ops/crypto_rsa.h \ + src/lib/crypt_ops/crypto_s2k.h \ + src/lib/crypt_ops/crypto_util.h diff --git a/src/common/buffers_tls.c b/src/lib/tls/buffers_tls.c similarity index 100% rename from src/common/buffers_tls.c rename to src/lib/tls/buffers_tls.c diff --git a/src/common/buffers_tls.h b/src/lib/tls/buffers_tls.h similarity index 100% rename from src/common/buffers_tls.h rename to src/lib/tls/buffers_tls.h diff --git a/src/common/ciphers.inc b/src/lib/tls/ciphers.inc similarity index 100% rename from src/common/ciphers.inc rename to src/lib/tls/ciphers.inc diff --git a/src/lib/tls/include.am b/src/lib/tls/include.am new file mode 100644 index 0000000000..b3b013f4dd --- /dev/null +++ b/src/lib/tls/include.am @@ -0,0 +1,20 @@ + +noinst_LIBRARIES += src/lib/libtor-tls.a + +if UNITTESTS_ENABLED +noinst_LIBRARIES += src/lib/libtor-tls-testing.a +endif + +src_lib_libtor_tls_a_SOURCES = \ + src/lib/tls/buffers_tls.c \ + src/lib/tls/tortls.c + +src_lib_libtor_tls_testing_a_SOURCES = \ + $(src_lib_libtor_tls_a_SOURCES) +src_lib_libtor_tls_testing_a_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS) +src_lib_libtor_tls_testing_a_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS) + +noinst_HEADERS += \ + src/lib/tls/ciphers.inc \ + src/lib/tls/buffers_tls.h \ + src/lib/tls/tortls.h diff --git a/src/common/tortls.c b/src/lib/tls/tortls.c similarity index 100% rename from src/common/tortls.c rename to src/lib/tls/tortls.c diff --git a/src/common/tortls.h b/src/lib/tls/tortls.h similarity index 100% rename from src/common/tortls.h rename to src/lib/tls/tortls.h diff --git a/src/rust/build.rs b/src/rust/build.rs index f9b40689fc..8b0ea8ed65 100644 --- a/src/rust/build.rs +++ b/src/rust/build.rs @@ -149,7 +149,7 @@ pub fn main() { // will have dependencies on all the other rust packages that // tor uses. We must be careful with factoring and dependencies // moving forward! - cfg.component("or-crypto-testing"); + cfg.component("tor-crypt-ops-testing"); cfg.component("or-testing"); cfg.component("tor-err-testing"); cfg.component("or-event-testing");