Add new function, EVP_MD_CTX_copy() to replace frequent use of memcpy.
[openssl.git] / crypto / evp / e_ofb_bf.c
index 078f17106287a0057ca00f7e8ccc61fd497cf09b..492f9b908241c90dede37a0fd976a4780881a63d 100644 (file)
@@ -1,5 +1,5 @@
 /* crypto/evp/e_ofb_bf.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,6 +79,11 @@ static EVP_CIPHER bfish_ofb_cipher=
        1,EVP_BLOWFISH_KEY_SIZE,8,
        bf_ofb_init_key,
        bf_ofb_cipher,
+       NULL,
+       sizeof(EVP_CIPHER_CTX)-sizeof((((EVP_CIPHER_CTX *)NULL)->c))+
+               sizeof((((EVP_CIPHER_CTX *)NULL)->c.bf_ks)),
+       EVP_CIPHER_set_asn1_iv,
+       EVP_CIPHER_get_asn1_iv,
        };
 
 EVP_CIPHER *EVP_bf_ofb()
@@ -92,13 +97,13 @@ unsigned char *key;
 unsigned char *iv;
 int enc;
        {
-       ctx->c.bf_cfb.num=0;
+       ctx->num=0;
 
        if (iv != NULL)
-               memcpy(&(ctx->c.bf_cfb.oiv[0]),iv,8);
-       memcpy(&(ctx->c.bf_cfb.iv[0]),&(ctx->c.bf_cfb.oiv[0]),8);
+               memcpy(&(ctx->oiv[0]),iv,8);
+       memcpy(&(ctx->iv[0]),&(ctx->oiv[0]),8);
        if (key != NULL)
-               BF_set_key(&(ctx->c.bf_cfb.ks),EVP_BLOWFISH_KEY_SIZE,key);
+               BF_set_key(&(ctx->c.bf_ks),EVP_BLOWFISH_KEY_SIZE,key);
        }
 
 static void bf_ofb_cipher(ctx,out,in,inl)
@@ -109,9 +114,9 @@ unsigned int inl;
        {
        BF_ofb64_encrypt(
                in,out,
-               (long)inl, &(ctx->c.bf_cfb.ks),
-               &(ctx->c.bf_cfb.iv[0]),
-               &ctx->c.bf_cfb.num);
+               (long)inl, &(ctx->c.bf_ks),
+               &(ctx->iv[0]),
+               &ctx->num);
        }
 
 #endif