forked from svrjs/svrjs
77 lines
1.7 KiB
JavaScript
77 lines
1.7 KiB
JavaScript
|
var ocsp = require('../');
|
||
|
var fixtures = require('./fixtures');
|
||
|
|
||
|
var assert = require('assert');
|
||
|
var https = require('https');
|
||
|
|
||
|
describe('OCSP Cache', function() {
|
||
|
var issuer = fixtures.certs.issuer;
|
||
|
var good = fixtures.certs.good;
|
||
|
var revoked = fixtures.certs.revoked;
|
||
|
|
||
|
var server;
|
||
|
var agent;
|
||
|
beforeEach(function(cb) {
|
||
|
server = ocsp.Server.create({
|
||
|
cert: issuer.cert,
|
||
|
key: issuer.key
|
||
|
});
|
||
|
|
||
|
server.addCert(43, 'good');
|
||
|
server.addCert(44, 'revoked', {
|
||
|
revocationTime: new Date(),
|
||
|
revocationReason: 'CACompromise'
|
||
|
});
|
||
|
|
||
|
server.listen(8000, function() {
|
||
|
cb();
|
||
|
});
|
||
|
|
||
|
agent = new ocsp.Agent();
|
||
|
|
||
|
cache = new ocsp.Cache();
|
||
|
});
|
||
|
|
||
|
afterEach(function(cb) {
|
||
|
server.close(cb);
|
||
|
agent = null;
|
||
|
});
|
||
|
|
||
|
it('should cache ocsp response', function(cb) {
|
||
|
var httpServer = https.createServer({
|
||
|
cert: good.cert + '\n' + good.issuer,
|
||
|
key: good.key
|
||
|
}, function(req, res) {
|
||
|
res.end('hello world');
|
||
|
});
|
||
|
|
||
|
httpServer.on('OCSPRequest', function(cert, issuer, cb) {
|
||
|
ocsp.getOCSPURI(cert, function(err, uri) {
|
||
|
if (err)
|
||
|
return cb(err);
|
||
|
|
||
|
var req = ocsp.request.generate(cert,
|
||
|
issuer || fixtures.certs.issuer.cert);
|
||
|
var options = {
|
||
|
url: uri,
|
||
|
ocsp: req.data
|
||
|
};
|
||
|
|
||
|
cache.request(req.id, options, cb);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
httpServer.listen(8001, function() {
|
||
|
https.get({
|
||
|
agent: agent,
|
||
|
ca: issuer.cert,
|
||
|
rejectUnauthorized: !/^v0.12/.test(process.version),
|
||
|
servername: 'local.host',
|
||
|
port: 8001
|
||
|
}, function(res) {
|
||
|
cb();
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|