r509-ocsp-responder 0.3.2 → 0.3.3

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.
@@ -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: