Allow specifying the tag after AAD in CCM mode (2)
In addition to 67c81ec3 which introduced this behavior in CCM mode
docs but only implemented it for AES-CCM.
Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/10331)
(cherry picked from commit f7382fbbd846dd3bdea6b8c03b6af22faf0ab94f)
Conflicts:
test/recipes/30-test_evp_data/evpciph.txt
Patrick Steuer
4 years ago
694 | 694 |
if (!cctx->iv_set)
|
695 | 695 |
return -1;
|
696 | 696 |
|
697 | |
if (!EVP_CIPHER_CTX_encrypting(ctx) && !cctx->tag_set)
|
698 | |
return -1;
|
699 | 697 |
if (!out) {
|
700 | 698 |
if (!in) {
|
701 | 699 |
if (CRYPTO_ccm128_setiv(ccm, EVP_CIPHER_CTX_iv_noconst(ctx),
|
|
710 | 708 |
CRYPTO_ccm128_aad(ccm, in, len);
|
711 | 709 |
return len;
|
712 | 710 |
}
|
|
711 |
|
|
712 |
/* The tag must be set before actually decrypting data */
|
|
713 |
if (!EVP_CIPHER_CTX_encrypting(ctx) && !cctx->tag_set)
|
|
714 |
return -1;
|
|
715 |
|
713 | 716 |
/* If not set length yet do it */
|
714 | 717 |
if (!cctx->len_set) {
|
715 | 718 |
if (CRYPTO_ccm128_setiv(ccm, EVP_CIPHER_CTX_iv_noconst(ctx),
|
2357 | 2357 |
Plaintext = f57af5fd4ae19562976ec57a5a7ad55a5af5c5e5c5fdf5c55ad57a4a7272d57262e9729566ed66e97ac54a4a5a7ad5e15ae5fdd5fd5ac5d56ae56ad5c572d54ae54ac55a956afd6aed5a4ac562957a9516991691d572fd14e97ae962ed7a9f4a955af572e162f57a956666e17ae1f54a95f566d54a66e16e4afd6a9f7ae1c5c55ae5d56afde916c5e94a6ec56695e14afde1148416e94ad57ac5146ed59d1cc5
|
2358 | 2358 |
Ciphertext = ff78128ee18ee3cb9fb0d20726a017ff67fbd09d3a4c38aa32f6d306d3fdda378e459b83ed005507449d6cd981a4c1e3ff4193870c276ef09b6317a01a2283206ae4b4be0d0b235422c8abb00122410656b75e1ffc7fb49c0d0c5d6169aa7623610579968037aee8e83fc26264ea866590fd620aa3c0a5f323d953aa7f8defb0d0d60ab5a9de44dbaf8eae74ea3ab5f30594154f405fd630aa4c4d5603efdfa1
|
2359 | 2359 |
|
|
2360 |
# Test that the tag can be set after specifying AAD.
|
|
2361 |
Cipher = ARIA-256-CCM
|
|
2362 |
Key = 0c5ffd37a11edc42c325287fc0604f2e3e8cd5671a00fe3216aa5eb105783b54
|
|
2363 |
IV = 000020e8f5eb00000000315e
|
|
2364 |
AAD = 8008315ebf2e6fe020e8f5eb
|
|
2365 |
Tag = 3615b7f90a651de15da20fb6
|
|
2366 |
SetTagLate = TRUE
|
|
2367 |
Plaintext = f57af5fd4ae19562976ec57a5a7ad55a5af5c5e5c5fdf5c55ad57a4a7272d57262e9729566ed66e97ac54a4a5a7ad5e15ae5fdd5fd5ac5d56ae56ad5c572d54ae54ac55a956afd6aed5a4ac562957a9516991691d572fd14e97ae962ed7a9f4a955af572e162f57a956666e17ae1f54a95f566d54a66e16e4afd6a9f7ae1c5c55ae5d56afde916c5e94a6ec56695e14afde1148416e94ad57ac5146ed59d1cc5
|
|
2368 |
Ciphertext = ff78128ee18ee3cb9fb0d20726a017ff67fbd09d3a4c38aa32f6d306d3fdda378e459b83ed005507449d6cd981a4c1e3ff4193870c276ef09b6317a01a2283206ae4b4be0d0b235422c8abb00122410656b75e1ffc7fb49c0d0c5d6169aa7623610579968037aee8e83fc26264ea866590fd620aa3c0a5f323d953aa7f8defb0d0d60ab5a9de44dbaf8eae74ea3ab5f30594154f405fd630aa4c4d5603efdfa1
|
|
2369 |
|
2360 | 2370 |
|
2361 | 2371 |
Title = SEED test vectors from RFC4269
|
2362 | 2372 |
|