Return errors instead of aborting when selftest fails.
[openssl.git] / crypto / rsa / rsa_eay.c
index 865fb6a26924e2bc617df541e5f62c9d0a23366b..d47f64e75d0f733116b6436f881e10ae22335134 100644 (file)
@@ -937,7 +937,11 @@ err:
 static int RSA_eay_init(RSA *rsa)
        {
 #ifdef OPENSSL_FIPS
-       FIPS_selftest_check();
+       if(FIPS_selftest_failed())
+               {
+               FIPSerr(FIPS_F_RSA_EAY_INIT,FIPS_R_FIPS_SELFTEST_FAILED);
+               return 0;
+               }
 #endif
        rsa->flags|=RSA_FLAG_CACHE_PUBLIC|RSA_FLAG_CACHE_PRIVATE;
        return(1);