class R509::Cert::Extensions::SubjectKeyIdentifier
RFC 5280 Description (see: www.ietf.org/rfc/rfc5280.txt)
The subject key identifier extension provides a means of identifying certificates that contain a particular public key.
You can use this extension to parse an existing extension for easy access to the contents or create a new one.
Constants
Public Class Methods
new(arg)
click to toggle source
This method takes a hash or an existing Extension object to parse @option arg :public_key [OpenSSL::PKey] (Cert/CSR/PrivateKey return this type from public_key) @option arg :critical [Boolean] (false)
Calls superclass method
# File lib/r509/cert/extensions/subject_key_identifier.rb, line 23 def initialize(arg) unless R509::Cert::Extensions.is_extension?(arg) arg = build_extension(arg) end super(arg) end
Public Instance Methods
key()
click to toggle source
@return value of key
# File lib/r509/cert/extensions/subject_key_identifier.rb, line 31 def key self.value end
Private Instance Methods
build_extension(arg)
click to toggle source
# File lib/r509/cert/extensions/subject_key_identifier.rb, line 37 def build_extension(arg) validate_subject_key_identifier(arg) ef = OpenSSL::X509::ExtensionFactory.new cert = OpenSSL::X509::Certificate.new cert.public_key = arg[:public_key] ef.subject_certificate = cert critical = R509::Cert::Extensions.calculate_critical(arg[:critical], false) ef.create_extension("subjectKeyIdentifier", SKI_EXTENSION_DEFAULT, critical) end
validate_subject_key_identifier(ski)
click to toggle source
# File lib/r509/cert/extensions/subject_key_identifier.rb, line 47 def validate_subject_key_identifier(ski) if !ski.is_a?(Hash) || ski[:public_key].nil? raise ArgumentError, "You must supply a hash with a :public_key" end ski end