mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-10-30 19:20:40 -04:00 
			
		
		
		
	Add ARIA to the PSA API
Use the encoding from an upcoming version of the specification. Add as much (or as little) testing as is currently present for Camellia. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
		
							parent
							
								
									cacec723c8
								
							
						
					
					
						commit
						6c12a1e9f2
					
				| @ -3682,6 +3682,7 @@ psa_status_t psa_key_derivation_output_bytes( | |||||||
|  *   The following key types defined in this specification follow this scheme: |  *   The following key types defined in this specification follow this scheme: | ||||||
|  * |  * | ||||||
|  *     - #PSA_KEY_TYPE_AES; |  *     - #PSA_KEY_TYPE_AES; | ||||||
|  |  *     - #PSA_KEY_TYPE_ARIA; | ||||||
|  *     - #PSA_KEY_TYPE_CAMELLIA; |  *     - #PSA_KEY_TYPE_CAMELLIA; | ||||||
|  *     - #PSA_KEY_TYPE_DERIVE; |  *     - #PSA_KEY_TYPE_DERIVE; | ||||||
|  *     - #PSA_KEY_TYPE_HMAC; |  *     - #PSA_KEY_TYPE_HMAC; | ||||||
|  | |||||||
| @ -466,6 +466,10 @@ | |||||||
|  */ |  */ | ||||||
| #define PSA_KEY_TYPE_AES                            ((psa_key_type_t)0x2400) | #define PSA_KEY_TYPE_AES                            ((psa_key_type_t)0x2400) | ||||||
| 
 | 
 | ||||||
|  | /** Key for a cipher, AEAD or MAC algorithm based on the
 | ||||||
|  |  * ARIA block cipher. */ | ||||||
|  | #define PSA_KEY_TYPE_ARIA                           ((psa_key_type_t)0x2406) | ||||||
|  | 
 | ||||||
| /** Key for a cipher or MAC algorithm based on DES or 3DES (Triple-DES).
 | /** Key for a cipher or MAC algorithm based on DES or 3DES (Triple-DES).
 | ||||||
|  * |  * | ||||||
|  * The size of the key can be 64 bits (single DES), 128 bits (2-key 3DES) or |  * The size of the key can be 64 bits (single DES), 128 bits (2-key 3DES) or | ||||||
|  | |||||||
| @ -446,6 +446,12 @@ psa_status_t psa_validate_unstructured_key_bit_size( psa_key_type_t type, | |||||||
|                 return( PSA_ERROR_INVALID_ARGUMENT ); |                 return( PSA_ERROR_INVALID_ARGUMENT ); | ||||||
|             break; |             break; | ||||||
| #endif | #endif | ||||||
|  | #if defined(PSA_WANT_KEY_TYPE_ARIA) | ||||||
|  |         case PSA_KEY_TYPE_ARIA: | ||||||
|  |             if( bits != 128 && bits != 192 && bits != 256 ) | ||||||
|  |                 return( PSA_ERROR_INVALID_ARGUMENT ); | ||||||
|  |             break; | ||||||
|  | #endif | ||||||
| #if defined(PSA_WANT_KEY_TYPE_CAMELLIA) | #if defined(PSA_WANT_KEY_TYPE_CAMELLIA) | ||||||
|         case PSA_KEY_TYPE_CAMELLIA: |         case PSA_KEY_TYPE_CAMELLIA: | ||||||
|             if( bits != 128 && bits != 192 && bits != 256 ) |             if( bits != 128 && bits != 192 && bits != 256 ) | ||||||
|  | |||||||
| @ -115,6 +115,9 @@ const mbedtls_cipher_info_t *mbedtls_cipher_info_from_psa( | |||||||
|         case PSA_KEY_TYPE_AES: |         case PSA_KEY_TYPE_AES: | ||||||
|             cipher_id_tmp = MBEDTLS_CIPHER_ID_AES; |             cipher_id_tmp = MBEDTLS_CIPHER_ID_AES; | ||||||
|             break; |             break; | ||||||
|  |         case PSA_KEY_TYPE_ARIA: | ||||||
|  |             cipher_id_tmp = MBEDTLS_CIPHER_ID_ARIA; | ||||||
|  |             break; | ||||||
|         case PSA_KEY_TYPE_DES: |         case PSA_KEY_TYPE_DES: | ||||||
|             /* key_bits is 64 for Single-DES, 128 for two-key Triple-DES,
 |             /* key_bits is 64 for Single-DES, 128 for two-key Triple-DES,
 | ||||||
|              * and 192 for three-key Triple-DES. */ |              * and 192 for three-key Triple-DES. */ | ||||||
|  | |||||||
| @ -130,6 +130,18 @@ AEAD: CCM-AES-256 | |||||||
| depends_on:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM | depends_on:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM | ||||||
| aead_algorithm:PSA_ALG_CCM:ALG_IS_AEAD_ON_BLOCK_CIPHER:16:PSA_KEY_TYPE_AES:256 | aead_algorithm:PSA_ALG_CCM:ALG_IS_AEAD_ON_BLOCK_CIPHER:16:PSA_KEY_TYPE_AES:256 | ||||||
| 
 | 
 | ||||||
|  | AEAD: CCM-ARIA-128 | ||||||
|  | depends_on:PSA_WANT_KEY_TYPE_ARIA:PSA_WANT_ALG_CCM | ||||||
|  | aead_algorithm:PSA_ALG_CCM:ALG_IS_AEAD_ON_BLOCK_CIPHER:16:PSA_KEY_TYPE_ARIA:128 | ||||||
|  | 
 | ||||||
|  | AEAD: CCM-ARIA-192 | ||||||
|  | depends_on:PSA_WANT_KEY_TYPE_ARIA:PSA_WANT_ALG_CCM | ||||||
|  | aead_algorithm:PSA_ALG_CCM:ALG_IS_AEAD_ON_BLOCK_CIPHER:16:PSA_KEY_TYPE_ARIA:192 | ||||||
|  | 
 | ||||||
|  | AEAD: CCM-ARIA-256 | ||||||
|  | depends_on:PSA_WANT_KEY_TYPE_ARIA:PSA_WANT_ALG_CCM | ||||||
|  | aead_algorithm:PSA_ALG_CCM:ALG_IS_AEAD_ON_BLOCK_CIPHER:16:PSA_KEY_TYPE_ARIA:256 | ||||||
|  | 
 | ||||||
| AEAD: CCM-CAMELLIA-128 | AEAD: CCM-CAMELLIA-128 | ||||||
| depends_on:PSA_WANT_KEY_TYPE_CAMELLIA:PSA_WANT_ALG_CCM | depends_on:PSA_WANT_KEY_TYPE_CAMELLIA:PSA_WANT_ALG_CCM | ||||||
| aead_algorithm:PSA_ALG_CCM:ALG_IS_AEAD_ON_BLOCK_CIPHER:16:PSA_KEY_TYPE_CAMELLIA:128 | aead_algorithm:PSA_ALG_CCM:ALG_IS_AEAD_ON_BLOCK_CIPHER:16:PSA_KEY_TYPE_CAMELLIA:128 | ||||||
| @ -154,6 +166,18 @@ AEAD: GCM-AES-256 | |||||||
| depends_on:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_GCM | depends_on:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_GCM | ||||||
| aead_algorithm:PSA_ALG_GCM:ALG_IS_AEAD_ON_BLOCK_CIPHER:16:PSA_KEY_TYPE_AES:256 | aead_algorithm:PSA_ALG_GCM:ALG_IS_AEAD_ON_BLOCK_CIPHER:16:PSA_KEY_TYPE_AES:256 | ||||||
| 
 | 
 | ||||||
|  | AEAD: GCM-ARIA-128 | ||||||
|  | depends_on:PSA_WANT_KEY_TYPE_ARIA:PSA_WANT_ALG_GCM | ||||||
|  | aead_algorithm:PSA_ALG_GCM:ALG_IS_AEAD_ON_BLOCK_CIPHER:16:PSA_KEY_TYPE_ARIA:128 | ||||||
|  | 
 | ||||||
|  | AEAD: GCM-ARIA-192 | ||||||
|  | depends_on:PSA_WANT_KEY_TYPE_ARIA:PSA_WANT_ALG_GCM | ||||||
|  | aead_algorithm:PSA_ALG_GCM:ALG_IS_AEAD_ON_BLOCK_CIPHER:16:PSA_KEY_TYPE_ARIA:192 | ||||||
|  | 
 | ||||||
|  | AEAD: GCM-ARIA-256 | ||||||
|  | depends_on:PSA_WANT_KEY_TYPE_ARIA:PSA_WANT_ALG_GCM | ||||||
|  | aead_algorithm:PSA_ALG_GCM:ALG_IS_AEAD_ON_BLOCK_CIPHER:16:PSA_KEY_TYPE_ARIA:256 | ||||||
|  | 
 | ||||||
| AEAD: GCM-CAMELLIA-128 | AEAD: GCM-CAMELLIA-128 | ||||||
| depends_on:PSA_WANT_KEY_TYPE_CAMELLIA:PSA_WANT_ALG_GCM | depends_on:PSA_WANT_KEY_TYPE_CAMELLIA:PSA_WANT_ALG_GCM | ||||||
| aead_algorithm:PSA_ALG_GCM:ALG_IS_AEAD_ON_BLOCK_CIPHER:16:PSA_KEY_TYPE_CAMELLIA:128 | aead_algorithm:PSA_ALG_GCM:ALG_IS_AEAD_ON_BLOCK_CIPHER:16:PSA_KEY_TYPE_CAMELLIA:128 | ||||||
| @ -295,6 +319,10 @@ Block cipher key type: AES | |||||||
| depends_on:PSA_WANT_KEY_TYPE_AES | depends_on:PSA_WANT_KEY_TYPE_AES | ||||||
| block_cipher_key_type:PSA_KEY_TYPE_AES:16 | block_cipher_key_type:PSA_KEY_TYPE_AES:16 | ||||||
| 
 | 
 | ||||||
|  | Block cipher key type: ARIA | ||||||
|  | depends_on:PSA_WANT_KEY_TYPE_ARIA | ||||||
|  | block_cipher_key_type:PSA_KEY_TYPE_ARIA:16 | ||||||
|  | 
 | ||||||
| Block cipher key type: DES | Block cipher key type: DES | ||||||
| depends_on:PSA_WANT_KEY_TYPE_DES | depends_on:PSA_WANT_KEY_TYPE_DES | ||||||
| block_cipher_key_type:PSA_KEY_TYPE_DES:8 | block_cipher_key_type:PSA_KEY_TYPE_DES:8 | ||||||
|  | |||||||
| @ -78,6 +78,21 @@ import_key_smoke:PSA_KEY_TYPE_AES:PSA_ALG_CCM:"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | |||||||
| Key import smoke test: AES-GCM | Key import smoke test: AES-GCM | ||||||
| import_key_smoke:PSA_KEY_TYPE_AES:PSA_ALG_GCM:"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | import_key_smoke:PSA_KEY_TYPE_AES:PSA_ALG_GCM:"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | ||||||
| 
 | 
 | ||||||
|  | Key import smoke test: ARIA-CTR | ||||||
|  | import_key_smoke:PSA_KEY_TYPE_ARIA:PSA_ALG_CTR:"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | ||||||
|  | 
 | ||||||
|  | Key import smoke test: ARIA-CBC | ||||||
|  | import_key_smoke:PSA_KEY_TYPE_ARIA:PSA_ALG_CBC_NO_PADDING:"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | ||||||
|  | 
 | ||||||
|  | Key import smoke test: ARIA-CMAC | ||||||
|  | import_key_smoke:PSA_KEY_TYPE_ARIA:PSA_ALG_CMAC:"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | ||||||
|  | 
 | ||||||
|  | Key import smoke test: ARIA-CCM | ||||||
|  | import_key_smoke:PSA_KEY_TYPE_ARIA:PSA_ALG_CCM:"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | ||||||
|  | 
 | ||||||
|  | Key import smoke test: ARIA-GCM | ||||||
|  | import_key_smoke:PSA_KEY_TYPE_ARIA:PSA_ALG_GCM:"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | ||||||
|  | 
 | ||||||
| Key import smoke test: CAMELLIA-CTR | Key import smoke test: CAMELLIA-CTR | ||||||
| import_key_smoke:PSA_KEY_TYPE_CAMELLIA:PSA_ALG_CTR:"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | import_key_smoke:PSA_KEY_TYPE_CAMELLIA:PSA_ALG_CTR:"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Gilles Peskine
						Gilles Peskine