11cb0ef41Sopenharmony_ci'use strict';
21cb0ef41Sopenharmony_ci
31cb0ef41Sopenharmony_ciconst common = require('../common');
41cb0ef41Sopenharmony_ciif (!common.hasCrypto)
51cb0ef41Sopenharmony_ci  common.skip('missing crypto');
61cb0ef41Sopenharmony_ci
71cb0ef41Sopenharmony_ciconst assert = require('assert');
81cb0ef41Sopenharmony_ciconst tls = require('tls');
91cb0ef41Sopenharmony_ciconst fixtures = require('../common/fixtures');
101cb0ef41Sopenharmony_ci
111cb0ef41Sopenharmony_ciconst server = tls.createServer({
121cb0ef41Sopenharmony_ci  key: fixtures.readKey('agent2-key.pem'),
131cb0ef41Sopenharmony_ci  cert: fixtures.readKey('agent2-cert.pem'),
141cb0ef41Sopenharmony_ci  // Amount of keylog events depends on negotiated protocol
151cb0ef41Sopenharmony_ci  // version, so force a specific one:
161cb0ef41Sopenharmony_ci  minVersion: 'TLSv1.3',
171cb0ef41Sopenharmony_ci  maxVersion: 'TLSv1.3',
181cb0ef41Sopenharmony_ci}).listen(() => {
191cb0ef41Sopenharmony_ci  const client = tls.connect({
201cb0ef41Sopenharmony_ci    port: server.address().port,
211cb0ef41Sopenharmony_ci    rejectUnauthorized: false,
221cb0ef41Sopenharmony_ci  });
231cb0ef41Sopenharmony_ci
241cb0ef41Sopenharmony_ci  server.on('keylog', common.mustCall((line, tlsSocket) => {
251cb0ef41Sopenharmony_ci    assert(Buffer.isBuffer(line));
261cb0ef41Sopenharmony_ci    assert.strictEqual(tlsSocket.encrypted, true);
271cb0ef41Sopenharmony_ci  }, 5));
281cb0ef41Sopenharmony_ci  client.on('keylog', common.mustCall((line) => {
291cb0ef41Sopenharmony_ci    assert(Buffer.isBuffer(line));
301cb0ef41Sopenharmony_ci  }, 5));
311cb0ef41Sopenharmony_ci
321cb0ef41Sopenharmony_ci  client.once('secureConnect', () => {
331cb0ef41Sopenharmony_ci    server.close();
341cb0ef41Sopenharmony_ci    client.end();
351cb0ef41Sopenharmony_ci  });
361cb0ef41Sopenharmony_ci});
37