Avoid multiple lock using FIPS DRBG.
[openssl.git] / crypto / rc2 / rc2.h
index 9571efb7559e3e42fe2fc1a1eb8525c02049bef8..e542ec94ffb69642d6fc74d5fb6c3fcbbe746375 100644 (file)
 #ifndef HEADER_RC2_H
 #define HEADER_RC2_H
 
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-#ifdef NO_RC2
+#include <openssl/opensslconf.h> /* OPENSSL_NO_RC2, RC2_INT */
+#ifdef OPENSSL_NO_RC2
 #error RC2 is disabled.
 #endif
 
 #define RC2_ENCRYPT    1
 #define RC2_DECRYPT    0
 
-#include <openssl/opensslconf.h> /* RC2_INT */
 #define RC2_BLOCK      8
 #define RC2_KEY_LENGTH 16
 
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
 typedef struct rc2_key_st
        {
        RC2_INT data[64];
        } RC2_KEY;
 
-void RC2_set_key(RC2_KEY *key, int len, unsigned char *data,int bits);
-void RC2_ecb_encrypt(unsigned char *in,unsigned char *out,RC2_KEY *key,
-       int enc);
+#ifdef OPENSSL_FIPS 
+void private_RC2_set_key(RC2_KEY *key, int len, const unsigned char *data,int bits);
+#endif
+void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data,int bits);
+void RC2_ecb_encrypt(const unsigned char *in,unsigned char *out,RC2_KEY *key,
+                    int enc);
 void RC2_encrypt(unsigned long *data,RC2_KEY *key);
 void RC2_decrypt(unsigned long *data,RC2_KEY *key);
-void RC2_cbc_encrypt(unsigned char *in, unsigned char *out, long length,
+void RC2_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
        RC2_KEY *ks, unsigned char *iv, int enc);
-void RC2_cfb64_encrypt(unsigned char *in, unsigned char *out, long length,
-       RC2_KEY *schedule, unsigned char *ivec, int *num, int enc);
-void RC2_ofb64_encrypt(unsigned char *in, unsigned char *out, long length,
-       RC2_KEY *schedule, unsigned char *ivec, int *num);
+void RC2_cfb64_encrypt(const unsigned char *in, unsigned char *out,
+                      long length, RC2_KEY *schedule, unsigned char *ivec,
+                      int *num, int enc);
+void RC2_ofb64_encrypt(const unsigned char *in, unsigned char *out,
+                      long length, RC2_KEY *schedule, unsigned char *ivec,
+                      int *num);
 
 #ifdef  __cplusplus
 }