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