From: Dr. Stephen Henson Date: Wed, 26 Jan 2011 15:53:07 +0000 (+0000) Subject: FIPS mode ERR changes. Redirect errors to tiny FIPS callbacks to avoid ERR X-Git-Tag: OpenSSL-fips-2_0-rc1~846 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=5ca9cb7cbd6e69408221c80350e5e038cf9bfd04;p=oweals%2Fopenssl.git FIPS mode ERR changes. Redirect errors to tiny FIPS callbacks to avoid ERR library dependencies. --- diff --git a/crypto/err/err.c b/crypto/err/err.c index fcdb244008..b586004166 100644 --- a/crypto/err/err.c +++ b/crypto/err/err.c @@ -109,6 +109,8 @@ * */ +#define OPENSSL_NO_FIPS_ERR + #include #include #include diff --git a/crypto/err/err.h b/crypto/err/err.h index 974cc9cc6f..37aee6f485 100644 --- a/crypto/err/err.h +++ b/crypto/err/err.h @@ -137,6 +137,17 @@ extern "C" { #define ERR_PUT_error(a,b,c,d,e) ERR_put_error(a,b,c,NULL,0) #endif +#if defined(OPENSSL_FIPSCANISTER) && !defined(OPENSSL_NO_FIPS_ERR) +#define ERR_put_error FIPS_put_error +#define ERR_add_error_data FIPS_add_error_data +#endif + +#ifdef OPENSSL_FIPS +void FIPS_set_error_callbacks( + void (*put_cb)(int lib, int func,int reason,const char *file,int line), + void (*add_cb)(int num, va_list args) ); +#endif + #include #define ERR_TXT_MALLOCED 0x01 diff --git a/crypto/err/err_all.c b/crypto/err/err_all.c index fc049e8e88..3544e8fecd 100644 --- a/crypto/err/err_all.c +++ b/crypto/err/err_all.c @@ -56,6 +56,8 @@ * [including the GNU Public Licence.] */ +#define OPENSSL_NO_FIPS_ERR + #include #include #include @@ -106,6 +108,9 @@ void ERR_load_crypto_strings(void) { +#ifdef OPENSSL_FIPS + FIPS_set_error_callbacks(ERR_put_error, ERR_add_error_vdata); +#endif #ifndef OPENSSL_NO_ERR ERR_load_ERR_strings(); /* include error strings for SYSerr */ ERR_load_BN_strings();