nlcurl 0.3.0 → 0.4.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 (182) hide show
  1. package/dist/cli/args.d.ts.map +1 -1
  2. package/dist/cli/args.js +84 -90
  3. package/dist/cli/args.js.map +1 -1
  4. package/dist/cli/index.js +25 -25
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/cli/output.d.ts +2 -2
  7. package/dist/cli/output.d.ts.map +1 -1
  8. package/dist/cli/output.js +55 -55
  9. package/dist/cli/output.js.map +1 -1
  10. package/dist/cookies/jar.d.ts +1 -1
  11. package/dist/cookies/jar.d.ts.map +1 -1
  12. package/dist/cookies/jar.js +20 -22
  13. package/dist/cookies/jar.js.map +1 -1
  14. package/dist/cookies/parser.d.ts +1 -1
  15. package/dist/cookies/parser.d.ts.map +1 -1
  16. package/dist/cookies/parser.js +20 -22
  17. package/dist/cookies/parser.js.map +1 -1
  18. package/dist/core/client.d.ts +3 -3
  19. package/dist/core/client.d.ts.map +1 -1
  20. package/dist/core/client.js +9 -8
  21. package/dist/core/client.js.map +1 -1
  22. package/dist/core/errors.d.ts +64 -21
  23. package/dist/core/errors.d.ts.map +1 -1
  24. package/dist/core/errors.js +112 -36
  25. package/dist/core/errors.js.map +1 -1
  26. package/dist/core/request.d.ts +10 -5
  27. package/dist/core/request.d.ts.map +1 -1
  28. package/dist/core/response.d.ts +2 -2
  29. package/dist/core/response.d.ts.map +1 -1
  30. package/dist/core/response.js +6 -8
  31. package/dist/core/response.js.map +1 -1
  32. package/dist/core/session.d.ts +7 -6
  33. package/dist/core/session.d.ts.map +1 -1
  34. package/dist/core/session.js +58 -43
  35. package/dist/core/session.js.map +1 -1
  36. package/dist/core/validation.d.ts +96 -0
  37. package/dist/core/validation.d.ts.map +1 -0
  38. package/dist/core/validation.js +246 -0
  39. package/dist/core/validation.js.map +1 -0
  40. package/dist/fingerprints/akamai.d.ts +1 -1
  41. package/dist/fingerprints/akamai.d.ts.map +1 -1
  42. package/dist/fingerprints/akamai.js +3 -7
  43. package/dist/fingerprints/akamai.js.map +1 -1
  44. package/dist/fingerprints/database.d.ts +7 -7
  45. package/dist/fingerprints/database.d.ts.map +1 -1
  46. package/dist/fingerprints/database.js +12 -18
  47. package/dist/fingerprints/database.js.map +1 -1
  48. package/dist/fingerprints/extensions.d.ts.map +1 -1
  49. package/dist/fingerprints/extensions.js +4 -4
  50. package/dist/fingerprints/extensions.js.map +1 -1
  51. package/dist/fingerprints/ja3.d.ts +1 -1
  52. package/dist/fingerprints/ja3.d.ts.map +1 -1
  53. package/dist/fingerprints/ja3.js +12 -12
  54. package/dist/fingerprints/ja3.js.map +1 -1
  55. package/dist/fingerprints/profiles/chrome.d.ts +1 -1
  56. package/dist/fingerprints/profiles/chrome.d.ts.map +1 -1
  57. package/dist/fingerprints/profiles/chrome.js +59 -100
  58. package/dist/fingerprints/profiles/chrome.js.map +1 -1
  59. package/dist/fingerprints/profiles/edge.d.ts +1 -1
  60. package/dist/fingerprints/profiles/edge.d.ts.map +1 -1
  61. package/dist/fingerprints/profiles/edge.js +26 -26
  62. package/dist/fingerprints/profiles/edge.js.map +1 -1
  63. package/dist/fingerprints/profiles/firefox.d.ts +1 -1
  64. package/dist/fingerprints/profiles/firefox.d.ts.map +1 -1
  65. package/dist/fingerprints/profiles/firefox.js +35 -85
  66. package/dist/fingerprints/profiles/firefox.js.map +1 -1
  67. package/dist/fingerprints/profiles/safari.d.ts +1 -1
  68. package/dist/fingerprints/profiles/safari.d.ts.map +1 -1
  69. package/dist/fingerprints/profiles/safari.js +35 -68
  70. package/dist/fingerprints/profiles/safari.js.map +1 -1
  71. package/dist/fingerprints/profiles/tor.d.ts +1 -1
  72. package/dist/fingerprints/profiles/tor.d.ts.map +1 -1
  73. package/dist/fingerprints/profiles/tor.js +24 -57
  74. package/dist/fingerprints/profiles/tor.js.map +1 -1
  75. package/dist/fingerprints/types.d.ts +1 -1
  76. package/dist/fingerprints/types.d.ts.map +1 -1
  77. package/dist/http/h1/client.d.ts +4 -4
  78. package/dist/http/h1/client.d.ts.map +1 -1
  79. package/dist/http/h1/client.js +31 -31
  80. package/dist/http/h1/client.js.map +1 -1
  81. package/dist/http/h1/encoder.d.ts +1 -1
  82. package/dist/http/h1/encoder.d.ts.map +1 -1
  83. package/dist/http/h1/encoder.js +17 -19
  84. package/dist/http/h1/encoder.js.map +1 -1
  85. package/dist/http/h1/parser.d.ts +1 -1
  86. package/dist/http/h1/parser.d.ts.map +1 -1
  87. package/dist/http/h1/parser.js +29 -33
  88. package/dist/http/h1/parser.js.map +1 -1
  89. package/dist/http/h2/client.d.ts +5 -4
  90. package/dist/http/h2/client.d.ts.map +1 -1
  91. package/dist/http/h2/client.js +59 -71
  92. package/dist/http/h2/client.js.map +1 -1
  93. package/dist/http/h2/frames.d.ts +7 -3
  94. package/dist/http/h2/frames.d.ts.map +1 -1
  95. package/dist/http/h2/frames.js +16 -12
  96. package/dist/http/h2/frames.js.map +1 -1
  97. package/dist/http/h2/hpack.d.ts.map +1 -1
  98. package/dist/http/h2/hpack.js +328 -130
  99. package/dist/http/h2/hpack.js.map +1 -1
  100. package/dist/http/negotiator.d.ts +4 -4
  101. package/dist/http/negotiator.d.ts.map +1 -1
  102. package/dist/http/negotiator.js +27 -33
  103. package/dist/http/negotiator.js.map +1 -1
  104. package/dist/http/pool.d.ts +5 -5
  105. package/dist/http/pool.d.ts.map +1 -1
  106. package/dist/http/pool.js +5 -5
  107. package/dist/http/pool.js.map +1 -1
  108. package/dist/index.d.ts +16 -14
  109. package/dist/index.d.ts.map +1 -1
  110. package/dist/index.js +10 -9
  111. package/dist/index.js.map +1 -1
  112. package/dist/middleware/interceptor.d.ts +2 -2
  113. package/dist/middleware/interceptor.d.ts.map +1 -1
  114. package/dist/middleware/interceptor.js.map +1 -1
  115. package/dist/middleware/rate-limiter.d.ts.map +1 -1
  116. package/dist/middleware/rate-limiter.js +2 -0
  117. package/dist/middleware/rate-limiter.js.map +1 -1
  118. package/dist/middleware/retry.d.ts +6 -4
  119. package/dist/middleware/retry.d.ts.map +1 -1
  120. package/dist/middleware/retry.js +10 -8
  121. package/dist/middleware/retry.js.map +1 -1
  122. package/dist/proxy/http-proxy.d.ts +1 -1
  123. package/dist/proxy/http-proxy.d.ts.map +1 -1
  124. package/dist/proxy/http-proxy.js +14 -14
  125. package/dist/proxy/http-proxy.js.map +1 -1
  126. package/dist/proxy/socks.d.ts +1 -1
  127. package/dist/proxy/socks.d.ts.map +1 -1
  128. package/dist/proxy/socks.js +31 -27
  129. package/dist/proxy/socks.js.map +1 -1
  130. package/dist/tls/constants.d.ts.map +1 -1
  131. package/dist/tls/constants.js +1 -4
  132. package/dist/tls/constants.js.map +1 -1
  133. package/dist/tls/node-engine.d.ts +2 -2
  134. package/dist/tls/node-engine.d.ts.map +1 -1
  135. package/dist/tls/node-engine.js +60 -58
  136. package/dist/tls/node-engine.js.map +1 -1
  137. package/dist/tls/stealth/client-hello.d.ts +1 -1
  138. package/dist/tls/stealth/client-hello.d.ts.map +1 -1
  139. package/dist/tls/stealth/client-hello.js +8 -14
  140. package/dist/tls/stealth/client-hello.js.map +1 -1
  141. package/dist/tls/stealth/engine.d.ts +2 -2
  142. package/dist/tls/stealth/engine.d.ts.map +1 -1
  143. package/dist/tls/stealth/engine.js +27 -26
  144. package/dist/tls/stealth/engine.js.map +1 -1
  145. package/dist/tls/stealth/handshake.d.ts +3 -3
  146. package/dist/tls/stealth/handshake.d.ts.map +1 -1
  147. package/dist/tls/stealth/handshake.js +62 -74
  148. package/dist/tls/stealth/handshake.js.map +1 -1
  149. package/dist/tls/stealth/key-schedule.d.ts +2 -2
  150. package/dist/tls/stealth/key-schedule.d.ts.map +1 -1
  151. package/dist/tls/stealth/key-schedule.js +20 -20
  152. package/dist/tls/stealth/key-schedule.js.map +1 -1
  153. package/dist/tls/stealth/record-layer.d.ts +1 -1
  154. package/dist/tls/stealth/record-layer.d.ts.map +1 -1
  155. package/dist/tls/stealth/record-layer.js +13 -13
  156. package/dist/tls/stealth/record-layer.js.map +1 -1
  157. package/dist/tls/types.d.ts +4 -4
  158. package/dist/tls/types.d.ts.map +1 -1
  159. package/dist/utils/buffer-reader.d.ts.map +1 -1
  160. package/dist/utils/buffer-reader.js.map +1 -1
  161. package/dist/utils/buffer-writer.d.ts.map +1 -1
  162. package/dist/utils/buffer-writer.js +6 -0
  163. package/dist/utils/buffer-writer.js.map +1 -1
  164. package/dist/utils/encoding.d.ts +1 -1
  165. package/dist/utils/encoding.d.ts.map +1 -1
  166. package/dist/utils/encoding.js +23 -25
  167. package/dist/utils/encoding.js.map +1 -1
  168. package/dist/utils/logger.d.ts +48 -7
  169. package/dist/utils/logger.d.ts.map +1 -1
  170. package/dist/utils/logger.js +61 -13
  171. package/dist/utils/logger.js.map +1 -1
  172. package/dist/utils/url.d.ts.map +1 -1
  173. package/dist/utils/url.js +2 -2
  174. package/dist/utils/url.js.map +1 -1
  175. package/dist/ws/client.d.ts +2 -2
  176. package/dist/ws/client.d.ts.map +1 -1
  177. package/dist/ws/client.js +67 -71
  178. package/dist/ws/client.js.map +1 -1
  179. package/dist/ws/frame.d.ts.map +1 -1
  180. package/dist/ws/frame.js +8 -8
  181. package/dist/ws/frame.js.map +1 -1
  182. package/package.json +60 -57
