'use strict'; const common = require('../common'); if (!common.hasCrypto) { common.skip('missing crypto'); } const fixtures = require('../common/fixtures'); const assert = require('assert'); const http2 = require('http2'); const serverOptions = { key: fixtures.readKey('agent1-key.pem'), cert: fixtures.readKey('agent1-cert.pem') }; const server = http2.createSecureServer(serverOptions, common.mustCall( (req, res) => { const request = req; assert.strictEqual(request.socket.encrypted, true); assert.ok('encrypted' in request.socket); res.end(); } )); server.listen(common.mustCall(() => { const port = server.address().port; const client = http2.connect('https://localhost:' + port, { ca: fixtures.readKey('agent1-cert.pem'), rejectUnauthorized: false }); const req = client.request({}); req.on('response', common.mustCall((headers, flags) => { console.log(headers); server.close(common.mustCall()); })); req.on('end', common.mustCall(() => { client.close(); })); req.end(); }));