Class: R509::Cert::Extensions::SubjectAlternativeName
- Inherits:
-
OpenSSL::X509::Extension
- Object
- OpenSSL::X509::Extension
- R509::Cert::Extensions::SubjectAlternativeName
- Includes:
- GeneralNamesMixin, ValidationMixin
- Defined in:
- lib/r509/cert/extensions/subject_alternative_name.rb
Overview
RFC 5280 Description (see: www.ietf.org/rfc/rfc5280.txt)
The subject alternative name extension allows identities to be bound to the subject of the certificate. These identities may be included in addition to or in place of the identity in the subject field of the certificate. Defined options include an Internet electronic mail address, a DNS name, an IP address, and a Uniform Resource Identifier (URI). Other options exist, including completely local definitions. Multiple name forms, and multiple instances of each name form, MAY be included. Whenever such identities are to be bound into a certificate, the subject alternative name (or issuer alternative name) extension MUST be used; however, a DNS name MAY also be represented in the subject field using the domainComponent attribute as described in Section 4.1.2.4. Note that where such names are represented in the subject field implementations are not required to convert them into DNS names.
You can use this extension to parse an existing extension for easy access to the contents or create a new one.
Constant Summary
- OID =
friendly name for SAN OID
"subjectAltName"
Instance Attribute Summary collapse
Instance Method Summary collapse
-
#directory_names ⇒ Array<R509::Subject>
(also: #dir_names)
included
from GeneralNamesMixin
Directory names.
-
#dns_names ⇒ Array<String>
included
from GeneralNamesMixin
DNS names.
-
#initialize(arg) ⇒ SubjectAlternativeName
constructor
This method takes a hash or an existing Extension object to parse.
-
#ip_addresses ⇒ Array<String>
(also: #ips)
included
from GeneralNamesMixin
IP addresses.
-
#names ⇒ Array
included
from GeneralNamesMixin
Array of GeneralName objects preserving order found in the extension.
-
#rfc_822_names ⇒ Array<String>
(also: #email_names)
included
from GeneralNamesMixin
Email addresses.
- #to_h ⇒ Hash
- #to_yaml ⇒ YAML
-
#uris ⇒ Array<String>
included
from GeneralNamesMixin
URIs (not typically found in SAN extensions).
Constructor Details
#initialize(arg) ⇒ SubjectAlternativeName
This method takes a hash or an existing Extension object to parse
43 44 45 46 47 48 49 |
# File 'lib/r509/cert/extensions/subject_alternative_name.rb', line 43 def initialize(arg) unless R509::Cert::Extensions.is_extension?(arg) arg = build_extension(arg) end super(arg) parse_extension end |
Instance Attribute Details
#general_names ⇒ R509::ASN1::GeneralNames (readonly)
35 36 37 |
# File 'lib/r509/cert/extensions/subject_alternative_name.rb', line 35 def general_names @general_names end |
Instance Method Details
#directory_names ⇒ Array<R509::Subject> Also known as: dir_names Originally defined in module GeneralNamesMixin
Returns directory names
#dns_names ⇒ Array<String> Originally defined in module GeneralNamesMixin
Returns DNS names
#ip_addresses ⇒ Array<String> Also known as: ips Originally defined in module GeneralNamesMixin
Returns IP addresses. They will be formatted as strings (dotted quad with optional netmask for IPv4 and colon-hexadecimal with optional netmask for IPv6
#names ⇒ Array Originally defined in module GeneralNamesMixin
Returns array of GeneralName objects preserving order found in the extension
#rfc_822_names ⇒ Array<String> Also known as: email_names Originally defined in module GeneralNamesMixin
Returns email addresses
#to_h ⇒ Hash
52 53 54 |
# File 'lib/r509/cert/extensions/subject_alternative_name.rb', line 52 def to_h { :critical => self.critical?, :value => @general_names.to_h } end |
#to_yaml ⇒ YAML
57 58 59 |
# File 'lib/r509/cert/extensions/subject_alternative_name.rb', line 57 def to_yaml self.to_h.to_yaml end |
#uris ⇒ Array<String> Originally defined in module GeneralNamesMixin
Returns URIs (not typically found in SAN extensions)