@@ -1,10 +1,10 @@
1
- import * as net from 'node:net';
2
- import { Duplex } from 'node:stream';
3
- import { TLSError } from '../../core/errors.js';
4
- import { performHandshake } from './handshake.js';
5
- import { wrapEncryptedRecord, unwrapEncryptedRecord, readRecord, } from './record-layer.js';
6
- import { RecordType } from '../constants.js';
7
- import { DEFAULT_PROFILE } from '../../fingerprints/database.js';
1
+ import * as net from "node:net";
2
+ import { Duplex } from "node:stream";
3
+ import { TLSError } from "../../core/errors.js";
4
+ import { performHandshake } from "./handshake.js";
5
+ import { wrapEncryptedRecord, unwrapEncryptedRecord, readRecord } from "./record-layer.js";
6
+ import { RecordType } from "../constants.js";
7
+ import { DEFAULT_PROFILE } from "../../fingerprints/database.js";
8
8
  class StealthTLSStream extends Duplex {
9
9
  rawSocket;
10
10
  aead;
@@ -30,15 +30,14 @@ class StealthTLSStream extends Duplex {
30
30
  alpnProtocol: handshake.alpnProtocol,
31
31
  cipher: handshake.cipher,
32
32
  };
33
- rawSocket.on('data', (chunk) => this.handleRawData(chunk));
34
- rawSocket.on('error', (err) => this.destroy(err));
35
- rawSocket.once('close', () => {
33
+ rawSocket.on("data", (chunk) => this.handleRawData(chunk));
34
+ rawSocket.on("error", (err) => this.destroy(err));
35
+ rawSocket.once("close", () => {
36
36
  if (!this.destroyed_)
37
37
  this.push(null);
38
38
  });
39
39
  }
40
- _read() {
41
- }
40
+ _read() { }
42
41
  _write(chunk, _encoding, callback) {
43
42
  try {
44
43
  const encrypted = wrapEncryptedRecord(this.aead, this.clientKey, this.clientIV, this.clientSeq++, RecordType.APPLICATION_DATA, chunk);
@@ -123,9 +122,7 @@ export class StealthTLSEngine {
123
122
  async connect(options, profile) {
124
123
  const effectiveProfile = profile ?? DEFAULT_PROFILE;
125
124
  const hostname = options.servername ?? options.host;
126
- const rawSocket = options.socket
127
- ? options.socket
128
- : await tcpConnect(options.host, options.port, options.timeout, options.signal);
125
+ const rawSocket = options.socket ? options.socket : await tcpConnect(options.host, options.port, options.timeout, options.signal);
129
126
  try {
130
127
  const handshake = await performHandshake(rawSocket, effectiveProfile, hostname, options.insecure ?? false);
131
128
  const stream = new StealthTLSStream(rawSocket, handshake);
@@ -148,7 +145,7 @@ function tcpConnect(host, port, timeout, signal) {
148
145
  if (!settled) {
149
146
  settled = true;
150
147
  socket.destroy();
151
- reject(new TLSError('TCP connection timed out'));
148
+ reject(new TLSError("TCP connection timed out"));
152
149
  }
153
150
  }, timeoutMs);
154
151
  }
@@ -159,17 +156,17 @@ function tcpConnect(host, port, timeout, signal) {
159
156
  if (timer)
160
157
  clearTimeout(timer);
161
158
  socket.destroy();
162
- reject(new TLSError('Connection aborted'));
159
+ reject(new TLSError("Connection aborted"));
163
160
  }
164
161
  };
165
162
  if (signal.aborted) {
166
163
  socket.destroy();
167
- reject(new TLSError('Connection aborted'));
164
+ reject(new TLSError("Connection aborted"));
168
165
  return;
169
166
  }
170
- signal.addEventListener('abort', onAbort, { once: true });
171
- const cleanup = () => signal.removeEventListener('abort', onAbort);
172
- socket.once('connect', () => {
167
+ signal.addEventListener("abort", onAbort, { once: true });
168
+ const cleanup = () => signal.removeEventListener("abort", onAbort);
169
+ socket.once("connect", () => {
173
170
  if (!settled) {
174
171
  settled = true;
175
172
  if (timer)
@@ -178,18 +175,20 @@ function tcpConnect(host, port, timeout, signal) {
178
175
  resolve(socket);
179
176
  }
180
177
  });
181
- socket.once('error', (err) => {
178
+ socket.once("error", (err) => {
182
179
  if (!settled) {
183
180
  settled = true;
184
181
  if (timer)
185
182
  clearTimeout(timer);
186
183
  cleanup();
187
- reject(new TLSError(err.message));
184
+ const e = err;
185
+ const message = err.message || [e.code, e.reason].filter(Boolean).join(": ") || "TCP connection failed";
186
+ reject(new TLSError(message));
188
187
  }
189
188
  });
190
189
  }
191
190
  else {
192
- socket.once('connect', () => {
191
+ socket.once("connect", () => {
193
192
  if (!settled) {
194
193
  settled = true;
195
194
  if (timer)
@@ -197,12 +196,14 @@ function tcpConnect(host, port, timeout, signal) {
197
196
  resolve(socket);
198
197
  }
199
198
  });
200
- socket.once('error', (err) => {
199
+ socket.once("error", (err) => {
201
200
  if (!settled) {
202
201
  settled = true;
203
202
  if (timer)
204
203
  clearTimeout(timer);
205
- reject(new TLSError(err.message));
204
+ const e = err;
205
+ const message = err.message || [e.code, e.reason].filter(Boolean).join(": ") || "TCP connection failed";
206
+ reject(new TLSError(message));
206
207
  }
207
208
  });
208
209
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/tls/stealth/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/tls/stealth/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAwB,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,UAAU,EAAsC,MAAM,mBAAmB,CAAC;AAC/H,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,gBAAiB,SAAQ,MAAM;IAClB,SAAS,CAAa;IACtB,IAAI,CAAgB;IACpB,SAAS,CAAS;IAClB,QAAQ,CAAS;IACjB,SAAS,CAAS;IAClB,QAAQ,CAAS;IAC1B,SAAS,GAAW,EAAE,CAAC;IACvB,SAAS,GAAW,EAAE,CAAC;IACvB,UAAU,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrC,UAAU,GAAG,KAAK,CAAC;IAElB,cAAc,CAAoB;IAE3C,YAAY,SAAqB,EAAE,SAA0B;QAC3D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QAEnC,IAAI,CAAC,cAAc,GAAG;YACpB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,YAAY,EAAE,SAAS,CAAC,YAAY;YACpC,MAAM,EAAE,SAAS,CAAC,MAAM;SACzB,CAAC;QAEF,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAEQ,KAAK,KAAU,CAAC;IAEhB,MAAM,CAAC,KAAa,EAAE,SAAyB,EAAE,QAAwC;QAChG,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,UAAU,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;YACtI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAEQ,QAAQ,CAAC,GAAiB,EAAE,QAAuC;QAC1E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACzB,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IAED,UAAU;QACR,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAEO,aAAa,CAAC,KAAa;QACjC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAEO,iBAAiB;QACvB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM;gBAAE,MAAM;YAEnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;YAE1B,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBAChD,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;oBAE5G,IAAI,SAAS,CAAC,WAAW,KAAK,UAAU,CAAC,gBAAgB,EAAE,CAAC;wBAC1D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBACjC,CAAC;yBAAM,IAAI,SAAS,CAAC,WAAW,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC;wBACtD,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBACrC,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBACpC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;4BACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAClB,CAAC;6BAAM,CAAC;4BACN,IAAI,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,oBAAoB,KAAK,SAAS,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;wBAC7E,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClE,OAAO;gBACT,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC;gBAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,2BAA2B,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,gBAAgB;IAC3B;;;;;;;;;;OAUG;IACH,KAAK,CAAC,OAAO,CAAC,OAA0B,EAAE,OAAwB;QAChE,MAAM,gBAAgB,GAAG,OAAO,IAAI,eAAe,CAAC;QACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;QAEpD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAE,OAAO,CAAC,MAAqB,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAElJ,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;YAE3G,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAE1D,OAAO,MAA8B,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,IAAY,EAAE,OAAgB,EAAE,MAAoB;IACpF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpD,MAAM,SAAS,GAAG,OAAO,IAAI,MAAM,CAAC;QACpC,IAAI,KAAgD,CAAC;QAErD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjB,MAAM,CAAC,IAAI,QAAQ,CAAC,0BAA0B,CAAC,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC,EAAE,SAAS,CAAC,CAAC;QAChB,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,IAAI,CAAC;oBACf,IAAI,KAAK;wBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;oBAC/B,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjB,MAAM,CAAC,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC,CAAC;YACF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1D,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAEnE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;gBAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,IAAI,CAAC;oBACf,IAAI,KAAK;wBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;oBAC/B,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,IAAI,CAAC;oBACf,IAAI,KAAK;wBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;oBAC/B,OAAO,EAAE,CAAC;oBACV,MAAM,CAAC,GAAG,GAAkD,CAAC;oBAC7D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC;oBACxG,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;gBAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,IAAI,CAAC;oBACf,IAAI,KAAK;wBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;oBAC/B,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,IAAI,CAAC;oBACf,IAAI,KAAK;wBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;oBAC/B,MAAM,CAAC,GAAG,GAAkD,CAAC;oBAC7D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC;oBACxG,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,6 +1,6 @@
1
- import * as net from 'node:net';
2
- import type { BrowserProfile } from '../../fingerprints/types.js';
3
- import { type AEADAlgorithm } from './record-layer.js';
1
+ import * as net from "node:net";
2
+ import type { BrowserProfile } from "../../fingerprints/types.js";
3
+ import { type AEADAlgorithm } from "./record-layer.js";
4
4
  /**
5
5
  * Tracks the sequential state of a TLS 1.3 handshake as messages are parsed.
6
6
  * Used internally by {@link performHandshake} to enforce message ordering.
@@ -1 +1 @@
1
- {"version":3,"file":"handshake.d.ts","sourceRoot":"","sources":["../../../src/tls/stealth/handshake.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAahC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAOlE,OAAO,EAML,KAAK,aAAa,EAEnB,MAAM,mBAAmB,CAAC;AA8G3B;;;;;GAKG;AACH,oBAAY,cAAc;IACxB,OAAO,IAAA;IACP,kBAAkB,IAAA;IAClB,0BAA0B,IAAA;IAC1B,kBAAkB,IAAA;IAClB,wBAAwB,IAAA;IACxB,eAAe,IAAA;IACf,SAAS,IAAA;IACT,MAAM,IAAA;CACP;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,aAAa,CAAC;CACrB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,GAAG,CAAC,MAAM,EAClB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,eAAe,CAAC,CA2O1B"}
1
+ {"version":3,"file":"handshake.d.ts","sourceRoot":"","sources":["../../../src/tls/stealth/handshake.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAKhC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAGlE,OAAO,EAAuF,KAAK,aAAa,EAAkB,MAAM,mBAAmB,CAAC;AAiF5J;;;;;GAKG;AACH,oBAAY,cAAc;IACxB,OAAO,IAAA;IACP,kBAAkB,IAAA;IAClB,0BAA0B,IAAA;IAC1B,kBAAkB,IAAA;IAClB,wBAAwB,IAAA;IACxB,eAAe,IAAA;IACf,SAAS,IAAA;IACT,MAAM,IAAA;CACP;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,aAAa,CAAC;CACrB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CA6KjJ"}
@@ -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"}