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.
- 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 [![Build Status](https://secure.travis-ci.org/
|
2
|
-
r509-ocsp-responder is an OCSP responder written using [r509](https://github.com/
|
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/
|
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:
|