diff options
Diffstat (limited to 'openssl-1.1.0h/crypto/o_init.c')
-rw-r--r-- | openssl-1.1.0h/crypto/o_init.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/openssl-1.1.0h/crypto/o_init.c b/openssl-1.1.0h/crypto/o_init.c new file mode 100644 index 0000000..2e0c126 --- /dev/null +++ b/openssl-1.1.0h/crypto/o_init.c @@ -0,0 +1,34 @@ +/* + * Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include <e_os.h> +#include <openssl/err.h> +#ifdef OPENSSL_FIPS +# include <openssl/fips.h> +# include <openssl/rand.h> +#endif + +/* + * Perform any essential OpenSSL initialization operations. Currently only + * sets FIPS callbacks + */ + +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 +} |