main
 1# frozen_string_literal: true
 2
 3module Saml
 4  module Kit
 5    module Cli
 6      class GenerateKeyPair
 7        attr_reader :passphrase, :format
 8
 9        def initialize(passphrase:, format:)
10          @passphrase = passphrase
11          @format = format
12        end
13
14        def run(shell)
15          certificate, private_key = generate
16          if pem?
17            shell.say certificate
18            shell.say private_key
19          else
20            shell.say 'X509_CERTIFICATE=' + certificate.inspect
21            shell.say 'PRIVATE_KEY=' + private_key.inspect
22          end
23          shell.say 'Private Key Passphrase:', :green
24          shell.say passphrase.inspect
25        end
26
27        private
28
29        def generate
30          generator = ::Xml::Kit::SelfSignedCertificate.new
31          generator.create(passphrase: passphrase)
32        end
33
34        def pem?
35          format == 'pem'
36        end
37      end
38    end
39  end
40end