Skip to content

Commit 38e596e

Browse files
committed
Test TLS v1.0
1 parent 1168387 commit 38e596e

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

test/test.spec.ts

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,4 +283,47 @@ describe("Read-TLS-Fingerprint", () => {
283283
expect(response.statusCode).to.equal(200);
284284
});
285285

286+
it("can read a TLS v1 fingerprint", async function () {
287+
if (nodeMajorVersion >= 17) this.skip(); // New Node doesn't support this
288+
289+
server = makeDestroyable(new net.Server());
290+
291+
server.listen();
292+
await new Promise((resolve) => server.on('listening', resolve));
293+
294+
let incomingSocketPromise = getDeferred<net.Socket>();
295+
server.on('connection', (socket) => incomingSocketPromise.resolve(socket));
296+
297+
const port = (server.address() as net.AddressInfo).port;
298+
tls.connect({
299+
host: 'localhost',
300+
port,
301+
maxVersion: 'TLSv1', // <-- Force old TLS
302+
minVersion: 'TLSv1'
303+
}).on('error', () => {}); // Socket will fail, since server never responds, that's OK
304+
305+
const incomingSocket = await incomingSocketPromise;
306+
const fingerprint = await getTlsFingerprintData(incomingSocket);
307+
308+
const [
309+
tlsVersion,
310+
ciphers,
311+
extension,
312+
groups,
313+
curveFormats
314+
] = fingerprint;
315+
316+
expect(tlsVersion).to.equal(769); // TLS 1!
317+
expect(ciphers.slice(0, 3)).to.deep.equal([49162, 49172, 57]);
318+
expect(extension).to.deep.equal([
319+
11,
320+
10,
321+
35,
322+
22,
323+
23
324+
]);
325+
expect(groups).to.deep.equal([29, 23, 30, 25, 24]);
326+
expect(curveFormats).to.deep.equal([0, 1, 2]);
327+
});
328+
286329
});

0 commit comments

Comments
 (0)