/* 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
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;
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)
{
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);
}