certmeister 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d599d2605bb65cd2744e7de3d7989ebbb9f5c9ec
4
- data.tar.gz: 9f0e0e9d87f1c9420c8071e42d365737df0d24b0
3
+ metadata.gz: d5a9e171d0871cb9253d14dca465d5a9803fa07c
4
+ data.tar.gz: 163ae3a914300d3893107bd791d5a9a8f707a24e
5
5
  SHA512:
6
- metadata.gz: 364b0d70f2d07ffc8f0c82f12974171b8f7861dad592bf02c5515b9930c85ae933cb1a29efccfca7b4c32b26c1c85e702b9bba6fa3f586709993c68a82b247dc
7
- data.tar.gz: b8755d5da13d7c2275638218d739dfc4c40cff95da95080402ae2734000fea2bbcec5dd9e2e1f9b4678ede071bd92e9843e260aa473dcd68db70cf7aa2860b98
6
+ metadata.gz: e2da9a19b6c041e1567cc4e83258d44b8c40084904d53e03b5d0ce8ff1c39c3097aa639f7547ca123615a9d7dda352868a00062690da32624bffdcaf631b468e
7
+ data.tar.gz: 63887e6513a50bc4418d6aab14ef10c07dae4c614d881a27f7b30bef38526c87f1ac34440e293f4cb90f99e34faa9ee7ca1020849293517761a80c1b0549afc5
data/Gemfile.lock CHANGED
@@ -1,13 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- certmeister (1.0.0)
5
- certmeister-rack (1.0.0)
6
- certmeister (= 1.0.0)
4
+ certmeister (1.0.1)
5
+ certmeister-rack (1.0.1)
6
+ certmeister (= 1.0.1)
7
7
  rack (~> 1.5)
8
- certmeister-redis (1.0.0)
9
- certmeister (= 1.0.0)
10
- redis-sentinel (~> 1.4)
11
8
 
12
9
  GEM
13
10
  remote: http://rubygems.org/
@@ -17,9 +14,6 @@ GEM
17
14
  rack-test (0.6.2)
18
15
  rack (>= 1.0)
19
16
  rake (0.9.6)
20
- redis (3.0.7)
21
- redis-sentinel (1.4.2)
22
- redis
23
17
  rspec (3.1.0)
24
18
  rspec-core (~> 3.1.0)
25
19
  rspec-expectations (~> 3.1.0)
@@ -40,7 +34,6 @@ DEPENDENCIES
40
34
  bundler (~> 1.5)
41
35
  certmeister!
42
36
  certmeister-rack!
43
- certmeister-redis!
44
37
  rack-test (~> 0.6)
45
38
  rake (~> 0)
46
39
  rspec (~> 3.1)
data/README.md CHANGED
@@ -15,12 +15,17 @@ The reference access policy in use by Hetzner PTY Ltd is:
15
15
 
16
16
  This allows us the convenience of Puppet's autosign feature, without the horrendous security implications.
17
17
 
18
- This repository currently builds three gems:
18
+ This repository currently builds two gems:
19
19
 
20
20
  * _certmeister_ - the CA, some off-the-shelf policy modules and an in-memory cert store
21
- * _certmeister-redis_ - a redis-backed store
22
21
  * _certmeister-rack_ - a rack application to provide an HTTP interface to the CA
23
22
 
23
+ Only an in-memory store is provided. Others are available as separate gems:
24
+
25
+ * [certmeister-dynamodb](https://github.com/sheldonh/certmeister-dynamodb)
26
+ * [certmeister-pg](https://github.com/sheldonh/certmeister-pg)
27
+ * [certmeister-redis](https://github.com/sheldonh/certmeister-redis)
28
+
24
29
  An example, using redis and rack and enforcing Hetzner PTY Ltd's policy, is available in [contrib/config.ru](contrib/config.ru).
25
30
 
26
31
  To hit the service:
@@ -34,19 +39,8 @@ $ curl -L \
34
39
 
35
40
  ## Testing
36
41
 
37
- Because we test both certmeister and certmeister-redis with `rake spec`, you need redis up if you want to run the tests. It's easy:
38
-
39
- * Install redis-2.8.4 or later.
40
- * Start redis.
41
- * Run tests.
42
- * Stop redis.
43
-
44
42
  ```
45
- sudo yum install -y ansible
46
- sudo ansible-playbook -i contrib/hosts contrib/redis.yml
47
- redis-server --logfile /dev/null &
48
43
  rake spec
49
- kill %1; wait %1
50
44
  ```
51
45
 
52
46
  ## Releasing
@@ -1 +1 @@
1
- ruby-2.0.0-p247
1
+ ruby-2.1.5
data/contrib/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source "https://rubygems.org/"
2
2
 
3
3
  gem "certmeister", path: '..'
4
- gem "certmeister-redis", path: '..'
4
+ gem "certmeister-redis"
5
5
  gem "redis"
6
6
  gem "rack"
@@ -12,7 +12,9 @@ module Certmeister
12
12
  end
13
13
 
14
14
  def authenticate(request)
15
- if @store.fetch(request[:cn]).nil?
15
+ if not request[:cn]
16
+ Certmeister::Policy::Response.new(false, "missing cn")
17
+ elsif @store.fetch(request[:cn]).nil?
16
18
  Certmeister::Policy::Response.new(true, nil)
17
19
  else
18
20
  Certmeister::Policy::Response.new(false, "certificate for cn already exists")
@@ -1,5 +1,5 @@
1
1
  module Certmeister
2
2
 
3
- VERSION = '1.0.0' unless defined?(VERSION)
3
+ VERSION = '1.0.1' unless defined?(VERSION)
4
4
 
5
5
  end
@@ -17,6 +17,12 @@ describe Certmeister::Policy::Existing do
17
17
  expect { subject.authenticate }.to raise_error(ArgumentError)
18
18
  end
19
19
 
20
+ it "refuses to authenticate a request with a missing cn" do
21
+ response = subject.authenticate(cn: nil)
22
+ expect(response).to_not be_authenticated
23
+ expect(response.error).to eql "missing cn"
24
+ end
25
+
20
26
  context "when the store contains a cert for axl.hetzner.africa" do
21
27
 
22
28
  subject { Certmeister::Policy::Existing.new(Certmeister::InMemoryStore.new({"axl.hetzner.africa" => "...cert..."})) }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: certmeister
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sheldon Hearn
@@ -72,7 +72,6 @@ files:
72
72
  - README.md
73
73
  - Rakefile
74
74
  - certmeister-rack.gemspec
75
- - certmeister-redis.gemspec
76
75
  - certmeister.gemspec
77
76
  - contrib/.ruby-gemset
78
77
  - contrib/.ruby-version
@@ -1,22 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'certmeister/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "certmeister-redis"
8
- spec.version = Certmeister::VERSION
9
- spec.authors = ["Sheldon Hearn"]
10
- spec.email = ["sheldonh@starjuice.net"]
11
- spec.summary = %q{Redis store for certmeister}
12
- spec.description = %q{This gem provides a redis store for use in certmeister, the conditional autosigning certificate authority.}
13
- spec.homepage = "https://github.com/sheldonh/certmeister"
14
- spec.license = "MIT"
15
-
16
- spec.files = `git ls-files -z lib/certmeister spec/certmeister`.split("\x0").grep(/redis/)
17
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
- spec.require_paths = ["lib"]
19
-
20
- spec.add_dependency "certmeister", Certmeister::VERSION
21
- spec.add_dependency "redis-sentinel", "~> 1.4"
22
- end