]> git.ipfire.org Git - thirdparty/openssl.git/blobdiff - crypto/evp/e_cbc_r2.c
Import of old SSLeay release: SSLeay 0.9.0b
[thirdparty/openssl.git] / crypto / evp / e_cbc_r2.c
index 2e3f85598b078d34f102bbab18a66646d319dc7b..4f8002f16d10a127b9a8ca16c53c67518bfc5dac 100644 (file)
@@ -1,5 +1,5 @@
 /* crypto/evp/e_cbc_r2.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -79,12 +79,33 @@ static EVP_CIPHER r2_cbc_cipher=
        8,EVP_RC2_KEY_SIZE,8,
        rc2_cbc_init_key,
        rc2_cbc_cipher,
+       NULL,
+       sizeof(EVP_CIPHER_CTX)-sizeof((((EVP_CIPHER_CTX *)NULL)->c))+
+               sizeof((((EVP_CIPHER_CTX *)NULL)->c.rc2_ks)),
+       EVP_CIPHER_get_asn1_iv,
+       EVP_CIPHER_set_asn1_iv,
+       };
+
+static EVP_CIPHER r2_40_cbc_cipher=
+       {
+       NID_rc2_40_cbc,
+       8,5 /* 40 bit */,8,
+       rc2_cbc_init_key,
+       rc2_cbc_cipher,
+       NULL,
+       sizeof(EVP_CIPHER_CTX)-sizeof((((EVP_CIPHER_CTX *)NULL)->c))+
+               sizeof((((EVP_CIPHER_CTX *)NULL)->c.rc2_ks)),
        };
 
 EVP_CIPHER *EVP_rc2_cbc()
        {
        return(&r2_cbc_cipher);
        }
+
+EVP_CIPHER *EVP_rc2_40_cbc()
+       {
+       return(&r2_40_cbc_cipher);
+       }
        
 static void rc2_cbc_init_key(ctx,key,iv,enc)
 EVP_CIPHER_CTX *ctx;
@@ -93,11 +114,11 @@ unsigned char *iv;
 int enc;
        {
        if (iv != NULL)
-               memcpy(&(ctx->c.rc2_cbc.oiv[0]),iv,8);
-       memcpy(&(ctx->c.rc2_cbc.iv[0]),&(ctx->c.rc2_cbc.oiv[0]),8);
+               memcpy(&(ctx->oiv[0]),iv,8);
+       memcpy(&(ctx->iv[0]),&(ctx->oiv[0]),8);
        if (key != NULL)
-               RC2_set_key(&(ctx->c.rc2_cbc.ks),EVP_RC2_KEY_SIZE,key,
-                       EVP_RC2_KEY_SIZE*8);
+               RC2_set_key(&(ctx->c.rc2_ks),EVP_CIPHER_CTX_key_length(ctx),
+                       key,EVP_CIPHER_CTX_key_length(ctx)*8);
        }
 
 static void rc2_cbc_cipher(ctx,out,in,inl)
@@ -108,7 +129,7 @@ unsigned int inl;
        {
        RC2_cbc_encrypt(
                in,out,(long)inl,
-               &(ctx->c.rc2_cbc.ks),&(ctx->c.rc2_cbc.iv[0]),
+               &(ctx->c.rc2_ks),&(ctx->iv[0]),
                ctx->encrypt);
        }