Class: SSLCheck::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/sslcheck/parser.rb

Defined Under Namespace

Classes: SSLNotConfigured

Instance Method Summary collapse

Constructor Details

#initialize(raw, url = nil) ⇒ Parser

Returns a new instance of Parser.



5
6
7
8
# File 'lib/sslcheck/parser.rb', line 5

def initialize(raw, url=nil)
  @raw = raw
  @url = url
end

Instance Method Details

#ca_bundleObject



38
39
40
# File 'lib/sslcheck/parser.rb', line 38

def ca_bundle
  Certificate.new certs[1..certs.size].join("\n")
end

#certificateObject



34
35
36
# File 'lib/sslcheck/parser.rb', line 34

def certificate
  Certificate.new certs.first
end

#certsObject



28
29
30
31
32
# 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_nameObject



62
63
64
# File 'lib/sslcheck/parser.rb', line 62

def common_name
  certificate.common_name
end

#expires_atObject



54
55
56
# File 'lib/sslcheck/parser.rb', line 54

def expires_at
  certificate.not_after
end

#issued_atObject



50
51
52
# File 'lib/sslcheck/parser.rb', line 50

def issued_at
  certificate.not_before
end

#issued_byObject



46
47
48
# File 'lib/sslcheck/parser.rb', line 46

def issued_by
  certificate.issued_by
end

#issuer_common_nameObject



82
83
84
# File 'lib/sslcheck/parser.rb', line 82

def issuer_common_name
  certificate.issuer_common_name
end

#issuer_countryObject



66
67
68
# File 'lib/sslcheck/parser.rb', line 66

def issuer_country
  certificate.issuer_country
end

#issuer_localityObject



74
75
76
# File 'lib/sslcheck/parser.rb', line 74

def issuer_locality
  certificate.issuer_locality
end

#issuer_organizationObject



78
79
80
# File 'lib/sslcheck/parser.rb', line 78

def issuer_organization
  certificate.issuer_organization
end

#issuer_stateObject



70
71
72
# File 'lib/sslcheck/parser.rb', line 70

def issuer_state
  certificate.issuer_state
end

#organizational_unitObject



58
59
60
# File 'lib/sslcheck/parser.rb', line 58

def organizational_unit
  certificate.organizational_unit
end

#parseObject

Raises:



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 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

#urlObject



42
43
44
# File 'lib/sslcheck/parser.rb', line 42

def url
  @url
end