r509-ocsp-responder 0.3.2 → 0.3.3

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: a48e0631999d2b44f57298b331a076902452112f
4
+ data.tar.gz: 614699817a65eab0bada510b448730ce42c415df
5
+ SHA512:
6
+ metadata.gz: 0825e1ad4a32d96ec4a973f0d508ade1ded4f25592abc3e59f112dffcaa9b7f4bed8d5915e43c8c57ba468d36bb48f71b3287312991f9557fade1d31711dfb4d
7
+ data.tar.gz: 77f96bc36bdb923f321fbc4d5ae2e5bfe9b88e96ab261b0ddfac822ae970cb3edb26091ecd60da4a4d742773bd370c93f676879ecfcd44ffe2ea8d0ad9eabcba
@@ -0,0 +1,2 @@
1
+ |�؄�sl1�j�82~� �,c>U�5�Fn��
2
+ :�f/W}��"W����f�/��i�ٜE6�x���|�a��
Binary file
data/README.md CHANGED
@@ -1,9 +1,9 @@
1
- #r509-ocsp-responder [![Build Status](https://secure.travis-ci.org/reaperhulk/r509-ocsp-responder.png)](http://travis-ci.org/reaperhulk/r509-ocsp-responder)
2
- r509-ocsp-responder is an OCSP responder written using [r509](https://github.com/reaperhulk/r509) and Sinatra to conform to RFC [2560](http://www.ietf.org/rfc/rfc2560.txt) and [5019](http://www.ietf.org/rfc/rfc5019.txt).
1
+ #r509-ocsp-responder [![Build Status](https://secure.travis-ci.org/r509/r509-ocsp-responder.png)](http://travis-ci.org/r509/r509-ocsp-responder) [![Coverage Status](https://coveralls.io/repos/r509/r509-ocsp-responder/badge.png)](https://coveralls.io/r/r509/r509-ocsp-responder)
2
+ r509-ocsp-responder is an OCSP responder written using [r509](https://github.com/r509/r509) and Sinatra to conform to RFC [2560](http://www.ietf.org/rfc/rfc2560.txt) and [5019](http://www.ietf.org/rfc/rfc5019.txt).
3
3
 
4
4
  ##Requirements
5
5
 
6
- r509-ocsp-responder depends on [r509](https://github.com/reaperhulk/r509), [redis](http://redis.io), [r509-validity-redis](https://github.com/sirsean/r509-validity-redis) (or another library that implements R509::Validity), [sinatra](http://sinatrarb.com), and [dependo](https://github.com/sirsean/dependo). Optionally, you can install [r509-ocsp-stats](https://github.com/sirsean/r509-ocsp-stats) for stats collection. These must be installed as gems.
6
+ r509-ocsp-responder depends on [r509](https://github.com/r509/r509), [redis](http://redis.io), [r509-validity-redis](https://github.com/sirsean/r509-validity-redis) (or another library that implements R509::Validity such as [r509-validity-crl](https://github.com/r509/r509-validity-crl)), [sinatra](http://sinatrarb.com), and [dependo](https://github.com/sirsean/dependo). Optionally, you can install [r509-ocsp-stats](https://github.com/sirsean/r509-ocsp-stats) for stats collection. These must be installed as gems.
7
7
 
8
8
  ##Basic Usage
9
9
 
@@ -11,7 +11,7 @@ r509-ocsp-responder depends on [r509](https://github.com/reaperhulk/r509), [redi
11
11
  If you have cloned the repo you can build the gem with ```rake gem:build``` and install with ```rake gem:install``` . Alternately you can use a prebuilt gem by typing ```gem install r509-ocsp-responder``` .
12
12
 
13
13
  ###Set Up config.ru
14
- Save the below into a config.ru (or rackup) file
14
+ Save the below into a config.ru file
15
15
 
16
16
  ```ruby
17
17
  require "r509"
@@ -50,61 +50,51 @@ run responder
50
50
  The config.yaml contains certificate authority nodes as well as options like copy_nonce (documented below). Each CA node has an arbitrary name like test_ca and contains a ca_cert and (optional) ocsp_cert node. If you want to sign OCSP responses directly from your root you'll set your config up like this:
51
51
 
52
52
  ```yaml
53
+ ---
53
54
  copy_nonce: true
54
55
  cache_headers: true
55
56
  max_cache_age: 60
56
- certificate_authorities: {
57
- second_ca: {
58
- ca_cert: {
59
- cert: "spec/fixtures/second_ca.cer",
60
- key: "spec/fixtures/second_ca.key"
61
- }
62
- }
63
- }
57
+ certificate_authorities:
58
+ second_ca:
59
+ ca_cert:
60
+ cert: spec/fixtures/second_ca.cer
61
+ key: spec/fixtures/second_ca.key
64
62
  ```
65
63
 
66
64
  If you want to use an OCSP delegate
67
65
 
68
66
  ```yaml
67
+ ---
69
68
  copy_nonce: true
70
69
  cache_headers: true
71
70
  max_cache_age: 60
72
- certificate_authorities: {
73
- test_ca: {
74
- ca_cert: {
75
- cert: "spec/fixtures/test_ca.cer"
76
- },
77
- ocsp_cert: {
78
- cert: "spec/fixtures/test_ca_ocsp.cer",
79
- key: "spec/fixtures/test_ca_ocsp.key"
80
- }
81
- }
82
- }
71
+ certificate_authorities:
72
+ test_ca:
73
+ ca_cert:
74
+ cert: spec/fixtures/test_ca.cer
75
+ ocsp_cert:
76
+ cert: spec/fixtures/test_ca_ocsp.cer
77
+ key: spec/fixtures/test_ca_ocsp.key
83
78
  ```
84
79
 
85
80
  Finally, if you're responding for multiple roots you specify them like so:
86
81
 
87
82
  ```yaml
83
+ ---
88
84
  copy_nonce: true
89
85
  cache_headers: true
90
86
  max_cache_age: 60
91
- certificate_authorities: {
92
- test_ca: {
93
- ca_cert: {
94
- cert: "spec/fixtures/test_ca.cer"
95
- },
96
- ocsp_cert: {
97
- cert: "spec/fixtures/test_ca_ocsp.cer",
98
- key: "spec/fixtures/test_ca_ocsp.key"
99
- }
100
- },
101
- second_ca: {
102
- ca_cert: {
103
- cert: "spec/fixtures/second_ca.cer",
104
- key: "spec/fixtures/second_ca.key"
105
- }
106
- }
107
- }
87
+ certificate_authorities:
88
+ test_ca:
89
+ ca_cert:
90
+ cert: spec/fixtures/test_ca.cer
91
+ ocsp_cert:
92
+ cert: spec/fixtures/test_ca_ocsp.cer
93
+ key: spec/fixtures/test_ca_ocsp.key
94
+ second_ca:
95
+ ca_cert:
96
+ cert: spec/fixtures/second_ca.cer
97
+ key: spec/fixtures/second_ca.key
108
98
  ```
109
99
 
110
100
  ###Configure Thin & nginx
@@ -165,8 +155,8 @@ This OCSP responder supports several optional flags (in addition to supporting a
165
155
  ##Signals
166
156
  You can send a kill -USR2 signal to any running r509-ocsp-responder process to cause it to reload and print its config to the logs (provided your app server isn't trapping USR2 first).
167
157
 
158
+ ##Support
159
+ You can file bugs on GitHub or join the #r509 channel on irc.freenode.net to ask questions.
160
+
168
161
  ##Running Tests
169
162
  You'll need rspec, rake, and rack-test to run the tests. With these gems in place run ```rake spec```
170
-
171
- ##Future Ideas
172
- * Devise a mechanism for doing automated OCSP delegate certificate renewal
data/Rakefile CHANGED
@@ -7,12 +7,6 @@ RSpec::Core::RakeTask.new(:spec) do
7
7
  ENV['RACK_ENV'] = 'test'
8
8
  end
9
9
 
10
- desc 'Run all rspec tests with rcov (1.8 only)'
11
- RSpec::Core::RakeTask.new(:rcov) do |t|
12
- t.rcov_opts = %q[--exclude "spec,gems"]
13
- t.rcov = true
14
- end
15
-
16
10
  namespace :gem do
17
11
  desc 'Build the gem'
18
12
  task :build do
@@ -1,7 +1,7 @@
1
1
  module R509
2
2
  module OCSP
3
3
  module Responder
4
- VERSION="0.3.2"
4
+ VERSION="0.3.3"
5
5
  end
6
6
  end
7
7
  end
@@ -54,12 +54,11 @@ module TestFixtures
54
54
  end
55
55
 
56
56
  def self.test_ca_server_profile
57
- R509::Config::CAProfile.new(
58
- :basic_constraints => { "ca" => false },
59
- :key_usage => ["digitalSignature","keyEncipherment"],
60
- :extended_key_usage => ["serverAuth"]
57
+ R509::Config::CertProfile.new(
58
+ :basic_constraints => { :ca => false },
59
+ :key_usage => { :value => ["digitalSignature","keyEncipherment"] },
60
+ :extended_key_usage => { :value => ["serverAuth"] }
61
61
  )
62
-
63
62
  end
64
63
 
65
64
  def self.second_ca_cert
@@ -67,12 +66,11 @@ module TestFixtures
67
66
  end
68
67
 
69
68
  def self.second_ca_server_profile
70
- R509::Config::CAProfile.new(
71
- :basic_constraints => { "ca" => false },
72
- :key_usage => ["digitalSignature","keyEncipherment"],
73
- :extended_key_usage => ["serverAuth"]
69
+ R509::Config::CertProfile.new(
70
+ :basic_constraints => { :ca => false },
71
+ :key_usage => { :value => ["digitalSignature","keyEncipherment"] },
72
+ :extended_key_usage => { :value => ["serverAuth"] }
74
73
  )
75
-
76
74
  end
77
75
 
78
76
  # @return [R509::Config::CAConfig]
@@ -261,7 +261,7 @@ describe R509::OCSP::Responder::Server do
261
261
  Dependo::Registry[:cache_headers] = true
262
262
 
263
263
  now = Time.now
264
- Time.stub!(:now).and_return(now)
264
+ Time.stub(:now).and_return(now)
265
265
 
266
266
  @redis.should_receive(:hgetall).with("cert:/C=US/ST=Illinois/L=Chicago/O=R509, Ltd/CN=R509 Secondary Test CA:773553085290984246110251380739025914079776985795").and_return({"status" => R509::Validity::VALID})
267
267
  @stats.should_receive(:record).with("/C=US/ST=Illinois/L=Chicago/O=R509, Ltd/CN=R509 Secondary Test CA", "773553085290984246110251380739025914079776985795", "VALID")
@@ -280,13 +280,13 @@ describe R509::OCSP::Responder::Server do
280
280
  Dependo::Registry[:cache_headers] = false
281
281
 
282
282
  now = Time.now
283
- Time.stub!(:now).and_return(now)
283
+ Time.stub(:now).and_return(now)
284
284
 
285
285
  @redis.should_receive(:hgetall).with("cert:/C=US/ST=Illinois/L=Chicago/O=R509, Ltd/CN=R509 Secondary Test CA:773553085290984246110251380739025914079776985795").and_return({"status" => R509::Validity::VALID})
286
286
  @stats.should_receive(:record).with("/C=US/ST=Illinois/L=Chicago/O=R509, Ltd/CN=R509 Secondary Test CA", "773553085290984246110251380739025914079776985795", "VALID")
287
287
 
288
288
  get '/MFYwVDBSMFAwTjAJBgUrDgMCGgUABBT1kOLWHXbHiKP3sVPVxVziq%2FMqIwQUP8ezIf8yhMLgHnccSKJLQdhDaVkCFQCHf1HsjUAACwcp3qQL4IxclfXSww%3D%3D'
289
- ocsp_response = R509::OCSP::Response.parse(last_response.body)
289
+ R509::OCSP::Response.parse(last_response.body)
290
290
  last_response.headers.size.should == 2
291
291
  end
292
292
 
@@ -294,13 +294,13 @@ describe R509::OCSP::Responder::Server do
294
294
  Dependo::Registry[:cache_headers] = true
295
295
 
296
296
  now = Time.now
297
- Time.stub!(:now).and_return(now)
297
+ Time.stub(:now).and_return(now)
298
298
 
299
299
  @redis.should_receive(:hgetall).with("cert:/C=US/ST=Illinois/L=Chicago/O=Ruby CA Project/CN=Test CA:872625873161273451176241581705670534707360122361").and_return({"status" => R509::Validity::VALID})
300
300
  @stats.should_receive(:record).with("/C=US/ST=Illinois/L=Chicago/O=Ruby CA Project/CN=Test CA", "872625873161273451176241581705670534707360122361", "VALID")
301
301
 
302
302
  get '/MHsweTBSMFAwTjAJBgUrDgMCGgUABBQ4ykaMB0SN9IGWx21tTHBRnmCnvQQUeXW7hDrLLN56Cb4xG0O8HCpNU1gCFQCY2eXAtMNzVS33fF0PHrUSjklF%2BaIjMCEwHwYJKwYBBQUHMAECBBIEEDTJniOQonxCRmmHAHCVstw%3D'
303
- ocsp_response = R509::OCSP::Response.parse(last_response.body)
303
+ R509::OCSP::Response.parse(last_response.body)
304
304
  last_response.headers.size.should == 2
305
305
  end
306
306
 
@@ -308,13 +308,13 @@ describe R509::OCSP::Responder::Server do
308
308
  Dependo::Registry[:cache_headers] = false
309
309
 
310
310
  now = Time.now
311
- Time.stub!(:now).and_return(now)
311
+ Time.stub(:now).and_return(now)
312
312
 
313
313
  @redis.should_receive(:hgetall).with("cert:/C=US/ST=Illinois/L=Chicago/O=Ruby CA Project/CN=Test CA:872625873161273451176241581705670534707360122361").and_return({"status" => R509::Validity::VALID})
314
314
  @stats.should_receive(:record).with("/C=US/ST=Illinois/L=Chicago/O=Ruby CA Project/CN=Test CA", "872625873161273451176241581705670534707360122361", "VALID")
315
315
 
316
316
  get '/MHsweTBSMFAwTjAJBgUrDgMCGgUABBQ4ykaMB0SN9IGWx21tTHBRnmCnvQQUeXW7hDrLLN56Cb4xG0O8HCpNU1gCFQCY2eXAtMNzVS33fF0PHrUSjklF%2BaIjMCEwHwYJKwYBBQUHMAECBBIEEDTJniOQonxCRmmHAHCVstw%3D'
317
- ocsp_response = R509::OCSP::Response.parse(last_response.body)
317
+ R509::OCSP::Response.parse(last_response.body)
318
318
  last_response.headers.size.should == 2
319
319
  end
320
320
 
@@ -323,7 +323,7 @@ describe R509::OCSP::Responder::Server do
323
323
  Dependo::Registry[:max_cache_age] = 600
324
324
 
325
325
  now = Time.now
326
- Time.stub!(:now).and_return(now)
326
+ Time.stub(:now).and_return(now)
327
327
 
328
328
  @redis.should_receive(:hgetall).with("cert:/C=US/ST=Illinois/L=Chicago/O=R509, Ltd/CN=R509 Secondary Test CA:773553085290984246110251380739025914079776985795").and_return({"status" => R509::Validity::VALID})
329
329
  @stats.should_receive(:record).with("/C=US/ST=Illinois/L=Chicago/O=R509, Ltd/CN=R509 Secondary Test CA", "773553085290984246110251380739025914079776985795", "VALID")
@@ -342,7 +342,7 @@ describe R509::OCSP::Responder::Server do
342
342
  Dependo::Registry[:max_cache_age] = 950000
343
343
 
344
344
  now = Time.now
345
- Time.stub!(:now).and_return(now)
345
+ Time.stub(:now).and_return(now)
346
346
 
347
347
  @redis.should_receive(:hgetall).with("cert:/C=US/ST=Illinois/L=Chicago/O=R509, Ltd/CN=R509 Secondary Test CA:773553085290984246110251380739025914079776985795").and_return({"status" => R509::Validity::VALID})
348
348
  @stats.should_receive(:record).with("/C=US/ST=Illinois/L=Chicago/O=R509, Ltd/CN=R509 Secondary Test CA", "773553085290984246110251380739025914079776985795", "VALID")
@@ -377,7 +377,7 @@ describe R509::OCSP::Responder::Server do
377
377
 
378
378
  der = Base64.decode64(URI.decode("MFYwVDBSMFAwTjAJBgUrDgMCGgUABBQ4ykaMB0SN9IGWx21tTHBRnmCnvQQUeXW7hDrLLN56Cb4xG0O8HCpNU1gCFQC4IG5U4zC4RYb4VQ%2B2f0zCoFCvNg%3D%3D"))
379
379
  post '/', der, "CONTENT_TYPE" => "application/ocsp-request"
380
- ocsp_response = R509::OCSP::Response.parse(last_response.body)
380
+ R509::OCSP::Response.parse(last_response.body)
381
381
  last_response.content_type.should == "application/ocsp-response"
382
382
  last_response.headers.size.should == 2
383
383
  last_response.should be_ok
@@ -391,18 +391,19 @@ describe R509::OCSP::Responder::Server do
391
391
 
392
392
  der = Base64.decode64(URI.decode("MFYwVDBSMFAwTjAJBgUrDgMCGgUABBQ4ykaMB0SN9IGWx21tTHBRnmCnvQQUeXW7hDrLLN56Cb4xG0O8HCpNU1gCFQC4IG5U4zC4RYb4VQ%2B2f0zCoFCvNg%3D%3D"))
393
393
  post '/', der, "CONTENT_TYPE" => "application/ocsp-request"
394
- ocsp_response = R509::OCSP::Response.parse(last_response.body)
394
+ R509::OCSP::Response.parse(last_response.body)
395
395
  last_response.content_type.should == "application/ocsp-response"
396
396
  last_response.headers.size.should == 2
397
397
  last_response.should be_ok
398
398
  end
399
399
 
400
+ =begin
401
+ # this test is disabled because it is unreliable. Signal testing this way is
402
+ # probably wrong.
400
403
  it "should reload and print config when receiving a SIGUSR2" do
401
- config = double("config")
402
- stub_const("R509::OCSP::Responder::OCSPConfig",config)
403
- #R509::OCSP::Responder::OCSPConfig = double("config")
404
404
  R509::OCSP::Responder::OCSPConfig.should_receive(:load_config)
405
405
  R509::OCSP::Responder::OCSPConfig.should_receive(:print_config)
406
406
  Process.kill :USR2, Process.pid
407
407
  end
408
+ =end
408
409
  end
@@ -46,8 +46,8 @@ describe R509::OCSP::Signer do
46
46
  request_response[:response].status.should == OpenSSL::OCSP::RESPONSE_STATUS_SUCCESSFUL
47
47
  request_response[:response].verify(@ocsp_delegate_config.ca_cert.cert).should == true
48
48
  #TODO Better way to check whether we're adding the certs when signing the basic_response than response size...
49
- request_response[:response].to_der.size.should >= 1500
50
- request_response[:response].to_der.size.should <= 1800
49
+ request_response[:response].to_der.size.should be >= 1500
50
+ request_response[:response].to_der.size.should be <= 1800
51
51
  end
52
52
  it "responds successfully for a subroot (signing via subroot)" do
53
53
  ocsp_handler = R509::OCSP::Signer.new( :configs => R509::Config::CAConfigPool.new('testca' => @test_ca_subroot_config) )
@@ -85,8 +85,8 @@ describe R509::OCSP::Signer do
85
85
  request_response[:response].status.should == OpenSSL::OCSP::RESPONSE_STATUS_SUCCESSFUL
86
86
  request_response[:response].verify(@ocsp_chain_config.ca_cert.cert).should == true
87
87
  #TODO Better way to check whether we're adding the certs when signing the basic_response than response size...
88
- request_response[:response].to_der.size.should >= 3600
89
- request_response[:response].to_der.size.should <= 3900
88
+ request_response[:response].to_der.size.should be >= 3600
89
+ request_response[:response].to_der.size.should be <= 3900
90
90
  end
91
91
  it "responds successfully from the test_ca" do
92
92
  csr = R509::CSR.new( :subject => [['CN','ocsptest.r509.local']], :bit_strength => 1024 )
@@ -101,7 +101,7 @@ describe R509::OCSP::Signer do
101
101
  request_response[:request].should_not be_nil
102
102
  end
103
103
  it "responds successfully from an elliptic curve CA" do
104
- csr = R509::CSR.new( :subject => [['CN','ocspectest.r509.local']], :type => :ec )
104
+ csr = R509::CSR.new( :subject => [['CN','ocspectest.r509.local']], :type => "EC" )
105
105
  ca = R509::CertificateAuthority::Signer.new(@test_ca_ec_config)
106
106
  cert = ca.sign(:csr => csr, :profile_name => 'server')
107
107
  ocsp_request = OpenSSL::OCSP::Request.new
@@ -1,6 +1,9 @@
1
- if (RUBY_VERSION.split('.')[1].to_i > 8 || RUBY_VERSION.split('.')[0].to_i > 1)
2
- require 'simplecov'
3
- SimpleCov.start
1
+ require 'simplecov'
2
+ SimpleCov.start
3
+ begin
4
+ require 'coveralls'
5
+ Coveralls.wear!
6
+ rescue LoadError
4
7
  end
5
8
 
6
9
  $:.unshift File.expand_path("../../lib", __FILE__)
metadata CHANGED
@@ -1,174 +1,175 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: r509-ocsp-responder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
5
- prerelease:
4
+ version: 0.3.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Paul Kehrer
9
8
  autorequire:
10
9
  bindir: bin
11
- cert_chain: []
12
- date: 2013-04-16 00:00:00.000000000 Z
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDhTCCAm2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMRYwFAYDVQQDDA1wYXVs
14
+ Lmwua2VocmVyMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZ
15
+ FgNjb20wHhcNMTMxMjA2MDAzNTU0WhcNMTQxMjA2MDAzNTU0WjBEMRYwFAYDVQQD
16
+ DA1wYXVsLmwua2VocmVyMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJ
17
+ k/IsZAEZFgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDLVC6U
18
+ 0ZyX4C4HllJxHW0Uq39bvRvfNXc0RXMSvIRklxjupx3EICVATpAJzg4qBxbpxRTe
19
+ XcsmuYfaZAriSH2M97C2sBJnVEAr63ws2vmBQKw9cXHV3RjQTeqQUTQudE790DTI
20
+ 7pc1ObprB4pM2j3O6JtPVzmJ/PGACjtyg4bys6bx7JQJW5liunK26mS6w6mAAcAV
21
+ scAz7oh6fmOI0OSS45l3ycOEh5sb42cZzs7TNzcvVmEppTRa4wBP4/eDTuohxlPH
22
+ skuIPWcdU6YTo2LWwqEaGgUItj8lRqXGDcEZ1FhKyZ6HUD3l1zPGxojW8BKr0Svj
23
+ /cMP+y0YH5OeoD+vAgMBAAGjgYEwfzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAd
24
+ BgNVHQ4EFgQURv1xuy9aKzcxwxkGiL/e4UYCWGowIgYDVR0RBBswGYEXcGF1bC5s
25
+ LmtlaHJlckBnbWFpbC5jb20wIgYDVR0SBBswGYEXcGF1bC5sLmtlaHJlckBnbWFp
26
+ bC5jb20wDQYJKoZIhvcNAQEFBQADggEBADsnINhvXWJ8r7U02fzbmOitcDZOlCnN
27
+ jtyYfzDbYtEnQCpBCHhpNC8SVI3OUgGJbrb5Debs0f1UxrYsGn0u8LsLu6xmst+D
28
+ zZdxtzvnsqowLw2dCzXow0CGwBGcWq38Wqn0v/ez3otQBj2GGGV0jyLUoRWfMwTK
29
+ dqbGuJ0s/ZORipbl4jdfucPbrGPQHmf8/H8w0/kH7tBnhcyGI1exBSQexiu2qRqP
30
+ wQ9nsK5DoJSWf5vG8Xu/TEnv2Gu8z6T4wBrbIr20EYu6lb0i5ekGhrHOcaPRI6X9
31
+ lYMLMTFSyjE66v5QiUlZ9V4oV6O/MPS9fXPxog3TCsYpgfsgA+RlO8I=
32
+ -----END CERTIFICATE-----
33
+ date: 2014-01-26 00:00:00.000000000 Z
13
34
  dependencies:
14
35
  - !ruby/object:Gem::Dependency
15
36
  name: r509
16
37
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
38
  requirements:
19
- - - ! '>='
39
+ - - ">="
20
40
  - !ruby/object:Gem::Version
21
41
  version: '0'
22
42
  type: :runtime
23
43
  prerelease: false
24
44
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
45
  requirements:
27
- - - ! '>='
46
+ - - ">="
28
47
  - !ruby/object:Gem::Version
29
48
  version: '0'
30
49
  - !ruby/object:Gem::Dependency
31
50
  name: redis
32
51
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
52
  requirements:
35
- - - ! '>='
53
+ - - ">="
36
54
  - !ruby/object:Gem::Version
37
55
  version: '0'
38
56
  type: :runtime
39
57
  prerelease: false
40
58
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
59
  requirements:
43
- - - ! '>='
60
+ - - ">="
44
61
  - !ruby/object:Gem::Version
45
62
  version: '0'
46
63
  - !ruby/object:Gem::Dependency
47
64
  name: r509-validity-redis
48
65
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
66
  requirements:
51
- - - ~>
67
+ - - "~>"
52
68
  - !ruby/object:Gem::Version
53
69
  version: 0.4.0
54
70
  type: :runtime
55
71
  prerelease: false
56
72
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
73
  requirements:
59
- - - ~>
74
+ - - "~>"
60
75
  - !ruby/object:Gem::Version
61
76
  version: 0.4.0
62
77
  - !ruby/object:Gem::Dependency
63
78
  name: sinatra
64
79
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
80
  requirements:
67
- - - ! '>='
81
+ - - ">="
68
82
  - !ruby/object:Gem::Version
69
83
  version: '0'
70
84
  type: :runtime
71
85
  prerelease: false
72
86
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
87
  requirements:
75
- - - ! '>='
88
+ - - ">="
76
89
  - !ruby/object:Gem::Version
77
90
  version: '0'
78
91
  - !ruby/object:Gem::Dependency
79
92
  name: dependo
80
93
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
94
  requirements:
83
- - - ! '>='
95
+ - - ">="
84
96
  - !ruby/object:Gem::Version
85
97
  version: '0'
86
98
  type: :runtime
87
99
  prerelease: false
88
100
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
101
  requirements:
91
- - - ! '>='
102
+ - - ">="
92
103
  - !ruby/object:Gem::Version
93
104
  version: '0'
94
105
  - !ruby/object:Gem::Dependency
95
106
  name: rspec
96
107
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
108
  requirements:
99
- - - ! '>='
109
+ - - ">="
100
110
  - !ruby/object:Gem::Version
101
111
  version: '2.11'
102
112
  type: :development
103
113
  prerelease: false
104
114
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
115
  requirements:
107
- - - ! '>='
116
+ - - ">="
108
117
  - !ruby/object:Gem::Version
109
118
  version: '2.11'
110
119
  - !ruby/object:Gem::Dependency
111
120
  name: rake
112
121
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
122
  requirements:
115
- - - ! '>='
123
+ - - ">="
116
124
  - !ruby/object:Gem::Version
117
125
  version: '0'
118
126
  type: :development
119
127
  prerelease: false
120
128
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
129
  requirements:
123
- - - ! '>='
130
+ - - ">="
124
131
  - !ruby/object:Gem::Version
125
132
  version: '0'
126
133
  - !ruby/object:Gem::Dependency
127
134
  name: syntax
128
135
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
136
  requirements:
131
- - - ! '>='
137
+ - - ">="
132
138
  - !ruby/object:Gem::Version
133
139
  version: '0'
134
140
  type: :development
135
141
  prerelease: false
136
142
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
143
  requirements:
139
- - - ! '>='
144
+ - - ">="
140
145
  - !ruby/object:Gem::Version
141
146
  version: '0'
142
147
  - !ruby/object:Gem::Dependency
143
148
  name: rack-test
144
149
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
150
  requirements:
147
- - - ! '>='
151
+ - - ">="
148
152
  - !ruby/object:Gem::Version
149
153
  version: '0'
150
154
  type: :development
151
155
  prerelease: false
152
156
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
157
  requirements:
155
- - - ! '>='
158
+ - - ">="
156
159
  - !ruby/object:Gem::Version
157
160
  version: '0'
158
161
  - !ruby/object:Gem::Dependency
159
162
  name: simplecov
160
163
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
164
  requirements:
163
- - - ! '>='
165
+ - - ">="
164
166
  - !ruby/object:Gem::Version
165
167
  version: '0'
166
168
  type: :development
167
169
  prerelease: false
168
170
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
171
  requirements:
171
- - - ! '>='
172
+ - - ">="
172
173
  - !ruby/object:Gem::Version
173
174
  version: '0'
174
175
  description: A ruby OCSP responder using Sinatra and redis. RFC 2560 and 5019 compliant.
@@ -183,6 +184,7 @@ files:
183
184
  - lib/r509/ocsp/responder/server.rb
184
185
  - lib/r509/ocsp/responder/version.rb
185
186
  - lib/r509/ocsp/signer.rb
187
+ - spec/fixtures.rb
186
188
  - spec/fixtures/cert1.pem
187
189
  - spec/fixtures/config_test_various.yaml
188
190
  - spec/fixtures/ocsptest.r509.local.pem
@@ -205,57 +207,30 @@ files:
205
207
  - spec/fixtures/test_ca_subroot_ocsp.cer
206
208
  - spec/fixtures/test_ca_subroot_ocsp.key
207
209
  - spec/fixtures/test_config.yaml
208
- - spec/fixtures.rb
209
210
  - spec/server_spec.rb
210
211
  - spec/signer_spec.rb
211
212
  - spec/spec_helper.rb
212
- - doc/_index.html
213
- - doc/class_list.html
214
- - doc/css/common.css
215
- - doc/css/full_list.css
216
- - doc/css/style.css
217
- - doc/file.README.html
218
- - doc/file_list.html
219
- - doc/frames.html
220
- - doc/index.html
221
- - doc/js/app.js
222
- - doc/js/full_list.js
223
- - doc/js/jquery.js
224
- - doc/method_list.html
225
- - doc/R509/Ocsp/Helper/RequestChecker.html
226
- - doc/R509/Ocsp/Helper/ResponseSigner.html
227
- - doc/R509/Ocsp/Helper.html
228
- - doc/R509/Ocsp/Responder/OcspConfig.html
229
- - doc/R509/Ocsp/Responder/Server.html
230
- - doc/R509/Ocsp/Responder/StatusError.html
231
- - doc/R509/Ocsp/Responder.html
232
- - doc/R509/Ocsp/Signer.html
233
- - doc/R509/Ocsp.html
234
- - doc/R509.html
235
- - doc/top-level-namespace.html
236
213
  homepage: http://langui.sh
237
214
  licenses: []
215
+ metadata: {}
238
216
  post_install_message:
239
217
  rdoc_options: []
240
218
  require_paths:
241
219
  - lib
242
220
  required_ruby_version: !ruby/object:Gem::Requirement
243
- none: false
244
221
  requirements:
245
- - - ! '>='
222
+ - - ">="
246
223
  - !ruby/object:Gem::Version
247
224
  version: 1.9.3
248
225
  required_rubygems_version: !ruby/object:Gem::Requirement
249
- none: false
250
226
  requirements:
251
- - - ! '>='
227
+ - - ">="
252
228
  - !ruby/object:Gem::Version
253
229
  version: '0'
254
230
  requirements: []
255
231
  rubyforge_project:
256
- rubygems_version: 1.8.23
232
+ rubygems_version: 2.2.0
257
233
  signing_key:
258
- specification_version: 3
234
+ specification_version: 4
259
235
  summary: A (relatively) simple OCSP responder written to work with r509
260
236
  test_files: []
261
- has_rdoc: