mirror of
https://github.com/openssl/openssl.git
synced 2024-11-21 01:15:20 +08:00
Allow FIPS malloc callback setting. Automatically set some callbacks
in OPENSSL_init().
This commit is contained in:
parent
c4acfb1fd0
commit
8cf88778ea
@ -54,6 +54,9 @@
|
||||
|
||||
#include <e_os.h>
|
||||
#include <openssl/err.h>
|
||||
#ifdef OPENSSL_FIPS
|
||||
#include <openssl/fips.h>
|
||||
#endif
|
||||
|
||||
#if defined(__GNUC__) && __GNUC__>=2
|
||||
void OPENSSL_init(void) __attribute__((constructor));
|
||||
@ -116,6 +119,11 @@ void OPENSSL_init(void)
|
||||
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);
|
||||
#endif
|
||||
#if 1
|
||||
fprintf(stderr, "Called OPENSSL_init\n");
|
||||
#endif
|
||||
|
@ -122,6 +122,10 @@ void FIPS_set_locking_callbacks(void (*func)(int mode, int type,
|
||||
int (*add_cb)(int *pointer, int amount,
|
||||
int type, const char *file, int line));
|
||||
|
||||
void FIPS_set_malloc_callbacks(
|
||||
void *(*malloc_cb)(int num, const char *file, int line),
|
||||
void (*free_cb)(void *));
|
||||
|
||||
#define FIPS_ERROR_IGNORED(alg) OpenSSLDie(__FILE__, __LINE__, \
|
||||
alg " previous FIPS forbidden algorithm error ignored");
|
||||
|
||||
|
@ -84,3 +84,11 @@ void FIPS_free(void *x)
|
||||
{
|
||||
fips_free_cb(x);
|
||||
}
|
||||
|
||||
void FIPS_set_malloc_callbacks(
|
||||
void *(*malloc_cb)(int num, const char *file, int line),
|
||||
void (*free_cb)(void *))
|
||||
{
|
||||
fips_malloc_cb = malloc_cb;
|
||||
fips_free_cb = free_cb;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user