nlcurl 0.3.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/args.d.ts.map +1 -1
  3. package/dist/cli/args.js +84 -90
  4. package/dist/cli/args.js.map +1 -1
  5. package/dist/cli/index.js +25 -25
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/cli/output.d.ts +2 -2
  8. package/dist/cli/output.d.ts.map +1 -1
  9. package/dist/cli/output.js +55 -55
  10. package/dist/cli/output.js.map +1 -1
  11. package/dist/cookies/jar.d.ts +1 -1
  12. package/dist/cookies/jar.d.ts.map +1 -1
  13. package/dist/cookies/jar.js +20 -22
  14. package/dist/cookies/jar.js.map +1 -1
  15. package/dist/cookies/parser.d.ts +1 -1
  16. package/dist/cookies/parser.d.ts.map +1 -1
  17. package/dist/cookies/parser.js +20 -22
  18. package/dist/cookies/parser.js.map +1 -1
  19. package/dist/core/client.d.ts +3 -3
  20. package/dist/core/client.d.ts.map +1 -1
  21. package/dist/core/client.js +9 -8
  22. package/dist/core/client.js.map +1 -1
  23. package/dist/core/errors.d.ts +64 -21
  24. package/dist/core/errors.d.ts.map +1 -1
  25. package/dist/core/errors.js +112 -36
  26. package/dist/core/errors.js.map +1 -1
  27. package/dist/core/request.d.ts +10 -5
  28. package/dist/core/request.d.ts.map +1 -1
  29. package/dist/core/response.d.ts +2 -2
  30. package/dist/core/response.d.ts.map +1 -1
  31. package/dist/core/response.js +6 -8
  32. package/dist/core/response.js.map +1 -1
  33. package/dist/core/session.d.ts +7 -6
  34. package/dist/core/session.d.ts.map +1 -1
  35. package/dist/core/session.js +58 -43
  36. package/dist/core/session.js.map +1 -1
  37. package/dist/core/validation.d.ts +96 -0
  38. package/dist/core/validation.d.ts.map +1 -0
  39. package/dist/core/validation.js +246 -0
  40. package/dist/core/validation.js.map +1 -0
  41. package/dist/fingerprints/akamai.d.ts +1 -1
  42. package/dist/fingerprints/akamai.d.ts.map +1 -1
  43. package/dist/fingerprints/akamai.js +3 -7
  44. package/dist/fingerprints/akamai.js.map +1 -1
  45. package/dist/fingerprints/database.d.ts +7 -7
  46. package/dist/fingerprints/database.d.ts.map +1 -1
  47. package/dist/fingerprints/database.js +12 -18
  48. package/dist/fingerprints/database.js.map +1 -1
  49. package/dist/fingerprints/extensions.d.ts.map +1 -1
  50. package/dist/fingerprints/extensions.js +4 -4
  51. package/dist/fingerprints/extensions.js.map +1 -1
  52. package/dist/fingerprints/ja3.d.ts +1 -1
  53. package/dist/fingerprints/ja3.d.ts.map +1 -1
  54. package/dist/fingerprints/ja3.js +12 -12
  55. package/dist/fingerprints/ja3.js.map +1 -1
  56. package/dist/fingerprints/profiles/chrome.d.ts +1 -1
  57. package/dist/fingerprints/profiles/chrome.d.ts.map +1 -1
  58. package/dist/fingerprints/profiles/chrome.js +59 -100
  59. package/dist/fingerprints/profiles/chrome.js.map +1 -1
  60. package/dist/fingerprints/profiles/edge.d.ts +1 -1
  61. package/dist/fingerprints/profiles/edge.d.ts.map +1 -1
  62. package/dist/fingerprints/profiles/edge.js +26 -26
  63. package/dist/fingerprints/profiles/edge.js.map +1 -1
  64. package/dist/fingerprints/profiles/firefox.d.ts +1 -1
  65. package/dist/fingerprints/profiles/firefox.d.ts.map +1 -1
  66. package/dist/fingerprints/profiles/firefox.js +35 -85
  67. package/dist/fingerprints/profiles/firefox.js.map +1 -1
  68. package/dist/fingerprints/profiles/safari.d.ts +1 -1
  69. package/dist/fingerprints/profiles/safari.d.ts.map +1 -1
  70. package/dist/fingerprints/profiles/safari.js +35 -68
  71. package/dist/fingerprints/profiles/safari.js.map +1 -1
  72. package/dist/fingerprints/profiles/tor.d.ts +1 -1
  73. package/dist/fingerprints/profiles/tor.d.ts.map +1 -1
  74. package/dist/fingerprints/profiles/tor.js +24 -57
  75. package/dist/fingerprints/profiles/tor.js.map +1 -1
  76. package/dist/fingerprints/types.d.ts +1 -1
  77. package/dist/fingerprints/types.d.ts.map +1 -1
  78. package/dist/http/h1/client.d.ts +4 -4
  79. package/dist/http/h1/client.d.ts.map +1 -1
  80. package/dist/http/h1/client.js +31 -31
  81. package/dist/http/h1/client.js.map +1 -1
  82. package/dist/http/h1/encoder.d.ts +1 -1
  83. package/dist/http/h1/encoder.d.ts.map +1 -1
  84. package/dist/http/h1/encoder.js +21 -20
  85. package/dist/http/h1/encoder.js.map +1 -1
  86. package/dist/http/h1/parser.d.ts +1 -1
  87. package/dist/http/h1/parser.d.ts.map +1 -1
  88. package/dist/http/h1/parser.js +29 -33
  89. package/dist/http/h1/parser.js.map +1 -1
  90. package/dist/http/h2/client.d.ts +5 -4
  91. package/dist/http/h2/client.d.ts.map +1 -1
  92. package/dist/http/h2/client.js +88 -76
  93. package/dist/http/h2/client.js.map +1 -1
  94. package/dist/http/h2/frames.d.ts +7 -3
  95. package/dist/http/h2/frames.d.ts.map +1 -1
  96. package/dist/http/h2/frames.js +16 -12
  97. package/dist/http/h2/frames.js.map +1 -1
  98. package/dist/http/h2/hpack.d.ts.map +1 -1
  99. package/dist/http/h2/hpack.js +331 -130
  100. package/dist/http/h2/hpack.js.map +1 -1
  101. package/dist/http/negotiator.d.ts +4 -4
  102. package/dist/http/negotiator.d.ts.map +1 -1
  103. package/dist/http/negotiator.js +45 -48
  104. package/dist/http/negotiator.js.map +1 -1
  105. package/dist/http/pool.d.ts +5 -5
  106. package/dist/http/pool.d.ts.map +1 -1
  107. package/dist/http/pool.js +5 -5
  108. package/dist/http/pool.js.map +1 -1
  109. package/dist/index.d.ts +16 -14
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +10 -9
  112. package/dist/index.js.map +1 -1
  113. package/dist/middleware/interceptor.d.ts +2 -2
  114. package/dist/middleware/interceptor.d.ts.map +1 -1
  115. package/dist/middleware/interceptor.js.map +1 -1
  116. package/dist/middleware/rate-limiter.d.ts.map +1 -1
  117. package/dist/middleware/rate-limiter.js +2 -0
  118. package/dist/middleware/rate-limiter.js.map +1 -1
  119. package/dist/middleware/retry.d.ts +6 -4
  120. package/dist/middleware/retry.d.ts.map +1 -1
  121. package/dist/middleware/retry.js +9 -7
  122. package/dist/middleware/retry.js.map +1 -1
  123. package/dist/proxy/http-proxy.d.ts +1 -1
  124. package/dist/proxy/http-proxy.d.ts.map +1 -1
  125. package/dist/proxy/http-proxy.js +14 -14
  126. package/dist/proxy/http-proxy.js.map +1 -1
  127. package/dist/proxy/socks.d.ts +1 -1
  128. package/dist/proxy/socks.d.ts.map +1 -1
  129. package/dist/proxy/socks.js +57 -28
  130. package/dist/proxy/socks.js.map +1 -1
  131. package/dist/tls/constants.d.ts.map +1 -1
  132. package/dist/tls/constants.js +1 -4
  133. package/dist/tls/constants.js.map +1 -1
  134. package/dist/tls/node-engine.d.ts +2 -2
  135. package/dist/tls/node-engine.d.ts.map +1 -1
  136. package/dist/tls/node-engine.js +58 -58
  137. package/dist/tls/node-engine.js.map +1 -1
  138. package/dist/tls/stealth/client-hello.d.ts +1 -1
  139. package/dist/tls/stealth/client-hello.d.ts.map +1 -1
  140. package/dist/tls/stealth/client-hello.js +8 -14
  141. package/dist/tls/stealth/client-hello.js.map +1 -1
  142. package/dist/tls/stealth/engine.d.ts +2 -2
  143. package/dist/tls/stealth/engine.d.ts.map +1 -1
  144. package/dist/tls/stealth/engine.js +23 -26
  145. package/dist/tls/stealth/engine.js.map +1 -1
  146. package/dist/tls/stealth/handshake.d.ts +3 -3
  147. package/dist/tls/stealth/handshake.d.ts.map +1 -1
  148. package/dist/tls/stealth/handshake.js +62 -74
  149. package/dist/tls/stealth/handshake.js.map +1 -1
  150. package/dist/tls/stealth/key-schedule.d.ts +2 -2
  151. package/dist/tls/stealth/key-schedule.d.ts.map +1 -1
  152. package/dist/tls/stealth/key-schedule.js +20 -20
  153. package/dist/tls/stealth/key-schedule.js.map +1 -1
  154. package/dist/tls/stealth/record-layer.d.ts +1 -1
  155. package/dist/tls/stealth/record-layer.d.ts.map +1 -1
  156. package/dist/tls/stealth/record-layer.js +13 -13
  157. package/dist/tls/stealth/record-layer.js.map +1 -1
  158. package/dist/tls/types.d.ts +4 -4
  159. package/dist/tls/types.d.ts.map +1 -1
  160. package/dist/utils/buffer-reader.d.ts.map +1 -1
  161. package/dist/utils/buffer-reader.js.map +1 -1
  162. package/dist/utils/buffer-writer.d.ts.map +1 -1
  163. package/dist/utils/buffer-writer.js +6 -0
  164. package/dist/utils/buffer-writer.js.map +1 -1
  165. package/dist/utils/encoding.d.ts +1 -1
  166. package/dist/utils/encoding.d.ts.map +1 -1
  167. package/dist/utils/encoding.js +23 -25
  168. package/dist/utils/encoding.js.map +1 -1
  169. package/dist/utils/happy-eyeballs.d.ts +26 -0
  170. package/dist/utils/happy-eyeballs.d.ts.map +1 -0
  171. package/dist/utils/happy-eyeballs.js +201 -0
  172. package/dist/utils/happy-eyeballs.js.map +1 -0
  173. package/dist/utils/logger.d.ts +48 -7
  174. package/dist/utils/logger.d.ts.map +1 -1
  175. package/dist/utils/logger.js +61 -13
  176. package/dist/utils/logger.js.map +1 -1
  177. package/dist/utils/url.d.ts.map +1 -1
  178. package/dist/utils/url.js +2 -2
  179. package/dist/utils/url.js.map +1 -1
  180. package/dist/ws/client.d.ts +2 -2
  181. package/dist/ws/client.d.ts.map +1 -1
  182. package/dist/ws/client.js +76 -71
  183. package/dist/ws/client.js.map +1 -1
  184. package/dist/ws/frame.d.ts.map +1 -1
  185. package/dist/ws/frame.js +8 -8
  186. package/dist/ws/frame.js.map +1 -1
  187. package/package.json +61 -57
