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 collapse
- OID =
friendly name for SAN OID
"subjectAltName"
Instance Attribute Summary collapse
Instance Method Summary collapse
-
#initialize(arg) ⇒ SubjectAlternativeName
constructor
This method takes a hash or an existing Extension object to parse.
- #to_h ⇒ Hash
- #to_yaml ⇒ YAML
Methods included from GeneralNamesMixin
#directory_names, #dns_names, #ip_addresses, #names, #rfc_822_names, #uris
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
#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 |