From 79cfc3ac546565914426ff397a73f2f7ca36ff51 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Mon, 15 Feb 2010 19:20:13 +0000 Subject: [PATCH] add EVP_CIPH_FLAG_LENGTH_BITS from 0.9.8-stable --- crypto/evp/evp.h | 4 ++++ crypto/evp/evp_locl.h | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/crypto/evp/evp.h b/crypto/evp/evp.h index 96f83b8f62..2fa1141e8e 100644 --- a/crypto/evp/evp.h +++ b/crypto/evp/evp.h @@ -343,6 +343,10 @@ struct evp_cipher_st #define EVP_CIPH_RAND_KEY 0x200 /* cipher has its own additional copying logic */ #define EVP_CIPH_CUSTOM_COPY 0x400 +/* Allow use default ASN1 get/set iv */ +#define EVP_CIPH_FLAG_DEFAULT_ASN1 0x1000 +/* Buffer length in bits not bytes: CFB1 mode only */ +#define EVP_CIPH_FLAG_LENGTH_BITS 0x2000 /* ctrl() values */ diff --git a/crypto/evp/evp_locl.h b/crypto/evp/evp_locl.h index 4cb80fbde0..3f6ac7e65c 100644 --- a/crypto/evp/evp_locl.h +++ b/crypto/evp/evp_locl.h @@ -115,7 +115,7 @@ static int cname##_cfb##cbits##_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, if (inl=chunk)\ {\ - cprefix##_cfb##cbits##_encrypt(in, out, (long)(cbits==1?chunk*8:chunk), &((kstruct *)ctx->cipher_data)->ksched, ctx->iv, &ctx->num, ctx->encrypt);\ + cprefix##_cfb##cbits##_encrypt(in, out, (long)((cbits==1) && !(ctx->flags & EVP_CIPH_FLAG_LENGTH_BITS) ?inl*8:inl), &((kstruct *)ctx->cipher_data)->ksched, ctx->iv, &ctx->num, ctx->encrypt);\ inl-=chunk;\ in +=chunk;\ out+=chunk;\ -- 2.25.1