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>
This commit is contained in:
David Benjamin 2015-10-05 21:32:10 -04:00 committed by Adam Langley
parent 6dc1851f30
commit da084a3ebd
5 changed files with 17 additions and 8 deletions

View File

@ -499,7 +499,6 @@ static void DES_encrypt2(uint32_t *data, const DES_key_schedule *ks, int enc) {
data[1] = ROTATE(r, 3) & 0xffffffffL; 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, void DES_encrypt3(uint32_t *data, const DES_key_schedule *ks1,
const DES_key_schedule *ks2, const DES_key_schedule *ks3) { const DES_key_schedule *ks2, const DES_key_schedule *ks3) {
uint32_t l, r; uint32_t l, r;
@ -519,7 +518,6 @@ void DES_encrypt3(uint32_t *data, const DES_key_schedule *ks1,
data[1] = r; 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, void DES_decrypt3(uint32_t *data, const DES_key_schedule *ks1,
const DES_key_schedule *ks2, const DES_key_schedule *ks3) { const DES_key_schedule *ks2, const DES_key_schedule *ks3) {
uint32_t l, r; uint32_t l, r;

View File

@ -15,3 +15,5 @@ add_library(
$<TARGET_OBJECTS:rsa_decrepit> $<TARGET_OBJECTS:rsa_decrepit>
$<TARGET_OBJECTS:xts> $<TARGET_OBJECTS:xts>
) )
target_link_libraries(decrepit crypto)

View File

@ -61,12 +61,6 @@
#include "../crypto/des/internal.h" #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 /* 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 * extra state information to record how much of the 64bit block we have used
* is contained in *num; */ * is contained in *num; */

View File

@ -157,6 +157,19 @@ OPENSSL_EXPORT void DES_ede3_cfb_encrypt(const uint8_t *in, uint8_t *out,
DES_cblock *ivec, int enc); 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) #if defined(__cplusplus)
} /* extern C */ } /* extern C */
#endif #endif

View File

@ -38,6 +38,8 @@ add_library(
$<TARGET_OBJECTS:pqueue> $<TARGET_OBJECTS:pqueue>
) )
target_link_libraries(ssl crypto)
add_executable( add_executable(
ssl_test ssl_test