@@ -1,42 +1,42 @@
1
- import { createHash, createECDH, diffieHellman, createPublicKey, createPrivateKey, createVerify, X509Certificate, timingSafeEqual } from 'node:crypto';
2
- import { rootCertificates } from 'node:tls';
3
- import { BufferReader } from '../../utils/buffer-reader.js';
4
- import { BufferWriter } from '../../utils/buffer-writer.js';
5
- import { RecordType, HandshakeType, ProtocolVersion, CipherSuite, NamedGroup, AlertDescription, SignatureScheme, } from '../constants.js';
6
- import { TLSError } from '../../core/errors.js';
7
- import { buildClientHello, } from './client-hello.js';
8
- import { readRecord, writeRecord, wrapEncryptedRecord, unwrapEncryptedRecord, } from './record-layer.js';
9
- import { deriveHandshakeKeys, deriveApplicationKeys, keyIVLengths, computeFinishedVerifyData, deriveSecret, } from './key-schedule.js';
1
+ import { createHash, createECDH, diffieHellman, createPublicKey, createPrivateKey, createVerify, X509Certificate, timingSafeEqual } from "node:crypto";
2
+ import { rootCertificates } from "node:tls";
3
+ import { BufferReader } from "../../utils/buffer-reader.js";
4
+ import { BufferWriter } from "../../utils/buffer-writer.js";
5
+ import { RecordType, HandshakeType, ProtocolVersion, CipherSuite, NamedGroup, AlertDescription, SignatureScheme } from "../constants.js";
6
+ import { TLSError } from "../../core/errors.js";
7
+ import { buildClientHello } from "./client-hello.js";
8
+ import { readRecord, writeRecord, wrapEncryptedRecord, unwrapEncryptedRecord } from "./record-layer.js";
9
+ import { deriveHandshakeKeys, deriveApplicationKeys, keyIVLengths, computeFinishedVerifyData, deriveSecret } from "./key-schedule.js";
10
10
  function cipherToHash(suite) {
11
11
  switch (suite) {
12
12
  case CipherSuite.TLS_AES_256_GCM_SHA384:
13
- return 'sha384';
13
+ return "sha384";
14
14
  default:
15
- return 'sha256';
15
+ return "sha256";
16
16
  }
17
17
  }
