fips/*: extend fipsro segmenting to all _MSC_VER builds (including WinCE).
[openssl.git] / fips / fips.c
index 6498595ec5232d7f2b6a29dba432524b53bddc42..a8f0f0374d2d9ef4bb0fca90cdf53a4433f03bc3 100644 (file)
@@ -145,6 +145,7 @@ void fips_set_selftest_fail(void)
 extern const void         *FIPS_text_start(),  *FIPS_text_end();
 extern const unsigned char FIPS_rodata_start[], FIPS_rodata_end[];
 unsigned char              FIPS_signature [20] = { 0 };
+__fips_constseg
 static const char          FIPS_hmac_key[]="etaonrishdlcupfm";
 
 unsigned int FIPS_incore_fingerprint(unsigned char *sig,unsigned int len)
@@ -239,8 +240,6 @@ int FIPS_check_incore_fingerprint(void)
 
 int FIPS_module_mode_set(int onoff)
     {
-    int fips_set_owning_thread();
-    int fips_clear_owning_thread();
     int ret = 0;
 
     fips_w_lock();
@@ -256,7 +255,7 @@ int FIPS_module_mode_set(int onoff)
           seeding */
        if(FIPS_module_mode())
            {
-           FIPSerr(FIPS_F_FIPS_MODE_SET,FIPS_R_FIPS_MODE_ALREADY_SET);
+           FIPSerr(FIPS_F_FIPS_MODULE_MODE_SET,FIPS_R_FIPS_MODE_ALREADY_SET);
            fips_selftest_fail = 1;
            ret = 0;
            goto end;
@@ -265,7 +264,7 @@ int FIPS_module_mode_set(int onoff)
 #ifdef OPENSSL_IA32_SSE2
        if ((OPENSSL_ia32cap & (1<<25|1<<26)) != (1<<25|1<<26))
            {
-           FIPSerr(FIPS_F_FIPS_MODE_SET,FIPS_R_UNSUPPORTED_PLATFORM);
+           FIPSerr(FIPS_F_FIPS_MODULE_MODE_SET,FIPS_R_UNSUPPORTED_PLATFORM);
            fips_selftest_fail = 1;
            ret = 0;
            goto end;
@@ -274,14 +273,14 @@ int FIPS_module_mode_set(int onoff)
 
        if(fips_signature_witness() != FIPS_signature)
            {
-           FIPSerr(FIPS_F_FIPS_MODE_SET,FIPS_R_CONTRADICTING_EVIDENCE);
+           FIPSerr(FIPS_F_FIPS_MODULE_MODE_SET,FIPS_R_CONTRADICTING_EVIDENCE);
            fips_selftest_fail = 1;
            ret = 0;
            goto end;
            }
 
        if(FIPS_selftest())
-           fips_set_mode(1);
+           fips_set_mode(onoff);
        else
            {
            fips_selftest_fail = 1;
@@ -365,6 +364,16 @@ unsigned char *fips_signature_witness(void)
        return FIPS_signature;
        }
 
+unsigned long FIPS_module_version(void)
+       {
+       return FIPS_MODULE_VERSION_NUMBER;
+       }
+
+const char *FIPS_module_version_text(void)
+       {
+       return FIPS_MODULE_VERSION_TEXT;
+       }
+
 #if 0
 /* The purpose of this is to ensure the error code exists and the function
  * name is to keep the error checking script quiet