mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-04-16 08:42:50 +00:00
Add PSA_ALG_IS_HASH_AND_SIGN to the metadata tests
The status of signature wildcards with respect to PSA_ALG_IS_HASH_AND_SIGN is unclear in the specification. A wildcard is usually instantiated with a specific hash, making the implementation hash-and-sign, but it could also be instantiated with a non-hash-and-sign algorithm. For the time being, go with what's currently implemented, which is that they are considered hash-and-sign. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
parent
f2fe31ab4e
commit
4977e9fe64
@ -200,15 +200,15 @@ asymmetric_signature_algorithm:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:ALG_IS_RSA_PKCS1V15
|
|||||||
|
|
||||||
Asymmetric signature: RSA PKCS#1 v1.5 SHA-256
|
Asymmetric signature: RSA PKCS#1 v1.5 SHA-256
|
||||||
depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256
|
depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256
|
||||||
asymmetric_signature_algorithm:PSA_ALG_RSA_PKCS1V15_SIGN( PSA_ALG_SHA_256 ):ALG_IS_RSA_PKCS1V15_SIGN | ALG_IS_SIGN_HASH
|
asymmetric_signature_algorithm:PSA_ALG_RSA_PKCS1V15_SIGN( PSA_ALG_SHA_256 ):ALG_IS_RSA_PKCS1V15_SIGN | ALG_IS_SIGN_HASH | ALG_IS_HASH_AND_SIGN
|
||||||
|
|
||||||
Asymmetric signature: RSA PSS SHA-256
|
Asymmetric signature: RSA PSS SHA-256
|
||||||
depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256
|
depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256
|
||||||
asymmetric_signature_algorithm:PSA_ALG_RSA_PSS( PSA_ALG_SHA_256 ):ALG_IS_RSA_PSS | ALG_IS_RSA_PSS_STANDARD_SALT | ALG_IS_SIGN_HASH
|
asymmetric_signature_algorithm:PSA_ALG_RSA_PSS( PSA_ALG_SHA_256 ):ALG_IS_RSA_PSS | ALG_IS_RSA_PSS_STANDARD_SALT | ALG_IS_SIGN_HASH | ALG_IS_HASH_AND_SIGN
|
||||||
|
|
||||||
Asymmetric signature: RSA PSS-any-salt SHA-256
|
Asymmetric signature: RSA PSS-any-salt SHA-256
|
||||||
depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256
|
depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256
|
||||||
asymmetric_signature_algorithm:PSA_ALG_RSA_PSS_ANY_SALT( PSA_ALG_SHA_256 ):ALG_IS_RSA_PSS | ALG_IS_RSA_PSS_ANY_SALT | ALG_IS_SIGN_HASH
|
asymmetric_signature_algorithm:PSA_ALG_RSA_PSS_ANY_SALT( PSA_ALG_SHA_256 ):ALG_IS_RSA_PSS | ALG_IS_RSA_PSS_ANY_SALT | ALG_IS_SIGN_HASH | ALG_IS_HASH_AND_SIGN
|
||||||
|
|
||||||
Asymmetric signature: randomized ECDSA (no hashing)
|
Asymmetric signature: randomized ECDSA (no hashing)
|
||||||
depends_on:PSA_WANT_ALG_ECDSA
|
depends_on:PSA_WANT_ALG_ECDSA
|
||||||
@ -216,11 +216,11 @@ asymmetric_signature_algorithm:PSA_ALG_ECDSA_ANY:ALG_IS_ECDSA | ALG_IS_RANDOMIZE
|
|||||||
|
|
||||||
Asymmetric signature: SHA-256 + randomized ECDSA
|
Asymmetric signature: SHA-256 + randomized ECDSA
|
||||||
depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256
|
depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256
|
||||||
asymmetric_signature_algorithm:PSA_ALG_ECDSA( PSA_ALG_SHA_256 ):ALG_IS_ECDSA | ALG_IS_RANDOMIZED_ECDSA | ALG_IS_SIGN_HASH
|
asymmetric_signature_algorithm:PSA_ALG_ECDSA( PSA_ALG_SHA_256 ):ALG_IS_ECDSA | ALG_IS_RANDOMIZED_ECDSA | ALG_IS_SIGN_HASH | ALG_IS_HASH_AND_SIGN
|
||||||
|
|
||||||
Asymmetric signature: SHA-256 + deterministic ECDSA using SHA-256
|
Asymmetric signature: SHA-256 + deterministic ECDSA using SHA-256
|
||||||
depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256
|
depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256
|
||||||
asymmetric_signature_algorithm:PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 ):ALG_IS_ECDSA | ALG_IS_DETERMINISTIC_ECDSA | ALG_ECDSA_IS_DETERMINISTIC | ALG_IS_SIGN_HASH
|
asymmetric_signature_algorithm:PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 ):ALG_IS_ECDSA | ALG_IS_DETERMINISTIC_ECDSA | ALG_ECDSA_IS_DETERMINISTIC | ALG_IS_SIGN_HASH | ALG_IS_HASH_AND_SIGN
|
||||||
|
|
||||||
Asymmetric signature: pure EdDSA
|
Asymmetric signature: pure EdDSA
|
||||||
depends_on:PSA_WANT_ALG_EDDSA
|
depends_on:PSA_WANT_ALG_EDDSA
|
||||||
@ -228,11 +228,11 @@ asymmetric_signature_algorithm:PSA_ALG_PURE_EDDSA:0
|
|||||||
|
|
||||||
Asymmetric signature: Ed25519ph
|
Asymmetric signature: Ed25519ph
|
||||||
depends_on:PSA_WANT_ALG_EDDSA
|
depends_on:PSA_WANT_ALG_EDDSA
|
||||||
asymmetric_signature_algorithm:PSA_ALG_ED25519PH:ALG_IS_HASH_EDDSA | ALG_IS_SIGN_HASH
|
asymmetric_signature_algorithm:PSA_ALG_ED25519PH:ALG_IS_HASH_EDDSA | ALG_IS_SIGN_HASH | ALG_IS_HASH_AND_SIGN
|
||||||
|
|
||||||
Asymmetric signature: Ed448ph
|
Asymmetric signature: Ed448ph
|
||||||
depends_on:PSA_WANT_ALG_EDDSA
|
depends_on:PSA_WANT_ALG_EDDSA
|
||||||
asymmetric_signature_algorithm:PSA_ALG_ED448PH:ALG_IS_HASH_EDDSA | ALG_IS_SIGN_HASH
|
asymmetric_signature_algorithm:PSA_ALG_ED448PH:ALG_IS_HASH_EDDSA | ALG_IS_SIGN_HASH | ALG_IS_HASH_AND_SIGN
|
||||||
|
|
||||||
Asymmetric signature: RSA PKCS#1 v1.5 with wildcard hash
|
Asymmetric signature: RSA PKCS#1 v1.5 with wildcard hash
|
||||||
depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN
|
depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN
|
||||||
|
@ -33,16 +33,17 @@
|
|||||||
#define ALG_IS_DETERMINISTIC_ECDSA ( 1u << 14 )
|
#define ALG_IS_DETERMINISTIC_ECDSA ( 1u << 14 )
|
||||||
#define ALG_IS_RANDOMIZED_ECDSA ( 1u << 15 )
|
#define ALG_IS_RANDOMIZED_ECDSA ( 1u << 15 )
|
||||||
#define ALG_IS_HASH_EDDSA ( 1u << 16 )
|
#define ALG_IS_HASH_EDDSA ( 1u << 16 )
|
||||||
#define ALG_IS_SIGN_HASH ( 1u << 17 )
|
#define ALG_IS_SIGN_HASH ( 1u << 17 )
|
||||||
#define ALG_IS_RSA_OAEP ( 1u << 18 )
|
#define ALG_IS_HASH_AND_SIGN ( 1u << 18 )
|
||||||
#define ALG_IS_HKDF ( 1u << 19 )
|
#define ALG_IS_RSA_OAEP ( 1u << 19 )
|
||||||
#define ALG_IS_FFDH ( 1u << 20 )
|
#define ALG_IS_HKDF ( 1u << 20 )
|
||||||
#define ALG_IS_ECDH ( 1u << 21 )
|
#define ALG_IS_FFDH ( 1u << 21 )
|
||||||
#define ALG_IS_WILDCARD ( 1u << 22 )
|
#define ALG_IS_ECDH ( 1u << 22 )
|
||||||
#define ALG_IS_RAW_KEY_AGREEMENT ( 1u << 23 )
|
#define ALG_IS_WILDCARD ( 1u << 23 )
|
||||||
#define ALG_IS_AEAD_ON_BLOCK_CIPHER ( 1u << 24 )
|
#define ALG_IS_RAW_KEY_AGREEMENT ( 1u << 24 )
|
||||||
#define ALG_IS_TLS12_PRF ( 1u << 25 )
|
#define ALG_IS_AEAD_ON_BLOCK_CIPHER ( 1u << 25 )
|
||||||
#define ALG_IS_TLS12_PSK_TO_MS ( 1u << 26 )
|
#define ALG_IS_TLS12_PRF ( 1u << 26 )
|
||||||
|
#define ALG_IS_TLS12_PSK_TO_MS ( 1u << 27 )
|
||||||
|
|
||||||
/* Flags for key type classification macros. There is a flag for every
|
/* Flags for key type classification macros. There is a flag for every
|
||||||
* key type classification macro PSA_KEY_TYPE_IS_xxx except for some that
|
* key type classification macro PSA_KEY_TYPE_IS_xxx except for some that
|
||||||
@ -51,7 +52,7 @@
|
|||||||
#define KEY_TYPE_IS_VENDOR_DEFINED ( 1u << 0 )
|
#define KEY_TYPE_IS_VENDOR_DEFINED ( 1u << 0 )
|
||||||
#define KEY_TYPE_IS_UNSTRUCTURED ( 1u << 1 )
|
#define KEY_TYPE_IS_UNSTRUCTURED ( 1u << 1 )
|
||||||
#define KEY_TYPE_IS_PUBLIC_KEY ( 1u << 2 )
|
#define KEY_TYPE_IS_PUBLIC_KEY ( 1u << 2 )
|
||||||
#define KEY_TYPE_IS_KEY_PAIR ( 1u << 3 )
|
#define KEY_TYPE_IS_KEY_PAIR ( 1u << 3 )
|
||||||
#define KEY_TYPE_IS_RSA ( 1u << 4 )
|
#define KEY_TYPE_IS_RSA ( 1u << 4 )
|
||||||
#define KEY_TYPE_IS_DSA ( 1u << 5 )
|
#define KEY_TYPE_IS_DSA ( 1u << 5 )
|
||||||
#define KEY_TYPE_IS_ECC ( 1u << 6 )
|
#define KEY_TYPE_IS_ECC ( 1u << 6 )
|
||||||
@ -115,6 +116,7 @@ void algorithm_classification( psa_algorithm_t alg, unsigned flags )
|
|||||||
TEST_CLASSIFICATION_MACRO( ALG_IS_RANDOMIZED_ECDSA, alg, flags );
|
TEST_CLASSIFICATION_MACRO( ALG_IS_RANDOMIZED_ECDSA, alg, flags );
|
||||||
TEST_CLASSIFICATION_MACRO( ALG_IS_HASH_EDDSA, alg, flags );
|
TEST_CLASSIFICATION_MACRO( ALG_IS_HASH_EDDSA, alg, flags );
|
||||||
TEST_CLASSIFICATION_MACRO( ALG_IS_SIGN_HASH, alg, flags );
|
TEST_CLASSIFICATION_MACRO( ALG_IS_SIGN_HASH, alg, flags );
|
||||||
|
TEST_CLASSIFICATION_MACRO( ALG_IS_HASH_AND_SIGN, alg, flags );
|
||||||
TEST_CLASSIFICATION_MACRO( ALG_IS_RSA_OAEP, alg, flags );
|
TEST_CLASSIFICATION_MACRO( ALG_IS_RSA_OAEP, alg, flags );
|
||||||
TEST_CLASSIFICATION_MACRO( ALG_IS_HKDF, alg, flags );
|
TEST_CLASSIFICATION_MACRO( ALG_IS_HKDF, alg, flags );
|
||||||
TEST_CLASSIFICATION_MACRO( ALG_IS_WILDCARD, alg, flags );
|
TEST_CLASSIFICATION_MACRO( ALG_IS_WILDCARD, alg, flags );
|
||||||
@ -490,7 +492,9 @@ void asymmetric_signature_algorithm( int alg_arg, int classification_flags )
|
|||||||
/* BEGIN_CASE */
|
/* BEGIN_CASE */
|
||||||
void asymmetric_signature_wildcard( int alg_arg, int classification_flags )
|
void asymmetric_signature_wildcard( int alg_arg, int classification_flags )
|
||||||
{
|
{
|
||||||
classification_flags |= ALG_IS_SIGN_HASH | ALG_IS_WILDCARD;
|
classification_flags |= ALG_IS_WILDCARD;
|
||||||
|
classification_flags |= ALG_IS_SIGN_HASH;
|
||||||
|
classification_flags |= ALG_IS_HASH_AND_SIGN;
|
||||||
test_asymmetric_signature_algorithm( alg_arg, classification_flags );
|
test_asymmetric_signature_algorithm( alg_arg, classification_flags );
|
||||||
/* Any failure of this test function comes from
|
/* Any failure of this test function comes from
|
||||||
* asymmetric_signature_algorithm. Pacify -Werror=unused-label. */
|
* asymmetric_signature_algorithm. Pacify -Werror=unused-label. */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user