18
18
  function cipherToAEAD(suite) {
19
19
  switch (suite) {
20
20
  case CipherSuite.TLS_AES_128_GCM_SHA256:
21
- return 'aes-128-gcm';
21
+ return "aes-128-gcm";
22
22
  case CipherSuite.TLS_AES_256_GCM_SHA384:
23
- return 'aes-256-gcm';
23
+ return "aes-256-gcm";
24
24
  case CipherSuite.TLS_CHACHA20_POLY1305_SHA256:
25
- return 'chacha20-poly1305';
25
+ return "chacha20-poly1305";
26
26
  default:
27
- return 'aes-128-gcm';
27
+ return "aes-128-gcm";
28
28
  }
29
29
  }
30
30
  function cipherName(suite) {
31
31
  switch (suite) {
32
32
  case CipherSuite.TLS_AES_128_GCM_SHA256:
33
- return 'TLS_AES_128_GCM_SHA256';
33
+ return "TLS_AES_128_GCM_SHA256";
34
34
  case CipherSuite.TLS_AES_256_GCM_SHA384:
35
- return 'TLS_AES_256_GCM_SHA384';
35
+ return "TLS_AES_256_GCM_SHA384";
36
36
  case CipherSuite.TLS_CHACHA20_POLY1305_SHA256:
37
- return 'TLS_CHACHA20_POLY1305_SHA256';
37
+ return "TLS_CHACHA20_POLY1305_SHA256";
38
38
  default:
39
- return 'unknown';
39
+ return "unknown";
40
40
  }
41
41
  }
