mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-03-03 10:13:40 +00:00
Merge pull request #7861 from mpg/cleanup-pk-parse
cleanup PK parse - part 1
This commit is contained in:
commit
2bf0870e25
@ -119,14 +119,19 @@ static inline mbedtls_ecp_group_id mbedtls_pk_get_group_id(const mbedtls_pk_cont
|
|||||||
#endif /* MBEDTLS_ECP_HAVE_CURVE25519 || MBEDTLS_ECP_DP_CURVE448 */
|
#endif /* MBEDTLS_ECP_HAVE_CURVE25519 || MBEDTLS_ECP_DP_CURVE448 */
|
||||||
#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
|
#endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
|
||||||
|
|
||||||
#if defined(MBEDTLS_TEST_HOOKS)
|
/* Helper for (deterministic) ECDSA */
|
||||||
|
#if defined(MBEDTLS_ECDSA_DETERMINISTIC)
|
||||||
|
#define MBEDTLS_PK_PSA_ALG_ECDSA_MAYBE_DET PSA_ALG_DETERMINISTIC_ECDSA
|
||||||
|
#else
|
||||||
|
#define MBEDTLS_PK_PSA_ALG_ECDSA_MAYBE_DET PSA_ALG_ECDSA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_TEST_HOOKS)
|
||||||
MBEDTLS_STATIC_TESTABLE int mbedtls_pk_parse_key_pkcs8_encrypted_der(
|
MBEDTLS_STATIC_TESTABLE int mbedtls_pk_parse_key_pkcs8_encrypted_der(
|
||||||
mbedtls_pk_context *pk,
|
mbedtls_pk_context *pk,
|
||||||
unsigned char *key, size_t keylen,
|
unsigned char *key, size_t keylen,
|
||||||
const unsigned char *pwd, size_t pwdlen,
|
const unsigned char *pwd, size_t pwdlen,
|
||||||
int (*f_rng)(void *, unsigned char *, size_t), void *p_rng);
|
int (*f_rng)(void *, unsigned char *, size_t), void *p_rng);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* MBEDTLS_PK_INTERNAL_H */
|
#endif /* MBEDTLS_PK_INTERNAL_H */
|
||||||
|
@ -976,16 +976,17 @@ static int ecdsa_sign_psa(mbedtls_svc_key_id_t key_id, mbedtls_md_type_t md_alg,
|
|||||||
psa_status_t status;
|
psa_status_t status;
|
||||||
psa_algorithm_t psa_sig_md;
|
psa_algorithm_t psa_sig_md;
|
||||||
psa_key_attributes_t key_attr = PSA_KEY_ATTRIBUTES_INIT;
|
psa_key_attributes_t key_attr = PSA_KEY_ATTRIBUTES_INIT;
|
||||||
psa_algorithm_t alg;
|
psa_algorithm_t alg, alg2;
|
||||||
|
|
||||||
status = psa_get_key_attributes(key_id, &key_attr);
|
status = psa_get_key_attributes(key_id, &key_attr);
|
||||||
if (status != PSA_SUCCESS) {
|
if (status != PSA_SUCCESS) {
|
||||||
return PSA_PK_ECDSA_TO_MBEDTLS_ERR(status);
|
return PSA_PK_ECDSA_TO_MBEDTLS_ERR(status);
|
||||||
}
|
}
|
||||||
alg = psa_get_key_algorithm(&key_attr);
|
alg = psa_get_key_algorithm(&key_attr);
|
||||||
|
alg2 = psa_get_key_enrollment_algorithm(&key_attr);
|
||||||
psa_reset_key_attributes(&key_attr);
|
psa_reset_key_attributes(&key_attr);
|
||||||
|
|
||||||
if (PSA_ALG_IS_DETERMINISTIC_ECDSA(alg)) {
|
if (PSA_ALG_IS_DETERMINISTIC_ECDSA(alg) || PSA_ALG_IS_DETERMINISTIC_ECDSA(alg2)) {
|
||||||
psa_sig_md = PSA_ALG_DETERMINISTIC_ECDSA(mbedtls_md_psa_alg_from_type(md_alg));
|
psa_sig_md = PSA_ALG_DETERMINISTIC_ECDSA(mbedtls_md_psa_alg_from_type(md_alg));
|
||||||
} else {
|
} else {
|
||||||
psa_sig_md = PSA_ALG_ECDSA(mbedtls_md_psa_alg_from_type(md_alg));
|
psa_sig_md = PSA_ALG_ECDSA(mbedtls_md_psa_alg_from_type(md_alg));
|
||||||
@ -1037,13 +1038,8 @@ static int ecdsa_sign_wrap(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
|
|||||||
psa_ecc_family_t curve =
|
psa_ecc_family_t curve =
|
||||||
mbedtls_ecc_group_to_psa(ctx->grp.id, &curve_bits);
|
mbedtls_ecc_group_to_psa(ctx->grp.id, &curve_bits);
|
||||||
size_t key_len = PSA_BITS_TO_BYTES(curve_bits);
|
size_t key_len = PSA_BITS_TO_BYTES(curve_bits);
|
||||||
#if defined(MBEDTLS_ECDSA_DETERMINISTIC)
|
psa_algorithm_t psa_hash = mbedtls_md_psa_alg_from_type(md_alg);
|
||||||
psa_algorithm_t psa_sig_md =
|
psa_algorithm_t psa_sig_md = MBEDTLS_PK_PSA_ALG_ECDSA_MAYBE_DET(psa_hash);
|
||||||
PSA_ALG_DETERMINISTIC_ECDSA(mbedtls_md_psa_alg_from_type(md_alg));
|
|
||||||
#else
|
|
||||||
psa_algorithm_t psa_sig_md =
|
|
||||||
PSA_ALG_ECDSA(mbedtls_md_psa_alg_from_type(md_alg));
|
|
||||||
#endif
|
|
||||||
((void) f_rng);
|
((void) f_rng);
|
||||||
((void) p_rng);
|
((void) p_rng);
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user