PR: 1990
[oweals/openssl.git] / crypto / idea / i_skey.c
index 1c95bc9c7b8872e15d5df3df6cbece14fe5094b1..fa75b144661396d3055508fac0060c60770c543e 100644 (file)
  */
 
 #include <openssl/idea.h>
+#include <openssl/crypto.h>
+#ifdef OPENSSL_FIPS
+#include <openssl/fips.h>
+#endif
+
 #include "idea_lcl.h"
 
 static IDEA_INT inverse(unsigned int xin);
+
+#ifdef OPENSSL_FIPS
+void idea_set_encrypt_key(const unsigned char *key, IDEA_KEY_SCHEDULE *ks)
+       {
+       if (FIPS_mode())
+               FIPS_BAD_ABORT(IDEA)
+       private_idea_set_encrypt_key(key, ks);
+       }
+void private_idea_set_encrypt_key(const unsigned char *key,
+                                               IDEA_KEY_SCHEDULE *ks)
+#else
 void idea_set_encrypt_key(const unsigned char *key, IDEA_KEY_SCHEDULE *ks)
+#endif
        {
        int i;
        register IDEA_INT *kt,*kf,r0,r1,r2;
@@ -94,10 +111,11 @@ void idea_set_encrypt_key(const unsigned char *key, IDEA_KEY_SCHEDULE *ks)
                }
        }
 
-void idea_set_decrypt_key(IDEA_KEY_SCHEDULE *ek, IDEA_KEY_SCHEDULE *dk)
+void idea_set_decrypt_key(const IDEA_KEY_SCHEDULE *ek, IDEA_KEY_SCHEDULE *dk)
        {
        int r;
-       register IDEA_INT *fp,*tp,t;
+       register IDEA_INT *tp,t;
+       const IDEA_INT *fp;
 
        tp= &(dk->data[0][0]);
        fp= &(ek->data[8][0]);