diff options
author | Jakub Zelenka <bukka@php.net> | 2019-06-02 19:15:00 +0100 |
---|---|---|
committer | Jakub Zelenka <bukka@php.net> | 2019-06-02 19:15:00 +0100 |
commit | 29d79dc2e55844cb42f975ef2f0c21aedbfef183 (patch) | |
tree | e7bc1c251d021201ff6b5b2cf882c16e6af6de31 | |
parent | 09ac6eb36d54aedd19466ca739f99c97a9fd21ad (diff) | |
parent | 4feddd59dcd8aefa7738576a5a457ebd8e9fabf0 (diff) | |
download | php-git-29d79dc2e55844cb42f975ef2f0c21aedbfef183.tar.gz |
Merge branch 'PHP-7.4'
-rw-r--r-- | ext/openssl/openssl.c | 5 | ||||
-rw-r--r-- | ext/openssl/tests/openssl_encrypt_ccm.phpt | 12 |
2 files changed, 13 insertions, 4 deletions
diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index 30d984c300..8cf294b361 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -6546,7 +6546,10 @@ static int php_openssl_cipher_init(const EVP_CIPHER *cipher_type, return FAILURE; } if (mode->is_single_run_aead && enc) { - EVP_CIPHER_CTX_ctrl(cipher_ctx, mode->aead_set_tag_flag, tag_len, NULL); + if (!EVP_CIPHER_CTX_ctrl(cipher_ctx, mode->aead_set_tag_flag, tag_len, NULL)) { + php_error_docref(NULL, E_WARNING, "Setting tag length for AEAD cipher failed"); + return FAILURE; + } } else if (!enc && tag && tag_len > 0) { if (!mode->is_aead) { php_error_docref(NULL, E_WARNING, "The tag cannot be used because the cipher method does not support AEAD"); diff --git a/ext/openssl/tests/openssl_encrypt_ccm.phpt b/ext/openssl/tests/openssl_encrypt_ccm.phpt index c8610bc96b..fb5dbbc849 100644 --- a/ext/openssl/tests/openssl_encrypt_ccm.phpt +++ b/ext/openssl/tests/openssl_encrypt_ccm.phpt @@ -24,9 +24,12 @@ foreach ($tests as $idx => $test) { // Empty IV error var_dump(openssl_encrypt('data', $method, 'password', 0, NULL, $tag, '')); -// Test setting different IV length and unlimeted tag -var_dump(openssl_encrypt('data', $method, 'password', 0, str_repeat('x', 10), $tag, '', 1024)); +// Test setting different IV length and tag length +var_dump(openssl_encrypt('data', $method, 'password', 0, str_repeat('x', 10), $tag, '', 14)); var_dump(strlen($tag)); + +// Test setting invalid tag length +var_dump(openssl_encrypt('data', $method, 'password', 0, str_repeat('x', 16), $tag, '', 1024)); ?> --EXPECTF-- TEST 0 @@ -36,4 +39,7 @@ bool(true) Warning: openssl_encrypt(): Setting of IV length for AEAD mode failed in %s on line %d bool(false) string(8) "p/lvgA==" -int(1024) +int(14) + +Warning: openssl_encrypt(): Setting of IV length for AEAD mode failed in %s on line %d +bool(false) |