Configuration for linux on ARM (contributed by Jeremy Norris
[openssl.git] / crypto / evp / e_cbc_i.c
index d5210ca064ce9e9fc1341773cc300122f3edef05..c2c023a1b81c24a401a6a95ecdc6df70256fe395 100644 (file)
 #include <openssl/evp.h>
 #include <openssl/objects.h>
 
-#ifndef NOPROTO
-static void idea_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int idea_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
        unsigned char *iv,int enc);
-static void idea_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int idea_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
        unsigned char *in, unsigned int inl);
-#else
-static void idea_cbc_init_key();
-static void idea_cbc_cipher();
-#endif
-
 static EVP_CIPHER i_cbc_cipher=
        {
        NID_idea_cbc,
        8,16,8,
+       EVP_CIPH_CBC_MODE,
        idea_cbc_init_key,
        idea_cbc_cipher,
        NULL,
        sizeof(EVP_CIPHER_CTX)-sizeof((((EVP_CIPHER_CTX *)NULL)->c))+
                sizeof((((EVP_CIPHER_CTX *)NULL)->c.idea_ks)),
-       EVP_CIPHER_get_asn1_iv,
        EVP_CIPHER_set_asn1_iv,
+       EVP_CIPHER_get_asn1_iv,
+       NULL
        };
 
 EVP_CIPHER *EVP_idea_cbc(void)
@@ -91,35 +87,30 @@ EVP_CIPHER *EVP_idea_cbc(void)
        return(&i_cbc_cipher);
        }
        
-static void idea_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
+static int idea_cbc_init_key(EVP_CIPHER_CTX *ctx, unsigned char *key,
             unsigned char *iv, int enc)
        {
-       if (iv != NULL)
-               memcpy(&(ctx->oiv[0]),iv,8);
-       memcpy(&(ctx->iv[0]),&(ctx->oiv[0]),8);
-       if (key != NULL)
+       if (enc) idea_set_encrypt_key(key,&(ctx->c.idea_ks));
+       else
                {
-               if (enc)
-                       idea_set_encrypt_key(key,&(ctx->c.idea_ks));
-               else
-                       {
-                       IDEA_KEY_SCHEDULE tmp;
+               IDEA_KEY_SCHEDULE tmp;
 
-                       idea_set_encrypt_key(key,&tmp);
-                       idea_set_decrypt_key(&tmp,&(ctx->c.idea_ks));
-                       memset((unsigned char *)&tmp,0,
+               idea_set_encrypt_key(key,&tmp);
+               idea_set_decrypt_key(&tmp,&(ctx->c.idea_ks));
+               memset((unsigned char *)&tmp,0,
                                sizeof(IDEA_KEY_SCHEDULE));
-                       }
                }
+       return 1;
        }
 
-static void idea_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
+static int idea_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
             unsigned char *in, unsigned int inl)
        {
        idea_cbc_encrypt(
                in,out,(long)inl,
                &(ctx->c.idea_ks),&(ctx->iv[0]),
                ctx->encrypt);
+       return 1;
        }
 
 #endif