diff --git a/include/psa/crypto.h b/include/psa/crypto.h index 97819b74f..73cf7bd27 100644 --- a/include/psa/crypto.h +++ b/include/psa/crypto.h @@ -317,6 +317,7 @@ typedef uint32_t psa_algorithm_t; #define PSA_ALG_CFB_BASE ((psa_algorithm_t)0x04000002) #define PSA_ALG_OFB_BASE ((psa_algorithm_t)0x04000003) #define PSA_ALG_XTS_BASE ((psa_algorithm_t)0x04000004) +#define PSA_ALG_ECB_BASE ((psa_algorithm_t)0x04000005) #define PSA_ALG_STREAM_CIPHER ((psa_algorithm_t)0x04800000) #define PSA_ALG_CTR ((psa_algorithm_t)0x04800001) #define PSA_ALG_ARC4 ((psa_algorithm_t)0x04800002) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index d349d1957..37befc0e5 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -880,13 +880,14 @@ static const mbedtls_cipher_info_t *mbedtls_cipher_info_from_psa( if( PSA_ALG_IS_CIPHER( alg ) || PSA_ALG_IS_AEAD( alg ) ) { - if( PSA_ALG_IS_BLOCK_CIPHER( alg ) ) - alg &= ~PSA_ALG_BLOCK_CIPHER_MODE_MASK; switch( alg ) { case PSA_ALG_STREAM_CIPHER: mode = MBEDTLS_MODE_STREAM; break; + case PSA_ALG_ECB_BASE: + mode = MBEDTLS_MODE_ECB; + break; case PSA_ALG_CBC_BASE: mode = MBEDTLS_MODE_CBC; break;