Commit b698899
Changed files (3)
lib
saml
kit
cli
commands
spec
saml
kit
cli
commands
lib/saml/kit/cli/commands/certificate.rb
@@ -12,8 +12,10 @@ module Saml
)
method_option :passphrase, default: nil, required: false
def keypair
- command = GenerateKeyPair.new(passphrase: passphrase, format: format)
- command.run(self)
+ GenerateKeyPair.new(
+ passphrase: options[:passphrase],
+ format: options[:format]
+ ).run(self)
end
desc 'dump', 'Dump the details of a X509 Certificate.'
lib/saml/kit/cli.rb
@@ -4,11 +4,12 @@ require 'yaml/store'
require 'uri'
require 'saml/kit/cli/certificate_report'
+require 'saml/kit/cli/commands'
+require 'saml/kit/cli/generate_key_pair'
require 'saml/kit/cli/report'
require 'saml/kit/cli/signature_report'
require 'saml/kit/cli/version'
require 'saml/kit/cli/yaml_registry'
-require 'saml/kit/cli/commands'
module Saml
module Kit
spec/saml/kit/cli/commands/certificate_spec.rb
@@ -6,9 +6,31 @@ RSpec.describe Saml::Kit::Cli::Commands::Certificate do
[$?, output]
end
- it 'generates a new keypair' do
- status, output = execute("certificate keypair --passphrase #{passphrase}")
- expect(status).to be_success
- expect(output).to include(passphrase)
+ describe "keypair" do
+ let(:because) { execute(command) }
+ let(:status) { because[0] }
+ let(:output) { because[1] }
+
+ describe "generating a pem" do
+ let(:command) { "certificate keypair --passphrase #{passphrase}" }
+
+ specify { expect(status).to be_success }
+ specify { expect(output).to include(passphrase) }
+ specify { expect(output).to include('-----BEGIN CERTIFICATE-----') }
+ specify { expect(output).to include('-----END CERTIFICATE-----') }
+ specify { expect(output).to include('-----BEGIN RSA PRIVATE KEY-----') }
+ specify { expect(output).to include('-----END RSA PRIVATE KEY-----') }
+ specify { expect(output).to include('Proc-Type: 4,ENCRYPTED') }
+ specify { expect(output).to include('DEK-Info: AES-256-CBC,') }
+ end
+
+ describe "generating env format" do
+ let(:command) { "certificate keypair --passphrase #{passphrase} --format env" }
+
+ specify { expect(status).to be_success }
+ specify { expect(output).to include(passphrase) }
+ specify { expect(output).to include('X509_CERTIFICATE="-----BEGIN CERTIFICATE-----\n') }
+ specify { expect(output).to include('PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\nProc-Type: 4,ENCRYPTED\nDEK-Info: AES-256-CBC') }
+ end
end
end