Skip to content

Commit 5483461

Browse files
authored
Merge pull request #62 from gilles-peskine-arm/psa-stream_cipher_update_test
Improve multipart cipher tests: 2 blocks, CTR
2 parents 97eaea9 + e086652 commit 5483461

File tree

2 files changed

+137
-25
lines changed

2 files changed

+137
-25
lines changed

tests/suites/test_suite_psa_crypto.data

Lines changed: 103 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1012,31 +1012,127 @@ cipher_verify_output:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4
10121012

10131013
PSA symmetric encryption multipart: AES-CBC-nopad, 7+9 bytes
10141014
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC
1015-
cipher_encrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a":7:"a076ec9dfbe47d52afc357336f20743b"
1015+
cipher_encrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a":7:0:16:"a076ec9dfbe47d52afc357336f20743b"
10161016

10171017
PSA symmetric encryption multipart: AES-CBC-nopad, 3+13 bytes
10181018
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC
1019-
cipher_encrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a":3:"a076ec9dfbe47d52afc357336f20743b"
1019+
cipher_encrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a":3:0:16:"a076ec9dfbe47d52afc357336f20743b"
10201020

10211021
PSA symmetric encryption multipart: AES-CBC-nopad, 4+12 bytes
10221022
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC
1023-
cipher_encrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a":4:"a076ec9dfbe47d52afc357336f20743b"
1023+
cipher_encrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a":4:0:16:"a076ec9dfbe47d52afc357336f20743b"
10241024

10251025
PSA symmetric encryption multipart: AES-CBC-nopad, 11+5 bytes
10261026
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC
1027-
cipher_encrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a":11:"a076ec9dfbe47d52afc357336f20743b"
1027+
cipher_encrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a":11:0:16:"a076ec9dfbe47d52afc357336f20743b"
1028+
1029+
PSA symmetric encryption multipart: AES-CBC-nopad, 16+16 bytes
1030+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC
1031+
cipher_encrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a5434f378a597bcef1389318c7fc865ef":16:16:16:"a076ec9dfbe47d52afc357336f20743b89906f2f9207ac02aa658cb4ef19c61f"
1032+
1033+
PSA symmetric encryption multipart: AES-CBC-nopad, 12+20 bytes
1034+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC
1035+
cipher_encrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a5434f378a597bcef1389318c7fc865ef":12:0:32:"a076ec9dfbe47d52afc357336f20743b89906f2f9207ac02aa658cb4ef19c61f"
1036+
1037+
PSA symmetric encryption multipart: AES-CBC-nopad, 20+12 bytes
1038+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC
1039+
cipher_encrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a5434f378a597bcef1389318c7fc865ef":20:16:16:"a076ec9dfbe47d52afc357336f20743b89906f2f9207ac02aa658cb4ef19c61f"
1040+
1041+
PSA symmetric encryption multipart: AES-CTR, 11+5 bytes
1042+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CTR
1043+
cipher_encrypt_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a":11:11:5:"8f9408fe80a81d3e813da3c7b0b2bd32"
1044+
1045+
PSA symmetric encryption multipart: AES-CTR, 16+16 bytes
1046+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CTR
1047+
cipher_encrypt_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a5434f378a597bcef1389318c7fc865ef":16:16:16:"8f9408fe80a81d3e813da3c7b0b2bd321c965bb1de7baf71025f6ef6393ca587"
1048+
1049+
PSA symmetric encryption multipart: AES-CTR, 12+20 bytes
1050+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CTR
1051+
cipher_encrypt_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a5434f378a597bcef1389318c7fc865ef":12:12:20:"8f9408fe80a81d3e813da3c7b0b2bd321c965bb1de7baf71025f6ef6393ca587"
1052+
1053+
PSA symmetric encryption multipart: AES-CTR, 20+12 bytes
1054+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CTR
1055+
cipher_encrypt_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a5434f378a597bcef1389318c7fc865ef":20:20:12:"8f9408fe80a81d3e813da3c7b0b2bd321c965bb1de7baf71025f6ef6393ca587"
1056+
1057+
PSA symmetric encryption multipart: AES-CTR, 12+10 bytes
1058+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CTR
1059+
cipher_encrypt_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a5434f378a597":12:12:10:"8f9408fe80a81d3e813da3c7b0b2bd321c965bb1de7b"
1060+
1061+
PSA symmetric encryption multipart: AES-CTR, 0+15 bytes
1062+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CTR
1063+
cipher_encrypt_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e11739317":0:0:15:"8f9408fe80a81d3e813da3c7b0b2bd"
1064+
1065+
PSA symmetric encryption multipart: AES-CTR, 15+0 bytes
1066+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CTR
1067+
cipher_encrypt_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e11739317":15:15:0:"8f9408fe80a81d3e813da3c7b0b2bd"
1068+
1069+
PSA symmetric encryption multipart: AES-CTR, 0+16 bytes
1070+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CTR
1071+
cipher_encrypt_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a":0:0:16:"8f9408fe80a81d3e813da3c7b0b2bd32"
1072+
1073+
PSA symmetric encryption multipart: AES-CTR, 16+0 bytes
1074+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CTR
1075+
cipher_encrypt_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a":16:16:0:"8f9408fe80a81d3e813da3c7b0b2bd32"
10281076

