class SSLyze::X509::ExtensionSet
Provides a Hash-like interface around an Array of [OpenSSL::X5095::Extension]s.
[1]: www.rubydoc.info/stdlib/openssl/OpenSSL/X509/Extension
@since 1.0.0
Public Class Methods
Initializes the X509
extension set.
@param [Array<OpenSSL::X509::Extension>] extensions
The array of extensions.
# File lib/sslyze/x509/extension_set.rb, line 23 def initialize(extensions) @extensions = Hash[extensions.map { |ext| [ext.oid, ext] }] end
Public Instance Methods
Looks up the X509
extension with the given name. @param [String] oid
@return [OpenSSL::X509::Extension]
# File lib/sslyze/x509/extension_set.rb, line 59 def [](oid) @extensions[oid] end
The `basicConstraints` extension.
@return [Extensions::BasicConstraints, nil]
# File lib/sslyze/x509/extension_set.rb, line 77 def basic_constraints @basic_constraints ||= if (ext = self['basicConstraints']) Extensions::BasicConstraints.new(ext) end end
The `certificatePolicies` extension.
@return [Extensions::CertificatePolicies, nil]
# File lib/sslyze/x509/extension_set.rb, line 88 def certificate_policies @certificate_policies ||= if (ext = self['certificatePolicies']) Extensions::CertificatePolicies.new(ext) end end
The `crlDistributionPoints` extension.
@return [Extensions::CRLDistributionPoints, nil]
# File lib/sslyze/x509/extension_set.rb, line 99 def crl_distribution_points @crl_distribution_points ||= if (ext = self['crlDistributionPoints']) Extensions::CRLDistributionPoints.new(ext) end end
Enumerates over the X509
extensions in the set.
@yield [extension]
@yieldparam [OpenSSL::X509::Extension] extension
@return [Enumerator]
# File lib/sslyze/x509/extension_set.rb, line 38 def each(&block) @extensions.each_value(&block) end
The `extendedKeyUsage` extension.
@return [Extensions::ExtendedKeyUsage, nil]
# File lib/sslyze/x509/extension_set.rb, line 110 def extended_key_usage @extended_key_usage ||= if (ext = self['extendedKeyUsage']) Extensions::ExtendedKeyUsage.new(ext) end end
Determines if the X509
extension exists in the set.
@param [String] oid
@return [Boolean]
# File lib/sslyze/x509/extension_set.rb, line 49 def has?(oid) @extensions.has_key?(oid) end
The `keyUsage` extension.
@return [Extensions::KeyUsage, nil]
# File lib/sslyze/x509/extension_set.rb, line 121 def key_usage @key_usage ||= if (ext = self['keyUsage']) Extensions::KeyUsage.new(ext) end end
The `subjectAltName` extension.
@return [Extensions::SubjectAltName, nil]
# File lib/sslyze/x509/extension_set.rb, line 132 def subject_alt_name @subject_alt_name ||= if (ext = self['subjectAltName']) Extensions::SubjectAltName.new(ext) end end
Converts the X509
extension set to an Array.
@return [Array<OpenSSL::X509::Extension>]
# File lib/sslyze/x509/extension_set.rb, line 68 def to_a @extensions.values end