class RhEntitlement::Certificate
Constants
- OID_TYPE
- OID_URLS
Public Class Methods
new(cert)
click to toggle source
# File lib/rh_entitlement/certificate.rb, line 8 def initialize(cert) @x509 = OpenSSL::X509::Certificate.new(cert) end
Public Instance Methods
extension(id)
click to toggle source
# File lib/rh_entitlement/certificate.rb, line 20 def extension(id) extensions = raw_extensions return nil unless extensions[id] asn1 = OpenSSL::ASN1.decode(extensions[id]) der_body(asn1.value[1]) end
type()
click to toggle source
# File lib/rh_entitlement/certificate.rb, line 16 def type extension OID_TYPE end
urls()
click to toggle source
# File lib/rh_entitlement/certificate.rb, line 12 def urls @urls ||= RhEntitlement::CertificateUrls.new(extension OID_URLS) end
Private Instance Methods
der_body(der)
click to toggle source
# File lib/rh_entitlement/certificate.rb, line 30 def der_body(der) body = nil OpenSSL::ASN1.traverse(der) do |depth, offset, header_len, length, constructed, tag_class, tag| body = der.value[header_len, length] end body end
raw_extensions()
click to toggle source
# File lib/rh_entitlement/certificate.rb, line 38 def raw_extensions @raw_extensions ||= Hash[@x509.extensions.collect { |ext| [ext.oid, ext.to_der] }] end