[tor-commits] [tor/master] Split crypto and tls libraries into directories

nickm at torproject.org nickm at torproject.org
Thu Jun 21 17:57:19 UTC 2018


commit 25ccfff86a5b29c9c1ec9b3d01fe1dc796e9afa0
Author: Nick Mathewson <nickm at torproject.org>
Date:   Thu Jun 21 12:46:11 2018 -0400

    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
 src/{common => lib/crypt_ops}/compat_openssl.h     |  0
 src/{common => lib/crypt_ops}/crypto.c             |  0
 src/{common => lib/crypt_ops}/crypto.h             |  0
 src/{common => lib/crypt_ops}/crypto_curve25519.c  |  0
 src/{common => lib/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
 src/{common => lib/crypt_ops}/crypto_ed25519.c     |  0
 src/{common => lib/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
 src/{common => lib/crypt_ops}/crypto_openssl_mgt.c |  0
 src/{common => lib/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(-)

diff --git a/.gitignore b/.gitignore
index 2716bac83..d797f4f53 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 62c0e2a4a..4ccee670e 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 2869c2ac9..fb5472f3b 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 d4b348b4e..e82943f73 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 000000000..b881c689d
--- /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 000000000..b3b013f4d
--- /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 f9b40689f..8b0ea8ed6 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");





More information about the tor-commits mailing list