main
 1# frozen_string_literal: true
 2
 3module Saml
 4  module Kit
 5    module Cli
 6      class CertificateReport
 7        HEADER = [
 8          'Subject', 'Issuer', 'Serial',
 9          'Not Before', 'Not After', 'Fingerprint'
10        ].freeze
11        attr_reader :certificate, :x509
12
13        def initialize(raw)
14          @certificate = ::Xml::Kit::Certificate.new(raw, use: :unknown)
15          @x509 = @certificate.x509
16        end
17
18        def print(shell)
19          shell.print_table([HEADER, body])
20          shell.say(x509.to_text, :green)
21        end
22
23        private
24
25        def fingerprint
26          certificate.fingerprint
27        end
28
29        def body
30          [
31            x509.subject, x509.issuer, x509.serial,
32            x509.not_before, x509.not_after, fingerprint
33          ]
34        end
35      end
36    end
37  end
38end