class CertificateChecker::CertificateParser
Attributes
certificates[R]
Public Class Methods
new(filename)
click to toggle source
# File lib/certificate-checker/certificate_parser.rb, line 9 def initialize(filename) @filename = filename @certificates = {} @lineno = 0 @f = File.open(@filename, 'rb') begin read_random_data ensure @f.close end end
Private Instance Methods
add_certificate()
click to toggle source
# File lib/certificate-checker/certificate_parser.rb, line 50 def add_certificate certificates[@data_start_lineno] = OpenSSL::X509::Certificate.new(@data) rescue OpenSSL::X509::CertificateError => e warn "Error parsing certificate at #{@filename}:#{@data_start_lineno}: #{e.message}" end
read_certificate()
click to toggle source
# File lib/certificate-checker/certificate_parser.rb, line 36 def read_certificate until @f.eof? line = @f.readline @lineno += 1 @data += line if line.match(/^-----END CERTIFICATE-----/) add_certificate return end end raise "#{@filename}:#{@lineno}: Unexpected end of file" end
read_random_data()
click to toggle source
# File lib/certificate-checker/certificate_parser.rb, line 24 def read_random_data until @f.eof? line = @f.readline @lineno += 1 next unless line.match(/^-----BEGIN CERTIFICATE-----/) @data_start_lineno = @lineno @data = line read_certificate end end