simple_ca 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 19dc15dcd4112eac0a41c569d0993eac972f5c6b
4
+ data.tar.gz: f40feea3092c39879fce3a53b348178eb1ffbcdd
5
+ SHA512:
6
+ metadata.gz: 5dcb2e61c13ced6063e4850fffb74c554af341f2f9bc007c653be68dcbd1878601d5c33661473d6b045ac620e32d278c79d7f3a47b60434d240e6bd62108b715
7
+ data.tar.gz: 9dc2ec22c117dfb087e8742fabdfe9321fe90fdad39b28d3ec5ef4e1dc88d087f6b17e0338453715dd32ad2109d5118a3f32016b543ad306b1d19a07774887b8
@@ -0,0 +1,2 @@
1
+ coverage
2
+ *.gem
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
@@ -0,0 +1,21 @@
1
+ Style/StringLiterals:
2
+ EnforcedStyle: double_quotes
3
+ Style/TrailingComma:
4
+ EnforcedStyleForMultiline: comma
5
+ Documentation:
6
+ Enabled: false
7
+ Metrics/LineLength:
8
+ Max: 120
9
+ Style/SpaceInsideBlockBraces:
10
+ SpaceBeforeBlockParameters: false
11
+ Style/MethodDefParentheses:
12
+ EnforcedStyle: require_no_parentheses
13
+ Style/PredicateName:
14
+ NamePrefixBlacklist:
15
+ - is_
16
+ Style/AndOr:
17
+ EnforcedStyle: conditionals
18
+ Style/SpaceInsideHashLiteralBraces:
19
+ EnforcedStyle: no_space
20
+ Style/BlockDelimiters:
21
+ EnforcedStyle: semantic
@@ -0,0 +1 @@
1
+ 2.0.0-p647
@@ -0,0 +1,20 @@
1
+ language: ruby
2
+ branches:
3
+ only:
4
+ - master
5
+ - /^v[0-9]+\.[0-9]+\.[0-9]+/
6
+ rvm:
7
+ - ruby-head
8
+ - jruby-1.7.19
9
+ - 2.0.0
10
+ script:
11
+ - bundle exec rake
12
+ deploy:
13
+ provider: rubygems
14
+ api_key:
15
+ secure: clYHhpfYieW4ZMPlDwhdsxZAaca6Ltg8fSDtmQcNly40+fOhAhBnR+VFX6VODX3jx0Jv0MlIZRqWn4V9LVERaEMvKwSL2qNnk2sdMe9Kbh+lXD4auCjgHhFKXN6dzUfXmJYKzjuUaMtK4m7aBLKnm2JLm3omUa4c0Yrnj3qS/to=
16
+ on:
17
+ tags: true
18
+ all_branches: true
19
+ repo: tpbowden/simple_ca
20
+ rvm: 2.0.0
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
@@ -0,0 +1,59 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ simple_ca (0.0.1)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ ast (2.1.0)
10
+ astrolabe (1.3.1)
11
+ parser (~> 2.2)
12
+ diff-lcs (1.2.5)
13
+ docile (1.1.5)
14
+ json (1.8.3)
15
+ parser (2.2.3.0)
16
+ ast (>= 1.1, < 3.0)
17
+ powerpack (0.1.1)
18
+ rainbow (2.0.0)
19
+ rake (10.4.2)
20
+ rspec (3.4.0)
21
+ rspec-core (~> 3.4.0)
22
+ rspec-expectations (~> 3.4.0)
23
+ rspec-mocks (~> 3.4.0)
24
+ rspec-core (3.4.1)
25
+ rspec-support (~> 3.4.0)
26
+ rspec-expectations (3.4.0)
27
+ diff-lcs (>= 1.2.0, < 2.0)
28
+ rspec-support (~> 3.4.0)
29
+ rspec-mocks (3.4.0)
30
+ diff-lcs (>= 1.2.0, < 2.0)
31
+ rspec-support (~> 3.4.0)
32
+ rspec-support (3.4.1)
33
+ rubocop (0.35.1)
34
+ astrolabe (~> 1.3)
35
+ parser (>= 2.2.3.0, < 3.0)
36
+ powerpack (~> 0.1)
37
+ rainbow (>= 1.99.1, < 3.0)
38
+ ruby-progressbar (~> 1.7)
39
+ tins (<= 1.6.0)
40
+ ruby-progressbar (1.7.5)
41
+ simplecov (0.11.1)
42
+ docile (~> 1.1.0)
43
+ json (~> 1.8)
44
+ simplecov-html (~> 0.10.0)
45
+ simplecov-html (0.10.0)
46
+ tins (1.6.0)
47
+
48
+ PLATFORMS
49
+ ruby
50
+
51
+ DEPENDENCIES
52
+ rake (>= 10.4)
53
+ rspec (>= 3.4)
54
+ rubocop (>= 0.35)
55
+ simple_ca!
56
+ simplecov (>= 0.11)
57
+
58
+ BUNDLED WITH
59
+ 1.11.1
@@ -0,0 +1,26 @@
1
+ # SimpleCA
2
+ Generate and sign SSL Certificate with your very own CA
3
+
4
+ Installation
5
+ ------------
6
+
7
+ gem install simple_ca
8
+
9
+ or if you're using Bundler
10
+
11
+ gem "simple_ca"
12
+
13
+ Usage
14
+ =====
15
+
16
+ First of all you need a root certificate (OpenSSL::X509::Certificate) and a private key (OpenSSL::PKey::RSA)
17
+
18
+ require "simple_ca"
19
+
20
+ ca = SimpleCA::CA.new(root_certificate, private_key)
21
+
22
+ To sign a CSR (OpenSSL::X509::Request):
23
+
24
+ ca.sign_csr(csr) # => OpenSSL::X509::Certificate
25
+
26
+
@@ -0,0 +1 @@
1
+ Dir[File.expand_path("../tasks/**/*.rake", __FILE__)].each {|f| load f }
@@ -0,0 +1 @@
1
+ require "simple_ca/ca"
@@ -0,0 +1,14 @@
1
+ require "simple_ca/sign_csr"
2
+
3
+ module SimpleCA
4
+ class CA
5
+ def initialize root, key
6
+ @root = root
7
+ @key = key
8
+ end
9
+
10
+ def sign_csr csr
11
+ SimpleCA::SignCSR.new(@root, @key).call csr
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,27 @@
1
+ module SimpleCA
2
+ class SignCSR
3
+ THREE_YEARS = 365.25 * 24 * 60 * 60
4
+
5
+ def initialize root, key
6
+ @root = root
7
+ @key = key
8
+ end
9
+
10
+ def call csr
11
+ sign_cert(OpenSSL::X509::Certificate.new, csr)
12
+ end
13
+
14
+ private
15
+
16
+ def sign_cert crt, request
17
+ crt.serial = 0
18
+ crt.version = 2
19
+ crt.not_before = Time.now
20
+ crt.not_after = Time.now + THREE_YEARS
21
+ crt.subject = request.subject
22
+ crt.public_key = request.public_key
23
+ crt.issuer = @root.subject
24
+ crt.sign @key, OpenSSL::Digest::SHA256.new
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,3 @@
1
+ module SimpleCA
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,21 @@
1
+ $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
2
+ require "simple_ca/version"
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "simple_ca"
6
+ s.version = SimpleCA::VERSION
7
+ s.date = "2015-12-12"
8
+ s.summary = "Simplified certiticate signing"
9
+ s.description = "Sign and generate SSL certificates with ease"
10
+ s.authors = ["Tom Bowden"]
11
+ s.files = `git ls-files`.split($RS)
12
+ s.email = "tom.b1992@gmail.com"
13
+ s.homepage = "http://github.com/tpbowden/simple_ca"
14
+ s.license = "MIT"
15
+ s.required_ruby_version = ">= 2.0.0"
16
+
17
+ s.add_development_dependency "rake", ">= 10.4"
18
+ s.add_development_dependency "rubocop", ">= 0.35"
19
+ s.add_development_dependency "rspec", ">= 3.4"
20
+ s.add_development_dependency "simplecov", ">= 0.11"
21
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+ require "simple_ca/ca"
3
+
4
+ describe SimpleCA::CA do
5
+ describe "#sign_csr" do
6
+ let(:cert) { double :certificate }
7
+ let(:root) { double :root }
8
+ let(:key) { double :key }
9
+ let(:signer) { double :signer }
10
+ let(:csr) { double :csr }
11
+
12
+ subject { described_class.new(root, key) }
13
+
14
+ before do
15
+ allow(SimpleCA::SignCSR).to receive(:new).with(root, key) { signer }
16
+ allow(signer).to receive(:call).with(csr) { cert }
17
+ end
18
+
19
+ it "generates a certificate from the CSR" do
20
+ expect(subject.sign_csr csr).to eq cert
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,22 @@
1
+ require "spec_helper"
2
+ require "simple_ca/sign_csr"
3
+
4
+ describe SimpleCA::SignCSR do
5
+ describe "#call" do
6
+ let(:key) { OpenSSL::PKey::RSA.new(File.read "spec/support/fixtures/root.key") }
7
+ let(:root) { OpenSSL::X509::Certificate.new(File.read "spec/support/fixtures/root.crt") }
8
+ subject { described_class.new(root, key) }
9
+
10
+ context "when the CSR is valid" do
11
+ let(:csr) { OpenSSL::X509::Request.new(File.read "spec/support/fixtures/test.csr") }
12
+
13
+ it "returns a certificate signed by the key" do
14
+ expect(subject.call csr).to be_a_certificate_signed_by(key)
15
+ end
16
+
17
+ it "sets the issuer to the root certificate" do
18
+ expect(subject.call(csr).issuer).to eq root.subject
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,4 @@
1
+ require "simplecov"
2
+ SimpleCov.start
3
+
4
+ Dir[File.expand_path("../support/**/*.rb", __FILE__)].each {|f| load f }
@@ -0,0 +1,6 @@
1
+ RSpec::Matchers.define :be_a_certificate_signed_by do |key|
2
+ match do |actual|
3
+ return false unless actual.instance_of? OpenSSL::X509::Certificate
4
+ actual.verify(key)
5
+ end
6
+ end
@@ -0,0 +1,23 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIID4DCCAsigAwIBAgIJALq0rtPQ6ut+MA0GCSqGSIb3DQEBBQUAMFMxCzAJBgNV
3
+ BAYTAkFCMRIwEAYDVQQIEwlTb21ld2hlcmUxDTALBgNVBAcTBENJcnQxITAfBgNV
4
+ BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0xNTEyMDYxOTI1MDVaFw0x
5
+ NjEyMDUxOTI1MDVaMFMxCzAJBgNVBAYTAkFCMRIwEAYDVQQIEwlTb21ld2hlcmUx
6
+ DTALBgNVBAcTBENJcnQxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0
7
+ ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALvJ46a/qKq+nlyCmjYU
8
+ E0R0ZNOMQfRGDSMbbXY0U1MiNo2oEIcCdVHUnt5rJNiTysFvE63DKr+b8OTmZo7N
9
+ RbzGG39P/CbTdRyf3DwG8vTwvTwKUQ/5OLWQ+ELOXwFqb3zYdy/FkSyyYMb11irh
10
+ 24vs1Qml/pEurOKW9/5IZY0UjMeCclyMF3ZJqTqoEYWBzP1v12cGHNUuub8kVgmG
11
+ gpgITtwdO9Wgulgw1p37lUJWYB1LfkPH9M3AsAZBFCl4FhDJHdpE0pyj4o4PXFXo
12
+ dSSA1xW2YQ5/4HqwdTPM+vRH9vMrmIt1ty8F+QlTcEbxlyv8e/f6M+vANC99D/g2
13
+ JhUCAwEAAaOBtjCBszAdBgNVHQ4EFgQUs6LYjWb7gyd17sI/lICZpmgRoiEwgYMG
14
+ A1UdIwR8MHqAFLOi2I1m+4Mnde7CP5SAmaZoEaIhoVekVTBTMQswCQYDVQQGEwJB
15
+ QjESMBAGA1UECBMJU29tZXdoZXJlMQ0wCwYDVQQHEwRDSXJ0MSEwHwYDVQQKExhJ
16
+ bnRlcm5ldCBXaWRnaXRzIFB0eSBMdGSCCQC6tK7T0OrrfjAMBgNVHRMEBTADAQH/
17
+ MA0GCSqGSIb3DQEBBQUAA4IBAQA2BhzhzqvwEld6WQQ51fnduuuAglcUx5xpuyiW
18
+ g7kXmOqYX/65bTKYNYDHZ/3IuzfvBhoSbWsWS9hfI5xqwytRdazJRldGwwr5gc25
19
+ lYvwklVh757oFdBlak7k77gstYqHjMCfwV/vH/UoVDN+sXL9dR2+4/o082eHdek4
20
+ VIbjwPsm6OT/vArjjyP6/Of8PgO4OHxNHHnwxf9dmcU8ASrQWYYi4LdrItWB8uHi
21
+ JuC9Kt18TSmTjmFMzkK/bC10jtfhl931oBR2qv93Qm5jEZG1mFLOCUZPUqQgxAUB
22
+ oYdVZli9THIhGqYjsZ2gU8peNc/HnYd2RRY+UfbJIaG/F7l7
23
+ -----END CERTIFICATE-----
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEpAIBAAKCAQEAu8njpr+oqr6eXIKaNhQTRHRk04xB9EYNIxttdjRTUyI2jagQ
3
+ hwJ1UdSe3msk2JPKwW8TrcMqv5vw5OZmjs1FvMYbf0/8JtN1HJ/cPAby9PC9PApR
4
+ D/k4tZD4Qs5fAWpvfNh3L8WRLLJgxvXWKuHbi+zVCaX+kS6s4pb3/khljRSMx4Jy
5
+ XIwXdkmpOqgRhYHM/W/XZwYc1S65vyRWCYaCmAhO3B071aC6WDDWnfuVQlZgHUt+
6
+ Q8f0zcCwBkEUKXgWEMkd2kTSnKPijg9cVeh1JIDXFbZhDn/gerB1M8z69Ef28yuY
7
+ i3W3LwX5CVNwRvGXK/x79/oz68A0L30P+DYmFQIDAQABAoIBAH0+N/uVZeuCuGGg
8
+ pTMeDn+gVUKWD8LYGZjpiQbF/TC758Bwb51rsU1DTjWvJeLgJuD9sRU5zj/+xBoV
9
+ 5B6nnzQ4uEwfz18htsDBiYPraoycJsltZAUQRZcqubjspIZwMy0DvfH5hUpXKZ5o
10
+ hU8SVXesG6WUtQSlKZ7x6zIHnNsKzVGXofGAbrSm3UqoayVWx3RGFrtjJN7/4+c8
11
+ K9Yv0Eu9xMLRIb+Jt+YcSynk3boRmzHQkzlpF6jyygAdUDYKg+XyWJmdDd47eo/f
12
+ ce6Bp1VtQyibtXgBFqhDPK98esXh4+JuNSVoHChc1XlAftNcIbjLwVBEdpZbBf9c
13
+ COSooyECgYEA7GtVjyVe5mZJ/QqxUEmx3wipeEM3ZYVJWYhbMlUt+DWzAwA6Ahl0
14
+ wmYSNa8IxTN6WA8DH39tE3OJqWv42wV3oqBcylhkalMEWjsqcZzaG1bmFCbXpUHF
15
+ Kg7hNmt89ftngIQ28QH5h24FwfoxVbpiJfMc2zwnEz2ZjWKbdAhAolkCgYEAy1d3
16
+ d2aOictXMV7fpoKL8ZHOsDzhtWJjP1ahG2Wzg2NAmdQiOB7XK2ZZWra1zy4NLmGI
17
+ xcpPQ/6OssLu4r/AIXCJ8oFbe1glc78TyPtA3J3ufQ+R62+K4xD8qPtRyuSSpiRZ
18
+ h9X4FhkMRQKBga8yyQ2MEQu54RxAaID/tlMVkh0CgYEApGEQsSG7tRiD8yN/G6LR
19
+ wJBmPI8HsleVI2JSflGJT94OZFTBAHqwmwWbPaZAw9RCCX4OntTbgz2/BoRjF+3a
20
+ O8GiIrKIxwCHszEWFr6HS6EFAhfrsiRjsRV9c3gS/3jYgxvqk3HbDFXsPO33ZXLd
21
+ ESPS+X/+bztSS2K3UVr3jakCgYEAgaijP9qAVzL2xT9mwukJTR8ZOV2I2r0C5fda
22
+ QXsHDWdzYONYcoqPz1ey8FoC8jm+I+4DZYOMKaIe4bPU2XdFjs0Q2TZM3Ain0Pdt
23
+ KUG06Tg3Qz1zYTm9yO4i/alLTWGUdSZGhIwWZhjQrwxbAhNyAauGvbPJcdYu57Qh
24
+ 2eN+pK0CgYB+G2nNGlns8/1dMyOzZSPBikfNq6Ay7lPwn/Pz+8KBh8S0BTUCEVPm
25
+ qU1twbuYbEvHCFyAffi4Q1euzuse0wwSK8b8/GUzPgg/AWx/QZsQFprYB0cusLRv
26
+ S9ZfkPDJkk0cNwP3hx0FKb9+ONCXX5j65ckD9u3pW9tUuxeF+hlR4A==
27
+ -----END RSA PRIVATE KEY-----
File without changes
@@ -0,0 +1,17 @@
1
+ -----BEGIN CERTIFICATE REQUEST-----
2
+ MIICvDCCAaQCAQAwdzELMAkGA1UEBhMCVVMxDTALBgNVBAgMBFV0YWgxDzANBgNV
3
+ BAcMBkxpbmRvbjEWMBQGA1UECgwNRGlnaUNlcnQgSW5jLjERMA8GA1UECwwIRGln
4
+ aUNlcnQxHTAbBgNVBAMMFGV4YW1wbGUuZGlnaWNlcnQuY29tMIIBIjANBgkqhkiG
5
+ 9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8+To7d+2kPWeBv/orU3LVbJwDrSQbeKamCmo
6
+ wp5bqDxIwV20zqRb7APUOKYoVEFFOEQs6T6gImnIolhbiH6m4zgZ/CPvWBOkZc+c
7
+ 1Po2EmvBz+AD5sBdT5kzGQA6NbWyZGldxRthNLOs1efOhdnWFuhI162qmcflgpiI
8
+ WDuwq4C9f+YkeJhNn9dF5+owm8cOQmDrV8NNdiTqin8q3qYAHHJRW28glJUCZkTZ
9
+ wIaSR6crBQ8TbYNE0dc+Caa3DOIkz1EOsHWzTx+n0zKfqcbgXi4DJx+C1bjptYPR
10
+ BPZL8DAeWuA8ebudVT44yEp82G96/Ggcf7F33xMxe0yc+Xa6owIDAQABoAAwDQYJ
11
+ KoZIhvcNAQEFBQADggEBAB0kcrFccSmFDmxox0Ne01UIqSsDqHgL+XmHTXJwre6D
12
+ hJSZwbvEtOK0G3+dr4Fs11WuUNt5qcLsx5a8uk4G6AKHMzuhLsJ7XZjgmQXGECpY
13
+ Q4mC3yT3ZoCGpIXbw+iP3lmEEXgaQL0Tx5LFl/okKbKYwIqNiyKWOMj7ZR/wxWg/
14
+ ZDGRs55xuoeLDJ/ZRFf9bI+IaCUd1YrfYcHIl3G87Av+r49YVwqRDT0VDV7uLgqn
15
+ 29XI1PpVUNCPQGn9p/eX6Qo7vpDaPybRtA2R7XLKjQaF9oXWeCUqy1hvJac9QFO2
16
+ 97Ob1alpHPoZ7mWiEuJwjBPii6a9M9G30nUo39lBi1w=
17
+ -----END CERTIFICATE REQUEST-----
@@ -0,0 +1,4 @@
1
+ task default: [
2
+ :rubocop,
3
+ :rspec,
4
+ ]
@@ -0,0 +1,3 @@
1
+ require "rspec/core/rake_task"
2
+
3
+ RSpec::Core::RakeTask.new("rspec")
@@ -0,0 +1,3 @@
1
+ require "rubocop/rake_task"
2
+
3
+ RuboCop::RakeTask.new("rubocop")
metadata ADDED
@@ -0,0 +1,124 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: simple_ca
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Tom Bowden
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-12-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '10.4'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '10.4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rubocop
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0.35'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0.35'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '3.4'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '3.4'
55
+ - !ruby/object:Gem::Dependency
56
+ name: simplecov
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0.11'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0.11'
69
+ description: Sign and generate SSL certificates with ease
70
+ email: tom.b1992@gmail.com
71
+ executables: []
72
+ extensions: []
73
+ extra_rdoc_files: []
74
+ files:
75
+ - .gitignore
76
+ - .rspec
77
+ - .rubocop.yml
78
+ - .ruby-version
79
+ - .travis.yml
80
+ - Gemfile
81
+ - Gemfile.lock
82
+ - README.md
83
+ - Rakefile
84
+ - lib/simple_ca.rb
85
+ - lib/simple_ca/ca.rb
86
+ - lib/simple_ca/sign_csr.rb
87
+ - lib/simple_ca/version.rb
88
+ - simple_ca.gemspec
89
+ - spec/simple_ca/ca_spec.rb
90
+ - spec/simple_ca/sign_csr_spec.rb
91
+ - spec/spec_helper.rb
92
+ - spec/support/certificate_matchers.rb
93
+ - spec/support/fixtures/root.crt
94
+ - spec/support/fixtures/root.key
95
+ - spec/support/fixtures/test.crt
96
+ - spec/support/fixtures/test.csr
97
+ - tasks/default.rake
98
+ - tasks/rspec.rake
99
+ - tasks/rubocop.rake
100
+ homepage: http://github.com/tpbowden/simple_ca
101
+ licenses:
102
+ - MIT
103
+ metadata: {}
104
+ post_install_message:
105
+ rdoc_options: []
106
+ require_paths:
107
+ - lib
108
+ required_ruby_version: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - '>='
111
+ - !ruby/object:Gem::Version
112
+ version: 2.0.0
113
+ required_rubygems_version: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ requirements: []
119
+ rubyforge_project:
120
+ rubygems_version: 2.5.1
121
+ signing_key:
122
+ specification_version: 4
123
+ summary: Simplified certiticate signing
124
+ test_files: []