mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-02-15 06:40:48 +00:00
Test the block size for symmetric keys
Also insist on their category. Fix a missing implementation of PSA_BLOCK_CIPHER_BLOCK_SIZE for ChaCha20.
This commit is contained in:
parent
92f2da9d67
commit
f8210f2bd5
@ -604,6 +604,7 @@
|
|||||||
(type) == PSA_KEY_TYPE_DES ? 8 : \
|
(type) == PSA_KEY_TYPE_DES ? 8 : \
|
||||||
(type) == PSA_KEY_TYPE_CAMELLIA ? 16 : \
|
(type) == PSA_KEY_TYPE_CAMELLIA ? 16 : \
|
||||||
(type) == PSA_KEY_TYPE_ARC4 ? 1 : \
|
(type) == PSA_KEY_TYPE_ARC4 ? 1 : \
|
||||||
|
(type) == PSA_KEY_TYPE_CHACHA20 ? 1 : \
|
||||||
0)
|
0)
|
||||||
|
|
||||||
/** Vendor-defined algorithm flag.
|
/** Vendor-defined algorithm flag.
|
||||||
|
@ -102,6 +102,8 @@ class Inputs:
|
|||||||
# Any function ending in _algorithm also gets added to
|
# Any function ending in _algorithm also gets added to
|
||||||
# self.algorithms.
|
# self.algorithms.
|
||||||
'key_type': [self.key_types],
|
'key_type': [self.key_types],
|
||||||
|
'block_cipher_key_type': [self.key_types],
|
||||||
|
'stream_cipher_key_type': [self.key_types],
|
||||||
'ecc_key_types': [self.ecc_curves],
|
'ecc_key_types': [self.ecc_curves],
|
||||||
'dh_key_types': [self.dh_groups],
|
'dh_key_types': [self.dh_groups],
|
||||||
'hash_algorithm': [self.hash_algorithms],
|
'hash_algorithm': [self.hash_algorithms],
|
||||||
|
@ -315,25 +315,25 @@ key_type:PSA_KEY_TYPE_HMAC:KEY_TYPE_IS_UNSTRUCTURED
|
|||||||
Key type: secret for key derivation
|
Key type: secret for key derivation
|
||||||
key_type:PSA_KEY_TYPE_DERIVE:KEY_TYPE_IS_UNSTRUCTURED
|
key_type:PSA_KEY_TYPE_DERIVE:KEY_TYPE_IS_UNSTRUCTURED
|
||||||
|
|
||||||
Key type: AES
|
Block cipher key type: AES
|
||||||
depends_on:MBEDTLS_AES_C
|
depends_on:MBEDTLS_AES_C
|
||||||
key_type:PSA_KEY_TYPE_AES:KEY_TYPE_IS_UNSTRUCTURED
|
block_cipher_key_type:PSA_KEY_TYPE_AES:16
|
||||||
|
|
||||||
Key type: DES
|
Block cipher key type: DES
|
||||||
depends_on:MBEDTLS_DES_C
|
depends_on:MBEDTLS_DES_C
|
||||||
key_type:PSA_KEY_TYPE_DES:KEY_TYPE_IS_UNSTRUCTURED
|
block_cipher_key_type:PSA_KEY_TYPE_DES:8
|
||||||
|
|
||||||
Key type: Camellia
|
Block cipher key type: Camellia
|
||||||
depends_on:MBEDTLS_CAMELLIA_C
|
depends_on:MBEDTLS_CAMELLIA_C
|
||||||
key_type:PSA_KEY_TYPE_CAMELLIA:KEY_TYPE_IS_UNSTRUCTURED
|
block_cipher_key_type:PSA_KEY_TYPE_CAMELLIA:16
|
||||||
|
|
||||||
Key type: ARC4
|
Stream cipher key type: ARC4
|
||||||
depends_on:MBEDTLS_ARC4_C
|
depends_on:MBEDTLS_ARC4_C
|
||||||
key_type:PSA_KEY_TYPE_ARC4:KEY_TYPE_IS_UNSTRUCTURED
|
stream_cipher_key_type:PSA_KEY_TYPE_ARC4
|
||||||
|
|
||||||
Key type: ChaCha20
|
Stream cipher key type: ChaCha20
|
||||||
depends_on:MBEDTLS_CHACHA20_C
|
depends_on:MBEDTLS_CHACHA20_C
|
||||||
key_type:PSA_KEY_TYPE_CHACHA20:KEY_TYPE_IS_UNSTRUCTURED
|
stream_cipher_key_type:PSA_KEY_TYPE_CHACHA20
|
||||||
|
|
||||||
Key type: RSA public key
|
Key type: RSA public key
|
||||||
depends_on:MBEDTLS_RSA_C
|
depends_on:MBEDTLS_RSA_C
|
||||||
|
@ -449,6 +449,33 @@ void key_type( int type_arg, int classification_flags )
|
|||||||
}
|
}
|
||||||
/* END_CASE */
|
/* END_CASE */
|
||||||
|
|
||||||
|
/* BEGIN_CASE */
|
||||||
|
void block_cipher_key_type( int type_arg, int block_size_arg )
|
||||||
|
{
|
||||||
|
psa_key_type_t type = type_arg;
|
||||||
|
size_t block_size = block_size_arg;
|
||||||
|
|
||||||
|
test_key_type( type_arg, KEY_TYPE_IS_UNSTRUCTURED );
|
||||||
|
|
||||||
|
TEST_EQUAL( type & PSA_KEY_TYPE_CATEGORY_MASK,
|
||||||
|
PSA_KEY_TYPE_CATEGORY_SYMMETRIC );
|
||||||
|
TEST_EQUAL( PSA_BLOCK_CIPHER_BLOCK_SIZE( type ), block_size );
|
||||||
|
}
|
||||||
|
/* END_CASE */
|
||||||
|
|
||||||
|
/* BEGIN_CASE */
|
||||||
|
void stream_cipher_key_type( int type_arg )
|
||||||
|
{
|
||||||
|
psa_key_type_t type = type_arg;
|
||||||
|
|
||||||
|
test_key_type( type_arg, KEY_TYPE_IS_UNSTRUCTURED );
|
||||||
|
|
||||||
|
TEST_EQUAL( type & PSA_KEY_TYPE_CATEGORY_MASK,
|
||||||
|
PSA_KEY_TYPE_CATEGORY_SYMMETRIC );
|
||||||
|
TEST_EQUAL( PSA_BLOCK_CIPHER_BLOCK_SIZE( type ), 1 );
|
||||||
|
}
|
||||||
|
/* END_CASE */
|
||||||
|
|
||||||
/* BEGIN_CASE */
|
/* BEGIN_CASE */
|
||||||
void ecc_key_types( int curve_arg, int curve_bits_arg )
|
void ecc_key_types( int curve_arg, int curve_bits_arg )
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user