PR: 2295
[oweals/openssl.git] / crypto / sha / sha256.c
index 5481261ac2fa2ed0b2f45ab99d410c79a3571dd2..3256a83e98e10f74ead2111b2522ef830f5966e1 100644 (file)
 
 #include <openssl/crypto.h>
 #include <openssl/sha.h>
+#ifdef OPENSSL_FIPS
+#include <openssl/fips.h>
+#endif
+
 #include <openssl/opensslv.h>
 
 const char SHA256_version[]="SHA-256" OPENSSL_VERSION_PTEXT;
 
 int SHA224_Init (SHA256_CTX *c)
        {
+#ifdef OPENSSL_FIPS
+       FIPS_selftest_check();
+#endif
        c->h[0]=0xc1059ed8UL;   c->h[1]=0x367cd507UL;
        c->h[2]=0x3070dd17UL;   c->h[3]=0xf70e5939UL;
        c->h[4]=0xffc00b31UL;   c->h[5]=0x68581511UL;
@@ -29,6 +36,9 @@ int SHA224_Init (SHA256_CTX *c)
 
 int SHA256_Init (SHA256_CTX *c)
        {
+#ifdef OPENSSL_FIPS
+       FIPS_selftest_check();
+#endif
        c->h[0]=0x6a09e667UL;   c->h[1]=0xbb67ae85UL;
        c->h[2]=0x3c6ef372UL;   c->h[3]=0xa54ff53aUL;
        c->h[4]=0x510e527fUL;   c->h[5]=0x9b05688cUL;
@@ -84,21 +94,21 @@ int SHA224_Final (unsigned char *md, SHA256_CTX *c)
  */
 #define        HASH_MAKE_STRING(c,s)   do {    \
        unsigned long ll;               \
-       unsigned int  n;                \
+       unsigned int  xn;               \
        switch ((c)->md_len)            \
        {   case SHA224_DIGEST_LENGTH:  \
-               for (n=0;n<SHA224_DIGEST_LENGTH/4;n++)  \
-               {   ll=(c)->h[n]; HOST_l2c(ll,(s));   } \
+               for (xn=0;xn<SHA224_DIGEST_LENGTH/4;xn++)       \
+               {   ll=(c)->h[xn]; HOST_l2c(ll,(s));   }        \
                break;                  \
            case SHA256_DIGEST_LENGTH:  \
-               for (n=0;n<SHA256_DIGEST_LENGTH/4;n++)  \
-               {   ll=(c)->h[n]; HOST_l2c(ll,(s));   } \
+               for (xn=0;xn<SHA256_DIGEST_LENGTH/4;xn++)       \
+               {   ll=(c)->h[xn]; HOST_l2c(ll,(s));   }        \
                break;                  \
            default:                    \
                if ((c)->md_len > SHA256_DIGEST_LENGTH) \
                    return 0;                           \
-               for (n=0;n<(c)->md_len/4;n++)           \
-               {   ll=(c)->h[n]; HOST_l2c(ll,(s));   } \
+               for (xn=0;xn<(c)->md_len/4;xn++)                \
+               {   ll=(c)->h[xn]; HOST_l2c(ll,(s));   }        \
                break;                  \
        }                               \
        } while (0)