10291077
PSA symmetric decryption multipart: AES-CBC-nopad, 7+9 bytes
10301078
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC
1031-
cipher_decrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"a076ec9dfbe47d52afc357336f20743b":7:"6bc1bee22e409f96e93d7e117393172a"
1079+
cipher_decrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"a076ec9dfbe47d52afc357336f20743b":7:0:16:"6bc1bee22e409f96e93d7e117393172a"
10321080

10331081
PSA symmetric decryption multipart: AES-CBC-nopad, 3+13 bytes
10341082
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC
1035-
cipher_decrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"a076ec9dfbe47d52afc357336f20743b":3:"6bc1bee22e409f96e93d7e117393172a"
1083+
cipher_decrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"a076ec9dfbe47d52afc357336f20743b":3:0:16:"6bc1bee22e409f96e93d7e117393172a"
10361084

10371085
PSA symmetric decryption multipart: AES-CBC-nopad, 11+5 bytes
10381086
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC
1039-
cipher_decrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"a076ec9dfbe47d52afc357336f20743b":11:"6bc1bee22e409f96e93d7e117393172a"
1087+
cipher_decrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"a076ec9dfbe47d52afc357336f20743b":11:0:16:"6bc1bee22e409f96e93d7e117393172a"
1088+
1089+
PSA symmetric decryption multipart: AES-CBC-nopad, 16+16 bytes
1090+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC
1091+
cipher_decrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"a076ec9dfbe47d52afc357336f20743b89906f2f9207ac02aa658cb4ef19c61f":16:16:16:"6bc1bee22e409f96e93d7e117393172a5434f378a597bcef1389318c7fc865ef"
1092+
1093+
PSA symmetric decryption multipart: AES-CBC-nopad, 12+20 bytes
1094+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC
1095+
cipher_decrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"a076ec9dfbe47d52afc357336f20743b89906f2f9207ac02aa658cb4ef19c61f":12:0:32:"6bc1bee22e409f96e93d7e117393172a5434f378a597bcef1389318c7fc865ef"
1096+
1097+
PSA symmetric decryption multipart: AES-CBC-nopad, 20+12 bytes
1098+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC
1099+
cipher_decrypt_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"a076ec9dfbe47d52afc357336f20743b89906f2f9207ac02aa658cb4ef19c61f":20:16:16:"6bc1bee22e409f96e93d7e117393172a5434f378a597bcef1389318c7fc865ef"
1100+
1101+
PSA symmetric encryption multipart: AES-CTR, 11+5 bytes
1102+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CTR
1103+
cipher_decrypt_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a":11:11:5:"8f9408fe80a81d3e813da3c7b0b2bd32"
1104+
1105+
PSA symmetric encryption multipart: AES-CTR, 16+16 bytes
1106+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CTR
1107+
cipher_decrypt_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a5434f378a597bcef1389318c7fc865ef":16:16:16:"8f9408fe80a81d3e813da3c7b0b2bd321c965bb1de7baf71025f6ef6393ca587"
1108+
1109+
PSA symmetric encryption multipart: AES-CTR, 12+20 bytes
1110+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CTR
1111+
cipher_decrypt_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a5434f378a597bcef1389318c7fc865ef":12:12:20:"8f9408fe80a81d3e813da3c7b0b2bd321c965bb1de7baf71025f6ef6393ca587"
1112+
1113+
PSA symmetric encryption multipart: AES-CTR, 20+12 bytes
1114+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CTR
1115+
cipher_decrypt_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a5434f378a597bcef1389318c7fc865ef":20:20:12:"8f9408fe80a81d3e813da3c7b0b2bd321c965bb1de7baf71025f6ef6393ca587"
1116+
1117+
PSA symmetric encryption multipart: AES-CTR, 12+10 bytes
1118+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CTR
1119+
cipher_decrypt_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a5434f378a597":12:12:10:"8f9408fe80a81d3e813da3c7b0b2bd321c965bb1de7b"
1120+
1121+
PSA symmetric decryption multipart: AES-CTR, 0+15 bytes
1122+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CTR
1123+
cipher_decrypt_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e11739317":0:0:15:"8f9408fe80a81d3e813da3c7b0b2bd"
1124+
1125+
PSA symmetric decryption multipart: AES-CTR, 15+0 bytes
1126+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CTR
1127+
cipher_decrypt_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e11739317":15:15:0:"8f9408fe80a81d3e813da3c7b0b2bd"
1128+
1129+
PSA symmetric decryption multipart: AES-CTR, 0+16 bytes
1130+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CTR
1131+
cipher_decrypt_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a":0:0:16:"8f9408fe80a81d3e813da3c7b0b2bd32"
1132+
1133+
PSA symmetric decryption multipart: AES-CTR, 16+0 bytes
1134+
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CTR
1135+
cipher_decrypt_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a":16:16:0:"8f9408fe80a81d3e813da3c7b0b2bd32"
10401136

