class R509::CRL::SignedList
Parses CRLs
Attributes
Public Class Methods
@param [String,OpenSSL::X509::CRL] crl
# File lib/r509/crl/signed_list.rb, line 16 def initialize(crl) @crl = OpenSSL::X509::CRL.new(crl) @issuer = R509::Subject.new(@crl.issuer) end
Public Instance Methods
Returns the next update time for the CRL
@return [Time] when it will be updated next
# File lib/r509/crl/signed_list.rb, line 60 def next_update @crl.next_update end
@return [Hash] hash of serial => { :time, :reason } hashes
# File lib/r509/crl/signed_list.rb, line 99 def revoked revoked_list = {} @crl.revoked.each do |revoked| reason = get_reason(revoked) revoked_list[revoked.serial.to_i] = { :time => revoked.time, :reason => reason } end revoked_list end
@param [Integer] serial number @return [Boolean]
# File lib/r509/crl/signed_list.rb, line 74 def revoked?(serial) if @crl.revoked.find { |revoked| revoked.serial == serial.to_i } true else false end end
@param [Integer] serial number @return [Hash] hash with :time and :reason
# File lib/r509/crl/signed_list.rb, line 111 def revoked_cert(serial) revoked = @crl.revoked.find { |r| r.serial == serial } if revoked reason = get_reason(revoked) { :time => revoked.time, :reason => reason } else nil end end
@return [String]
# File lib/r509/crl/signed_list.rb, line 30 def signature_algorithm @crl.signature_algorithm end
Returns the CRL
in PEM format
@return [String] the CRL
in PEM format
# File lib/r509/crl/signed_list.rb, line 85 def to_pem @crl.to_pem end
Pass a public key to verify that the CRL
is signed by a specific certificate (call cert.public_key on that object)
@param [OpenSSL::PKey::PKey] public_key @return [Boolean]
# File lib/r509/crl/signed_list.rb, line 68 def verify(public_key) @crl.verify(public_key) end
Writes the CRL
into the PEM format
@param [String, write] filename_or_io Either a string of the path for
the file that you'd like to write, or an IO-like object.
# File lib/r509/crl/signed_list.rb, line 46 def write_der(filename_or_io) write_data(filename_or_io, @crl.to_der) end
Writes the CRL
into the PEM format
@param [String, write] filename_or_io Either a string of the path for
the file that you'd like to write, or an IO-like object.
# File lib/r509/crl/signed_list.rb, line 38 def write_pem(filename_or_io) write_data(filename_or_io, @crl.to_pem) end
Private Instance Methods
# File lib/r509/crl/signed_list.rb, line 123 def get_reason(revocation_object) reason = nil revocation_object.extensions.each do |extension| if extension.oid == "CRLReason" reason = extension.value end end reason end