mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-11-03 12:11:27 -05:00 
			
		
		
		
	Merge pull request #4959 from gilles-peskine-arm/psa-add-aria
Add ARIA to the PSA API
This commit is contained in:
		
						commit
						136819fe6e
					
				@ -267,6 +267,18 @@ extern "C" {
 | 
			
		||||
#endif /* PSA_HAVE_SOFT_KEY_TYPE_AES || PSA_HAVE_SOFT_BLOCK_MODE */
 | 
			
		||||
#endif /* PSA_WANT_KEY_TYPE_AES */
 | 
			
		||||
 | 
			
		||||
#if defined(PSA_WANT_KEY_TYPE_ARIA)
 | 
			
		||||
#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ARIA)
 | 
			
		||||
#define PSA_HAVE_SOFT_KEY_TYPE_ARIA 1
 | 
			
		||||
#endif /* !MBEDTLS_PSA_ACCEL_KEY_TYPE_ARIA */
 | 
			
		||||
#if defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
 | 
			
		||||
    defined(PSA_HAVE_SOFT_BLOCK_MODE) || \
 | 
			
		||||
    defined(PSA_HAVE_SOFT_BLOCK_AEAD)
 | 
			
		||||
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ARIA 1
 | 
			
		||||
#define MBEDTLS_ARIA_C
 | 
			
		||||
#endif /* PSA_HAVE_SOFT_KEY_TYPE_ARIA || PSA_HAVE_SOFT_BLOCK_MODE */
 | 
			
		||||
#endif /* PSA_WANT_KEY_TYPE_ARIA */
 | 
			
		||||
 | 
			
		||||
#if defined(PSA_WANT_KEY_TYPE_CAMELLIA)
 | 
			
		||||
#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_CAMELLIA)
 | 
			
		||||
#define PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA 1
 | 
			
		||||
@ -301,6 +313,7 @@ extern "C" {
 | 
			
		||||
 * PSA_HAVE_SOFT_BLOCK_CIPHER, which can be used in any of these
 | 
			
		||||
 * situations. */
 | 
			
		||||
#if defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
 | 
			
		||||
    defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
 | 
			
		||||
    defined(PSA_HAVE_SOFT_KEY_TYPE_DES) || \
 | 
			
		||||
    defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA)
 | 
			
		||||
#define PSA_HAVE_SOFT_BLOCK_CIPHER 1
 | 
			
		||||
@ -381,6 +394,7 @@ extern "C" {
 | 
			
		||||
#if defined(PSA_WANT_ALG_CCM)
 | 
			
		||||
#if !defined(MBEDTLS_PSA_ACCEL_ALG_CCM) || \
 | 
			
		||||
    defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
 | 
			
		||||
    defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
 | 
			
		||||
    defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA)
 | 
			
		||||
#define MBEDTLS_PSA_BUILTIN_ALG_CCM 1
 | 
			
		||||
#define MBEDTLS_CCM_C
 | 
			
		||||
@ -390,6 +404,7 @@ extern "C" {
 | 
			
		||||
#if defined(PSA_WANT_ALG_GCM)
 | 
			
		||||
#if !defined(MBEDTLS_PSA_ACCEL_ALG_GCM) || \
 | 
			
		||||
    defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
 | 
			
		||||
    defined(PSA_HAVE_SOFT_KEY_TYPE_ARIA) || \
 | 
			
		||||
    defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA)
 | 
			
		||||
#define MBEDTLS_PSA_BUILTIN_ALG_GCM 1
 | 
			
		||||
#define MBEDTLS_GCM_C
 | 
			
		||||
@ -629,6 +644,11 @@ extern "C" {
 | 
			
		||||
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_AES 1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_ARIA_C)
 | 
			
		||||
#define PSA_WANT_KEY_TYPE_ARIA 1
 | 
			
		||||
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ARIA 1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_CAMELLIA_C)
 | 
			
		||||
#define PSA_WANT_KEY_TYPE_CAMELLIA 1
 | 
			
		||||
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CAMELLIA 1
 | 
			
		||||
@ -660,7 +680,7 @@ extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_AES_C) || defined(MBEDTLS_DES_C) || \
 | 
			
		||||
    defined(MBEDTLS_CAMELLIA_C)
 | 
			
		||||
    defined(MBEDTLS_ARIA_C) || defined(MBEDTLS_CAMELLIA_C)
 | 
			
		||||
#define MBEDTLS_PSA_BUILTIN_ALG_ECB_NO_PADDING 1
 | 
			
		||||
#define PSA_WANT_ALG_ECB_NO_PADDING 1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@ -3682,6 +3682,7 @@ psa_status_t psa_key_derivation_output_bytes(
 | 
			
		||||
 *   The following key types defined in this specification follow this scheme:
 | 
			
		||||
 *
 | 
			
		||||
 *     - #PSA_KEY_TYPE_AES;
 | 
			
		||||
 *     - #PSA_KEY_TYPE_ARIA;
 | 
			
		||||
 *     - #PSA_KEY_TYPE_CAMELLIA;
 | 
			
		||||
 *     - #PSA_KEY_TYPE_DERIVE;
 | 
			
		||||
 *     - #PSA_KEY_TYPE_HMAC;
 | 
			
		||||
 | 
			
		||||
@ -111,6 +111,7 @@
 | 
			
		||||
#define PSA_WANT_KEY_TYPE_DERIVE                1
 | 
			
		||||
#define PSA_WANT_KEY_TYPE_HMAC                  1
 | 
			
		||||
#define PSA_WANT_KEY_TYPE_AES                   1
 | 
			
		||||
#define PSA_WANT_KEY_TYPE_ARIA                  1
 | 
			
		||||
#define PSA_WANT_KEY_TYPE_CAMELLIA              1
 | 
			
		||||
#define PSA_WANT_KEY_TYPE_CHACHA20              1
 | 
			
		||||
#define PSA_WANT_KEY_TYPE_DES                   1
 | 
			
		||||
 | 
			
		||||
@ -466,6 +466,10 @@
 | 
			
		||||
 */
 | 
			
		||||
#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).
 | 
			
		||||
 *
 | 
			
		||||
 * The size of the key can be 64 bits (single DES), 128 bits (2-key 3DES) or
 | 
			
		||||
 | 
			
		||||
@ -448,6 +448,12 @@ psa_status_t psa_validate_unstructured_key_bit_size( psa_key_type_t type,
 | 
			
		||||
                return( PSA_ERROR_INVALID_ARGUMENT );
 | 
			
		||||
            break;
 | 
			
		||||
#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)
 | 
			
		||||
        case PSA_KEY_TYPE_CAMELLIA:
 | 
			
		||||
            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:
 | 
			
		||||
            cipher_id_tmp = MBEDTLS_CIPHER_ID_AES;
 | 
			
		||||
            break;
 | 
			
		||||
        case PSA_KEY_TYPE_ARIA:
 | 
			
		||||
            cipher_id_tmp = MBEDTLS_CIPHER_ID_ARIA;
 | 
			
		||||
            break;
 | 
			
		||||
        case PSA_KEY_TYPE_DES:
 | 
			
		||||
            /* key_bits is 64 for Single-DES, 128 for two-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
 | 
			
		||||
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
 | 
			
		||||
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
 | 
			
		||||
@ -154,6 +166,18 @@ AEAD: GCM-AES-256
 | 
			
		||||
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: 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
 | 
			
		||||
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
 | 
			
		||||
@ -295,6 +319,10 @@ Block cipher key type: AES
 | 
			
		||||
depends_on:PSA_WANT_KEY_TYPE_AES
 | 
			
		||||
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
 | 
			
		||||
depends_on:PSA_WANT_KEY_TYPE_DES
 | 
			
		||||
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
 | 
			
		||||
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
 | 
			
		||||
import_key_smoke:PSA_KEY_TYPE_CAMELLIA:PSA_ALG_CTR:"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user