diff options
| author | Ingela Anderton Andin <[email protected]> | 2016-06-01 15:31:20 +0200 | 
|---|---|---|
| committer | Ingela Anderton Andin <[email protected]> | 2016-06-03 10:22:38 +0200 | 
| commit | 4fc8fc6767abd3f09ca05503357a26acca006857 (patch) | |
| tree | 7de7636d4a7fea84fdad2a528aafed6a1a5f32ae | |
| parent | 5dab28556e2b0a93d172d4a7df911b65fb2d1829 (diff) | |
| download | otp-4fc8fc6767abd3f09ca05503357a26acca006857.tar.gz otp-4fc8fc6767abd3f09ca05503357a26acca006857.tar.bz2 otp-4fc8fc6767abd3f09ca05503357a26acca006857.zip  | |
public_key: Support more general name types
| -rw-r--r-- | lib/public_key/src/pubkey_cert.erl | 4 | ||||
| -rw-r--r-- | lib/public_key/test/public_key_SUITE.erl | 23 | 
2 files changed, 20 insertions, 7 deletions
diff --git a/lib/public_key/src/pubkey_cert.erl b/lib/public_key/src/pubkey_cert.erl index c5e6ffded5..f45f2c2e9a 100644 --- a/lib/public_key/src/pubkey_cert.erl +++ b/lib/public_key/src/pubkey_cert.erl @@ -547,7 +547,9 @@ cert_auth_key_id(#'AuthorityKeyIdentifier'{authorityCertIssuer =      {ok, {SerialNr, decode_general_name(AuthCertIssuer)}}.  decode_general_name([{directoryName, Issuer}]) -> -    normalize_general_name(Issuer). +    normalize_general_name(Issuer); +decode_general_name([{_, Issuer}]) -> +    Issuer.  %% Strip all leading and trailing spaces and make  %% sure there is no double spaces in between.  diff --git a/lib/public_key/test/public_key_SUITE.erl b/lib/public_key/test/public_key_SUITE.erl index 9c39c36be4..71a77efa2e 100644 --- a/lib/public_key/test/public_key_SUITE.erl +++ b/lib/public_key/test/public_key_SUITE.erl @@ -44,7 +44,7 @@ all() ->       encrypt_decrypt,       {group, sign_verify},       pkix, pkix_countryname, pkix_emailaddress, pkix_path_validation, -     pkix_iso_rsa_oid, pkix_iso_dsa_oid, pkix_crl]. +     pkix_iso_rsa_oid, pkix_iso_dsa_oid, pkix_crl, general_name].  groups() ->       [{pem_decode_encode, [], [dsa_pem, rsa_pem, ec_pem, encrypted_pem, @@ -644,11 +644,10 @@ pkix(Config) when is_list(Config) ->  		  [{'AttributeTypeAndValue', {2,5,4,3},{printableString," erlang  ca "}}]]},      VerifyStr = {rdnSequence,   		 [[{'AttributeTypeAndValue', {2,5,4,3},{printableString,"erlangca"}}], -		  [{'AttributeTypeAndValue', {2,5,4,3},{printableString,"erlang ca"}}]]}, -    VerifyStr = public_key:pkix_normalize_name(TestStr), - -    ok. - +		  [{'AttributeTypeAndValue', {2,5,4,3},{printableString,"erlang ca"}}]]},    +    VerifyStr = public_key:pkix_normalize_name(TestStr). +     +    %%--------------------------------------------------------------------  pkix_countryname() ->      [{doc, "Test workaround for certs that code x509countryname as utf8"}]. @@ -805,6 +804,18 @@ pkix_crl(Config) when is_list(Config) ->  			 reasons = asn1_NOVALUE,  			 distributionPoint =  Point} = public_key:pkix_dist_point(OTPIDPCert). +general_name() -> +    [{doc, "Test that decoding of general name filed may have other values" +      " than {rdnSequence,  Seq}"}]. + +general_name(Config) when is_list(Config) -> +    DummyRfc822Name = "CN=CNDummy, OU=OUDummy, O=ODummy, C=SE", +    {ok, {1,  DummyRfc822Name}} =  +	pubkey_cert:cert_auth_key_id( +	  #'AuthorityKeyIdentifier'{authorityCertIssuer =  +					[{rfc822Name, DummyRfc822Name}], +				    authorityCertSerialNumber =  +					1}).  %%--------------------------------------------------------------------  %% Internal functions ------------------------------------------------  %%--------------------------------------------------------------------  | 