10411137
PSA symmetric encrypt/decrypt multipart: AES-CBC-nopad, 11+5 bytes
10421138
depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC

tests/suites/test_suite_psa_crypto.function

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2415,8 +2415,8 @@ void cipher_encrypt( int alg_arg, int key_type_arg,
24152415
&function_output_length ) );
24162416
total_output_length += function_output_length;
24172417
status = psa_cipher_finish( &operation,
2418-
output + function_output_length,
2419-
output_buffer_size,
2418+
output + total_output_length,
2419+
output_buffer_size - total_output_length,
24202420
&function_output_length );
24212421
total_output_length += function_output_length;
24222422

@@ -2439,12 +2439,16 @@ exit:
24392439
void cipher_encrypt_multipart( int alg_arg, int key_type_arg,
24402440
data_t *key,
24412441
data_t *input,
2442-
int first_part_size,
2442+
int first_part_size_arg,
2443+
int output1_length_arg, int output2_length_arg,
24432444
data_t *expected_output )
24442445
{
24452446
psa_key_handle_t handle = 0;
24462447
psa_key_type_t key_type = key_type_arg;
24472448
psa_algorithm_t alg = alg_arg;
2449+
size_t first_part_size = first_part_size_arg;
2450+
size_t output1_length = output1_length_arg;
2451+
size_t output2_length = output2_length_arg;
24482452
unsigned char iv[16] = {0};
24492453
size_t iv_size;
24502454
unsigned char *output = NULL;
@@ -2475,20 +2479,23 @@ void cipher_encrypt_multipart( int alg_arg, int key_type_arg,
24752479
PSA_BLOCK_CIPHER_BLOCK_SIZE( key_type ) );
24762480
ASSERT_ALLOC( output, output_buffer_size );
24772481

2478-
TEST_ASSERT( (unsigned int) first_part_size < input->len );
2482+
TEST_ASSERT( first_part_size <= input->len );
24792483
PSA_ASSERT( psa_cipher_update( &operation, input->x, first_part_size,
24802484
output, output_buffer_size,
24812485
&function_output_length ) );
2486+
TEST_ASSERT( function_output_length == output1_length );
24822487
total_output_length += function_output_length;
24832488
PSA_ASSERT( psa_cipher_update( &operation,
24842489
input->x + first_part_size,
24852490
input->len - first_part_size,
2486-
output, output_buffer_size,
2491+
output + total_output_length,
2492+
output_buffer_size - total_output_length,
24872493
&function_output_length ) );
2494+
TEST_ASSERT( function_output_length == output2_length );
24882495
total_output_length += function_output_length;
24892496
PSA_ASSERT( psa_cipher_finish( &operation,
2490-
output + function_output_length,
2491-
output_buffer_size,
2497+
output + total_output_length,
2498+
output_buffer_size - total_output_length,
24922499
&function_output_length ) );
24932500
total_output_length += function_output_length;
24942501
PSA_ASSERT( psa_cipher_abort( &operation ) );
@@ -2507,13 +2514,17 @@ exit:
25072514
void cipher_decrypt_multipart( int alg_arg, int key_type_arg,
25082515
data_t *key,
25092516
data_t *input,
2510-
int first_part_size,
2517+
int first_part_size_arg,
2518+
int output1_length_arg, int output2_length_arg,
25112519
data_t *expected_output )
25122520
{
25132521
psa_key_handle_t handle = 0;
25142522

25152523
psa_key_type_t key_type = key_type_arg;
25162524
psa_algorithm_t alg = alg_arg;
2525+
size_t first_part_size = first_part_size_arg;
2526+
size_t output1_length = output1_length_arg;
2527+
size_t output2_length = output2_length_arg;
25172528
unsigned char iv[16] = {0};
25182529
size_t iv_size;
25192530
unsigned char *output = NULL;
@@ -2545,21 +2556,24 @@ void cipher_decrypt_multipart( int alg_arg, int key_type_arg,
25452556
PSA_BLOCK_CIPHER_BLOCK_SIZE( key_type ) );
25462557
ASSERT_ALLOC( output, output_buffer_size );
25472558

2548-
TEST_ASSERT( (unsigned int) first_part_size < input->len );
2559+
TEST_ASSERT( first_part_size <= input->len );
25492560
PSA_ASSERT( psa_cipher_update( &operation,
25502561
input->x, first_part_size,
25512562
output, output_buffer_size,
25522563
&function_output_length ) );
2564+
TEST_ASSERT( function_output_length == output1_length );
25532565
total_output_length += function_output_length;
25542566
PSA_ASSERT( psa_cipher_update( &operation,
25552567
input->x + first_part_size,
25562568
input->len - first_part_size,
2557-
output, output_buffer_size,
2569+
output + total_output_length,
2570+
output_buffer_size - total_output_length,
25582571
&function_output_length ) );
2572+
TEST_ASSERT( function_output_length == output2_length );
25592573
total_output_length += function_output_length;
25602574
PSA_ASSERT( psa_cipher_finish( &operation,
2561-
output + function_output_length,
2562-
output_buffer_size,
2575+
output + total_output_length,
2576+
output_buffer_size - total_output_length,
25632577
&function_output_length ) );
25642578
total_output_length += function_output_length;
25652579
PSA_ASSERT( psa_cipher_abort( &operation ) );
@@ -2622,8 +2636,8 @@ void cipher_decrypt( int alg_arg, int key_type_arg,
26222636
&function_output_length ) );
26232637
total_output_length += function_output_length;
26242638
status = psa_cipher_finish( &operation,
2625-
output + function_output_length,
2626-
output_buffer_size,
2639+
output + total_output_length,
2640+
output_buffer_size - total_output_length,
26272641
&function_output_length );
26282642
total_output_length += function_output_length;
26292643
TEST_EQUAL( status, expected_status );
@@ -2689,7 +2703,8 @@ void cipher_verify_output( int alg_arg, int key_type_arg,
26892703
output1, output1_size,
26902704
&output1_length ) );
26912705
PSA_ASSERT( psa_cipher_finish( &operation1,
2692-
output1 + output1_length, output1_size,
2706+
output1 + output1_length,
2707+
output1_size - output1_length,
26932708
&function_output_length ) );
26942709

