Class: SSLyze::Certificate

Inherits:
Object
  • Object
show all
Defined in:
lib/sslyze/certificate.rb,
lib/sslyze/certificate/issuer.rb,
lib/sslyze/certificate/subject.rb,
lib/sslyze/certificate/validity.rb,
lib/sslyze/certificate/extensions.rb,
lib/sslyze/certificate/public_key.rb,
lib/sslyze/certificate/domain_name.rb,
lib/sslyze/certificate/extensions/extension.rb,
lib/sslyze/certificate/subject_public_key_info.rb,
lib/sslyze/certificate/extensions/x509v3_key_usage.rb,
lib/sslyze/certificate/extensions/x509v3_basic_constraints.rb,
lib/sslyze/certificate/extensions/x509v3_extended_key_usage.rb,
lib/sslyze/certificate/extensions/x509v3_certificate_policies.rb,
lib/sslyze/certificate/extensions/authority_information_access.rb,
lib/sslyze/certificate/extensions/x509v3_crl_distribution_points.rb,
lib/sslyze/certificate/extensions/x509v3_subject_alternative_name.rb

Overview

Represents the <certificate> XML element.

Defined Under Namespace

Classes: DomainName, Extensions, Issuer, PublicKey, Subject, SubjectPublicKeyInfo, Validity

Instance Method Summary collapse

Constructor Details

#initialize(node) ⇒ Certificate

Initializes the certificate.

Parameters:

  • node (Nokogiri::XML::Node)

    The <certificate> XML element.



21
22
23
# File 'lib/sslyze/certificate.rb', line 21

def initialize(node)
  @node = node
end

Instance Method Details

#as_pemString

The AS PEM information.

Returns:

  • (String)


48
49
50
# File 'lib/sslyze/certificate.rb', line 48

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

#extensionsExtensions

The SSL extensions.

Returns:



77
78
79
# File 'lib/sslyze/certificate.rb', line 77

def extensions
  @extensions ||= Extensions.new(@node.at('extensions'))
end

#issuerIssuer

The certificate issuer.

Returns:



134
135
136
# File 'lib/sslyze/certificate.rb', line 134

def issuer
  @issuer ||= Issuer.new(@node.at('issuer'))
end

#position:leaf, :intermediate

The position of the certificate within the cert chain.

Returns:

  • (:leaf, :intermediate)


30
31
32
# File 'lib/sslyze/certificate.rb', line 30

def position
  @position ||= @node['position'].to_sym
end

#serial_numberString

The certificate serial number.

Returns:

  • (String)


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

def serial_number
  @serial_number ||= @node.at('serialNumber').inner_text
end

#sha1_fingerprintString

The SHA1 fingerprint of the cert.

Returns:

  • (String)


39
40
41
# File 'lib/sslyze/certificate.rb', line 39

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

#signature_algorithmString

The certificate signature algorithm.

Returns:

  • (String)


95
96
97
# File 'lib/sslyze/certificate.rb', line 95

def signature_algorithm
  @signature_algorithm ||= @node.at('signatureAlgorithm').inner_text
end

#signature_valueString

The certificate signature.

Returns:

  • (String)


86
87
88
# File 'lib/sslyze/certificate.rb', line 86

def signature_value
  @signature_value ||= @node.at('signatureValue').inner_text
end

#subjectSubject

The certificate subject information.

Returns:



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

def subject
  @subject ||= Subject.new(@node.at('subject'))
end

#subject_public_key_infoSubjectPublicKeyInfo

The subject public key information.



57
58
59
60
61
# File 'lib/sslyze/certificate.rb', line 57

def subject_public_key_info
  @subject_public_key_info ||= SubjectPublicKeyInfo.new(
    @node.at('subjectPublicKeyInfo')
  )
end

#validityValidity

The certificate validity.

Returns:



122
123
124
125
126
127
# File 'lib/sslyze/certificate.rb', line 122

def validity
  @validity ||= Validity.new(
    Date.parse(@node.at('validity/notAfter').inner_text),
    Date.parse(@node.at('validity/notBefore').inner_text)
  )
end

#versionInteger

The certificate SSL version.

Returns:

  • (Integer)


68
69
70
# File 'lib/sslyze/certificate.rb', line 68

def version
  @version ||= @node.at('version').inner_text.to_i
end