Introduce PSA_ALG_GET_HASH()

No need to introduce a specific macro for PBKDF2-HMAC when the PSA spec
already has a generic one.

Documentation from:
https://armmbed.github.io/mbed-crypto/html/api/ops/algorithms.html#c.PSA_ALG_GET_HASH
Implementation from:
https://armmbed.github.io/mbed-crypto/html/appendix/specdef_values.html

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
This commit is contained in:
Manuel Pégourié-Gonnard 2021-05-03 11:53:40 +02:00
parent 6983b4fffc
commit 40b81bf8f7

View file

@ -1776,8 +1776,6 @@
*/ */
#define PSA_ALG_IS_PBKDF2_HMAC(alg) \ #define PSA_ALG_IS_PBKDF2_HMAC(alg) \
(((alg) & ~PSA_ALG_HASH_MASK) == PSA_ALG_PBKDF2_HMAC_BASE) (((alg) & ~PSA_ALG_HASH_MASK) == PSA_ALG_PBKDF2_HMAC_BASE)
#define PSA_ALG_PBKDF2_HMAC_GET_HASH(hkdf_alg) \
(PSA_ALG_CATEGORY_HASH | ((hkdf_alg) & PSA_ALG_HASH_MASK))
/** The PBKDF2-AES-CMAC-PRF-128 password hashing / key stretching algorithm. /** The PBKDF2-AES-CMAC-PRF-128 password hashing / key stretching algorithm.
* *
@ -1927,6 +1925,18 @@
(alg & PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG) != 0 : \ (alg & PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG) != 0 : \
(alg) == PSA_ALG_ANY_HASH) (alg) == PSA_ALG_ANY_HASH)
/** Get the hash used by a composite algorithm.
*
* \param alg An algorithm identifier (value of type #psa_algorithm_t).
*
* \return The underlying hash algorithm if alg is a composite algorithm that
* uses a hash algorithm.
*
* \return #PSA_ALG_NONE if alg is not a composite algorithm that uses a hash.
*/
#define PSA_ALG_GET_HASH(alg) \
(((alg) & 0x000000ff) == 0 ? PSA_ALG_NONE : 0x02000000 | ((alg) & 0x000000ff))
/**@}*/ /**@}*/
/** \defgroup key_lifetimes Key lifetimes /** \defgroup key_lifetimes Key lifetimes