Make CTR mode behaviour consistent with other modes:
clear ctx->num in EVP_CipherInit_ex Submitted by: Emilia Kasper
This commit is contained in:
@@ -419,7 +419,7 @@ struct evp_cipher_ctx_st
|
|||||||
unsigned char oiv[EVP_MAX_IV_LENGTH]; /* original iv */
|
unsigned char oiv[EVP_MAX_IV_LENGTH]; /* original iv */
|
||||||
unsigned char iv[EVP_MAX_IV_LENGTH]; /* working iv */
|
unsigned char iv[EVP_MAX_IV_LENGTH]; /* working iv */
|
||||||
unsigned char buf[EVP_MAX_BLOCK_LENGTH];/* saved partial block */
|
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 */
|
void *app_data; /* application stuff */
|
||||||
int key_len; /* May change for variable length cipher */
|
int key_len; /* May change for variable length cipher */
|
||||||
|
|||||||
@@ -232,6 +232,7 @@ skip_to_init:
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case EVP_CIPH_CTR_MODE:
|
case EVP_CIPH_CTR_MODE:
|
||||||
|
ctx->num = 0;
|
||||||
/* Don't reuse IV for CTR mode */
|
/* Don't reuse IV for CTR mode */
|
||||||
if(iv)
|
if(iv)
|
||||||
memcpy(ctx->iv, iv, EVP_CIPHER_CTX_iv_length(ctx));
|
memcpy(ctx->iv, iv, EVP_CIPHER_CTX_iv_length(ctx));
|
||||||
|
|||||||
Reference in New Issue
Block a user