42
42
  function computeSharedSecret(serverGroup, serverPublicKey, clientKeyShares) {
@@ -48,24 +48,20 @@ function computeSharedSecret(serverGroup, serverPublicKey, clientKeyShares) {
48
48
  case NamedGroup.X25519: {
49
49
  const privKey = createPrivateKey({
50
50
  key: buildX25519PKCS8(clientKS.privateKey),
51
- format: 'der',
52
- type: 'pkcs8',
51
+ format: "der",
52
+ type: "pkcs8",
53
53
  });
54
54
  const pubKey = createPublicKey({
55
55
  key: buildX25519SPKI(serverPublicKey),
56
- format: 'der',
57
- type: 'spki',
56
+ format: "der",
57
+ type: "spki",
58
58
  });
59
59
  return Buffer.from(diffieHellman({ privateKey: privKey, publicKey: pubKey }));
60
60
  }
61
61
  case NamedGroup.SECP256R1:
62
62
  case NamedGroup.SECP384R1:
63
63
  case NamedGroup.SECP521R1: {
64
- const curveName = serverGroup === NamedGroup.SECP256R1
65
- ? 'prime256v1'
66
- : serverGroup === NamedGroup.SECP384R1
67
- ? 'secp384r1'
68
- : 'secp521r1';
64
+ const curveName = serverGroup === NamedGroup.SECP256R1 ? "prime256v1" : serverGroup === NamedGroup.SECP384R1 ? "secp384r1" : "secp521r1";
69
65
  const ecdh = createECDH(curveName);
70
66
  ecdh.setPrivateKey(clientKS.privateKey);
71
67
  return Buffer.from(ecdh.computeSecret(serverPublicKey));
@@ -75,17 +71,11 @@ function computeSharedSecret(serverGroup, serverPublicKey, clientKeyShares) {
75
71
  }
76
72
  }
77
73
  function buildX25519PKCS8(rawPrivate) {
78
- const header = Buffer.from([
79
- 0x30, 0x2e, 0x02, 0x01, 0x00, 0x30, 0x05, 0x06,
80
- 0x03, 0x2b, 0x65, 0x6e, 0x04, 0x22, 0x04, 0x20,
81
- ]);
74
+ const header = Buffer.from([0x30, 0x2e, 0x02, 0x01, 0x00, 0x30, 0x05, 0x06, 0x03, 0x2b, 0x65, 0x6e, 0x04, 0x22, 0x04, 0x20]);
82
75
  return Buffer.concat([header, rawPrivate]);
83
76
  }
84
77
  function buildX25519SPKI(rawPublic) {
85
- const header = Buffer.from([
86
- 0x30, 0x2a, 0x30, 0x05, 0x06, 0x03, 0x2b, 0x65,
87
- 0x6e, 0x03, 0x21, 0x00,
88
- ]);
78
+ const header = Buffer.from([0x30, 0x2a, 0x30, 0x05, 0x06, 0x03, 0x2b, 0x65, 0x6e, 0x03, 0x21, 0x00]);
89
79
  return Buffer.concat([header, rawPublic]);
90
80
  }
91
81
  /**
@@ -122,8 +112,8 @@ export var HandshakeState;
122
112
  export async function performHandshake(socket, profile, hostname, insecure) {
123
113
  const clientHello = buildClientHello(profile, hostname);
124
114
  await socketWrite(socket, clientHello.record);
125
- const hashAlg = 'sha256';
126
- let transcriptHash = createHash('sha256');
115
+ const hashAlg = "sha256";
116
+ let transcriptHash = createHash("sha256");
127
117
  transcriptHash.update(clientHello.handshakeMessage);
128
118
  const serverHelloRecord = await readHandshakeRecord(socket);
129
119
  if (serverHelloRecord.type !== RecordType.HANDSHAKE) {
@@ -132,19 +122,19 @@ export async function performHandshake(socket, profile, hostname, insecure) {
132
122
  const alertDesc = serverHelloRecord.fragment[1];
133
123
  throw new TLSError(`Server sent alert: level=${alertLevel} desc=${alertDesc}`, alertDesc);
134
124
  }
135
- throw new TLSError('Expected Handshake record, got type ' + serverHelloRecord.type);
125
+ throw new TLSError("Expected Handshake record, got type " + serverHelloRecord.type);
136
126
  }
137
127
  const shReader = new BufferReader(serverHelloRecord.fragment);
138
128
  const shType = shReader.readUInt8();
139
129
  if (shType !== HandshakeType.SERVER_HELLO) {
140
- throw new TLSError('Expected ServerHello, got handshake type ' + shType);
130
+ throw new TLSError("Expected ServerHello, got handshake type " + shType);
141
131
  }
142
132
  const shLength = shReader.readUInt24();
143
133
  const shBody = shReader.readBytes(shLength);
144
134
  transcriptHash.update(serverHelloRecord.fragment);
145
135
  const sh = parseServerHello(shBody);
146
136
  const negotiatedHash = cipherToHash(sh.cipherSuite);
147
- if (negotiatedHash !== 'sha256') {
137
+ if (negotiatedHash !== "sha256") {
148
138
  transcriptHash = createHash(negotiatedHash);
149
139
  transcriptHash.update(clientHello.handshakeMessage);
150
140
  transcriptHash.update(serverHelloRecord.fragment);
@@ -176,7 +166,7 @@ export async function performHandshake(socket, profile, hostname, insecure) {
176
166
  const decrypted = unwrapEncryptedRecord(aead, handshakeKeys.serverHandshakeKey, handshakeKeys.serverHandshakeIV, serverSeq++, record);
177
167
  if (decrypted.contentType !== RecordType.HANDSHAKE) {
178
168
  if (decrypted.contentType === RecordType.ALERT) {
179
- throw new TLSError('Server sent encrypted alert');
169
+ throw new TLSError("Server sent encrypted alert");
180
170
  }
181
171
  continue;
182
172
  }
@@ -185,9 +175,7 @@ export async function performHandshake(socket, profile, hostname, insecure) {
185
175
  if (decrypted.plaintext.length - offset < 4)
186
176
  break;
187
177
  const msgType = decrypted.plaintext[offset];
188
- const msgLen = (decrypted.plaintext[offset + 1] << 16) |
189
- (decrypted.plaintext[offset + 2] << 8) |
190
- decrypted.plaintext[offset + 3];
178
+ const msgLen = (decrypted.plaintext[offset + 1] << 16) | (decrypted.plaintext[offset + 2] << 8) | decrypted.plaintext[offset + 3];
191
179
  const msgEnd = offset + 4 + msgLen;
192
180
  if (msgEnd > decrypted.plaintext.length)
193
181
  break;
@@ -204,10 +192,10 @@ export async function performHandshake(socket, profile, hostname, insecure) {
204
192
  }
205
193
  if (msgType === HandshakeType.FINISHED) {
206
194
  const serverFinishedData = decrypted.plaintext.subarray(offset + 4, msgEnd);
207
- const serverHandshakeSecret = deriveSecret(negotiatedHash, handshakeKeys.handshakeSecret, 's hs traffic', helloHash);
195
+ const serverHandshakeSecret = deriveSecret(negotiatedHash, handshakeKeys.handshakeSecret, "s hs traffic", helloHash);
208
196
  const expectedVerify = computeFinishedVerifyData(negotiatedHash, serverHandshakeSecret, Buffer.from(transcriptHash.copy().digest()));
209
197
  if (!timingSafeEqual(serverFinishedData, expectedVerify)) {
210
- throw new TLSError('Server Finished verify_data mismatch');
198
+ throw new TLSError("Server Finished verify_data mismatch");
211
199
  }
212
200
  transcriptHash.update(fullMsg);
213
201
  gotFinished = true;
@@ -241,7 +229,7 @@ export async function performHandshake(socket, profile, hostname, insecure) {
241
229
  }
242
230
  const ccsRecord = writeRecord(RecordType.CHANGE_CIPHER_SPEC, ProtocolVersion.TLS_1_2, Buffer.from([1]));
243
231
  await socketWrite(socket, ccsRecord);
244
- const clientHandshakeSecret = deriveSecret(negotiatedHash, handshakeKeys.handshakeSecret, 'c hs traffic', helloHash);
232
+ const clientHandshakeSecret = deriveSecret(negotiatedHash, handshakeKeys.handshakeSecret, "c hs traffic", helloHash);
245
233
  const finishedHash = Buffer.from(transcriptHash.copy().digest());
246
234
  const clientVerifyData = computeFinishedVerifyData(negotiatedHash, clientHandshakeSecret, finishedHash);
247
235
  const finishedMsg = new BufferWriter(4 + clientVerifyData.length);
@@ -257,7 +245,7 @@ export async function performHandshake(socket, profile, hostname, insecure) {
257
245
  return {
258
246
  alpnProtocol,
259
247
  cipher: cipherName(sh.cipherSuite),
260
- version: 'TLSv1.3',
248
+ version: "TLSv1.3",
261
249
  clientKey: appKeys.clientKey,
262
250
  clientIV: appKeys.clientIV,
263
251
  serverKey: appKeys.serverKey,
@@ -319,7 +307,7 @@ function parseEncryptedExtensions(body) {
319
307
  const listLen = alpnReader.readUInt16();
320
308
  if (listLen > 0) {
321
309
  const protoLen = alpnReader.readUInt8();
322
- alpn = alpnReader.readBytes(protoLen).toString('ascii');
310
+ alpn = alpnReader.readBytes(protoLen).toString("ascii");
323
311
  }
324
312
  }
325
313
  }
@@ -354,13 +342,13 @@ function readHandshakeRecord(socket) {
354
342
  if (!settled) {
355
343
  settled = true;
356
344
  cleanup();
357
- reject(new TLSError('Connection closed during handshake'));
345
+ reject(new TLSError("Connection closed during handshake"));
358
346
  }
359
347
  };
360
348
  const cleanup = () => {
361
- socket.removeListener('data', onData);
362
- socket.removeListener('error', onError);
363
- socket.removeListener('close', onClose);
349
+ socket.removeListener("data", onData);
350
+ socket.removeListener("error", onError);
351
+ socket.removeListener("close", onClose);
364
352
  };
365
353
  const tryParse = () => {
366
354
  const result = readRecord(buffer, 0);
@@ -373,9 +361,9 @@ function readHandshakeRecord(socket) {
373
361
  resolve(result.record);
374
362
  }
375
363
  };
376
- socket.on('data', onData);
377
- socket.once('error', onError);
378
- socket.once('close', onClose);
364
+ socket.on("data", onData);
365
+ socket.once("error", onError);
366
+ socket.once("close", onClose);
379
367
  tryParse();
380
368
  });
381
369
  }
@@ -401,11 +389,11 @@ function parseCertificateMessage(body) {
401
389
  }
402
390
  function derWrapCertPublicKey(certDer) {
403
391
  const x509 = new X509Certificate(certDer);
404
- return Buffer.from(x509.publicKey.export({ type: 'spki', format: 'der' }));
392
+ return Buffer.from(x509.publicKey.export({ type: "spki", format: "der" }));
405
393
  }
406
394
  function verifyCertificateChain(certs, hostname) {
407
395
  if (certs.length === 0) {
408
- throw new TLSError('Server sent empty certificate chain');
396
+ throw new TLSError("Server sent empty certificate chain");
409
397
  }
410
398
  const x509Certs = certs.map((der) => new X509Certificate(der));
411
399
  const leafCert = x509Certs[0];
@@ -414,14 +402,14 @@ function verifyCertificateChain(certs, hostname) {
414
402
  }
415
403
  const now = new Date();
416
404
  if (now < new Date(leafCert.validFrom) || now > new Date(leafCert.validTo)) {
417
- throw new TLSError('Certificate has expired or is not yet valid', AlertDescription.CERTIFICATE_EXPIRED);
405
+ throw new TLSError("Certificate has expired or is not yet valid", AlertDescription.CERTIFICATE_EXPIRED);
418
406
  }
419
407
  const trustedRoots = rootCertificates.map((pem) => new X509Certificate(pem));
420
408
  for (let i = 0; i < x509Certs.length - 1; i++) {
421
409
  const cert = x509Certs[i];
422
410
  const issuer = x509Certs[i + 1];
423
411
  if (!cert.checkIssued(issuer)) {
424
- throw new TLSError('Certificate chain verification failed: issuer mismatch', AlertDescription.UNKNOWN_CA);
412
+ throw new TLSError("Certificate chain verification failed: issuer mismatch", AlertDescription.UNKNOWN_CA);
425
413
  }
426
414
  }
427
415
  const topCert = x509Certs[x509Certs.length - 1];
@@ -442,32 +430,32 @@ function verifyCertificateChain(certs, hostname) {
442
430
  }
443
431
  });
444
432
  if (!isTrusted && !leafTrusted) {
445
- throw new TLSError('Certificate chain does not terminate at a trusted root CA', AlertDescription.UNKNOWN_CA);
433
+ throw new TLSError("Certificate chain does not terminate at a trusted root CA", AlertDescription.UNKNOWN_CA);
446
434
  }
447
435
  }
448
436
  function signatureAlgorithmForScheme(scheme) {
449
437
  switch (scheme) {
450
438
  case SignatureScheme.ECDSA_SECP256R1_SHA256:
451
- return { algorithm: 'SHA256' };
439
+ return { algorithm: "SHA256" };
452
440
  case SignatureScheme.ECDSA_SECP384R1_SHA384:
453
- return { algorithm: 'SHA384' };
441
+ return { algorithm: "SHA384" };
454
442
  case SignatureScheme.ECDSA_SECP521R1_SHA512:
455
- return { algorithm: 'SHA512' };
443
+ return { algorithm: "SHA512" };
456
444
  case SignatureScheme.RSA_PSS_RSAE_SHA256:
457
445
  case SignatureScheme.RSA_PSS_PSS_SHA256:
458
- return { algorithm: 'SHA256', padding: 6, saltLength: 32 };
446
+ return { algorithm: "SHA256", padding: 6, saltLength: 32 };
459
447
  case SignatureScheme.RSA_PSS_RSAE_SHA384:
460
448
  case SignatureScheme.RSA_PSS_PSS_SHA384:
461
- return { algorithm: 'SHA384', padding: 6, saltLength: 48 };
449
+ return { algorithm: "SHA384", padding: 6, saltLength: 48 };
462
450
  case SignatureScheme.RSA_PSS_RSAE_SHA512:
463
451
  case SignatureScheme.RSA_PSS_PSS_SHA512:
464
- return { algorithm: 'SHA512', padding: 6, saltLength: 64 };
452
+ return { algorithm: "SHA512", padding: 6, saltLength: 64 };
465
453
  case SignatureScheme.RSA_PKCS1_SHA256:
466
- return { algorithm: 'SHA256' };
454
+ return { algorithm: "SHA256" };
467
455
  case SignatureScheme.RSA_PKCS1_SHA384:
468
- return { algorithm: 'SHA384' };
456
+ return { algorithm: "SHA384" };
469
457
  case SignatureScheme.RSA_PKCS1_SHA512:
470
- return { algorithm: 'SHA512' };
458
+ return { algorithm: "SHA512" };
471
459
  case SignatureScheme.ED25519:
472
460
  return { algorithm: undefined };
473
461
  case SignatureScheme.ED448:
@@ -486,9 +474,9 @@ function verifyCertificateVerifySignature(cvBody, serverPublicKey, transcriptHas
486
474
  throw new TLSError(`Unsupported CertificateVerify signature scheme: 0x${scheme.toString(16)}`);
487
475
  }
488
476
  const prefix = Buffer.alloc(64, 0x20);
489
- const contextString = Buffer.from('TLS 1.3, server CertificateVerify\x00');
477
+ const contextString = Buffer.from("TLS 1.3, server CertificateVerify\x00");
490
478
  const signedContent = Buffer.concat([prefix, contextString, transcriptHashBeforeCV]);
491
- const verifier = createVerify(algInfo.algorithm || 'SHA256');
479
+ const verifier = createVerify(algInfo.algorithm || "SHA256");
492
480
  verifier.update(signedContent);
493
481
  const verifyOptions = { key: serverPublicKey };
494
482
  if (algInfo.padding !== undefined) {
@@ -496,7 +484,7 @@ function verifyCertificateVerifySignature(cvBody, serverPublicKey, transcriptHas
496
484
  verifyOptions.saltLength = algInfo.saltLength;
497
485
  }
498
486
  if (!verifier.verify(verifyOptions, signature)) {
499
- throw new TLSError('CertificateVerify signature verification failed');
487
+ throw new TLSError("CertificateVerify signature verification failed");
500
488
  }
501
489
  }
502
490
  //# sourceMappingURL=handshake.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handshake.js","sourceRoot":"","sources":["../../../src/tls/stealth/handshake.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handshake.js","sourceRoot":"","sources":["../../../src/tls/stealth/handshake.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { createHash as _createHash } from 'node:crypto';
1
+ import { createHash as _createHash } from "node:crypto";
2
2
  /**
3
3
  * Hash algorithm identifiers supported by the TLS 1.3 key schedule.
4
4
  *
5
5
  * @typedef {'sha256'|'sha384'} HashAlgorithm
6
6
  */
7
- export type HashAlgorithm = 'sha256' | 'sha384';
7
+ export type HashAlgorithm = "sha256" | "sha384";
8
8
  /**
9
9
  * Returns the output length in bytes for the given hash algorithm.
10
10
  *
@@ -1 +1 @@
1
- {"version":3,"file":"key-schedule.d.ts","sourceRoot":"","sources":["../../../src/tls/stealth/key-schedule.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,UAAU,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AAEpE;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAErD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV,MAAM,CAER;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,MAAM,CAaR;AAuBD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,GACrB,MAAM,CAER;AAED,OAAO,EAAE,WAAW,IAAI,UAAU,EAAE,CAAC;AAErC;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAElD;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,aAAa;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAQlF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,aAAa,EAClB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,aAAa,CA0Bf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,aAAa,EAClB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,eAAe,CAUjB;AAMD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GACrB,MAAM,CASR"}
1
+ {"version":3,"file":"key-schedule.d.ts","sourceRoot":"","sources":["../../../src/tls/stealth/key-schedule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AAEpE;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAErD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAa1H;AAkBD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAE9G;AAED,OAAO,EAAE,WAAW,IAAI,UAAU,EAAE,CAAC;AAErC;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAElD;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,aAAa;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAQlF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CA0B7I;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAUrJ;AAMD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAGhH"}
@@ -1,4 +1,4 @@
1
- import { createHmac, createHash as _createHash } from 'node:crypto';
1
+ import { createHmac, createHash as _createHash } from "node:crypto";
2
2
  /**
3
3
  * Returns the output length in bytes for the given hash algorithm.
4
4
  *
@@ -6,7 +6,7 @@ import { createHmac, createHash as _createHash } from 'node:crypto';
6
6
  * @returns {number} Output length: `32` for `sha256`, `48` for `sha384`.
7
7
  */
8
8
  export function hashLength(alg) {
9
- return alg === 'sha256' ? 32 : 48;
9
+ return alg === "sha256" ? 32 : 48;
10
10
  }
11
11
  /**
12
12
  * Performs the HKDF-Extract step (RFC 5869 §2.2): computes `HMAC-Hash(salt, IKM)`.
@@ -32,7 +32,7 @@ export function hkdfExtract(alg, salt, ikm) {
32
32
  * @returns {Buffer} Derived key material of the specified length.
33
33
  */
34
34
  export function hkdfExpandLabel(alg, secret, label, context, length) {
35
- const fullLabel = Buffer.from('tls13 ' + label, 'ascii');
35
+ const fullLabel = Buffer.from("tls13 " + label, "ascii");
36
36
  const hkdfLabel = Buffer.alloc(2 + 1 + fullLabel.length + 1 + context.length);
37
37
  let offset = 0;
38
38
  hkdfLabel.writeUInt16BE(length, offset);
@@ -92,10 +92,10 @@ export function zeroKey(alg) {
92
92
  * @returns {{ keyLen: number; ivLen: number }} Key length and IV length in bytes.
93
93
  */
94
94
  export function keyIVLengths(cipherName) {
95
- if (cipherName.includes('AES_128')) {
95
+ if (cipherName.includes("AES_128")) {
96
96
  return { keyLen: 16, ivLen: 12 };
97
97
  }
98
- if (cipherName.includes('AES_256') || cipherName.includes('CHACHA20')) {
98
+ if (cipherName.includes("AES_256") || cipherName.includes("CHACHA20")) {
99
99
  return { keyLen: 32, ivLen: 12 };
100
100
  }
101
101
  return { keyLen: 16, ivLen: 12 };
@@ -114,15 +114,15 @@ export function keyIVLengths(cipherName) {
114
114
  */
115
115
  export function deriveHandshakeKeys(alg, sharedSecret, helloHash, keyLen, ivLen) {
116
116
  const earlySecret = hkdfExtract(alg, Buffer.alloc(hashLength(alg)), zeroKey(alg));
117
- const derivedSalt = deriveSecret(alg, earlySecret, 'derived', emptyHash(alg));
117
+ const derivedSalt = deriveSecret(alg, earlySecret, "derived", emptyHash(alg));
118
118
  const handshakeSecret = hkdfExtract(alg, derivedSalt, sharedSecret);
119
- const clientSecret = deriveSecret(alg, handshakeSecret, 'c hs traffic', helloHash);
120
- const serverSecret = deriveSecret(alg, handshakeSecret, 's hs traffic', helloHash);
121
- const clientHandshakeKey = hkdfExpandLabel(alg, clientSecret, 'key', Buffer.alloc(0), keyLen);
122
- const clientHandshakeIV = hkdfExpandLabel(alg, clientSecret, 'iv', Buffer.alloc(0), ivLen);
123
- const serverHandshakeKey = hkdfExpandLabel(alg, serverSecret, 'key', Buffer.alloc(0), keyLen);
124
- const serverHandshakeIV = hkdfExpandLabel(alg, serverSecret, 'iv', Buffer.alloc(0), ivLen);
125
- const derivedMasterSalt = deriveSecret(alg, handshakeSecret, 'derived', emptyHash(alg));
119
+ const clientSecret = deriveSecret(alg, handshakeSecret, "c hs traffic", helloHash);
120
+ const serverSecret = deriveSecret(alg, handshakeSecret, "s hs traffic", helloHash);
121
+ const clientHandshakeKey = hkdfExpandLabel(alg, clientSecret, "key", Buffer.alloc(0), keyLen);
122
+ const clientHandshakeIV = hkdfExpandLabel(alg, clientSecret, "iv", Buffer.alloc(0), ivLen);
123
+ const serverHandshakeKey = hkdfExpandLabel(alg, serverSecret, "key", Buffer.alloc(0), keyLen);
124
+ const serverHandshakeIV = hkdfExpandLabel(alg, serverSecret, "iv", Buffer.alloc(0), ivLen);
125
+ const derivedMasterSalt = deriveSecret(alg, handshakeSecret, "derived", emptyHash(alg));
126
126
  const masterSecret = hkdfExtract(alg, derivedMasterSalt, zeroKey(alg));
127
127
  return {
128
128
  clientHandshakeKey,
@@ -146,13 +146,13 @@ export function deriveHandshakeKeys(alg, sharedSecret, helloHash, keyLen, ivLen)
146
146
  * @returns {ApplicationKeys} Derived application traffic keys.
147
147
  */
148
148
  export function deriveApplicationKeys(alg, masterSecret, handshakeHash, keyLen, ivLen) {
149
- const clientSecret = deriveSecret(alg, masterSecret, 'c ap traffic', handshakeHash);
150
- const serverSecret = deriveSecret(alg, masterSecret, 's ap traffic', handshakeHash);
149
+ const clientSecret = deriveSecret(alg, masterSecret, "c ap traffic", handshakeHash);
150
+ const serverSecret = deriveSecret(alg, masterSecret, "s ap traffic", handshakeHash);
151
151
  return {
152
- clientKey: hkdfExpandLabel(alg, clientSecret, 'key', Buffer.alloc(0), keyLen),
153
- clientIV: hkdfExpandLabel(alg, clientSecret, 'iv', Buffer.alloc(0), ivLen),
154
- serverKey: hkdfExpandLabel(alg, serverSecret, 'key', Buffer.alloc(0), keyLen),
155
- serverIV: hkdfExpandLabel(alg, serverSecret, 'iv', Buffer.alloc(0), ivLen),
152
+ clientKey: hkdfExpandLabel(alg, clientSecret, "key", Buffer.alloc(0), keyLen),
153
+ clientIV: hkdfExpandLabel(alg, clientSecret, "iv", Buffer.alloc(0), ivLen),
154
+ serverKey: hkdfExpandLabel(alg, serverSecret, "key", Buffer.alloc(0), keyLen),
155
+ serverIV: hkdfExpandLabel(alg, serverSecret, "iv", Buffer.alloc(0), ivLen),
156
156
  };
157
157
  }
158
158
  function emptyHash(alg) {
@@ -169,7 +169,7 @@ function emptyHash(alg) {
169
169
  * @returns {Buffer} The `verify_data` bytes to include in or validate against the Finished message.
170
170
  */
171
171
  export function computeFinishedVerifyData(alg, baseSecret, transcriptHash) {
172
- const finishedKey = hkdfExpandLabel(alg, baseSecret, 'finished', Buffer.alloc(0), hashLength(alg));
172
+ const finishedKey = hkdfExpandLabel(alg, baseSecret, "finished", Buffer.alloc(0), hashLength(alg));
173
173
  return Buffer.from(createHmac(alg, finishedKey).update(transcriptHash).digest());
174
174
  }
175
175
  //# sourceMappingURL=key-schedule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"key-schedule.js","sourceRoot":"","sources":["../../../src/tls/stealth/key-schedule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-schedule.js","sourceRoot":"","sources":["../../../src/tls/stealth/key-schedule.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ export declare function writeRecord(type: number, version: number, payload: Buff
39
39
  *
40
40
  * @typedef {'aes-128-gcm'|'aes-256-gcm'|'chacha20-poly1305'} AEADAlgorithm
41
41
  */
42
- export type AEADAlgorithm = 'aes-128-gcm' | 'aes-256-gcm' | 'chacha20-poly1305';
42
+ export type AEADAlgorithm = "aes-128-gcm" | "aes-256-gcm" | "chacha20-poly1305";
43
43
  /**
44
44
  * Maps a cipher suite name string to the corresponding AEAD algorithm
45
45
  * identifier used by the record layer.
@@ -1 +1 @@
1
- {"version":3,"file":"record-layer.d.ts","sourceRoot":"","sources":["../../../src/tls/stealth/record-layer.ts"],"names":[],"mappings":"AAeA;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAexG;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAOlF;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,mBAAmB,CAAC;AAEhF;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAWhE;AAID;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAQrE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,aAAa,EACxB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GACrB,MAAM,CAYR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,aAAa,EACxB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GACrB,MAAM,CAuBR;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAMpE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,aAAa,EACxB,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,EACV,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,CAWR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,aAAa,EACxB,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,EACV,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,SAAS,GAChB;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAe5C"}
1
+ {"version":3,"file":"record-layer.d.ts","sourceRoot":"","sources":["../../../src/tls/stealth/record-layer.ts"],"names":[],"mappings":"AAUA;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAexG;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAOlF;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,mBAAmB,CAAC;AAEhF;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAWhE;AAID;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAQrE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAOrI;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAkBtI;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAMpE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAW7J;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAe9K"}