mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-29 19:34:15 +01:00
Merge pull request #4009 from d3zd3z/pr/psa-symm
PSA configs for symmetric crypto
This commit is contained in:
commit
58fd20c464
@ -220,6 +220,141 @@ extern "C" {
|
|||||||
#endif /* !MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_PUBLIC_KEY */
|
#endif /* !MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_PUBLIC_KEY */
|
||||||
#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */
|
#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */
|
||||||
|
|
||||||
|
/* If any of the block modes are requested that don't have an
|
||||||
|
* associated HW assist, define PSA_HAVE_SOFT_BLOCK_MODE for checking
|
||||||
|
* in the block cipher key types. */
|
||||||
|
#if (defined(PSA_WANT_ALG_CTR) && !defined(MBEDTLS_PSA_ACCEL_ALG_CTR)) || \
|
||||||
|
(defined(PSA_WANT_ALG_CFB) && !defined(MBEDTLS_PSA_ACCEL_ALG_CFB)) || \
|
||||||
|
(defined(PSA_WANT_ALG_OFB) && !defined(MBEDTLS_PSA_ACCEL_ALG_OFB)) || \
|
||||||
|
(defined(PSA_WANT_ALG_XTS) && !defined(MBEDTLS_PSA_ACCEL_ALG_XTS)) || \
|
||||||
|
defined(PSA_WANT_ALG_ECB_NO_PADDING) || \
|
||||||
|
(defined(PSA_WANT_ALG_CBC_NO_PADDING) && \
|
||||||
|
!defined(MBEDTLS_PSA_ACCEL_ALG_CBC_NO_PADDING)) || \
|
||||||
|
(defined(PSA_WANT_ALG_CBC_PKCS7) && \
|
||||||
|
!defined(MBEDTLS_PSA_ACCEL_ALG_CBC_PKCS7))
|
||||||
|
#define PSA_HAVE_SOFT_BLOCK_MODE 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(PSA_WANT_KEY_TYPE_AES)
|
||||||
|
#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_AES)
|
||||||
|
#define PSA_HAVE_SOFT_KEY_TYPE_AES 1
|
||||||
|
#endif /* !MBEDTLS_PSA_ACCEL_KEY_TYPE_AES */
|
||||||
|
#if defined(PSA_HAVE_SOFT_KEY_TYPE_AES) || \
|
||||||
|
defined(PSA_HAVE_SOFT_BLOCK_MODE)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_AES 1
|
||||||
|
#define MBEDTLS_AES_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_ARC4)
|
||||||
|
#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ARC4)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ARC4 1
|
||||||
|
#define MBEDTLS_ARC4_C
|
||||||
|
#endif /*!MBEDTLS_PSA_ACCEL_KEY_TYPE_ARC4 */
|
||||||
|
#endif /* PSA_WANT_KEY_TYPE_ARC4 */
|
||||||
|
|
||||||
|
#if defined(PSA_WANT_KEY_TYPE_CAMELLIA)
|
||||||
|
#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_CAMELLIA)
|
||||||
|
#define PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA 1
|
||||||
|
#endif /* !MBEDTLS_PSA_ACCEL_KEY_TYPE_CAMELLIA */
|
||||||
|
#if defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA) || \
|
||||||
|
defined(PSA_HAVE_SOFT_BLOCK_MODE)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CAMELLIA 1
|
||||||
|
#define MBEDTLS_CAMELLIA_C
|
||||||
|
#endif /* PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA || PSA_HAVE_SOFT_BLOCK_MODE */
|
||||||
|
#endif /* PSA_WANT_KEY_TYPE_CAMELLIA */
|
||||||
|
|
||||||
|
#if defined(PSA_WANT_KEY_TYPE_DES)
|
||||||
|
#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_DES)
|
||||||
|
#define PSA_HAVE_SOFT_KEY_TYPE_DES 1
|
||||||
|
#endif /* !MBEDTLS_PSA_ACCEL_KEY_TYPE_DES */
|
||||||
|
#if defined(PSA_HAVE_SOFT_KEY_TYPE_DES) || \
|
||||||
|
defined(PSA_HAVE_SOFT_BLOCK_MODE)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES 1
|
||||||
|
#define MBEDTLS_DES_C
|
||||||
|
#endif /*PSA_HAVE_SOFT_KEY_TYPE_DES || PSA_HAVE_SOFT_BLOCK_MODE */
|
||||||
|
#endif /* PSA_WANT_KEY_TYPE_DES */
|
||||||
|
|
||||||
|
#if defined(PSA_WANT_KEY_TYPE_CHACHA20)
|
||||||
|
#if !defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_CHACHA20)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CHACHA20 1
|
||||||
|
#define MBEDTLS_CHACHA20_C
|
||||||
|
#endif /*!MBEDTLS_PSA_ACCEL_KEY_TYPE_CHACHA20 */
|
||||||
|
#endif /* PSA_WANT_KEY_TYPE_CHACHA20 */
|
||||||
|
|
||||||
|
/* If any of the software block ciphers are selected, define
|
||||||
|
* 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_DES) || \
|
||||||
|
defined(PSA_HAVE_SOFT_KEY_TYPE_CAMELLIA)
|
||||||
|
#define PSA_HAVE_SOFT_BLOCK_CIPHER 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(PSA_WANT_ALG_STREAM_CIPHER)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_STREAM_CIPHER 1
|
||||||
|
#endif /* PSA_WANT_ALG_STREAM_CIPHER */
|
||||||
|
|
||||||
|
#if defined(PSA_WANT_ALG_CTR)
|
||||||
|
#if !defined(MBEDTLS_PSA_ACCEL_ALG_CTR) || \
|
||||||
|
defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_CTR 1
|
||||||
|
#define MBEDTLS_CIPHER_MODE_CTR
|
||||||
|
#endif
|
||||||
|
#endif /* PSA_WANT_ALG_CTR */
|
||||||
|
|
||||||
|
#if defined(PSA_WANT_ALG_CFB)
|
||||||
|
#if !defined(MBEDTLS_PSA_ACCEL_ALG_CFB) || \
|
||||||
|
defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_CFB 1
|
||||||
|
#define MBEDTLS_CIPHER_MODE_CFB
|
||||||
|
#endif
|
||||||
|
#endif /* PSA_WANT_ALG_CFB */
|
||||||
|
|
||||||
|
#if defined(PSA_WANT_ALG_OFB)
|
||||||
|
#if !defined(MBEDTLS_PSA_ACCEL_ALG_OFB) || \
|
||||||
|
defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_OFB 1
|
||||||
|
#define MBEDTLS_CIPHER_MODE_OFB
|
||||||
|
#endif
|
||||||
|
#endif /* PSA_WANT_ALG_OFB */
|
||||||
|
|
||||||
|
#if defined(PSA_WANT_ALG_XTS)
|
||||||
|
#if !defined(MBEDTLS_PSA_ACCEL_ALG_XTS) || \
|
||||||
|
defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_XTS 1
|
||||||
|
#define MBEDTLS_CIPHER_MODE_XTS
|
||||||
|
#endif
|
||||||
|
#endif /* PSA_WANT_ALG_XTS */
|
||||||
|
|
||||||
|
#if defined(PSA_WANT_ALG_ECB_NO_PADDING)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_ECB_NO_PADDING 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
|
||||||
|
#if !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_NO_PADDING) || \
|
||||||
|
defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
|
||||||
|
#define MBEDTLS_CIPHER_MODE_CBC
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_CBC_NO_PADDING 1
|
||||||
|
#endif
|
||||||
|
#endif /* PSA_WANT_ALG_CBC_NO_PADDING */
|
||||||
|
|
||||||
|
#if defined(PSA_WANT_ALG_CBC_PKCS7)
|
||||||
|
#if !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_PKCS7) || \
|
||||||
|
defined(PSA_HAVE_SOFT_BLOCK_CIPHER)
|
||||||
|
#define MBEDTLS_CIPHER_MODE_CBC
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_CBC_PKCS7 1
|
||||||
|
#define MBEDTLS_CIPHER_PADDING_PKCS7
|
||||||
|
#endif
|
||||||
|
#endif /* PSA_WANT_ALG_CBC_PKCS7 */
|
||||||
|
|
||||||
|
#if defined(PSA_WANT_ALG_CHACHA20_POLY1305)
|
||||||
|
#if defined(PSA_WANT_KEY_TYPE_CHACHA20)
|
||||||
|
#define MBEDTLS_CHACHAPOLY_C
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 1
|
||||||
|
#endif /* PSA_WANT_KEY_TYPE_CHACHA20 */
|
||||||
|
#endif /* PSA_WANT_ALG_CHACHA20_POLY1305 */
|
||||||
|
|
||||||
#else /* MBEDTLS_PSA_CRYPTO_CONFIG */
|
#else /* MBEDTLS_PSA_CRYPTO_CONFIG */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -328,6 +463,74 @@ extern "C" {
|
|||||||
#define PSA_WANT_ALG_SHA_512 1
|
#define PSA_WANT_ALG_SHA_512 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_AES_C)
|
||||||
|
#define PSA_WANT_KEY_TYPE_AES 1
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_AES 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_ARC4_C)
|
||||||
|
#define PSA_WANT_KEY_TYPE_ARC4 1
|
||||||
|
#define PSA_WANT_ALG_STREAM_CIPHER 1
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_ARC4 1
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_STREAM_CIPHER 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_CAMELLIA_C)
|
||||||
|
#define PSA_WANT_KEY_TYPE_CAMELLIA 1
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CAMELLIA 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_DES_C)
|
||||||
|
#define PSA_WANT_KEY_TYPE_DES 1
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_CHACHA20_C)
|
||||||
|
#define PSA_WANT_KEY_TYPE_CHACHA20 1
|
||||||
|
#define PSA_WANT_ALG_STREAM_CIPHER 1
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_KEY_TYPE_CHACHA20 1
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_STREAM_CIPHER 1
|
||||||
|
#if defined(MBEDTLS_CHACHAPOLY_C)
|
||||||
|
#define PSA_WANT_ALG_CHACHA20_POLY1305 1
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 1
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_CIPHER_MODE_CBC)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_CBC_NO_PADDING 1
|
||||||
|
#define PSA_WANT_ALG_CBC_NO_PADDING 1
|
||||||
|
#if defined(MBEDTLS_CIPHER_PADDING_PKCS7)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_CBC_PKCS7 1
|
||||||
|
#define PSA_WANT_ALG_CBC_PKCS7 1
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_AES_C) || defined(MBEDTLS_DES_C) || \
|
||||||
|
defined(MBEDTLS_CAMELLIA_C)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_ECB_NO_PADDING 1
|
||||||
|
#define PSA_WANT_ALG_ECB_NO_PADDING 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_CIPHER_MODE_CFB)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_CFB 1
|
||||||
|
#define PSA_WANT_ALG_CFB 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_CIPHER_MODE_CTR)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_CTR 1
|
||||||
|
#define PSA_WANT_ALG_CTR 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_CIPHER_MODE_OFB)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_OFB 1
|
||||||
|
#define PSA_WANT_ALG_OFB 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_CIPHER_MODE_XTS)
|
||||||
|
#define MBEDTLS_PSA_BUILTIN_ALG_XTS 1
|
||||||
|
#define PSA_WANT_ALG_XTS 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* MBEDTLS_PSA_CRYPTO_CONFIG */
|
#endif /* MBEDTLS_PSA_CRYPTO_CONFIG */
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -50,7 +50,13 @@
|
|||||||
#ifndef PSA_CRYPTO_CONFIG_H
|
#ifndef PSA_CRYPTO_CONFIG_H
|
||||||
#define PSA_CRYPTO_CONFIG_H
|
#define PSA_CRYPTO_CONFIG_H
|
||||||
|
|
||||||
|
#define PSA_WANT_ALG_CBC_NO_PADDING 1
|
||||||
|
#define PSA_WANT_ALG_CBC_PKCS7 1
|
||||||
|
#define PSA_WANT_ALG_CFB 1
|
||||||
|
#define PSA_WANT_ALG_CHACHA20_POLY1305 1
|
||||||
|
#define PSA_WANT_ALG_CTR 1
|
||||||
#define PSA_WANT_ALG_DETERMINISTIC_ECDSA 1
|
#define PSA_WANT_ALG_DETERMINISTIC_ECDSA 1
|
||||||
|
#define PSA_WANT_ALG_ECB_NO_PADDING 1
|
||||||
#define PSA_WANT_ALG_ECDH 1
|
#define PSA_WANT_ALG_ECDH 1
|
||||||
#define PSA_WANT_ALG_ECDSA 1
|
#define PSA_WANT_ALG_ECDSA 1
|
||||||
#define PSA_WANT_ALG_HKDF 1
|
#define PSA_WANT_ALG_HKDF 1
|
||||||
@ -58,6 +64,7 @@
|
|||||||
#define PSA_WANT_ALG_MD2 1
|
#define PSA_WANT_ALG_MD2 1
|
||||||
#define PSA_WANT_ALG_MD4 1
|
#define PSA_WANT_ALG_MD4 1
|
||||||
#define PSA_WANT_ALG_MD5 1
|
#define PSA_WANT_ALG_MD5 1
|
||||||
|
#define PSA_WANT_ALG_OFB 1
|
||||||
#define PSA_WANT_ALG_RIPEMD160 1
|
#define PSA_WANT_ALG_RIPEMD160 1
|
||||||
#define PSA_WANT_ALG_RSA_OAEP 1
|
#define PSA_WANT_ALG_RSA_OAEP 1
|
||||||
#define PSA_WANT_ALG_RSA_PKCS1V15_CRYPT 1
|
#define PSA_WANT_ALG_RSA_PKCS1V15_CRYPT 1
|
||||||
@ -68,10 +75,17 @@
|
|||||||
#define PSA_WANT_ALG_SHA_256 1
|
#define PSA_WANT_ALG_SHA_256 1
|
||||||
#define PSA_WANT_ALG_SHA_384 1
|
#define PSA_WANT_ALG_SHA_384 1
|
||||||
#define PSA_WANT_ALG_SHA_512 1
|
#define PSA_WANT_ALG_SHA_512 1
|
||||||
|
#define PSA_WANT_ALG_STREAM_CIPHER 1
|
||||||
#define PSA_WANT_ALG_TLS12_PRF 1
|
#define PSA_WANT_ALG_TLS12_PRF 1
|
||||||
#define PSA_WANT_ALG_TLS12_PSK_TO_MS 1
|
#define PSA_WANT_ALG_TLS12_PSK_TO_MS 1
|
||||||
|
#define PSA_WANT_ALG_XTS 1
|
||||||
#define PSA_WANT_KEY_TYPE_DERIVE 1
|
#define PSA_WANT_KEY_TYPE_DERIVE 1
|
||||||
#define PSA_WANT_KEY_TYPE_HMAC 1
|
#define PSA_WANT_KEY_TYPE_HMAC 1
|
||||||
|
#define PSA_WANT_KEY_TYPE_AES 1
|
||||||
|
#define PSA_WANT_KEY_TYPE_ARC4 1
|
||||||
|
#define PSA_WANT_KEY_TYPE_CAMELLIA 1
|
||||||
|
#define PSA_WANT_KEY_TYPE_CHACHA20 1
|
||||||
|
#define PSA_WANT_KEY_TYPE_DES 1
|
||||||
#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR 1
|
#define PSA_WANT_KEY_TYPE_ECC_KEY_PAIR 1
|
||||||
#define PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY 1
|
#define PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY 1
|
||||||
#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR 1
|
#define PSA_WANT_KEY_TYPE_RSA_KEY_PAIR 1
|
||||||
|
@ -495,31 +495,31 @@ static psa_status_t validate_unstructured_key_bit_size( psa_key_type_t type,
|
|||||||
case PSA_KEY_TYPE_HMAC:
|
case PSA_KEY_TYPE_HMAC:
|
||||||
case PSA_KEY_TYPE_DERIVE:
|
case PSA_KEY_TYPE_DERIVE:
|
||||||
break;
|
break;
|
||||||
#if defined(MBEDTLS_AES_C)
|
#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_AES)
|
||||||
case PSA_KEY_TYPE_AES:
|
case PSA_KEY_TYPE_AES:
|
||||||
if( bits != 128 && bits != 192 && bits != 256 )
|
if( bits != 128 && bits != 192 && bits != 256 )
|
||||||
return( PSA_ERROR_INVALID_ARGUMENT );
|
return( PSA_ERROR_INVALID_ARGUMENT );
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
#if defined(MBEDTLS_CAMELLIA_C)
|
#if defined(MBEDTLS_PSA_BUILTIN_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 )
|
||||||
return( PSA_ERROR_INVALID_ARGUMENT );
|
return( PSA_ERROR_INVALID_ARGUMENT );
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
#if defined(MBEDTLS_DES_C)
|
#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES)
|
||||||
case PSA_KEY_TYPE_DES:
|
case PSA_KEY_TYPE_DES:
|
||||||
if( bits != 64 && bits != 128 && bits != 192 )
|
if( bits != 64 && bits != 128 && bits != 192 )
|
||||||
return( PSA_ERROR_INVALID_ARGUMENT );
|
return( PSA_ERROR_INVALID_ARGUMENT );
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
#if defined(MBEDTLS_ARC4_C)
|
#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ARC4)
|
||||||
case PSA_KEY_TYPE_ARC4:
|
case PSA_KEY_TYPE_ARC4:
|
||||||
if( bits < 8 || bits > 2048 )
|
if( bits < 8 || bits > 2048 )
|
||||||
return( PSA_ERROR_INVALID_ARGUMENT );
|
return( PSA_ERROR_INVALID_ARGUMENT );
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
#if defined(MBEDTLS_CHACHA20_C)
|
#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_CHACHA20)
|
||||||
case PSA_KEY_TYPE_CHACHA20:
|
case PSA_KEY_TYPE_CHACHA20:
|
||||||
if( bits != 256 )
|
if( bits != 256 )
|
||||||
return( PSA_ERROR_INVALID_ARGUMENT );
|
return( PSA_ERROR_INVALID_ARGUMENT );
|
||||||
@ -3875,7 +3875,7 @@ static psa_status_t psa_cipher_setup( psa_cipher_operation_t *operation,
|
|||||||
if( ret != 0 )
|
if( ret != 0 )
|
||||||
goto exit;
|
goto exit;
|
||||||
|
|
||||||
#if defined(MBEDTLS_DES_C)
|
#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES)
|
||||||
if( slot->attr.type == PSA_KEY_TYPE_DES && key_bits == 128 )
|
if( slot->attr.type == PSA_KEY_TYPE_DES && key_bits == 128 )
|
||||||
{
|
{
|
||||||
/* Two-key Triple-DES is 3-key Triple-DES with K1=K3 */
|
/* Two-key Triple-DES is 3-key Triple-DES with K1=K3 */
|
||||||
@ -3896,7 +3896,8 @@ static psa_status_t psa_cipher_setup( psa_cipher_operation_t *operation,
|
|||||||
if( ret != 0 )
|
if( ret != 0 )
|
||||||
goto exit;
|
goto exit;
|
||||||
|
|
||||||
#if defined(MBEDTLS_CIPHER_MODE_WITH_PADDING)
|
#if defined(MBEDTLS_PSA_BUILTIN_ALG_CBC_NO_PADDING) || \
|
||||||
|
defined(MBEDTLS_PSA_BUILTIN_ALG_CBC_PKCS7)
|
||||||
switch( alg )
|
switch( alg )
|
||||||
{
|
{
|
||||||
case PSA_ALG_CBC_NO_PADDING:
|
case PSA_ALG_CBC_NO_PADDING:
|
||||||
@ -3914,7 +3915,7 @@ static psa_status_t psa_cipher_setup( psa_cipher_operation_t *operation,
|
|||||||
}
|
}
|
||||||
if( ret != 0 )
|
if( ret != 0 )
|
||||||
goto exit;
|
goto exit;
|
||||||
#endif //MBEDTLS_CIPHER_MODE_WITH_PADDING
|
#endif /* MBEDTLS_PSA_BUILTIN_ALG_CBC_NO_PADDING || MBEDTLS_PSA_BUILTIN_ALG_CBC_PKCS7 */
|
||||||
|
|
||||||
operation->block_size = ( PSA_ALG_IS_STREAM_CIPHER( alg ) ? 1 :
|
operation->block_size = ( PSA_ALG_IS_STREAM_CIPHER( alg ) ? 1 :
|
||||||
PSA_BLOCK_CIPHER_BLOCK_LENGTH( slot->attr.type ) );
|
PSA_BLOCK_CIPHER_BLOCK_LENGTH( slot->attr.type ) );
|
||||||
@ -3923,7 +3924,7 @@ static psa_status_t psa_cipher_setup( psa_cipher_operation_t *operation,
|
|||||||
{
|
{
|
||||||
operation->iv_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH( slot->attr.type );
|
operation->iv_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH( slot->attr.type );
|
||||||
}
|
}
|
||||||
#if defined(MBEDTLS_CHACHA20_C)
|
#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_CHACHA20)
|
||||||
else
|
else
|
||||||
if( alg == PSA_ALG_STREAM_CIPHER && slot->attr.type == PSA_KEY_TYPE_CHACHA20 )
|
if( alg == PSA_ALG_STREAM_CIPHER && slot->attr.type == PSA_KEY_TYPE_CHACHA20 )
|
||||||
operation->iv_size = 12;
|
operation->iv_size = 12;
|
||||||
@ -5062,7 +5063,7 @@ exit:
|
|||||||
return( status );
|
return( status );
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(MBEDTLS_DES_C)
|
#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES)
|
||||||
static void psa_des_set_key_parity( uint8_t *data, size_t data_size )
|
static void psa_des_set_key_parity( uint8_t *data, size_t data_size )
|
||||||
{
|
{
|
||||||
if( data_size >= 8 )
|
if( data_size >= 8 )
|
||||||
@ -5072,7 +5073,7 @@ static void psa_des_set_key_parity( uint8_t *data, size_t data_size )
|
|||||||
if( data_size >= 24 )
|
if( data_size >= 24 )
|
||||||
mbedtls_des_key_set_parity( data + 16 );
|
mbedtls_des_key_set_parity( data + 16 );
|
||||||
}
|
}
|
||||||
#endif /* MBEDTLS_DES_C */
|
#endif /* MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES */
|
||||||
|
|
||||||
static psa_status_t psa_generate_derived_key_internal(
|
static psa_status_t psa_generate_derived_key_internal(
|
||||||
psa_key_slot_t *slot,
|
psa_key_slot_t *slot,
|
||||||
@ -5094,10 +5095,10 @@ static psa_status_t psa_generate_derived_key_internal(
|
|||||||
status = psa_key_derivation_output_bytes( operation, data, bytes );
|
status = psa_key_derivation_output_bytes( operation, data, bytes );
|
||||||
if( status != PSA_SUCCESS )
|
if( status != PSA_SUCCESS )
|
||||||
goto exit;
|
goto exit;
|
||||||
#if defined(MBEDTLS_DES_C)
|
#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES)
|
||||||
if( slot->attr.type == PSA_KEY_TYPE_DES )
|
if( slot->attr.type == PSA_KEY_TYPE_DES )
|
||||||
psa_des_set_key_parity( data, bytes );
|
psa_des_set_key_parity( data, bytes );
|
||||||
#endif /* MBEDTLS_DES_C */
|
#endif /* MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES */
|
||||||
|
|
||||||
status = psa_allocate_buffer_to_slot( slot, bytes );
|
status = psa_allocate_buffer_to_slot( slot, bytes );
|
||||||
if( status != PSA_SUCCESS )
|
if( status != PSA_SUCCESS )
|
||||||
@ -6028,10 +6029,10 @@ psa_status_t psa_generate_key_internal(
|
|||||||
if( status != PSA_SUCCESS )
|
if( status != PSA_SUCCESS )
|
||||||
return( status );
|
return( status );
|
||||||
|
|
||||||
#if defined(MBEDTLS_DES_C)
|
#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES)
|
||||||
if( type == PSA_KEY_TYPE_DES )
|
if( type == PSA_KEY_TYPE_DES )
|
||||||
psa_des_set_key_parity( key_buffer, key_buffer_size );
|
psa_des_set_key_parity( key_buffer, key_buffer_size );
|
||||||
#endif /* MBEDTLS_DES_C */
|
#endif /* MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES */
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user