diff options
author | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2018-02-21 15:48:02 +0100 |
---|---|---|
committer | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2018-02-23 14:10:46 +0100 |
commit | 604e591ed75eff9296c21ee5fe93f3e9ec246094 (patch) | |
tree | 9c84ffd05dd1adf5283d0f8ee8fba995ca3019b3 /crypto/evp | |
parent | e42809f80895b9f89d9165358e1a06f9c8f821cc (diff) |
Fix some bugs with the cfb1 bitsize handling
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5426)
Diffstat (limited to 'crypto/evp')
-rw-r--r-- | crypto/evp/e_aes.c | 2 | ||||
-rw-r--r-- | crypto/evp/e_camellia.c | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/crypto/evp/e_aes.c b/crypto/evp/e_aes.c index e56be16365..1d5007acf8 100644 --- a/crypto/evp/e_aes.c +++ b/crypto/evp/e_aes.c @@ -2510,6 +2510,8 @@ static int aes_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, EVP_CIPHER_CTX_encrypting(ctx), dat->block); EVP_CIPHER_CTX_set_num(ctx, num); len -= MAXBITCHUNK; + out += MAXBITCHUNK; + in += MAXBITCHUNK; } if (len) { int num = EVP_CIPHER_CTX_num(ctx); diff --git a/crypto/evp/e_camellia.c b/crypto/evp/e_camellia.c index b50fa0b96d..905d7a6f06 100644 --- a/crypto/evp/e_camellia.c +++ b/crypto/evp/e_camellia.c @@ -325,8 +325,10 @@ static int camellia_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, int num = EVP_CIPHER_CTX_num(ctx); CRYPTO_cfb128_1_encrypt(in, out, MAXBITCHUNK * 8, &dat->ks, EVP_CIPHER_CTX_iv_noconst(ctx), &num, EVP_CIPHER_CTX_encrypting(ctx), dat->block); - len -= MAXBITCHUNK; EVP_CIPHER_CTX_set_num(ctx, num); + len -= MAXBITCHUNK; + out += MAXBITCHUNK; + in += MAXBITCHUNK; } if (len) { int num = EVP_CIPHER_CTX_num(ctx); |