test/crypto: fix ZUC vector IV format

Some authentication and cipher IV formats were not following the spec [1].

For ZUC128 cipher IV, an 8 byte block is repeated,
with the last 3 bytes of each being 0x0.
IV[4] and IV[12] must have the last 2 bits set to 0.

Auth IVs must also have repeated bytes with the last 3 bytes
containing 0x0 in each 8 byte block.
IV[4] and IV[12] must have the last 3 bits set to 0.
IV[8] and IV[14] may have a flipped bit based on direction.

[1] https://www.gsma.com/security/wp-content/uploads/2019/05/EEA3_EIA3_specification_v1_8.pdf

Fixes: a81a81850f ("test/crypto: add ZUC test cases for QAT")
Fixes: b1c1df4687 ("test/crypto: add ZUC test cases for auth-cipher")
Cc: stable@dpdk.org

Signed-off-by: Ciara Power <ciara.power@intel.com>
Acked-by: Tejasree Kondoj <ktejasree@marvell.com>
This commit is contained in:
Ciara Power 2022-06-23 14:42:49 +00:00 committed by Akhil Goyal
parent 5d170ccea5
commit 3025fe2910

View File

@ -558,13 +558,13 @@ static struct wireless_test_data zuc_test_case_cipher_200b_auth_200b = {
},
.auth_iv = {
.data = {
0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
0xFA, 0x55, 0x6B, 0x26, 0x18, 0x00, 0x00, 0x00,
0xFA, 0x55, 0x6B, 0x26, 0x18, 0x00, 0x00, 0x00
},
.len = 16
},
.digest = {
.data = {0x01, 0xFE, 0x5E, 0x38},
.data = {0x2F, 0x45, 0x7D, 0x7B},
.len = 4
},
.validAuthLenInBits = {
@ -631,13 +631,13 @@ static struct wireless_test_data zuc_test_case_cipher_800b_auth_120b = {
},
.auth_iv = {
.data = {
0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00,
0xFA, 0x55, 0x6B, 0x26, 0x1C, 0x00, 0x00, 0x00
0xFA, 0x55, 0x6B, 0x26, 0x18, 0x00, 0x00, 0x00,
0xFA, 0x55, 0x6B, 0x26, 0x18, 0x00, 0x00, 0x00
},
.len = 16
},
.digest = {
.data = {0x9D, 0x42, 0x1C, 0xEA},
.data = {0xCA, 0xBB, 0x8D, 0x94},
.len = 4
},
.validAuthLenInBits = {
@ -1166,15 +1166,15 @@ struct wireless_test_data zuc_auth_cipher_test_case_1 = {
},
.cipher_iv = {
.data = {
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
0x66, 0x03, 0x54, 0x92, 0x78, 0x00, 0x00, 0x00,
0x66, 0x03, 0x54, 0x92, 0x78, 0x00, 0x00, 0x00
},
.len = 16
},
.auth_iv = {
.data = {
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
0xFA, 0x55, 0x6B, 0x26, 0x18, 0x00, 0x00, 0x00,
0xFA, 0x55, 0x6B, 0x26, 0x18, 0x00, 0x00, 0x00
},
.len = 16
},
@ -1201,22 +1201,22 @@ struct wireless_test_data zuc_auth_cipher_test_case_1 = {
},
.ciphertext = {
.data = {
0x5A, 0x5A, 0xDB, 0x3D, 0xD5, 0xB7, 0xB9, 0x58,
0xA5, 0xD3, 0xE3, 0xF9, 0x18, 0x73, 0xB4, 0x74,
0x05, 0xF0, 0xE9, 0xB6, 0x5D, 0x9A, 0xE3, 0xFA,
0x5D, 0xFD, 0x24, 0x51, 0xAD, 0x73, 0xCA, 0x64,
0x91, 0xD5, 0xB3, 0x94, 0x10, 0x91, 0x89, 0xEA,
0x73, 0x6F, 0xB0, 0x2A, 0x0A, 0x63, 0x0F, 0x8D,
0x64, 0x87, 0xA3, 0x14, 0x6B, 0x93, 0x31, 0x0F,
0x14, 0xAD, 0xEA, 0x62, 0x80, 0x3F, 0x44, 0xDD,
0x4E, 0x30, 0xFA, 0xC8, 0x0E, 0x5F, 0x46, 0xE7,
0x60, 0xEC, 0xDF, 0x8B, 0x94, 0x7D, 0x2E, 0x63,
0x48, 0xD9, 0x69, 0x06, 0x13, 0xF2, 0x20, 0x49,
0x54, 0xA6, 0xD4, 0x98, 0xF4, 0xF6, 0x1D, 0x4A,
0xC9, 0xA5, 0xDA, 0x46, 0x3D, 0xD9, 0x02, 0x47,
0x1C, 0x20, 0x73, 0x35, 0x17, 0x1D, 0x81, 0x8D,
0x2E, 0xCD, 0x70, 0x37, 0x22, 0x55, 0x3C, 0xF3,
0xDA, 0x70, 0x42, 0x12, 0x0E, 0xAA, 0xC4, 0xAB
0x5A, 0x5A, 0x94, 0xE7, 0xB8, 0xD7, 0x4E, 0xBB,
0x4C, 0xC3, 0xD1, 0x16, 0xFC, 0x8C, 0xE4, 0x27,
0x44, 0xEC, 0x04, 0x26, 0x60, 0x9C, 0xFF, 0x81,
0xB6, 0x2B, 0x48, 0x1D, 0xEE, 0x26, 0xF7, 0x58,
0x40, 0x38, 0x58, 0xEA, 0x22, 0x23, 0xE6, 0x34,
0x9A, 0x69, 0x32, 0x68, 0xBD, 0xDD, 0x7D, 0xA3,
0xC0, 0x04, 0x79, 0xF0, 0xF1, 0x58, 0x78, 0x5E,
0xD0, 0xDF, 0x27, 0x9A, 0x53, 0x70, 0x5D, 0xFB,
0x1B, 0xCA, 0xBA, 0x97, 0x12, 0x1F, 0x59, 0x6B,
0x75, 0x7B, 0x94, 0xF6, 0xE7, 0xFA, 0x49, 0x6B,
0x7D, 0x7F, 0x8F, 0x0F, 0x78, 0x56, 0x40, 0x52,
0x84, 0x3E, 0xA9, 0xE8, 0x84, 0x6F, 0xEF, 0xFB,
0x4A, 0x48, 0x3A, 0x4C, 0x81, 0x98, 0xDD, 0x17,
0x89, 0x66, 0x3B, 0xC0, 0xEC, 0x71, 0xDB, 0xF6,
0x44, 0xDF, 0xA7, 0x97, 0xB2, 0x9B, 0x84, 0xA7,
0x2D, 0x2D, 0xC1, 0x93, 0x12, 0x37, 0xEA, 0xD2
},
.len = 128 << 3
},
@ -1233,7 +1233,7 @@ struct wireless_test_data zuc_auth_cipher_test_case_1 = {
.len = 2 << 3
},
.digest = {
.data = {0x0E, 0xAA, 0xC4, 0xAB},
.data = {0x12, 0x37, 0xEA, 0xD2},
.len = 4,
.offset_bytes = 124
}