Create auxiliary function for repeated code
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
diff --git a/tests/suites/test_suite_pk.function b/tests/suites/test_suite_pk.function
index 0711a93..14d049d 100644
--- a/tests/suites/test_suite_pk.function
+++ b/tests/suites/test_suite_pk.function
@@ -135,6 +135,32 @@
return -1;
}
+#if defined(MBEDTLS_PSA_CRYPTO_C)
+static psa_key_usage_t pk_get_psa_attributes_implied_usage(
+ psa_key_usage_t expected_usage)
+{
+ /* Usage implied universally */
+ if (expected_usage & PSA_KEY_USAGE_SIGN_HASH) {
+ expected_usage |= PSA_KEY_USAGE_SIGN_MESSAGE;
+ }
+ if (expected_usage & PSA_KEY_USAGE_VERIFY_HASH) {
+ expected_usage |= PSA_KEY_USAGE_VERIFY_MESSAGE;
+ }
+ /* Usage implied by mbedtls_pk_get_psa_attributes() */
+ if (expected_usage & PSA_KEY_USAGE_SIGN_HASH) {
+ expected_usage |= PSA_KEY_USAGE_VERIFY_HASH;
+ }
+ if (expected_usage & PSA_KEY_USAGE_SIGN_MESSAGE) {
+ expected_usage |= PSA_KEY_USAGE_VERIFY_MESSAGE;
+ }
+ if (expected_usage & PSA_KEY_USAGE_DECRYPT) {
+ expected_usage |= PSA_KEY_USAGE_ENCRYPT;
+ }
+ expected_usage |= PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_COPY;
+ return expected_usage;
+}
+#endif /* MBEDTLS_PSA_CRYPTO_C */
+
#if defined(MBEDTLS_RSA_C)
int mbedtls_rsa_decrypt_func(void *ctx, size_t *olen,
const unsigned char *input, unsigned char *output,
@@ -1724,26 +1750,7 @@
psa_set_key_id(&attributes, key_id);
psa_set_key_lifetime(&attributes, lifetime);
psa_set_key_enrollment_algorithm(&attributes, 42);
-
- psa_key_usage_t expected_usage = usage;
- /* Usage implied universally */
- if (expected_usage & PSA_KEY_USAGE_SIGN_HASH) {
- expected_usage |= PSA_KEY_USAGE_SIGN_MESSAGE;
- }
- if (expected_usage & PSA_KEY_USAGE_VERIFY_HASH) {
- expected_usage |= PSA_KEY_USAGE_VERIFY_MESSAGE;
- }
- /* Usage implied by mbedtls_pk_get_psa_attributes() */
- if (expected_usage & PSA_KEY_USAGE_SIGN_HASH) {
- expected_usage |= PSA_KEY_USAGE_VERIFY_HASH;
- }
- if (expected_usage & PSA_KEY_USAGE_SIGN_MESSAGE) {
- expected_usage |= PSA_KEY_USAGE_VERIFY_MESSAGE;
- }
- if (expected_usage & PSA_KEY_USAGE_DECRYPT) {
- expected_usage |= PSA_KEY_USAGE_ENCRYPT;
- }
- expected_usage |= PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_COPY;
+ psa_key_usage_t expected_usage = pk_get_psa_attributes_implied_usage(usage);
#if defined(MBEDTLS_ECDSA_DETERMINISTIC)
/* When the resulting algorithm is ECDSA, the compile-time configuration
@@ -1795,26 +1802,7 @@
if (!to_pair) {
expected_psa_type = PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR(expected_psa_type);
}
-
- psa_key_usage_t expected_usage = usage;
- /* Usage implied universally */
- if (expected_usage & PSA_KEY_USAGE_SIGN_HASH) {
- expected_usage |= PSA_KEY_USAGE_SIGN_MESSAGE;
- }
- if (expected_usage & PSA_KEY_USAGE_VERIFY_HASH) {
- expected_usage |= PSA_KEY_USAGE_VERIFY_MESSAGE;
- }
- /* Usage implied by mbedtls_pk_get_psa_attributes() */
- if (expected_usage & PSA_KEY_USAGE_SIGN_HASH) {
- expected_usage |= PSA_KEY_USAGE_VERIFY_HASH;
- }
- if (expected_usage & PSA_KEY_USAGE_SIGN_MESSAGE) {
- expected_usage |= PSA_KEY_USAGE_VERIFY_MESSAGE;
- }
- if (expected_usage & PSA_KEY_USAGE_DECRYPT) {
- expected_usage |= PSA_KEY_USAGE_ENCRYPT;
- }
- expected_usage |= PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_COPY;
+ psa_key_usage_t expected_usage = pk_get_psa_attributes_implied_usage(usage);
TEST_EQUAL(mbedtls_pk_get_psa_attributes(&pk, usage, &attributes), 0);