mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-11-04 04:32:24 -05:00 
			
		
		
		
	Add tests for one-shot hash cipher functions
Tests for psa_cipher_encrypt and psa_cipher_decrypt functions. The psa_cipher_encrypt function takes no parameter for IV and always generates it therefore there will be a randomness in the calculation and cannot be validated by comparing the actual output with the expected output. The function is tested by: - doing a prtially randomized test with an encryption then a decryption and validating the input with output of the decryption - validating against the multipart encryption The combination of this two methods provides enough coverage like a known answer test. Signed-off-by: gabor-mezei-arm <gabor.mezei@arm.com>
This commit is contained in:
		
							parent
							
								
									ba0fa75eae
								
							
						
					
					
						commit
						f494bcd313
					
				@ -1402,125 +1402,317 @@ cipher_setup:PSA_KEY_TYPE_CHACHA20:"000102030405060708090a0b0c0d0e0f101112131415
 | 
				
			|||||||
PSA cipher: bad order function calls
 | 
					PSA cipher: bad order function calls
 | 
				
			||||||
cipher_bad_order:
 | 
					cipher_bad_order:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric encrypt: AES-ECB, 0 bytes, good
 | 
					PSA cipher encrypt: without initialization
 | 
				
			||||||
depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
cipher_encrypt:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"":"":PSA_SUCCESS
 | 
					cipher_encrypt_error:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"":"":PSA_ERROR_BAD_STATE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric encrypt: AES-ECB, 16 bytes, good
 | 
					PSA cipher encrypt: invalid key type
 | 
				
			||||||
depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING
 | 
				
			||||||
cipher_encrypt:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"6bc1bee22e409f96e93d7e117393172a":"3ad77bb40d7a3660a89ecaf32466ef97":PSA_SUCCESS
 | 
					cipher_encrypt_error:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_RAW_DATA:"2b7e151628aed2a6abf7158809cf4f3c":"":PSA_ERROR_NOT_SUPPORTED
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric encrypt: AES-ECB, 32 bytes, good
 | 
					PSA cipher encrypt: incompatible key ChaCha20 for CTR
 | 
				
			||||||
depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
					depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CHACHA20
 | 
				
			||||||
cipher_encrypt:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"6bc1bee22e409f96e93d7e117393172a3ad77bb40d7a3660a89ecaf32466ef97":"3ad77bb40d7a3660a89ecaf32466ef972249a2638c6f1c755a84f9681a9f08c1":PSA_SUCCESS
 | 
					# Either INVALID_ARGUMENT or NOT_SUPPORTED would be reasonable here
 | 
				
			||||||
 | 
					cipher_encrypt_error:PSA_ALG_CTR:PSA_KEY_TYPE_CHACHA20:"000102030405060708090a0b0c0d0e0f10111213141516171819202122232425":"":PSA_ERROR_NOT_SUPPORTED
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric encrypt: AES-CBC-nopad, 16 bytes, good
 | 
					PSA cipher encrypt: bad algorithm (unknown cipher algorithm)
 | 
				
			||||||
depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
					depends_on:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
cipher_encrypt:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6bc1bee22e409f96e93d7e117393172a":"a076ec9dfbe47d52afc357336f20743b":PSA_SUCCESS
 | 
					cipher_encrypt_error:PSA_ALG_CATEGORY_CIPHER:PSA_KEY_TYPE_RAW_DATA:"2b7e151628aed2a6abf7158809cf4f3c":"":PSA_ERROR_NOT_SUPPORTED
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric encrypt: AES-CBC-PKCS#7, 16 bytes, good
 | 
					PSA cipher encrypt: bad algorithm (not a cipher algorithm)
 | 
				
			||||||
depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES
 | 
					depends_on:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_MD5
 | 
				
			||||||
cipher_encrypt:PSA_ALG_CBC_PKCS7:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6bc1bee22e409f96e93d7e117393172a":"a076ec9dfbe47d52afc357336f20743bca7e8a15dc3c776436314293031cd4f3":PSA_SUCCESS
 | 
					cipher_encrypt_error:PSA_ALG_MD5:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a":PSA_ERROR_INVALID_ARGUMENT
 | 
				
			||||||
 | 
					 | 
				
			||||||
PSA symmetric encrypt: AES-CBC-PKCS#7, 15 bytes, good
 | 
					 | 
				
			||||||
depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES
 | 
					 | 
				
			||||||
cipher_encrypt:PSA_ALG_CBC_PKCS7:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6bc1bee22e409f96e93d7e11739317":"6279b49d7f7a8dd87b685175d4276e24":PSA_SUCCESS
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric encrypt: AES-ECB, input too short (15 bytes)
 | 
					PSA symmetric encrypt: AES-ECB, input too short (15 bytes)
 | 
				
			||||||
depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
cipher_encrypt:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"6bc1bee22e409f96e93d7e11739317":"":PSA_ERROR_INVALID_ARGUMENT
 | 
					cipher_encrypt_error:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e11739317":PSA_ERROR_INVALID_ARGUMENT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric encrypt: AES-CBC-nopad, input too short
 | 
					PSA symmetric encrypt: AES-CBC-nopad, input too short
 | 
				
			||||||
depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
cipher_encrypt:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6bc1bee223":"6bc1bee223":PSA_ERROR_INVALID_ARGUMENT
 | 
					cipher_encrypt_error:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee223":PSA_ERROR_INVALID_ARGUMENT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric encrypt: AES-CTR, 16 bytes, good
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES
 | 
					cipher_encrypt_noiv:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":""
 | 
				
			||||||
cipher_encrypt:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6bc1bee22e409f96e93d7e117393172a":"8f9408fe80a81d3e813da3c7b0b2bd32":PSA_SUCCESS
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric encrypt: AES-CTR, 15 bytes, good
 | 
					PSA symmetric encrypt: AES-ECB, 16 bytes, good
 | 
				
			||||||
depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
cipher_encrypt:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6bc1bee22e409f96e93d7e11739317":"8f9408fe80a81d3e813da3c7b0b2bd":PSA_SUCCESS
 | 
					cipher_encrypt_noiv:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a":"3ad77bb40d7a3660a89ecaf32466ef97"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric encrypt: DES-CBC-nopad, 8 bytes, good
 | 
					PSA symmetric encrypt: AES-ECB, 32 bytes, good
 | 
				
			||||||
depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
cipher_encrypt:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0e":"2a2a2a2a2a2a2a2a":"eda4011239bc3ac9":"64f917b0152f8f05":PSA_SUCCESS
 | 
					cipher_encrypt_noiv:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a3ad77bb40d7a3660a89ecaf32466ef97":"3ad77bb40d7a3660a89ecaf32466ef972249a2638c6f1c755a84f9681a9f08c1"
 | 
				
			||||||
 | 
					 | 
				
			||||||
PSA symmetric encrypt: 2-key 3DES-CBC-nopad, 8 bytes, good
 | 
					 | 
				
			||||||
depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
					 | 
				
			||||||
cipher_encrypt:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce":"2a2a2a2a2a2a2a2a":"eda4011239bc3ac9":"5d0652429c5b0ac7":PSA_SUCCESS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
PSA symmetric encrypt: 3-key 3DES-CBC-nopad, 8 bytes, good
 | 
					 | 
				
			||||||
depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
					 | 
				
			||||||
cipher_encrypt:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce31323437383b3d3e":"2a2a2a2a2a2a2a2a":"eda4011239bc3ac9":"817ca7d69b80d86a":PSA_SUCCESS
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric encrypt: 2-key 3DES-ECB, 8 bytes, good
 | 
					PSA symmetric encrypt: 2-key 3DES-ECB, 8 bytes, good
 | 
				
			||||||
depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
cipher_encrypt:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce":"":"c78e2b38139610e3":"5d0652429c5b0ac7":PSA_SUCCESS
 | 
					cipher_encrypt_noiv:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce":"c78e2b38139610e3":"5d0652429c5b0ac7"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric encrypt: 3-key 3DES-ECB, 8 bytes, good
 | 
					PSA symmetric encrypt: 3-key 3DES-ECB, 8 bytes, good
 | 
				
			||||||
depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
cipher_encrypt:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce31323437383b3d3e":"":"c78e2b38139610e3":"817ca7d69b80d86a":PSA_SUCCESS
 | 
					cipher_encrypt_noiv:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce31323437383b3d3e":"c78e2b38139610e3":"817ca7d69b80d86a"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric decrypt: AES-ECB, 0 bytes, good
 | 
					PSA symmetric encrypt sanity: AES-CBC-nopad, 16 bytes, good
 | 
				
			||||||
depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
					 | 
				
			||||||
cipher_decrypt:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"":"":PSA_SUCCESS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
PSA symmetric decrypt: AES-ECB, 16 bytes, good
 | 
					 | 
				
			||||||
depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
					 | 
				
			||||||
cipher_decrypt:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"396ee84fb75fdbb5c2b13c7fe5a654aa":"63cecc46a382414d5fa7d2b79387437f":PSA_SUCCESS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
PSA symmetric decrypt: AES-ECB, 32 bytes, good
 | 
					 | 
				
			||||||
depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
					 | 
				
			||||||
cipher_decrypt:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"3ad77bb40d7a3660a89ecaf32466ef972249a2638c6f1c755a84f9681a9f08c1":"6bc1bee22e409f96e93d7e117393172a3ad77bb40d7a3660a89ecaf32466ef97":PSA_SUCCESS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
PSA symmetric decrypt: AES-CBC-nopad, 16 bytes, good
 | 
					 | 
				
			||||||
depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
cipher_decrypt:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"396ee84fb75fdbb5c2b13c7fe5a654aa":"49e4e66c89a86b67758df89db9ad6955":PSA_SUCCESS
 | 
					cipher_encrypt_sanity:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric decrypt: AES-CBC-PKCS#7, 16 bytes, good
 | 
					PSA symmetric encrypt sanity: AES-CBC-PKCS#7, 16 bytes, good
 | 
				
			||||||
depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
cipher_decrypt:PSA_ALG_CBC_PKCS7:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"a076ec9dfbe47d52afc357336f20743bca7e8a15dc3c776436314293031cd4f3":"6bc1bee22e409f96e93d7e117393172a":PSA_SUCCESS
 | 
					cipher_encrypt_sanity:PSA_ALG_CBC_PKCS7:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric decrypt: AES-CBC-PKCS#7, 15 bytes, good
 | 
					PSA symmetric encrypt sanity: AES-CBC-PKCS#7, 15 bytes, good
 | 
				
			||||||
depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES
 | 
					depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
cipher_decrypt:PSA_ALG_CBC_PKCS7:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6279b49d7f7a8dd87b685175d4276e24":"6bc1bee22e409f96e93d7e11739317":PSA_SUCCESS
 | 
					cipher_encrypt_sanity:PSA_ALG_CBC_PKCS7:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e11739317"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt sanity: AES-CTR, 16 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_encrypt_sanity:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt sanity: AES-CTR, 15 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_encrypt_sanity:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e11739317"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt sanity: DES-CBC-nopad, 8 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
 | 
					cipher_encrypt_sanity:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0e":"eda4011239bc3ac9"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt sanity: 2-key 3DES-CBC-nopad, 8 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
 | 
					cipher_encrypt_sanity:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce":"eda4011239bc3ac9"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt sanity: 3-key 3DES-CBC-nopad, 8 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
 | 
					cipher_encrypt_sanity:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce31323437383b3d3e":"eda4011239bc3ac9"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt validation: AES-CBC-nopad, 16 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_encrypt_validation:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt validation: AES-CBC-PKCS#7, 16 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_encrypt_validation:PSA_ALG_CBC_PKCS7:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt validation: AES-CBC-PKCS#7, 15 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_encrypt_validation:PSA_ALG_CBC_PKCS7:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e11739317"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt validation: AES-CTR, 16 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_encrypt_validation:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt validation: AES-CTR, 15 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_encrypt_validation:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e11739317"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt validation: DES-CBC-nopad, 8 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
 | 
					cipher_encrypt_validation:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0e":"eda4011239bc3ac9"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt validation: 2-key 3DES-CBC-nopad, 8 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
 | 
					cipher_encrypt_validation:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce":"eda4011239bc3ac9"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt validation: 3-key 3DES-CBC-nopad, 8 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
 | 
					cipher_encrypt_validation:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce31323437383b3d3e":"eda4011239bc3ac9"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt multipart: AES-ECB, 0 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_encrypt_simple_multipart:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"":"":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt multipart: AES-ECB, 16 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_encrypt_simple_multipart:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"6bc1bee22e409f96e93d7e117393172a":"3ad77bb40d7a3660a89ecaf32466ef97":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt multipart: AES-ECB, 32 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_encrypt_simple_multipart:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"6bc1bee22e409f96e93d7e117393172a3ad77bb40d7a3660a89ecaf32466ef97":"3ad77bb40d7a3660a89ecaf32466ef972249a2638c6f1c755a84f9681a9f08c1":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt multipart: AES-CBC-nopad, 16 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_encrypt_simple_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6bc1bee22e409f96e93d7e117393172a":"a076ec9dfbe47d52afc357336f20743b":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt multipart: AES-CBC-PKCS#7, 16 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_encrypt_simple_multipart:PSA_ALG_CBC_PKCS7:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6bc1bee22e409f96e93d7e117393172a":"a076ec9dfbe47d52afc357336f20743bca7e8a15dc3c776436314293031cd4f3":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt multipart: AES-CBC-PKCS#7, 15 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_encrypt_simple_multipart:PSA_ALG_CBC_PKCS7:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6bc1bee22e409f96e93d7e11739317":"6279b49d7f7a8dd87b685175d4276e24":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt multipart: AES-ECB, input too short (15 bytes)
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_encrypt_simple_multipart:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"6bc1bee22e409f96e93d7e11739317":"":PSA_ERROR_INVALID_ARGUMENT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt multipart: AES-CBC-nopad, input too short
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_encrypt_simple_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6bc1bee223":"6bc1bee223":PSA_ERROR_INVALID_ARGUMENT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt multipart: AES-CTR, 16 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_encrypt_simple_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6bc1bee22e409f96e93d7e117393172a":"8f9408fe80a81d3e813da3c7b0b2bd32":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt multipart: AES-CTR, 15 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_encrypt_simple_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6bc1bee22e409f96e93d7e11739317":"8f9408fe80a81d3e813da3c7b0b2bd":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt multipart: DES-CBC-nopad, 8 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
 | 
					cipher_encrypt_simple_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0e":"2a2a2a2a2a2a2a2a":"eda4011239bc3ac9":"64f917b0152f8f05":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt multipart: 2-key 3DES-CBC-nopad, 8 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
 | 
					cipher_encrypt_simple_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce":"2a2a2a2a2a2a2a2a":"eda4011239bc3ac9":"5d0652429c5b0ac7":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt multipart: 3-key 3DES-CBC-nopad, 8 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
 | 
					cipher_encrypt_simple_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce31323437383b3d3e":"2a2a2a2a2a2a2a2a":"eda4011239bc3ac9":"817ca7d69b80d86a":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt multipart: 2-key 3DES-ECB, 8 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
 | 
					cipher_encrypt_simple_multipart:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce":"":"c78e2b38139610e3":"5d0652429c5b0ac7":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt multipart: 3-key 3DES-ECB, 8 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
 | 
					cipher_encrypt_simple_multipart:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce31323437383b3d3e":"":"c78e2b38139610e3":"817ca7d69b80d86a":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA cipher decrypt: without initialization
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_decrypt_error:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"":"":"":PSA_ERROR_BAD_STATE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA cipher decrypt: invalid key type
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING
 | 
				
			||||||
 | 
					cipher_decrypt_error:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_RAW_DATA:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"":PSA_ERROR_NOT_SUPPORTED
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA cipher decrypt: incompatible key ChaCha20 for CTR
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CHACHA20
 | 
				
			||||||
 | 
					# Either INVALID_ARGUMENT or NOT_SUPPORTED would be reasonable here
 | 
				
			||||||
 | 
					cipher_decrypt_error:PSA_ALG_CTR:PSA_KEY_TYPE_CHACHA20:"000102030405060708090a0b0c0d0e0f10111213141516171819202122232425":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"":PSA_ERROR_NOT_SUPPORTED
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA cipher decrypt: bad algorithm (unknown cipher algorithm)
 | 
				
			||||||
 | 
					cipher_decrypt_error:PSA_ALG_CATEGORY_CIPHER:PSA_KEY_TYPE_RAW_DATA:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"":PSA_ERROR_NOT_SUPPORTED
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA cipher decrypt: bad algorithm (not a cipher algorithm)
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_MD5
 | 
				
			||||||
 | 
					cipher_decrypt_error:PSA_ALG_MD5:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"":PSA_ERROR_INVALID_ARGUMENT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric decrypt: AES-CBC-PKCS#7, input too short (15 bytes)
 | 
					PSA symmetric decrypt: AES-CBC-PKCS#7, input too short (15 bytes)
 | 
				
			||||||
depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES
 | 
					depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
cipher_decrypt:PSA_ALG_CBC_PKCS7:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6bc1bee22e409f96e93d7e11739317":"49e4e66c89a86b67758df89db9ad6955":PSA_ERROR_INVALID_ARGUMENT
 | 
					cipher_decrypt_error:PSA_ALG_CBC_PKCS7:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6bc1bee22e409f96e93d7e11739317":PSA_ERROR_INVALID_ARGUMENT
 | 
				
			||||||
 | 
					 | 
				
			||||||
PSA symmetric decrypt: AES-CTR, 16 bytes, good
 | 
					 | 
				
			||||||
depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES
 | 
					 | 
				
			||||||
cipher_decrypt:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"396ee84fb75fdbb5c2b13c7fe5a654aa":"dd3b5e5319b7591daab1e1a92687feb2":PSA_SUCCESS
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric decrypt: AES-ECB, input too short (15 bytes)
 | 
					PSA symmetric decrypt: AES-ECB, input too short (15 bytes)
 | 
				
			||||||
depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
cipher_decrypt:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"396ee84fb75fdbb5c2b13c7fe5a654":"63cecc46a382414d5fa7d2b7938743":PSA_ERROR_INVALID_ARGUMENT
 | 
					cipher_decrypt_error:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"396ee84fb75fdbb5c2b13c7fe5a654":PSA_ERROR_INVALID_ARGUMENT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric decrypt: AES-CBC-nopad, input too short (5 bytes)
 | 
					PSA symmetric decrypt: AES-CBC-nopad, input too short (5 bytes)
 | 
				
			||||||
depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
cipher_decrypt:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6bc1bee223":"6bc1bee223":PSA_ERROR_INVALID_ARGUMENT
 | 
					cipher_decrypt_error:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6bc1bee223":PSA_ERROR_INVALID_ARGUMENT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt: AES-ECB, 0 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_decrypt:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"":""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt: AES-ECB, 16 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_decrypt:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"396ee84fb75fdbb5c2b13c7fe5a654aa":"63cecc46a382414d5fa7d2b79387437f"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt: AES-ECB, 32 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_decrypt:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"3ad77bb40d7a3660a89ecaf32466ef972249a2638c6f1c755a84f9681a9f08c1":"6bc1bee22e409f96e93d7e117393172a3ad77bb40d7a3660a89ecaf32466ef97"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt: AES-CBC-nopad, 16 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_decrypt:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"396ee84fb75fdbb5c2b13c7fe5a654aa":"49e4e66c89a86b67758df89db9ad6955"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt: AES-CBC-PKCS#7, 16 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_decrypt:PSA_ALG_CBC_PKCS7:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"a076ec9dfbe47d52afc357336f20743bca7e8a15dc3c776436314293031cd4f3":"6bc1bee22e409f96e93d7e117393172a"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt: AES-CBC-PKCS#7, 15 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_decrypt:PSA_ALG_CBC_PKCS7:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6279b49d7f7a8dd87b685175d4276e24":"6bc1bee22e409f96e93d7e11739317"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt: AES-CTR, 16 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_decrypt:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"396ee84fb75fdbb5c2b13c7fe5a654aa":"dd3b5e5319b7591daab1e1a92687feb2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric decrypt: DES-CBC-nopad, 8 bytes, good
 | 
					PSA symmetric decrypt: DES-CBC-nopad, 8 bytes, good
 | 
				
			||||||
depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
cipher_decrypt:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0e":"2a2a2a2a2a2a2a2a":"64f917b0152f8f05":"eda4011239bc3ac9":PSA_SUCCESS
 | 
					cipher_decrypt:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0e":"2a2a2a2a2a2a2a2a":"64f917b0152f8f05":"eda4011239bc3ac9"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric decrypt: 2-key 3DES-CBC-nopad, 8 bytes, good
 | 
					PSA symmetric decrypt: 2-key 3DES-CBC-nopad, 8 bytes, good
 | 
				
			||||||
depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
cipher_decrypt:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce":"2a2a2a2a2a2a2a2a":"5d0652429c5b0ac7":"eda4011239bc3ac9":PSA_SUCCESS
 | 
					cipher_decrypt:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce":"2a2a2a2a2a2a2a2a":"5d0652429c5b0ac7":"eda4011239bc3ac9"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric decrypt: 3-key 3DES-CBC-nopad, 8 bytes, good
 | 
					PSA symmetric decrypt: 3-key 3DES-CBC-nopad, 8 bytes, good
 | 
				
			||||||
depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
cipher_decrypt:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce31323437383b3d3e":"2a2a2a2a2a2a2a2a":"817ca7d69b80d86a":"eda4011239bc3ac9":PSA_SUCCESS
 | 
					cipher_decrypt:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce31323437383b3d3e":"2a2a2a2a2a2a2a2a":"817ca7d69b80d86a":"eda4011239bc3ac9"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric decrypt: 2-key 3DES-ECB, 8 bytes, good
 | 
					PSA symmetric decrypt: 2-key 3DES-ECB, 8 bytes, good
 | 
				
			||||||
depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
cipher_decrypt:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce":"":"5d0652429c5b0ac7":"c78e2b38139610e3":PSA_SUCCESS
 | 
					cipher_decrypt:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce":"":"5d0652429c5b0ac7":"c78e2b38139610e3"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric decrypt: 3-key 3DES-ECB, 8 bytes, good
 | 
					PSA symmetric decrypt: 3-key 3DES-ECB, 8 bytes, good
 | 
				
			||||||
depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
cipher_decrypt:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce31323437383b3d3e":"":"817ca7d69b80d86a":"c78e2b38139610e3":PSA_SUCCESS
 | 
					cipher_decrypt:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce31323437383b3d3e":"":"817ca7d69b80d86a":"c78e2b38139610e3"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt multipart: AES-ECB, 0 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_decrypt_simple_multipart:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"":"":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt multipart: AES-ECB, 16 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_decrypt_simple_multipart:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"396ee84fb75fdbb5c2b13c7fe5a654aa":"63cecc46a382414d5fa7d2b79387437f":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt multipart: AES-ECB, 32 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_decrypt_simple_multipart:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"3ad77bb40d7a3660a89ecaf32466ef972249a2638c6f1c755a84f9681a9f08c1":"6bc1bee22e409f96e93d7e117393172a3ad77bb40d7a3660a89ecaf32466ef97":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt multipart: AES-CBC-nopad, 16 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_decrypt_simple_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"396ee84fb75fdbb5c2b13c7fe5a654aa":"49e4e66c89a86b67758df89db9ad6955":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt multipart: AES-CBC-PKCS#7, 16 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_decrypt_simple_multipart:PSA_ALG_CBC_PKCS7:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"a076ec9dfbe47d52afc357336f20743bca7e8a15dc3c776436314293031cd4f3":"6bc1bee22e409f96e93d7e117393172a":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt multipart: AES-CBC-PKCS#7, 15 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_decrypt_simple_multipart:PSA_ALG_CBC_PKCS7:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6279b49d7f7a8dd87b685175d4276e24":"6bc1bee22e409f96e93d7e11739317":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt multipart: AES-CBC-PKCS#7, input too short (15 bytes)
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_decrypt_simple_multipart:PSA_ALG_CBC_PKCS7:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6bc1bee22e409f96e93d7e11739317":"49e4e66c89a86b67758df89db9ad6955":PSA_ERROR_INVALID_ARGUMENT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt multipart: AES-CTR, 16 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_decrypt_simple_multipart:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"396ee84fb75fdbb5c2b13c7fe5a654aa":"dd3b5e5319b7591daab1e1a92687feb2":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt multipart: AES-ECB, input too short (15 bytes)
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_decrypt_simple_multipart:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"":"396ee84fb75fdbb5c2b13c7fe5a654":"63cecc46a382414d5fa7d2b7938743":PSA_ERROR_INVALID_ARGUMENT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt multipart: AES-CBC-nopad, input too short (5 bytes)
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
 | 
					cipher_decrypt_simple_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a":"6bc1bee223":"6bc1bee223":PSA_ERROR_INVALID_ARGUMENT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt multipart: DES-CBC-nopad, 8 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
 | 
					cipher_decrypt_simple_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0e":"2a2a2a2a2a2a2a2a":"64f917b0152f8f05":"eda4011239bc3ac9":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt multipart: 2-key 3DES-CBC-nopad, 8 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
 | 
					cipher_decrypt_simple_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce":"2a2a2a2a2a2a2a2a":"5d0652429c5b0ac7":"eda4011239bc3ac9":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt multipart: 3-key 3DES-CBC-nopad, 8 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
 | 
					cipher_decrypt_simple_multipart:PSA_ALG_CBC_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce31323437383b3d3e":"2a2a2a2a2a2a2a2a":"817ca7d69b80d86a":"eda4011239bc3ac9":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt multipart: 2-key 3DES-ECB, 8 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
 | 
					cipher_decrypt_simple_multipart:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce":"":"5d0652429c5b0ac7":"c78e2b38139610e3":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric decrypt multipart: 3-key 3DES-ECB, 8 bytes, good
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES
 | 
				
			||||||
 | 
					cipher_decrypt_simple_multipart:PSA_ALG_ECB_NO_PADDING:PSA_KEY_TYPE_DES:"01020407080b0d0ec1c2c4c7c8cbcdce31323437383b3d3e":"":"817ca7d69b80d86a":"c78e2b38139610e3":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric encrypt/decrypt: AES-ECB, 16 bytes, good
 | 
					PSA symmetric encrypt/decrypt: AES-ECB, 16 bytes, good
 | 
				
			||||||
depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
					depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
@ -1698,21 +1890,37 @@ PSA symmetric encrypt/decrypt multipart: AES-CBC-PKCS#7 padding, 4+12 bytes
 | 
				
			|||||||
depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES
 | 
					depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES
 | 
				
			||||||
cipher_verify_output_multipart:PSA_ALG_CBC_PKCS7:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"a076ec9dfbe47d52afc357336f20743b":4
 | 
					cipher_verify_output_multipart:PSA_ALG_CBC_PKCS7:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"a076ec9dfbe47d52afc357336f20743b":4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric encrypt: ChaCha20, K=0 N=0
 | 
					PSA symmetric encrypt sanity: ChaCha20, K=0 N=0
 | 
				
			||||||
depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20
 | 
					depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20
 | 
				
			||||||
cipher_encrypt:PSA_ALG_STREAM_CIPHER:PSA_KEY_TYPE_CHACHA20:"0000000000000000000000000000000000000000000000000000000000000000":"000000000000000000000000":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"76b8e0ada0f13d90405d6ae55386bd28bdd219b8a08ded1aa836efcc8b770dc7da41597c5157488d7724e03fb8d84a376a43b8f41518a11cc387b669b2ee6586":PSA_SUCCESS
 | 
					cipher_encrypt_sanity:PSA_ALG_STREAM_CIPHER:PSA_KEY_TYPE_CHACHA20:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric encrypt: ChaCha20, K=rand N=rand
 | 
					PSA symmetric encrypt sanity: ChaCha20, K=rand N=rand
 | 
				
			||||||
depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20
 | 
					depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20
 | 
				
			||||||
cipher_encrypt:PSA_ALG_STREAM_CIPHER:PSA_KEY_TYPE_CHACHA20:"4bddc98c551a95395ef719557f813656b566bc45aac04eca3866324cc75489f2":"a170d9349d24955aa4501891":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"9ba7d8de0c6b579fc436e368619e09228070d23246c836d6c6b4c476af6f5eb2b78fbe809d03f7881e6af28cfe3746e8dcf1eb7f762fe7d003141f1539a6cec4":PSA_SUCCESS
 | 
					cipher_encrypt_sanity:PSA_ALG_STREAM_CIPHER:PSA_KEY_TYPE_CHACHA20:"4bddc98c551a95395ef719557f813656b566bc45aac04eca3866324cc75489f2":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt validation: ChaCha20, K=0 N=0
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20
 | 
				
			||||||
 | 
					cipher_encrypt_validation:PSA_ALG_STREAM_CIPHER:PSA_KEY_TYPE_CHACHA20:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt validation: ChaCha20, K=rand N=rand
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20
 | 
				
			||||||
 | 
					cipher_encrypt_validation:PSA_ALG_STREAM_CIPHER:PSA_KEY_TYPE_CHACHA20:"4bddc98c551a95395ef719557f813656b566bc45aac04eca3866324cc75489f2":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt multipart: ChaCha20, K=0 N=0
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20
 | 
				
			||||||
 | 
					cipher_encrypt_simple_multipart:PSA_ALG_STREAM_CIPHER:PSA_KEY_TYPE_CHACHA20:"0000000000000000000000000000000000000000000000000000000000000000":"000000000000000000000000":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"76b8e0ada0f13d90405d6ae55386bd28bdd219b8a08ded1aa836efcc8b770dc7da41597c5157488d7724e03fb8d84a376a43b8f41518a11cc387b669b2ee6586":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PSA symmetric encrypt multipart: ChaCha20, K=rand N=rand
 | 
				
			||||||
 | 
					depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20
 | 
				
			||||||
 | 
					cipher_encrypt_simple_multipart:PSA_ALG_STREAM_CIPHER:PSA_KEY_TYPE_CHACHA20:"4bddc98c551a95395ef719557f813656b566bc45aac04eca3866324cc75489f2":"a170d9349d24955aa4501891":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"9ba7d8de0c6b579fc436e368619e09228070d23246c836d6c6b4c476af6f5eb2b78fbe809d03f7881e6af28cfe3746e8dcf1eb7f762fe7d003141f1539a6cec4":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric encryption multipart: ChaCha20, 14+50 bytes
 | 
					PSA symmetric encryption multipart: ChaCha20, 14+50 bytes
 | 
				
			||||||
depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20
 | 
					depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20
 | 
				
			||||||
cipher_encrypt_multipart:PSA_ALG_STREAM_CIPHER:PSA_KEY_TYPE_CHACHA20:"4bddc98c551a95395ef719557f813656b566bc45aac04eca3866324cc75489f2":"a170d9349d24955aa4501891":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":14:14:50:"9ba7d8de0c6b579fc436e368619e09228070d23246c836d6c6b4c476af6f5eb2b78fbe809d03f7881e6af28cfe3746e8dcf1eb7f762fe7d003141f1539a6cec4"
 | 
					cipher_encrypt_multipart:PSA_ALG_STREAM_CIPHER:PSA_KEY_TYPE_CHACHA20:"4bddc98c551a95395ef719557f813656b566bc45aac04eca3866324cc75489f2":"a170d9349d24955aa4501891":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":14:14:50:"9ba7d8de0c6b579fc436e368619e09228070d23246c836d6c6b4c476af6f5eb2b78fbe809d03f7881e6af28cfe3746e8dcf1eb7f762fe7d003141f1539a6cec4"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric decrypt: ChaCha20, K=rand N=rand
 | 
					PSA symmetric decrypt multipart: ChaCha20, K=rand N=rand
 | 
				
			||||||
depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20
 | 
					depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20
 | 
				
			||||||
cipher_decrypt:PSA_ALG_STREAM_CIPHER:PSA_KEY_TYPE_CHACHA20:"4bddc98c551a95395ef719557f813656b566bc45aac04eca3866324cc75489f2":"a170d9349d24955aa4501891":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"9ba7d8de0c6b579fc436e368619e09228070d23246c836d6c6b4c476af6f5eb2b78fbe809d03f7881e6af28cfe3746e8dcf1eb7f762fe7d003141f1539a6cec4":PSA_SUCCESS
 | 
					cipher_decrypt_simple_multipart:PSA_ALG_STREAM_CIPHER:PSA_KEY_TYPE_CHACHA20:"4bddc98c551a95395ef719557f813656b566bc45aac04eca3866324cc75489f2":"a170d9349d24955aa4501891":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"9ba7d8de0c6b579fc436e368619e09228070d23246c836d6c6b4c476af6f5eb2b78fbe809d03f7881e6af28cfe3746e8dcf1eb7f762fe7d003141f1539a6cec4":PSA_SUCCESS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PSA symmetric decryption multipart: ChaCha20, 14+50 bytes
 | 
					PSA symmetric decryption multipart: ChaCha20, 14+50 bytes
 | 
				
			||||||
depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20
 | 
					depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20
 | 
				
			||||||
 | 
				
			|||||||
@ -2413,10 +2413,221 @@ exit:
 | 
				
			|||||||
/* END_CASE */
 | 
					/* END_CASE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* BEGIN_CASE */
 | 
					/* BEGIN_CASE */
 | 
				
			||||||
void cipher_encrypt( int alg_arg, int key_type_arg,
 | 
					void cipher_encrypt_error( int alg_arg,
 | 
				
			||||||
                     data_t *key_data, data_t *iv,
 | 
					                           int key_type_arg,
 | 
				
			||||||
                     data_t *input, data_t *expected_output,
 | 
					                           data_t *key_data,
 | 
				
			||||||
                     int expected_status_arg )
 | 
					                           data_t *input,
 | 
				
			||||||
 | 
					                           int expected_status_arg )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT;
 | 
				
			||||||
 | 
					    psa_status_t status;
 | 
				
			||||||
 | 
					    psa_key_type_t key_type = key_type_arg;
 | 
				
			||||||
 | 
					    psa_algorithm_t alg = alg_arg;
 | 
				
			||||||
 | 
					    psa_status_t expected_status = expected_status_arg;
 | 
				
			||||||
 | 
					    unsigned char *output = NULL;
 | 
				
			||||||
 | 
					    size_t output_buffer_size = 0;
 | 
				
			||||||
 | 
					    size_t output_length = 0;
 | 
				
			||||||
 | 
					    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if ( PSA_ERROR_BAD_STATE != expected_status )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        PSA_ASSERT( psa_crypto_init( ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT );
 | 
				
			||||||
 | 
					        psa_set_key_algorithm( &attributes, alg );
 | 
				
			||||||
 | 
					        psa_set_key_type( &attributes, key_type );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        output_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg,
 | 
				
			||||||
 | 
					                                                             input->len );
 | 
				
			||||||
 | 
					        ASSERT_ALLOC( output, output_buffer_size );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len,
 | 
				
			||||||
 | 
					                                    &key ) );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    status = psa_cipher_encrypt( key, alg, input->x, input->len, output,
 | 
				
			||||||
 | 
					                                 output_buffer_size, &output_length );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    TEST_EQUAL( status, expected_status );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exit:
 | 
				
			||||||
 | 
					    mbedtls_free( output );
 | 
				
			||||||
 | 
					    psa_destroy_key( key );
 | 
				
			||||||
 | 
					    PSA_DONE( );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/* END_CASE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* BEGIN_CASE */
 | 
				
			||||||
 | 
					void cipher_encrypt_noiv( int alg_arg,
 | 
				
			||||||
 | 
					                          int key_type_arg,
 | 
				
			||||||
 | 
					                          data_t *key_data,
 | 
				
			||||||
 | 
					                          data_t *input,
 | 
				
			||||||
 | 
					                          data_t *expected_output )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT;
 | 
				
			||||||
 | 
					    psa_key_type_t key_type = key_type_arg;
 | 
				
			||||||
 | 
					    psa_algorithm_t alg = alg_arg;
 | 
				
			||||||
 | 
					    unsigned char *output = NULL;
 | 
				
			||||||
 | 
					    size_t output_buffer_size = 0;
 | 
				
			||||||
 | 
					    size_t output_length = 0;
 | 
				
			||||||
 | 
					    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PSA_ASSERT( psa_crypto_init( ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT );
 | 
				
			||||||
 | 
					    psa_set_key_algorithm( &attributes, alg );
 | 
				
			||||||
 | 
					    psa_set_key_type( &attributes, key_type );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    output_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, input->len );
 | 
				
			||||||
 | 
					    ASSERT_ALLOC( output, output_buffer_size );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len,
 | 
				
			||||||
 | 
					                                &key ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PSA_ASSERT( psa_cipher_encrypt( key, alg, input->x, input->len, output,
 | 
				
			||||||
 | 
					                                    output_buffer_size, &output_length ) );
 | 
				
			||||||
 | 
					    TEST_ASSERT( output_length <=
 | 
				
			||||||
 | 
					                 PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, input->len ) );
 | 
				
			||||||
 | 
					    TEST_ASSERT( output_length <=
 | 
				
			||||||
 | 
					                 PSA_CIPHER_ENCRYPT_OUTPUT_MAX_SIZE( input->len ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ASSERT_COMPARE( expected_output->x, expected_output->len,
 | 
				
			||||||
 | 
					                    output, output_length );
 | 
				
			||||||
 | 
					exit:
 | 
				
			||||||
 | 
					    mbedtls_free( output );
 | 
				
			||||||
 | 
					    psa_destroy_key( key );
 | 
				
			||||||
 | 
					    PSA_DONE( );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/* END_CASE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* BEGIN_CASE */
 | 
				
			||||||
 | 
					void cipher_encrypt_sanity( int alg_arg,
 | 
				
			||||||
 | 
					                            int key_type_arg,
 | 
				
			||||||
 | 
					                            data_t *key_data,
 | 
				
			||||||
 | 
					                            data_t *input )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT;
 | 
				
			||||||
 | 
					    psa_key_type_t key_type = key_type_arg;
 | 
				
			||||||
 | 
					    psa_algorithm_t alg = alg_arg;
 | 
				
			||||||
 | 
					    unsigned char *output = NULL;
 | 
				
			||||||
 | 
					    size_t output_buffer_size = 0;
 | 
				
			||||||
 | 
					    size_t output_length = 0;
 | 
				
			||||||
 | 
					    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PSA_ASSERT( psa_crypto_init( ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT );
 | 
				
			||||||
 | 
					    psa_set_key_algorithm( &attributes, alg );
 | 
				
			||||||
 | 
					    psa_set_key_type( &attributes, key_type );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    output_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, input->len );
 | 
				
			||||||
 | 
					    ASSERT_ALLOC( output, output_buffer_size );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len,
 | 
				
			||||||
 | 
					                                &key ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PSA_ASSERT( psa_cipher_encrypt( key, alg, input->x, input->len, output,
 | 
				
			||||||
 | 
					                                    output_buffer_size, &output_length ) );
 | 
				
			||||||
 | 
					    TEST_ASSERT( output_length <=
 | 
				
			||||||
 | 
					                 PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, input->len ) );
 | 
				
			||||||
 | 
					    TEST_ASSERT( output_length <=
 | 
				
			||||||
 | 
					                 PSA_CIPHER_ENCRYPT_OUTPUT_MAX_SIZE( input->len ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* The one-shot cipher encryption uses generated iv so validating
 | 
				
			||||||
 | 
					       the output is not possible. Only sanity checking is done here. */
 | 
				
			||||||
 | 
					exit:
 | 
				
			||||||
 | 
					    mbedtls_free( output );
 | 
				
			||||||
 | 
					    psa_destroy_key( key );
 | 
				
			||||||
 | 
					    PSA_DONE( );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/* END_CASE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* BEGIN_CASE */
 | 
				
			||||||
 | 
					void cipher_encrypt_validation( int alg_arg,
 | 
				
			||||||
 | 
					                                int key_type_arg,
 | 
				
			||||||
 | 
					                                data_t *key_data,
 | 
				
			||||||
 | 
					                                data_t *input )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT;
 | 
				
			||||||
 | 
					    psa_key_type_t key_type = key_type_arg;
 | 
				
			||||||
 | 
					    psa_algorithm_t alg = alg_arg;
 | 
				
			||||||
 | 
					    size_t iv_size = PSA_CIPHER_IV_LENGTH ( key_type, alg );
 | 
				
			||||||
 | 
					    unsigned char *output1 = NULL;
 | 
				
			||||||
 | 
					    size_t output1_buffer_size = 0;
 | 
				
			||||||
 | 
					    size_t output1_length = 0;
 | 
				
			||||||
 | 
					    unsigned char *output2 = NULL;
 | 
				
			||||||
 | 
					    size_t output2_buffer_size = 0;
 | 
				
			||||||
 | 
					    size_t output2_length = 0;
 | 
				
			||||||
 | 
					    size_t function_output_length = 0;
 | 
				
			||||||
 | 
					    psa_cipher_operation_t operation = PSA_CIPHER_OPERATION_INIT;
 | 
				
			||||||
 | 
					    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PSA_ASSERT( psa_crypto_init( ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT );
 | 
				
			||||||
 | 
					    psa_set_key_algorithm( &attributes, alg );
 | 
				
			||||||
 | 
					    psa_set_key_type( &attributes, key_type );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    output1_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, input->len );
 | 
				
			||||||
 | 
					    output2_buffer_size = PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, alg, input->len ) +
 | 
				
			||||||
 | 
					                          PSA_CIPHER_FINISH_OUTPUT_SIZE( key_type, alg );
 | 
				
			||||||
 | 
					    ASSERT_ALLOC( output1, output1_buffer_size );
 | 
				
			||||||
 | 
					    ASSERT_ALLOC( output2, output2_buffer_size );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len,
 | 
				
			||||||
 | 
					                                &key ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PSA_ASSERT( psa_cipher_encrypt( key, alg, input->x, input->len, output1,
 | 
				
			||||||
 | 
					                                    output1_buffer_size, &output1_length ) );
 | 
				
			||||||
 | 
					    TEST_ASSERT( output1_length <=
 | 
				
			||||||
 | 
					                 PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, input->len ) );
 | 
				
			||||||
 | 
					    TEST_ASSERT( output1_length <=
 | 
				
			||||||
 | 
					                 PSA_CIPHER_ENCRYPT_OUTPUT_MAX_SIZE( input->len ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PSA_ASSERT( psa_cipher_encrypt_setup( &operation, key, alg ) );
 | 
				
			||||||
 | 
					    PSA_ASSERT( psa_cipher_set_iv( &operation, output1, iv_size ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PSA_ASSERT( psa_cipher_update( &operation,
 | 
				
			||||||
 | 
					                                   input->x, input->len,
 | 
				
			||||||
 | 
					                                   output2, output2_buffer_size,
 | 
				
			||||||
 | 
					                                   &function_output_length ) );
 | 
				
			||||||
 | 
					    TEST_ASSERT( function_output_length <=
 | 
				
			||||||
 | 
					                 PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, alg, input->len ) );
 | 
				
			||||||
 | 
					    TEST_ASSERT( function_output_length <=
 | 
				
			||||||
 | 
					                 PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE( input->len ) );
 | 
				
			||||||
 | 
					    output2_length += function_output_length;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PSA_ASSERT( psa_cipher_finish( &operation,
 | 
				
			||||||
 | 
					                                   output2 + output2_length,
 | 
				
			||||||
 | 
					                                   output2_buffer_size - output2_length,
 | 
				
			||||||
 | 
					                                   &function_output_length ) );
 | 
				
			||||||
 | 
					    TEST_ASSERT( function_output_length <=
 | 
				
			||||||
 | 
					                 PSA_CIPHER_FINISH_OUTPUT_SIZE( key_type, alg ) );
 | 
				
			||||||
 | 
					    TEST_ASSERT( function_output_length <=
 | 
				
			||||||
 | 
					                 PSA_CIPHER_FINISH_OUTPUT_MAX_SIZE );
 | 
				
			||||||
 | 
					    output2_length += function_output_length;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PSA_ASSERT( psa_cipher_abort( &operation ) );
 | 
				
			||||||
 | 
					    ASSERT_COMPARE( output1 + iv_size, output1_length - iv_size,
 | 
				
			||||||
 | 
					                    output2, output2_length );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exit:
 | 
				
			||||||
 | 
					    psa_cipher_abort( &operation );
 | 
				
			||||||
 | 
					    mbedtls_free( output1 );
 | 
				
			||||||
 | 
					    mbedtls_free( output2 );
 | 
				
			||||||
 | 
					    psa_destroy_key( key );
 | 
				
			||||||
 | 
					    PSA_DONE( );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/* END_CASE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* BEGIN_CASE */
 | 
				
			||||||
 | 
					void cipher_encrypt_simple_multipart( int alg_arg,
 | 
				
			||||||
 | 
					                                      int key_type_arg,
 | 
				
			||||||
 | 
					                                      data_t *key_data,
 | 
				
			||||||
 | 
					                                      data_t *iv,
 | 
				
			||||||
 | 
					                                      data_t *input,
 | 
				
			||||||
 | 
					                                      data_t *expected_output,
 | 
				
			||||||
 | 
					                                      int expected_status_arg )
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT;
 | 
					    mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT;
 | 
				
			||||||
    psa_status_t status;
 | 
					    psa_status_t status;
 | 
				
			||||||
@ -2446,9 +2657,8 @@ void cipher_encrypt( int alg_arg, int key_type_arg,
 | 
				
			|||||||
        PSA_ASSERT( psa_cipher_set_iv( &operation, iv->x, iv->len ) );
 | 
					        PSA_ASSERT( psa_cipher_set_iv( &operation, iv->x, iv->len ) );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    output_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, input->len );
 | 
					    output_buffer_size = PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, alg, input->len ) +
 | 
				
			||||||
    TEST_ASSERT( output_buffer_size <=
 | 
					                         PSA_CIPHER_FINISH_OUTPUT_SIZE( key_type, alg );
 | 
				
			||||||
                 PSA_CIPHER_ENCRYPT_OUTPUT_MAX_SIZE( input->len ) );
 | 
					 | 
				
			||||||
    ASSERT_ALLOC( output, output_buffer_size );
 | 
					    ASSERT_ALLOC( output, output_buffer_size );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    PSA_ASSERT( psa_cipher_update( &operation,
 | 
					    PSA_ASSERT( psa_cipher_update( &operation,
 | 
				
			||||||
@ -2525,9 +2735,8 @@ void cipher_encrypt_multipart( int alg_arg, int key_type_arg,
 | 
				
			|||||||
        PSA_ASSERT( psa_cipher_set_iv( &operation, iv->x, iv->len ) );
 | 
					        PSA_ASSERT( psa_cipher_set_iv( &operation, iv->x, iv->len ) );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    output_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, input->len );
 | 
					    output_buffer_size = PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, alg, input->len ) +
 | 
				
			||||||
    TEST_ASSERT( output_buffer_size <=
 | 
					                         PSA_CIPHER_FINISH_OUTPUT_SIZE( key_type, alg );
 | 
				
			||||||
                 PSA_CIPHER_ENCRYPT_OUTPUT_MAX_SIZE( input->len ) );
 | 
					 | 
				
			||||||
    ASSERT_ALLOC( output, output_buffer_size );
 | 
					    ASSERT_ALLOC( output, output_buffer_size );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    TEST_ASSERT( first_part_size <= input->len );
 | 
					    TEST_ASSERT( first_part_size <= input->len );
 | 
				
			||||||
@ -2617,9 +2826,8 @@ void cipher_decrypt_multipart( int alg_arg, int key_type_arg,
 | 
				
			|||||||
        PSA_ASSERT( psa_cipher_set_iv( &operation, iv->x, iv->len ) );
 | 
					        PSA_ASSERT( psa_cipher_set_iv( &operation, iv->x, iv->len ) );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    output_buffer_size = PSA_CIPHER_DECRYPT_OUTPUT_SIZE( key_type, alg, input->len );
 | 
					    output_buffer_size = PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, alg, input->len ) +
 | 
				
			||||||
    TEST_ASSERT( output_buffer_size <=
 | 
					                         PSA_CIPHER_FINISH_OUTPUT_SIZE( key_type, alg );
 | 
				
			||||||
                 PSA_CIPHER_DECRYPT_OUTPUT_MAX_SIZE( input->len ) );
 | 
					 | 
				
			||||||
    ASSERT_ALLOC( output, output_buffer_size );
 | 
					    ASSERT_ALLOC( output, output_buffer_size );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    TEST_ASSERT( first_part_size <= input->len );
 | 
					    TEST_ASSERT( first_part_size <= input->len );
 | 
				
			||||||
@ -2674,10 +2882,13 @@ exit:
 | 
				
			|||||||
/* END_CASE */
 | 
					/* END_CASE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* BEGIN_CASE */
 | 
					/* BEGIN_CASE */
 | 
				
			||||||
void cipher_decrypt( int alg_arg, int key_type_arg,
 | 
					void cipher_decrypt_simple_multipart( int alg_arg,
 | 
				
			||||||
                     data_t *key_data, data_t *iv,
 | 
					                                      int key_type_arg,
 | 
				
			||||||
                     data_t *input, data_t *expected_output,
 | 
					                                      data_t *key_data,
 | 
				
			||||||
                     int expected_status_arg )
 | 
					                                      data_t *iv,
 | 
				
			||||||
 | 
					                                      data_t *input,
 | 
				
			||||||
 | 
					                                      data_t *expected_output,
 | 
				
			||||||
 | 
					                                      int expected_status_arg )
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT;
 | 
					    mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT;
 | 
				
			||||||
    psa_status_t status;
 | 
					    psa_status_t status;
 | 
				
			||||||
@ -2707,9 +2918,8 @@ void cipher_decrypt( int alg_arg, int key_type_arg,
 | 
				
			|||||||
        PSA_ASSERT( psa_cipher_set_iv( &operation, iv->x, iv->len ) );
 | 
					        PSA_ASSERT( psa_cipher_set_iv( &operation, iv->x, iv->len ) );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    output_buffer_size = PSA_CIPHER_DECRYPT_OUTPUT_SIZE( key_type, alg, input->len );
 | 
					    output_buffer_size = PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, alg, input->len ) +
 | 
				
			||||||
    TEST_ASSERT( output_buffer_size <=
 | 
					                         PSA_CIPHER_FINISH_OUTPUT_SIZE( key_type, alg );
 | 
				
			||||||
                 PSA_CIPHER_DECRYPT_OUTPUT_MAX_SIZE( input->len ) );
 | 
					 | 
				
			||||||
    ASSERT_ALLOC( output, output_buffer_size );
 | 
					    ASSERT_ALLOC( output, output_buffer_size );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    PSA_ASSERT( psa_cipher_update( &operation,
 | 
					    PSA_ASSERT( psa_cipher_update( &operation,
 | 
				
			||||||
@ -2750,25 +2960,132 @@ exit:
 | 
				
			|||||||
/* END_CASE */
 | 
					/* END_CASE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* BEGIN_CASE */
 | 
					/* BEGIN_CASE */
 | 
				
			||||||
void cipher_verify_output( int alg_arg, int key_type_arg,
 | 
					void cipher_decrypt_error( int alg_arg,
 | 
				
			||||||
 | 
					                           int key_type_arg,
 | 
				
			||||||
 | 
					                           data_t *key_data,
 | 
				
			||||||
 | 
					                           data_t *iv,
 | 
				
			||||||
 | 
					                           data_t *input_arg,
 | 
				
			||||||
 | 
					                           int expected_status_arg )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT;
 | 
				
			||||||
 | 
					    psa_status_t status;
 | 
				
			||||||
 | 
					    psa_key_type_t key_type = key_type_arg;
 | 
				
			||||||
 | 
					    psa_algorithm_t alg = alg_arg;
 | 
				
			||||||
 | 
					    psa_status_t expected_status = expected_status_arg;
 | 
				
			||||||
 | 
					    unsigned char *input = NULL;
 | 
				
			||||||
 | 
					    size_t input_buffer_size = 0;
 | 
				
			||||||
 | 
					    unsigned char *output = NULL;
 | 
				
			||||||
 | 
					    size_t output_buffer_size = 0;
 | 
				
			||||||
 | 
					    size_t output_length = 0;
 | 
				
			||||||
 | 
					    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if ( PSA_ERROR_BAD_STATE != expected_status )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        PSA_ASSERT( psa_crypto_init( ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT );
 | 
				
			||||||
 | 
					        psa_set_key_algorithm( &attributes, alg );
 | 
				
			||||||
 | 
					        psa_set_key_type( &attributes, key_type );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len,
 | 
				
			||||||
 | 
					                                    &key ) );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* Allocate input buffer and copy the iv and the plaintext */
 | 
				
			||||||
 | 
					    input_buffer_size = ( (size_t) input_arg->len + (size_t) iv->len );
 | 
				
			||||||
 | 
					    if ( input_buffer_size > 0 )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        ASSERT_ALLOC( input, input_buffer_size );
 | 
				
			||||||
 | 
					        memcpy( input, iv->x, iv->len );
 | 
				
			||||||
 | 
					        memcpy( input + iv->len, input_arg->x, input_arg->len );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    output_buffer_size = PSA_CIPHER_DECRYPT_OUTPUT_SIZE( key_type, alg, input_buffer_size );
 | 
				
			||||||
 | 
					    ASSERT_ALLOC( output, output_buffer_size );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    status = psa_cipher_decrypt( key, alg, input, input_buffer_size, output,
 | 
				
			||||||
 | 
					                                 output_buffer_size, &output_length );
 | 
				
			||||||
 | 
					    TEST_EQUAL( status, expected_status );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exit:
 | 
				
			||||||
 | 
					    mbedtls_free( input );
 | 
				
			||||||
 | 
					    mbedtls_free( output );
 | 
				
			||||||
 | 
					    psa_destroy_key( key );
 | 
				
			||||||
 | 
					    PSA_DONE( );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/* END_CASE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* BEGIN_CASE */
 | 
				
			||||||
 | 
					void cipher_decrypt( int alg_arg,
 | 
				
			||||||
 | 
					                     int key_type_arg,
 | 
				
			||||||
 | 
					                     data_t *key_data,
 | 
				
			||||||
 | 
					                     data_t *iv,
 | 
				
			||||||
 | 
					                     data_t *input_arg,
 | 
				
			||||||
 | 
					                     data_t *expected_output )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT;
 | 
				
			||||||
 | 
					    psa_key_type_t key_type = key_type_arg;
 | 
				
			||||||
 | 
					    psa_algorithm_t alg = alg_arg;
 | 
				
			||||||
 | 
					    unsigned char *input = NULL;
 | 
				
			||||||
 | 
					    size_t input_buffer_size = 0;
 | 
				
			||||||
 | 
					    unsigned char *output = NULL;
 | 
				
			||||||
 | 
					    size_t output_buffer_size = 0;
 | 
				
			||||||
 | 
					    size_t output_length = 0;
 | 
				
			||||||
 | 
					    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PSA_ASSERT( psa_crypto_init( ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT );
 | 
				
			||||||
 | 
					    psa_set_key_algorithm( &attributes, alg );
 | 
				
			||||||
 | 
					    psa_set_key_type( &attributes, key_type );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* Allocate input buffer and copy the iv and the plaintext */
 | 
				
			||||||
 | 
					    input_buffer_size = ( (size_t) input_arg->len + (size_t) iv->len );
 | 
				
			||||||
 | 
					    if ( input_buffer_size > 0 )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        ASSERT_ALLOC( input, input_buffer_size );
 | 
				
			||||||
 | 
					        memcpy( input, iv->x, iv->len );
 | 
				
			||||||
 | 
					        memcpy( input + iv->len, input_arg->x, input_arg->len );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    output_buffer_size = PSA_CIPHER_DECRYPT_OUTPUT_SIZE( key_type, alg, input_buffer_size );
 | 
				
			||||||
 | 
					    ASSERT_ALLOC( output, output_buffer_size );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len,
 | 
				
			||||||
 | 
					                                &key ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PSA_ASSERT( psa_cipher_decrypt( key, alg, input, input_buffer_size, output,
 | 
				
			||||||
 | 
					                                    output_buffer_size, &output_length ) );
 | 
				
			||||||
 | 
					    TEST_ASSERT( output_length <=
 | 
				
			||||||
 | 
					                 PSA_CIPHER_DECRYPT_OUTPUT_SIZE( key_type, alg, input_buffer_size ) );
 | 
				
			||||||
 | 
					    TEST_ASSERT( output_length <=
 | 
				
			||||||
 | 
					                 PSA_CIPHER_DECRYPT_OUTPUT_MAX_SIZE( input_buffer_size ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ASSERT_COMPARE( expected_output->x, expected_output->len,
 | 
				
			||||||
 | 
					                    output, output_length );
 | 
				
			||||||
 | 
					exit:
 | 
				
			||||||
 | 
					    mbedtls_free( input );
 | 
				
			||||||
 | 
					    mbedtls_free( output );
 | 
				
			||||||
 | 
					    psa_destroy_key( key );
 | 
				
			||||||
 | 
					    PSA_DONE( );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/* END_CASE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* BEGIN_CASE */
 | 
				
			||||||
 | 
					void cipher_verify_output( int alg_arg,
 | 
				
			||||||
 | 
					                           int key_type_arg,
 | 
				
			||||||
                           data_t *key_data,
 | 
					                           data_t *key_data,
 | 
				
			||||||
                           data_t *input )
 | 
					                           data_t *input )
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT;
 | 
					    mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT;
 | 
				
			||||||
    psa_key_type_t key_type = key_type_arg;
 | 
					    psa_key_type_t key_type = key_type_arg;
 | 
				
			||||||
    psa_algorithm_t alg = alg_arg;
 | 
					    psa_algorithm_t alg = alg_arg;
 | 
				
			||||||
    unsigned char iv[16] = {0};
 | 
					 | 
				
			||||||
    size_t iv_size = 16;
 | 
					 | 
				
			||||||
    size_t iv_length = 0;
 | 
					 | 
				
			||||||
    unsigned char *output1 = NULL;
 | 
					    unsigned char *output1 = NULL;
 | 
				
			||||||
    size_t output1_size = 0;
 | 
					    size_t output1_size = 0;
 | 
				
			||||||
    size_t output1_length = 0;
 | 
					    size_t output1_length = 0;
 | 
				
			||||||
    unsigned char *output2 = NULL;
 | 
					    unsigned char *output2 = NULL;
 | 
				
			||||||
    size_t output2_size = 0;
 | 
					    size_t output2_size = 0;
 | 
				
			||||||
    size_t output2_length = 0;
 | 
					    size_t output2_length = 0;
 | 
				
			||||||
    size_t function_output_length = 0;
 | 
					 | 
				
			||||||
    psa_cipher_operation_t operation1 = PSA_CIPHER_OPERATION_INIT;
 | 
					 | 
				
			||||||
    psa_cipher_operation_t operation2 = PSA_CIPHER_OPERATION_INIT;
 | 
					 | 
				
			||||||
    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
 | 
					    psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    PSA_ASSERT( psa_crypto_init( ) );
 | 
					    PSA_ASSERT( psa_crypto_init( ) );
 | 
				
			||||||
@ -2779,82 +3096,31 @@ void cipher_verify_output( int alg_arg, int key_type_arg,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len,
 | 
					    PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len,
 | 
				
			||||||
                                &key ) );
 | 
					                                &key ) );
 | 
				
			||||||
 | 
					 | 
				
			||||||
    PSA_ASSERT( psa_cipher_encrypt_setup( &operation1, key, alg ) );
 | 
					 | 
				
			||||||
    PSA_ASSERT( psa_cipher_decrypt_setup( &operation2, key, alg ) );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if( alg != PSA_ALG_ECB_NO_PADDING )
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        PSA_ASSERT( psa_cipher_generate_iv( &operation1,
 | 
					 | 
				
			||||||
                                            iv, iv_size,
 | 
					 | 
				
			||||||
                                            &iv_length ) );
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    output1_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, input->len );
 | 
					    output1_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, input->len );
 | 
				
			||||||
    TEST_ASSERT( output1_size <=
 | 
					 | 
				
			||||||
                 PSA_CIPHER_ENCRYPT_OUTPUT_MAX_SIZE( input->len ) );
 | 
					 | 
				
			||||||
    ASSERT_ALLOC( output1, output1_size );
 | 
					    ASSERT_ALLOC( output1, output1_size );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    PSA_ASSERT( psa_cipher_update( &operation1, input->x, input->len,
 | 
					    PSA_ASSERT( psa_cipher_encrypt( key, alg, input->x, input->len,
 | 
				
			||||||
                                   output1, output1_size,
 | 
					                                    output1, output1_size,
 | 
				
			||||||
                                   &output1_length ) );
 | 
					                                    &output1_length ) );
 | 
				
			||||||
    TEST_ASSERT( output1_length <=
 | 
					    TEST_ASSERT( output1_length <=
 | 
				
			||||||
                 PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, alg, input->len ) );
 | 
					                 PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, input->len ) );
 | 
				
			||||||
    TEST_ASSERT( output1_length <=
 | 
					    TEST_ASSERT( output1_length <=
 | 
				
			||||||
                 PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE( input->len ) );
 | 
					                 PSA_CIPHER_ENCRYPT_OUTPUT_MAX_SIZE( input->len ) );
 | 
				
			||||||
 | 
					 | 
				
			||||||
    PSA_ASSERT( psa_cipher_finish( &operation1,
 | 
					 | 
				
			||||||
                                   output1 + output1_length,
 | 
					 | 
				
			||||||
                                   output1_size - output1_length,
 | 
					 | 
				
			||||||
                                   &function_output_length ) );
 | 
					 | 
				
			||||||
    TEST_ASSERT( function_output_length <=
 | 
					 | 
				
			||||||
                 PSA_CIPHER_FINISH_OUTPUT_SIZE( key_type, alg ) );
 | 
					 | 
				
			||||||
    TEST_ASSERT( function_output_length <=
 | 
					 | 
				
			||||||
                 PSA_CIPHER_FINISH_OUTPUT_MAX_SIZE );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    output1_length += function_output_length;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    PSA_ASSERT( psa_cipher_abort( &operation1 ) );
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    output2_size = output1_length;
 | 
					    output2_size = output1_length;
 | 
				
			||||||
    TEST_ASSERT( output2_size <=
 | 
					 | 
				
			||||||
                 PSA_CIPHER_DECRYPT_OUTPUT_SIZE( key_type, alg, output1_length ) );
 | 
					 | 
				
			||||||
    TEST_ASSERT( output2_size <=
 | 
					 | 
				
			||||||
                 PSA_CIPHER_DECRYPT_OUTPUT_MAX_SIZE( output1_length ) );
 | 
					 | 
				
			||||||
    ASSERT_ALLOC( output2, output2_size );
 | 
					    ASSERT_ALLOC( output2, output2_size );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if( iv_length > 0 )
 | 
					    PSA_ASSERT( psa_cipher_decrypt( key, alg, output1, output1_length,
 | 
				
			||||||
    {
 | 
					                                    output2, output2_size,
 | 
				
			||||||
        PSA_ASSERT( psa_cipher_set_iv( &operation2,
 | 
					                                    &output2_length ) );
 | 
				
			||||||
                                       iv, iv_length ) );
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    PSA_ASSERT( psa_cipher_update( &operation2, output1, output1_length,
 | 
					 | 
				
			||||||
                                   output2, output2_size,
 | 
					 | 
				
			||||||
                                   &output2_length ) );
 | 
					 | 
				
			||||||
    TEST_ASSERT( output2_length <=
 | 
					    TEST_ASSERT( output2_length <=
 | 
				
			||||||
                 PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, alg, output1_length ) );
 | 
					                 PSA_CIPHER_DECRYPT_OUTPUT_SIZE( key_type, alg, output1_length ) );
 | 
				
			||||||
    TEST_ASSERT( output2_length <=
 | 
					    TEST_ASSERT( output2_length <=
 | 
				
			||||||
                 PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE( output1_length ) );
 | 
					                 PSA_CIPHER_DECRYPT_OUTPUT_MAX_SIZE( output1_length ) );
 | 
				
			||||||
 | 
					 | 
				
			||||||
    function_output_length = 0;
 | 
					 | 
				
			||||||
    PSA_ASSERT( psa_cipher_finish( &operation2,
 | 
					 | 
				
			||||||
                                   output2 + output2_length,
 | 
					 | 
				
			||||||
                                   output2_size - output2_length,
 | 
					 | 
				
			||||||
                                   &function_output_length ) );
 | 
					 | 
				
			||||||
    TEST_ASSERT( function_output_length <=
 | 
					 | 
				
			||||||
                 PSA_CIPHER_FINISH_OUTPUT_SIZE( key_type, alg ) );
 | 
					 | 
				
			||||||
    TEST_ASSERT( function_output_length <=
 | 
					 | 
				
			||||||
                 PSA_CIPHER_FINISH_OUTPUT_MAX_SIZE );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    output2_length += function_output_length;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    PSA_ASSERT( psa_cipher_abort( &operation2 ) );
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ASSERT_COMPARE( input->x, input->len, output2, output2_length );
 | 
					    ASSERT_COMPARE( input->x, input->len, output2, output2_length );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
exit:
 | 
					exit:
 | 
				
			||||||
    psa_cipher_abort( &operation1 );
 | 
					 | 
				
			||||||
    psa_cipher_abort( &operation2 );
 | 
					 | 
				
			||||||
    mbedtls_free( output1 );
 | 
					    mbedtls_free( output1 );
 | 
				
			||||||
    mbedtls_free( output2 );
 | 
					    mbedtls_free( output2 );
 | 
				
			||||||
    psa_destroy_key( key );
 | 
					    psa_destroy_key( key );
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user