Manually reformat aes_core.c
[openssl.git] / crypto / o_fips.c
index a57a02b07028edd38fcc6da878eadb07952dfd4f..f6d1b21855ce54e2905ff4004ee698f6f3ae1436 100644 (file)
 #include "cryptlib.h"
 #ifdef OPENSSL_FIPS
 #include <openssl/fips.h>
+#include <openssl/fips_rand.h>
+#include <openssl/rand.h>
 #endif
 
 int FIPS_mode(void)
        {
+       OPENSSL_init();
 #ifdef OPENSSL_FIPS
        return FIPS_module_mode();
 #else
@@ -71,8 +74,18 @@ int FIPS_mode(void)
 
 int FIPS_mode_set(int r)
        {
+       OPENSSL_init();
 #ifdef OPENSSL_FIPS
-       return FIPS_module_mode_set(r);
+#ifndef FIPS_AUTH_USER_PASS
+#define FIPS_AUTH_USER_PASS    "Default FIPS Crypto User Password"
+#endif
+       if (!FIPS_module_mode_set(r, FIPS_AUTH_USER_PASS))
+               return 0;
+       if (r)
+               RAND_set_rand_method(FIPS_rand_get_method());
+       else
+               RAND_set_rand_method(NULL);
+       return 1;
 #else
        if (r == 0)
                return 1;