Sha256: d115511a9ad25d4b95dd8a7f9659541d440ea038b13c7c460d681d4f49f8a834
Contents?: true
Size: 1.78 KB
Versions: 4
Compression:
Stored size: 1.78 KB
Contents
require 'sslyze/certificate' module SSLyze # # Represents the `<certificateChain>` XML element. # class CertificateChain include Enumerable # # Initializes the certificate chain. # # @param [Nokogiri::XML::Node] node # The `<certificateChain>` XML element. # def initialize(node) @node = node end # # Enumerates over each certificate in the chain. # # @yield [certificate] # # @yieldparam [Certificate] certificate # # @return [Enumerator] # def each return enum_for(__method__) unless block_given? @node.search('certificate').each do |certificate| yield Certificate.new(certificate) end end # # The leaf certificate in the chain. # # @return [Certificate, nil] # def leaf @leaf ||= if (certificate = @node.at('certificate[@position="leaf"]')) Certificate.new(certificate) end end # # Enumerates over the intermediate certificates in the chain. # # @yield [certificate] # # @yieldparam [Certificate] certificate # # @return [Enumerator] # def each_intermediate return enum_for(__method__) unless block_given? @node.search('certificate[@position="intermediate"]').each do |certificate| yield Certificate.new(certificate) end end # # The intermediate certificates. # # @return [Array<Certificate>] # # @see #each_intermediate # def intermediate each_intermediate.to_a end # # The root certificate. # # @return [Certificate, nil] # def root if (certificate = @node.at('certificate[@position="intermediate"]:last-child')) Certificate.new(certificate) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems