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.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +2 -0
- data.tar.gz.sig +0 -0
- data/README.md +33 -43
- data/Rakefile +0 -6
- data/lib/r509/ocsp/responder/version.rb +1 -1
- data/spec/fixtures.rb +8 -10
- data/spec/server_spec.rb +15 -14
- data/spec/signer_spec.rb +5 -5
- data/spec/spec_helper.rb +6 -3
- metadata +51 -76
- metadata.gz.sig +0 -0
- data/doc/R509.html +0 -115
- data/doc/R509/Ocsp.html +0 -130
- data/doc/R509/Ocsp/Helper.html +0 -126
- data/doc/R509/Ocsp/Helper/RequestChecker.html +0 -739
- data/doc/R509/Ocsp/Helper/ResponseSigner.html +0 -583
- data/doc/R509/Ocsp/Responder.html +0 -129
- data/doc/R509/Ocsp/Responder/OcspConfig.html +0 -289
- data/doc/R509/Ocsp/Responder/Server.html +0 -128
- data/doc/R509/Ocsp/Responder/StatusError.html +0 -134
- data/doc/R509/Ocsp/Signer.html +0 -576
- data/doc/_index.html +0 -197
- data/doc/class_list.html +0 -53
- data/doc/css/common.css +0 -1
- data/doc/css/full_list.css +0 -57
- data/doc/css/style.css +0 -338
- data/doc/file.README.html +0 -248
- data/doc/file_list.html +0 -55
- data/doc/frames.html +0 -28
- data/doc/index.html +0 -248
- data/doc/js/app.js +0 -214
- data/doc/js/full_list.js +0 -178
- data/doc/js/jquery.js +0 -4
- data/doc/method_list.html +0 -136
- data/doc/top-level-namespace.html +0 -112
checksums.yaml
ADDED
@@ -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
|
checksums.yaml.gz.sig
ADDED
data.tar.gz.sig
ADDED
Binary file
|
data/README.md
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
#r509-ocsp-responder [](http://travis-ci.org/r509/r509-ocsp-responder) [](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/
|
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
|
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:
|
60
|
-
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:
|
76
|
-
|
77
|
-
|
78
|
-
|
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:
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
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
|
data/spec/fixtures.rb
CHANGED
@@ -54,12 +54,11 @@ module TestFixtures
|
|
54
54
|
end
|
55
55
|
|
56
56
|
def self.test_ca_server_profile
|
57
|
-
R509::Config::
|
58
|
-
:basic_constraints => {
|
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::
|
71
|
-
:basic_constraints => {
|
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]
|
data/spec/server_spec.rb
CHANGED
@@ -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
|
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
|
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
|
-
|
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
|
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
|
-
|
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
|
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
|
-
|
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
|
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
|
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
|
-
|
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
|
-
|
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
|
data/spec/signer_spec.rb
CHANGED
@@ -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 =>
|
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
|
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
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.
|
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
|
-
|
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:
|
232
|
+
rubygems_version: 2.2.0
|
257
233
|
signing_key:
|
258
|
-
specification_version:
|
234
|
+
specification_version: 4
|
259
235
|
summary: A (relatively) simple OCSP responder written to work with r509
|
260
236
|
test_files: []
|
261
|
-
has_rdoc:
|