Class: SSLyze::XML::Certinfo::Certificate

Inherits:
Object
  • Object
show all
Defined in:
lib/sslyze/xml/certinfo/certificate.rb,
lib/sslyze/xml/certinfo/certificate/public_key.rb

Overview

Represents the <certificate> XML element.

Since:

  • 1.0.0

Defined Under Namespace

Classes: PublicKey

OpenSSL Methods collapse

Instance Method Summary collapse

Constructor Details

#initialize(node) ⇒ Certificate

Initializes the certificate.

Parameters:

  • node (Nokogiri::XML::Node)

    The <certificate> XML element.

Since:

  • 1.0.0



22
23
24
# File 'lib/sslyze/xml/certinfo/certificate.rb', line 22

def initialize(node)
  @node = node
end

Instance Method Details

#==(other) ⇒ Boolean

Compares the other certificiate to this certificate.

Parameters:

Returns:

Since:

  • 1.0.0



195
196
197
# File 'lib/sslyze/xml/certinfo/certificate.rb', line 195

def ==(other)
  other.kind_of?(self.class) && other.as_pem == as_pem
end

#as_pemString Also known as: to_s

The AS PEM information.

Returns:

  • (String)

Since:

  • 1.0.0



31
32
33
# File 'lib/sslyze/xml/certinfo/certificate.rb', line 31

def as_pem
  @as_pem ||= @node.at_xpath('asPEM').inner_text
end

#extensionsX509::ExtensionSet

Returns:

Since:

  • 1.0.0



55
56
57
# File 'lib/sslyze/xml/certinfo/certificate.rb', line 55

def extensions
  X509::ExtensionSet.new(x509.extensions)
end

#hpkp_sha256_pinString

The HPKP SHA256 Pin.

Returns:

  • (String)

Since:

  • 1.0.0



169
170
171
# File 'lib/sslyze/xml/certinfo/certificate.rb', line 169

def hpkp_sha256_pin
  @hpkp_sha256_pin ||= @node['hpkpSha256Pin']
end

#issuerX509::Name



66
67
68
# File 'lib/sslyze/xml/certinfo/certificate.rb', line 66

def issuer
  @issuer ||= X509::Name.new(x509.issuer)
end

#not_afterTime

Returns:

  • (Time)

Since:

  • 1.0.0



75
76
77
# File 'lib/sslyze/xml/certinfo/certificate.rb', line 75

def not_after
  x509.not_after
end

#not_beforeTime

Returns:

  • (Time)

Since:

  • 1.0.0



84
85
86
# File 'lib/sslyze/xml/certinfo/certificate.rb', line 84

def not_before
  x509.not_before
end

#public_keyPublicKey

Returns:

Since:

  • 1.0.0



93
94
95
# File 'lib/sslyze/xml/certinfo/certificate.rb', line 93

def public_key
  @public_key ||= PublicKey.new(@node.at_xpath('publicKey'))
end

#serialOpenSSL::BN

Returns:

  • (OpenSSL::BN)

See Also:

Since:

  • 1.0.0



104
105
106
# File 'lib/sslyze/xml/certinfo/certificate.rb', line 104

def serial
  x509.serial
end

#sha1_fingerprintString

The SHA1 fingerprint of the cert.

Returns:

  • (String)

Since:

  • 1.0.0



158
159
160
# File 'lib/sslyze/xml/certinfo/certificate.rb', line 158

def sha1_fingerprint
  @sha1_fingerprint ||= @node['sha1Fingerprint']
end

#signature_algorithmString

Returns:

  • (String)

Since:

  • 1.0.0



113
114
115
# File 'lib/sslyze/xml/certinfo/certificate.rb', line 113

def signature_algorithm
  x509.signature_algorithm
end

#subjectX509::Name

Returns:

Since:

  • 1.0.0



122
123
124
# File 'lib/sslyze/xml/certinfo/certificate.rb', line 122

def subject
  @subject ||= X509::Name.new(x509.subject)
end

#supplied_server_name_indicationString

The supplied server name indication.

Returns:

  • (String)

Since:

  • 1.0.0



180
181
182
# File 'lib/sslyze/xml/certinfo/certificate.rb', line 180

def supplied_server_name_indication
  @supplied_server_name_indication ||= @node['suppliedServerNameIndication']
end

#to_derString

Returns:

  • (String)

Since:

  • 1.0.0



131
132
133
# File 'lib/sslyze/xml/certinfo/certificate.rb', line 131

def to_der
  x509.to_der
end

#to_textString

Returns:

  • (String)

Since:

  • 1.0.0



140
141
142
# File 'lib/sslyze/xml/certinfo/certificate.rb', line 140

def to_text
  x509.to_text
end

#versionInteger

Returns:

  • (Integer)

Since:

  • 1.0.0



149
150
151
# File 'lib/sslyze/xml/certinfo/certificate.rb', line 149

def version
  x509.version
end

#x509OpenSSL::X509::Certificate

The parsed X509 certificate.

Returns:

  • (OpenSSL::X509::Certificate)

See Also:

Since:

  • 1.0.0



46
47
48
# File 'lib/sslyze/xml/certinfo/certificate.rb', line 46

def x509
  @x509 ||= OpenSSL::X509::Certificate.new(as_pem)
end