-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhandshakeLoggerClient.js
63 lines (47 loc) · 2.4 KB
/
handshakeLoggerClient.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
function logHandshakeClientDetails(conn) {
class Exported_keyingMaterials {
constructor(client_finished, server_finished, master_secret, key_expansion, ttls_challenge, ttls_keying_material, client_EAP_encryption) {
this.client = client_finished;
this.server = server_finished;
this.master = master_secret;
this.keyExp = key_expansion;
this.ttlsCh = ttls_challenge;
this.keying = ttls_keying_material;
this.Cl_EAP = client_EAP_encryption;
}
}
const keyingMaterial = new Exported_keyingMaterials(
conn.exportKeyingMaterial(128, 'client finished'),
conn.exportKeyingMaterial(128, 'server finished'),
conn.exportKeyingMaterial(128, 'master secret'),
conn.exportKeyingMaterial(128, 'key expansion'),
conn.exportKeyingMaterial(128, 'ttls challenge'),
conn.exportKeyingMaterial(128, 'ttls keying material'),
conn.exportKeyingMaterial(128, 'client EAP encryption')
);
console.log(`Server's Cert fingerprint256: ${conn.getPeerCertificate().fingerprint256}`);
console.log(`Server's Cert Serial Number: ${conn.getPeerCertificate().serialNumber}`);
console.log("TLS Session Ticket", conn.getTLSTicket());
console.log("Keying Materials:", keyingMaterial);
console.log(`"Secure-Connect Event emitted": Handshake process successfully completed`);
const serverCert = conn.getPeerCertificate(true);
console.log("Server Certificate:", serverCert);
console.log("Authorized Server:", conn.authorized);
console.log("Authorization Error:", conn.authorizationError);
console.log("Encrypted:", conn.encrypted);
console.log("Protocol:", conn.getProtocol());
console.log("Remote Address:", conn.remoteAddress + ":" + conn.remotePort);
console.log("Negotiated Cipher Suite:", conn.getCipher());
console.log("Ephemeral Key Exchange:", conn.getEphemeralKeyInfo());
console.log("Handshake Finished Messages:", {
"Sent": conn.getFinished().toString('hex'),
"Received": conn.getPeerFinished().toString('hex')
});
console.log("Shared Signature Algorithms:", conn.getSharedSigalgs());
console.log("-------------------------------------------------------");
if (!conn.authorized) {
console.log("Server Verification Failed. Aborting");
conn.destroy();
}
}
export { logHandshakeClientDetails};