class SSLCheck::Parser

Public Class Methods

new(raw, url=nil) click to toggle source
# File lib/sslcheck/parser.rb, line 5
def initialize(raw, url=nil)
  @raw = raw
  @url = url
end

Public Instance Methods

ca_bundle() click to toggle source
# File lib/sslcheck/parser.rb, line 38
def ca_bundle
  Certificate.new certs[1..certs.size].join("\n")
end
certificate() click to toggle source
# File lib/sslcheck/parser.rb, line 34
def certificate
  Certificate.new certs.first
end
certs() click to toggle source
# File lib/sslcheck/parser.rb, line 28
def certs
  @raw.scan(/((?<=-----BEGIN CERTIFICATE-----)(?:\S+|\s(?!-----END CERTIFICATE-----))+(?=\s-----END CERTIFICATE-----))/)
      .flatten
      .map{|cert| "-----BEGIN CERTIFICATE-----\n#{cert.strip}\n-----END CERTIFICATE-----\n" }
end
common_name() click to toggle source
# File lib/sslcheck/parser.rb, line 62
def common_name
  certificate.common_name
end
expires_at() click to toggle source
# File lib/sslcheck/parser.rb, line 54
def expires_at
  certificate.not_after
end
issued_at() click to toggle source
# File lib/sslcheck/parser.rb, line 50
def issued_at
  certificate.not_before
end
issued_by() click to toggle source
# File lib/sslcheck/parser.rb, line 46
def issued_by
  certificate.issued_by
end
issuer_common_name() click to toggle source
# File lib/sslcheck/parser.rb, line 82
def issuer_common_name
  certificate.issuer_common_name
end
issuer_country() click to toggle source
# File lib/sslcheck/parser.rb, line 66
def issuer_country
  certificate.issuer_country
end
issuer_locality() click to toggle source
# File lib/sslcheck/parser.rb, line 74
def issuer_locality
  certificate.issuer_locality
end
issuer_organization() click to toggle source
# File lib/sslcheck/parser.rb, line 78
def issuer_organization
  certificate.issuer_organization
end
issuer_state() click to toggle source
# File lib/sslcheck/parser.rb, line 70
def issuer_state
  certificate.issuer_state
end
organizational_unit() click to toggle source
# File lib/sslcheck/parser.rb, line 58
def organizational_unit
  certificate.organizational_unit
end
parse() click to toggle source
# File lib/sslcheck/parser.rb, line 10
def parse
  raise SSLNotConfigured if connection_refused?
  {
    "raw"                 => @raw,
    "valid_certificate"   => valid_certificate?,
    "issued_by"           => issued_by,
    "issued_at"           => issued_at,
    "expires_at"          => expires_at,
    "organizational_unit" => organizational_unit,
    "common_name"         => common_name,
    "issuer_country"      => issuer_country,
    "issuer_state"        => issuer_state,
    "issuer_locality"     => issuer_locality,
    "issuer_organization" => issuer_organization,
    "issuer_common_name"  => issuer_common_name,
  }
end
url() click to toggle source
# File lib/sslcheck/parser.rb, line 42
def url
  @url
end

Private Instance Methods

connection_refused?() click to toggle source
# File lib/sslcheck/parser.rb, line 88
def connection_refused?
  @raw.match("connect: Connection refused")
end
valid_certificate?() click to toggle source
# File lib/sslcheck/parser.rb, line 92
def valid_certificate?
  Validator.new(self).validate
end