Add missing flags for EVP_chacha20()
authorKazuki Yamaguchi <k@rhe.jp>
Thu, 29 Dec 2016 15:59:56 +0000 (00:59 +0900)
committerRichard Levitte <levitte@openssl.org>
Tue, 24 Jan 2017 14:22:35 +0000 (15:22 +0100)
ChaCha20 code uses its own custom cipher_data. Add EVP_CIPH_CUSTOM_IV
and EVP_CIPH_ALWAYS_CALL_INIT so that the key and the iv can be set by
different calls of EVP_CipherInit_ex().

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2156)
(cherry picked from commit c83680a04aac7a15e6ac48ed732b8322c4c9d49a)

crypto/evp/e_chacha20_poly1305.c

index 952bd3fca781196a595e43d70fb9a76c3fd072a7..befd805e35a5b6ee1dfcbced0b6df6ab563519bf 100644 (file)
@@ -127,7 +127,7 @@ static const EVP_CIPHER chacha20 = {
     1,                      /* block_size */
     CHACHA_KEY_SIZE,        /* key_len */
     CHACHA_CTR_SIZE,        /* iv_len, 128-bit counter in the context */
-    0,                      /* flags */
+    EVP_CIPH_CUSTOM_IV | EVP_CIPH_ALWAYS_CALL_INIT,
     chacha_init_key,
     chacha_cipher,
     NULL,