Fix shared library build on OS X. It seems OS X actually cares about symbol resolution and dependencies when you create a dylib. Probably because they do two-level name resolution. (Obligatory disclaimer: BoringSSL does not have a stable ABI and is thus not suitable for a traditional system-wide library.) BUG=539603 Change-Id: Ic26c4ad23840fe6c1f4825c44671e74dd2e33870 Reviewed-on: https://boringssl-review.googlesource.com/6131 Reviewed-by: Adam Langley <alangley@gmail.com>
diff --git a/crypto/des/des.c b/crypto/des/des.c index a5669a6..1d27ebe 100644 --- a/crypto/des/des.c +++ b/crypto/des/des.c
@@ -499,7 +499,6 @@ data[1] = ROTATE(r, 3) & 0xffffffffL; } -/* DES_encrypt3 is not static because it's used in decrepit. */ void DES_encrypt3(uint32_t *data, const DES_key_schedule *ks1, const DES_key_schedule *ks2, const DES_key_schedule *ks3) { uint32_t l, r; @@ -519,7 +518,6 @@ data[1] = r; } -/* DES_decrypt3 is not static because it's used in decrepit. */ void DES_decrypt3(uint32_t *data, const DES_key_schedule *ks1, const DES_key_schedule *ks2, const DES_key_schedule *ks3) { uint32_t l, r;
diff --git a/decrepit/CMakeLists.txt b/decrepit/CMakeLists.txt index 84e5252..0773f9a 100644 --- a/decrepit/CMakeLists.txt +++ b/decrepit/CMakeLists.txt
@@ -15,3 +15,5 @@ $<TARGET_OBJECTS:rsa_decrepit> $<TARGET_OBJECTS:xts> ) + +target_link_libraries(decrepit crypto)
diff --git a/decrepit/des/cfb64ede.c b/decrepit/des/cfb64ede.c index 680a75a..f7e81d4 100644 --- a/decrepit/des/cfb64ede.c +++ b/decrepit/des/cfb64ede.c
@@ -61,12 +61,6 @@ #include "../crypto/des/internal.h" -/* defined in des.c */ -void DES_decrypt3(uint32_t *data, const DES_key_schedule *ks1, - const DES_key_schedule *ks2, const DES_key_schedule *ks3); -void DES_encrypt3(uint32_t *data, const DES_key_schedule *ks1, - const DES_key_schedule *ks2, const DES_key_schedule *ks3); - /* The input and output encrypted as though 64bit cfb mode is being used. The * extra state information to record how much of the 64bit block we have used * is contained in *num; */
diff --git a/include/openssl/des.h b/include/openssl/des.h index f9db62d..2b8dd0f 100644 --- a/include/openssl/des.h +++ b/include/openssl/des.h
@@ -157,6 +157,19 @@ DES_cblock *ivec, int enc); +/* Private functions. + * + * These functions are only exported for use in |decrepit|. */ + +OPENSSL_EXPORT void DES_decrypt3(uint32_t *data, const DES_key_schedule *ks1, + const DES_key_schedule *ks2, + const DES_key_schedule *ks3); + +OPENSSL_EXPORT void DES_encrypt3(uint32_t *data, const DES_key_schedule *ks1, + const DES_key_schedule *ks2, + const DES_key_schedule *ks3); + + #if defined(__cplusplus) } /* extern C */ #endif
diff --git a/ssl/CMakeLists.txt b/ssl/CMakeLists.txt index 8617639..a5ad126 100644 --- a/ssl/CMakeLists.txt +++ b/ssl/CMakeLists.txt
@@ -38,6 +38,8 @@ $<TARGET_OBJECTS:pqueue> ) +target_link_libraries(ssl crypto) + add_executable( ssl_test