phoenix_client_ssl v0.5.0 PublicKeySubject

Utility to extract the subject / its CN from Certificates.

Link to this section Summary

Functions

Returns the common name.

Returns the email address.

Returns the certificates subject.

Link to this section Functions

Link to this function

common_name(cert_or_rdn_sequence)

Returns the common name.

Examples

iex> PublicKeySubject.common_name({:rdnSequence,
...>                               [[{:AttributeTypeAndValue, {2, 5, 4, 3}, {:printableString, "foo.bar.baz"}}],
...>                                [{:AttributeTypeAndValue, {2, 5, 4, 6}, 'CH'}]]})
"foo.bar.baz"

iex> der_path = Path.join([Application.app_dir(:phoenix_client_ssl), "priv", "test", "foo.bar.baz.der"])
iex> PublicKeySubject.common_name(File.read!(der_path))
"foo.bar.baz"
Link to this function

email_address(cert_or_rdn_sequence)

Returns the email address.

Examples

iex> PublicKeySubject.email_address({:rdnSequence,
...>                               [[{:AttributeTypeAndValue, {2, 5, 4, 3}, {:printableString, "foo.bar.baz"}}],
...>                                [{:AttributeTypeAndValue, {2, 5, 4, 6}, 'CH'}],
...>                                [{:AttributeTypeAndValue, {1, 2, 840, 113_549, 1, 9, 1}, 'jonatan@maennchen.ch'}]]})
"jonatan@maennchen.ch"

iex> der_path = Path.join([Application.app_dir(:phoenix_client_ssl), "priv", "test", "foo.bar.baz.der"])
iex> PublicKeySubject.email_address(File.read!(der_path))
"jonatan@maennchen.ch"
Link to this function

pkix_subject_id(cert)

Returns the certificates subject.

Examples

iex> der_path = Path.join([Application.app_dir(:phoenix_client_ssl), "priv", "test", "foo.bar.baz.der"])
iex> PublicKeySubject.pkix_subject_id(File.read!(der_path))
{:rdnSequence,
 [[{:AttributeTypeAndValue, {2, 5, 4, 3},
    {:utf8String, "foo.bar.baz"}}],
  [{:AttributeTypeAndValue, {2, 5, 4, 6}, 'CH'}],
  [{:AttributeTypeAndValue, {1, 2, 840, 113549, 1, 9, 1},
    'jonatan@maennchen.ch'}]]}