26952710
output1_length += function_output_length;
@@ -2707,7 +2722,7 @@ void cipher_verify_output( int alg_arg, int key_type_arg,
27072722
function_output_length = 0;
27082723
PSA_ASSERT( psa_cipher_finish( &operation2,
27092724
output2 + output2_length,
2710-
output2_size,
2725+
output2_size - output2_length,
27112726
&function_output_length ) );
27122727

27132728
output2_length += function_output_length;
@@ -2729,11 +2744,12 @@ void cipher_verify_output_multipart( int alg_arg,
27292744
int key_type_arg,
27302745
data_t *key,
27312746
data_t *input,
2732-
int first_part_size )
2747+
int first_part_size_arg )
27332748
{
27342749
psa_key_handle_t handle = 0;
27352750
psa_key_type_t key_type = key_type_arg;
27362751
psa_algorithm_t alg = alg_arg;
2752+
size_t first_part_size = first_part_size_arg;
27372753
unsigned char iv[16] = {0};
27382754
size_t iv_size = 16;
27392755
size_t iv_length = 0;
@@ -2769,7 +2785,7 @@ void cipher_verify_output_multipart( int alg_arg,
27692785
PSA_BLOCK_CIPHER_BLOCK_SIZE( key_type ) );
27702786
ASSERT_ALLOC( output1, output1_buffer_size );
27712787

2772-
TEST_ASSERT( (unsigned int) first_part_size < input->len );
2788+
TEST_ASSERT( first_part_size <= input->len );
27732789

27742790
PSA_ASSERT( psa_cipher_update( &operation1, input->x, first_part_size,
27752791
output1, output1_buffer_size,

0 commit comments

Comments
 (0)