X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=crypto%2Fo_init.c;h=b7f8d10fa0cbfce61a804380ce69c357e2e0f833;hb=8d1b199d26c26ad75e767ddd257a952da91ce6f9;hp=c6bc754df1b71b0489260199d31b2bfbe89ec478;hpb=3f7468318dc56f34e1c5e98049b70558fea586b0;p=oweals%2Fopenssl.git diff --git a/crypto/o_init.c b/crypto/o_init.c index c6bc754df1..b7f8d10fa0 100644 --- a/crypto/o_init.c +++ b/crypto/o_init.c @@ -54,6 +54,10 @@ #include #include +#ifdef OPENSSL_FIPS +#include +#include +#endif #if defined(__GNUC__) && __GNUC__>=2 void OPENSSL_init(void) __attribute__((constructor)); @@ -112,7 +116,18 @@ void OPENSSL_init(void) { + static int done = 0; + if (done) + return; + done = 1; +#ifdef OPENSSL_FIPS + FIPS_set_locking_callbacks(CRYPTO_lock, CRYPTO_add_lock); + FIPS_set_error_callbacks(ERR_put_error, ERR_add_error_vdata); + FIPS_set_malloc_callbacks(CRYPTO_malloc, CRYPTO_free); + RAND_init_fips(); +#endif +#if 0 fprintf(stderr, "Called OPENSSL_init\n"); +#endif } -