diff options
author | Ingela Anderton Andin <ingela@erlang.org> | 2022-02-07 16:33:42 +0100 |
---|---|---|
committer | Ingela Anderton Andin <ingela@erlang.org> | 2022-02-28 09:50:49 +0100 |
commit | 8806ff232c2bd094f3ef19f15560d60485f94853 (patch) | |
tree | 1b06b7d1969a2ffb7488345773545036d45ac284 | |
parent | bf7081f32a19ee457f0c0c685b89ab1215a3ec53 (diff) | |
download | erlang-8806ff232c2bd094f3ef19f15560d60485f94853.tar.gz |
public_key: Make pkix_normalize_name/1 also handle der_encoded() input
-rw-r--r-- | lib/public_key/src/pubkey_cert.erl | 4 | ||||
-rw-r--r-- | lib/public_key/src/public_key.erl | 8 |
2 files changed, 8 insertions, 4 deletions
diff --git a/lib/public_key/src/pubkey_cert.erl b/lib/public_key/src/pubkey_cert.erl index 9e3cc52d24..f3796736a1 100644 --- a/lib/public_key/src/pubkey_cert.erl +++ b/lib/public_key/src/pubkey_cert.erl @@ -244,12 +244,12 @@ validate_extensions(OtpCert, ValidationState, UserState, VerifyFun) -> {ValidationState, UserState} end. %%-------------------------------------------------------------------- --spec normalize_general_name({rdnSequence, term()}) -> {rdnSequence, term()}. +-spec normalize_general_name({rdnSequence, term()}| binary()) -> {rdnSequence, term()}. %% %% Description: Normalizes a general name so that it can be easily %% compared to another genral name. %%-------------------------------------------------------------------- -normalize_general_name({rdnSequence, Issuer}) -> +normalize_general_name({rdnSequence, Issuer}) -> NormIssuer = do_normalize_general_name(Issuer), {rdnSequence, NormIssuer}. diff --git a/lib/public_key/src/public_key.erl b/lib/public_key/src/public_key.erl index b3b830b3c8..dc64a05ca4 100644 --- a/lib/public_key/src/public_key.erl +++ b/lib/public_key/src/public_key.erl @@ -767,7 +767,7 @@ compute_key(PubKey, PrivKey, #'DHParameter'{prime = P, base = G}) -> when AlgorithmId :: oid(), %% Relevant dsa digest type is a subset of rsa_digest_type() DigestType :: crypto:rsa_digest_type() | none, - SignatureType :: rsa | dsa | ecdsa . + SignatureType :: rsa | dsa | ecdsa | eddsa. %% Description: %%-------------------------------------------------------------------- pkix_sign_types(?sha1WithRSAEncryption) -> @@ -1121,12 +1121,16 @@ pkix_crl_issuer(#'CertificateList'{} = CRL) -> %%-------------------------------------------------------------------- -spec pkix_normalize_name(Issuer) -> Normalized - when Issuer :: issuer_name(), + when Issuer :: issuer_name() | der_encoded(), Normalized :: issuer_name() . %% %% Description: Normalizes a issuer name so that it can be easily %% compared to another issuer name. %%-------------------------------------------------------------------- +pkix_normalize_name(Issuer) when is_binary(Issuer) -> + PlainGenName = der_decode('Name', Issuer), + GenName = pubkey_cert_records:transform(PlainGenName, decode), + pkix_normalize_name(GenName); pkix_normalize_name(Issuer) -> pubkey_cert:normalize_general_name(Issuer). |