#include <e_os.h>
#include <openssl/err.h>
+/* Internal only functions: only ever used here */
+#ifdef OPENSSL_FIPS
+extern void int_ERR_lib_init(void);
+# ifndef OPENSSL_NO_ENGINE
+extern void int_EVP_MD_init_engine_callbacks(void );
+extern void int_EVP_CIPHER_init_engine_callbacks(void );
+extern void int_RAND_init_engine_callbacks(void );
+# endif
+#endif
+
/* Perform any essential OpenSSL initialization operations.
* Currently only sets FIPS callbacks
*/
#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