summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2013-01-31 14:31:11 +0000
committerDr. Stephen Henson <steve@openssl.org>2013-02-05 16:50:34 +0000
commit24b28060975c01b749391778d13ec2ea1323a1aa (patch)
treeb10a044322cb28a22013078ea3c313be8ae4fb5f /crypto
parent99f5093347c65eecbd05f0668aea94b32fcf20d7 (diff)
Move CRYPTO_memcmp to o_init.c when compiling with fips: cryptlib.o
is in the fips module for fips capable builds.
Diffstat (limited to 'crypto')
-rw-r--r--crypto/cryptlib.c3
-rw-r--r--crypto/o_init.c14
2 files changed, 17 insertions, 0 deletions
diff --git a/crypto/cryptlib.c b/crypto/cryptlib.c
index 0566ec1f97..dec3286f66 100644
--- a/crypto/cryptlib.c
+++ b/crypto/cryptlib.c
@@ -543,6 +543,8 @@ void OpenSSLDie(const char *file,int line,const char *assertion)
void *OPENSSL_stderr(void) { return stderr; }
+#ifndef OPENSSL_FIPS
+
int CRYPTO_memcmp(const void *in_a, const void *in_b, size_t len)
{
size_t i;
@@ -555,3 +557,4 @@ int CRYPTO_memcmp(const void *in_a, const void *in_b, size_t len)
return x;
}
+#endif
diff --git a/crypto/o_init.c b/crypto/o_init.c
index d767a90a5f..c89fda5890 100644
--- a/crypto/o_init.c
+++ b/crypto/o_init.c
@@ -93,4 +93,18 @@ void OPENSSL_init(void)
#endif
}
+#ifdef OPENSSL_FIPS
+
+int CRYPTO_memcmp(const void *in_a, const void *in_b, size_t len)
+ {
+ size_t i;
+ const unsigned char *a = in_a;
+ const unsigned char *b = in_b;
+ unsigned char x = 0;
+ for (i = 0; i < len; i++)
+ x |= a[i] ^ b[i];
+
+ return x;
+ }
+#endif