From 93ff4c69f726ea10282d7167752e9be6cf1bda0a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bodo=20M=C3=B6ller?= Date: Thu, 13 Oct 2011 13:42:29 +0000 Subject: [PATCH] Make CTR mode behaviour consistent with other modes: clear ctx->num in EVP_CipherInit_ex Submitted by: Emilia Kasper --- crypto/evp/evp.h | 2 +- crypto/evp/evp_enc.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) 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)); -- 2.34.1