From: Bodo Möller Date: Thu, 13 Oct 2011 13:42:29 +0000 (+0000) Subject: Make CTR mode behaviour consistent with other modes: X-Git-Tag: OpenSSL_1_0_1-beta1~119 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=93ff4c69f726ea10282d7167752e9be6cf1bda0a;p=oweals%2Fopenssl.git Make CTR mode behaviour consistent with other modes: clear ctx->num in EVP_CipherInit_ex Submitted by: Emilia Kasper --- diff --git a/crypto/evp/evp.h b/crypto/evp/evp.h index 49d2240883..0d1b20a7d3 100644 --- a/crypto/evp/evp.h +++ b/crypto/evp/evp.h @@ -419,7 +419,7 @@ struct evp_cipher_ctx_st unsigned char oiv[EVP_MAX_IV_LENGTH]; /* original iv */ unsigned char iv[EVP_MAX_IV_LENGTH]; /* working iv */ unsigned char buf[EVP_MAX_BLOCK_LENGTH];/* saved partial block */ - int num; /* used by cfb/ofb mode */ + int num; /* used by cfb/ofb/ctr mode */ void *app_data; /* application stuff */ int key_len; /* May change for variable length cipher */ diff --git a/crypto/evp/evp_enc.c b/crypto/evp/evp_enc.c index a816eb76b1..8828327d92 100644 --- a/crypto/evp/evp_enc.c +++ b/crypto/evp/evp_enc.c @@ -232,6 +232,7 @@ skip_to_init: break; case EVP_CIPH_CTR_MODE: + ctx->num = 0; /* Don't reuse IV for CTR mode */ if(iv) memcpy(ctx->iv, iv, EVP_CIPHER_CTX_iv_length(ctx));