@ac-kit/node 0.1.0 → 0.3.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 (79) hide show
  1. package/CHANGELOG.md +94 -0
  2. package/README.md +7 -2
  3. package/dist/error/process-exit-error.d.ts +16 -3
  4. package/dist/error/process-exit-error.d.ts.map +1 -1
  5. package/dist/error/process-exit-error.js +51 -7
  6. package/dist/error/process-exit-error.js.map +1 -1
  7. package/dist/fs/path-escape-error.d.ts +20 -0
  8. package/dist/fs/path-escape-error.d.ts.map +1 -0
  9. package/dist/fs/path-escape-error.js +23 -0
  10. package/dist/fs/path-escape-error.js.map +1 -0
  11. package/dist/fs/path-within.d.ts +121 -0
  12. package/dist/fs/path-within.d.ts.map +1 -0
  13. package/dist/fs/path-within.js +196 -0
  14. package/dist/fs/path-within.js.map +1 -0
  15. package/dist/index.d.ts +9 -2
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +9 -2
  18. package/dist/index.js.map +1 -1
  19. package/dist/net/connection-closed-error.d.ts +12 -0
  20. package/dist/net/connection-closed-error.d.ts.map +1 -0
  21. package/dist/net/connection-closed-error.js +15 -0
  22. package/dist/net/connection-closed-error.js.map +1 -0
  23. package/dist/net/dgram-socket.d.ts +4 -3
  24. package/dist/net/dgram-socket.d.ts.map +1 -1
  25. package/dist/net/dgram-socket.js +38 -38
  26. package/dist/net/dgram-socket.js.map +1 -1
  27. package/dist/net/inet-address.d.ts +20 -0
  28. package/dist/net/inet-address.d.ts.map +1 -0
  29. package/dist/net/inet-address.js +42 -0
  30. package/dist/net/inet-address.js.map +1 -0
  31. package/dist/net/inet-endpoint.d.ts +7 -0
  32. package/dist/net/inet-endpoint.d.ts.map +1 -0
  33. package/dist/net/inet-endpoint.js +2 -0
  34. package/dist/net/inet-endpoint.js.map +1 -0
  35. package/dist/net/inet-socket.d.ts +65 -0
  36. package/dist/net/inet-socket.d.ts.map +1 -0
  37. package/dist/net/inet-socket.js +99 -0
  38. package/dist/net/inet-socket.js.map +1 -0
  39. package/dist/net/ipc-server.d.ts +63 -0
  40. package/dist/net/ipc-server.d.ts.map +1 -0
  41. package/dist/net/ipc-server.js +75 -0
  42. package/dist/net/ipc-server.js.map +1 -0
  43. package/dist/net/ipc-socket.d.ts +55 -22
  44. package/dist/net/ipc-socket.d.ts.map +1 -1
  45. package/dist/net/ipc-socket.js +50 -46
  46. package/dist/net/ipc-socket.js.map +1 -1
  47. package/dist/net/stream-server.d.ts +80 -0
  48. package/dist/net/stream-server.d.ts.map +1 -0
  49. package/dist/net/stream-server.js +129 -0
  50. package/dist/net/stream-server.js.map +1 -0
  51. package/dist/net/stream-socket.d.ts +37 -8
  52. package/dist/net/stream-socket.d.ts.map +1 -1
  53. package/dist/net/stream-socket.js +80 -27
  54. package/dist/net/stream-socket.js.map +1 -1
  55. package/dist/net/tcp-server.d.ts +31 -73
  56. package/dist/net/tcp-server.d.ts.map +1 -1
  57. package/dist/net/tcp-server.js +45 -150
  58. package/dist/net/tcp-server.js.map +1 -1
  59. package/dist/net/tcp-socket.d.ts +21 -61
  60. package/dist/net/tcp-socket.d.ts.map +1 -1
  61. package/dist/net/tcp-socket.js +23 -126
  62. package/dist/net/tcp-socket.js.map +1 -1
  63. package/dist/net/tls-server.d.ts +87 -0
  64. package/dist/net/tls-server.d.ts.map +1 -0
  65. package/dist/net/tls-server.js +103 -0
  66. package/dist/net/tls-server.js.map +1 -0
  67. package/dist/net/tls-socket.d.ts +235 -14
  68. package/dist/net/tls-socket.d.ts.map +1 -1
  69. package/dist/net/tls-socket.js +241 -91
  70. package/dist/net/tls-socket.js.map +1 -1
  71. package/package.json +4 -4
  72. package/dist/shell/escape-command-arg.d.ts +0 -9
  73. package/dist/shell/escape-command-arg.d.ts.map +0 -1
  74. package/dist/shell/escape-command-arg.js +0 -13
  75. package/dist/shell/escape-command-arg.js.map +0 -1
  76. package/dist/shell/escape-command.d.ts +0 -10
  77. package/dist/shell/escape-command.d.ts.map +0 -1
  78. package/dist/shell/escape-command.js +0 -12
  79. package/dist/shell/escape-command.js.map +0 -1
@@ -0,0 +1,103 @@
1
+ import * as tls from "node:tls";
2
+ import { TcpServer } from "./tcp-server.js";
3
+ import { TlsSocket } from "./tls-socket.js";
4
+ /**
5
+ * TLS server accepting encrypted incoming connections.
6
+ *
7
+ * Example usage:
8
+ *
9
+ * ```ts
10
+ * const server = TlsServer.from({ key, cert });
11
+ * server.subscribe("secureConnection", (socket) => {
12
+ * console.log("Client cipher:", socket.getCipher().name);
13
+ * });
14
+ * await server.listen(8443, "0.0.0.0");
15
+ * // ... later
16
+ * await server.close();
17
+ * ```
18
+ *
19
+ * Every event of {@link TcpServer} is still emitted, so
20
+ * {@link TcpServerEvents.connection} reports the plaintext socket accepted
21
+ * _before_ the handshake. Wait for {@link TlsServerEvents.secureConnection} to
22
+ * read or write application data.
23
+ *
24
+ * The session-resumption events Node.js exposes with a completion callback
25
+ * (`newSession`, `resumeSession` and `OCSPRequest`) are deliberately not
26
+ * forwarded: Node.js falls back to its default behaviour only while no listener
27
+ * is attached, so forwarding them would stall every handshake that nobody
28
+ * subscribed to.
29
+ */
30
+ export class TlsServer extends TcpServer {
31
+ /**
32
+ * Creates a new {@link TlsServer} instance.
33
+ *
34
+ * @param options Options for creating the underlying Node.js server,
35
+ * including the certificate chain and private key to serve.
36
+ * @returns A new `TlsServer` instance.
37
+ */
38
+ static from(options) {
39
+ return new TlsServer(tls.createServer(options ?? {}));
40
+ }
41
+ /**
42
+ * Adds a secure context to serve when a client requests `hostname` through
43
+ * SNI.
44
+ *
45
+ * @param hostname The server name to match, which may contain wildcards.
46
+ * @param context The secure context or the options to build one from.
47
+ */
48
+ addContext(hostname, context) {
49
+ this.server.addContext(hostname, context);
50
+ }
51
+ /**
52
+ * Replaces the default secure context, affecting connections established
53
+ * after the call.
54
+ *
55
+ * @param context The options to build the secure context from.
56
+ */
57
+ setSecureContext(context) {
58
+ this.server.setSecureContext(context);
59
+ }
60
+ /**
61
+ * Returns the keys used to encrypt session tickets.
62
+ *
63
+ * Sharing them across server instances lets clients resume a session on any
64
+ * of them; they are sensitive key material and must be handled as secrets.
65
+ *
66
+ * @returns The 48-byte session ticket keys.
67
+ */
68
+ getTicketKeys() {
69
+ return this.server.getTicketKeys();
70
+ }
71
+ /**
72
+ * Sets the keys used to encrypt session tickets, affecting connections
73
+ * established after the call.
74
+ *
75
+ * @param keys The 48-byte session ticket keys.
76
+ */
77
+ setTicketKeys(keys) {
78
+ this.server.setTicketKeys(keys);
79
+ }
80
+ setupEventForwarding() {
81
+ super.setupEventForwarding();
82
+ this.server.on("secureConnection", (socket) => {
83
+ this.dispatch("secureConnection", [wrap_(socket)]);
84
+ });
85
+ this.server.on("tlsClientError", (error, socket) => {
86
+ this.dispatch("tlsClientError", [error, wrap_(socket)]);
87
+ });
88
+ this.server.on("keylog", (line, socket) => {
89
+ this.dispatch("keylog", [line, wrap_(socket)]);
90
+ });
91
+ }
92
+ }
93
+ /** Keeps one wrapper per accepted socket, so subscribers can correlate events. */
94
+ const wrappers_ = new WeakMap();
95
+ function wrap_(socket) {
96
+ let wrapper = wrappers_.get(socket);
97
+ if (wrapper === undefined) {
98
+ wrapper = new TlsSocket(socket);
99
+ wrappers_.set(socket, wrapper);
100
+ }
101
+ return wrapper;
102
+ }
103
+ //# sourceMappingURL=tls-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tls-server.js","sourceRoot":"","sources":["../../src/net/tls-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAIhC,OAAO,EAAE,SAAS,EAAwB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAyB,MAAM,iBAAiB,CAAC;AAoBnE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,SAAU,SAAQ,SAAsC;IACpE;;;;;;OAMG;IACH,MAAM,CAAU,IAAI,CAAC,OAA0B;QAC9C,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CAAC,QAAgB,EAAE,OAAyB;QACrD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,OAAiC;QACjD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;OAOG;IACH,aAAa;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,IAAY;QACzB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAEkB,oBAAoB;QACtC,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAE7B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE;YAC7C,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAClD,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACzC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACJ,CAAC;CACD;AAED,kFAAkF;AAClF,MAAM,SAAS,GAAG,IAAI,OAAO,EAA4B,CAAC;AAE1D,SAAS,KAAK,CAAC,MAAqB;IACnC,IAAI,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEpC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QAChC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC"}
@@ -2,44 +2,265 @@ import type { X509Certificate } from "node:crypto";
2
2
  import type { Duplex } from "node:stream";
3
3
  import * as tls from "node:tls";
4
4
  import type { Except } from "type-fest";
5
- import type { StreamSocketEvents } from "./stream-socket.js";
6
- import { StreamSocket } from "./stream-socket.js";
7
- export type TlsSocketEvents = StreamSocketEvents & {
5
+ import { InetSocket, type InetSocketEvents } from "./inet-socket.js";
6
+ /** Event map for {@link TlsSocket}. */
7
+ export type TlsSocketEvents = InetSocketEvents & {
8
+ /** Emitted once the handshake completed and the connection is usable. */
8
9
  secureConnect: [];
10
+ /**
11
+ * Emitted once the handshake completed, including after a renegotiation.
12
+ *
13
+ * Unlike {@link TlsSocketEvents.secureConnect} this also fires on sockets
14
+ * accepted by a server.
15
+ */
16
+ secure: [];
17
+ /**
18
+ * Emitted with the stapled OCSP response, or `null` when the server sent
19
+ * none. Only emitted when `requestOCSP` was set.
20
+ */
9
21
  ocspResponse: [response: Buffer | null];
22
+ /** Emitted with each line of TLS key material, for traffic decryption. */
10
23
  keylog: [line: Buffer];
24
+ /** Emitted with a session ticket that can be reused to resume the session. */
11
25
  session: [session: Buffer];
12
26
  };
13
- export type TlsSocketOptions = Except<tls.TLSSocketOptions, "isServer" | "server" | keyof tls.SecureContextOptions>;
14
- export type TlsSocketConnectOptions = Except<tls.ConnectionOptions, "port"> & {
27
+ /** Options accepted by {@link TlsSocket.from}. */
28
+ export type TlsSocketOptions = Except<tls.TLSSocketOptions, "isServer" | "server">;
29
+ /** Options accepted by {@link TlsSocket.connect}. */
30
+ export type TlsSocketConnectOptions = Except<tls.ConnectionOptions, "port" | "path" | "socket"> & {
31
+ /** Aborts the connection attempt and destroys the socket. */
15
32
  signal?: AbortSignal;
16
33
  };
17
- export declare class TlsSocket extends StreamSocket<tls.TLSSocket, TlsSocketEvents> {
34
+ /** Options accepted by {@link TlsSocket.renegotiate}. */
35
+ export type TlsSocketRenegotiateOptions = {
36
+ /** Whether to reject a peer certificate that fails verification. */
37
+ rejectUnauthorized?: boolean;
38
+ /** Whether to request a certificate from the peer. */
39
+ requestCert?: boolean;
40
+ };
41
+ /** A ready-made secure context, or the options to build one from. */
42
+ export type TlsSecureContext = tls.SecureContextOptions | tls.SecureContext;
43
+ /**
44
+ * TLS socket for establishing encrypted connections to TLS servers.
45
+ *
46
+ * Unlike {@link TcpSocket}, a TLS connection cannot be established on an
47
+ * existing instance: Node.js creates the socket as part of the handshake. The
48
+ * connection therefore starts from the static {@link TlsSocket.connect}, which
49
+ * resolves only once the handshake completed and the peer certificate has been
50
+ * verified.
51
+ *
52
+ * ```ts
53
+ * const socket = await TlsSocket.connect(443, { host: "example.com" });
54
+ * ```
55
+ *
56
+ * The same method upgrades an already-connected plaintext stream, which is what
57
+ * `STARTTLS`-style protocols need. The plaintext transport is destroyed if the
58
+ * handshake fails, so a failed upgrade can never fall back to cleartext.
59
+ *
60
+ * ```ts
61
+ * const plain = TcpSocket.from();
62
+ * await plain.connect(587, { host: "mail.example.com" });
63
+ * // ... negotiate STARTTLS over the plaintext connection ...
64
+ * const secure = await TlsSocket.connect(plain.stream, {
65
+ * servername: "mail.example.com",
66
+ * });
67
+ * ```
68
+ *
69
+ * Accessors that report handshake results ({@link TlsSocket.authorized},
70
+ * {@link TlsSocket.getPeerCertificate}, {@link TlsSocket.getCipher}, …) are
71
+ * only meaningful once the handshake completed.
72
+ */
73
+ export declare class TlsSocket extends InetSocket<tls.TLSSocket, TlsSocketEvents> {
74
+ /**
75
+ * Wraps an existing stream in a TLS socket without waiting for the handshake.
76
+ *
77
+ * The handshake starts immediately and its outcome is reported through the
78
+ * {@link TlsSocketEvents.secureConnect} and {@link StreamSocketEvents.error}
79
+ * events. Prefer {@link TlsSocket.connect}, which reports both through the
80
+ * returned promise; use this method only to drive the handshake manually.
81
+ *
82
+ * @param stream The plaintext stream to encrypt.
83
+ * @param options Options for the underlying Node.js TLS socket.
84
+ * @returns A new `TlsSocket` instance whose handshake is in progress.
85
+ */
18
86
  static from(stream: Duplex, options?: TlsSocketOptions): TlsSocket;
87
+ /**
88
+ * Connects to a TLS server and resolves once the handshake completed.
89
+ *
90
+ * @param port The port to connect to.
91
+ * @param options Connection options, including the host, the secure context
92
+ * and an optional abort signal.
93
+ * @returns A promise that resolves with the connected socket.
94
+ */
19
95
  static connect(port: number, options?: TlsSocketConnectOptions): Promise<TlsSocket>;
96
+ /**
97
+ * Connects to a TLS server listening on a local endpoint and resolves once
98
+ * the handshake completed.
99
+ *
100
+ * @param path Filesystem path of the Unix domain socket, or the name of the
101
+ * Windows named pipe.
102
+ * @param options Connection options, including the secure context and an
103
+ * optional abort signal.
104
+ * @returns A promise that resolves with the connected socket.
105
+ */
106
+ static connect(path: string, options?: TlsSocketConnectOptions): Promise<TlsSocket>;
107
+ /**
108
+ * Upgrades an already-connected stream to TLS and resolves once the handshake
109
+ * completed.
110
+ *
111
+ * @param stream The plaintext stream to encrypt.
112
+ * @param options Connection options, including the secure context and an
113
+ * optional abort signal.
114
+ * @returns A promise that resolves with the secured socket.
115
+ */
116
+ static connect(stream: Duplex, options?: TlsSocketConnectOptions): Promise<TlsSocket>;
117
+ /** Always `true`; distinguishes a TLS socket from a plaintext one. */
20
118
  get encrypted(): boolean;
119
+ /** Whether the peer certificate was signed by one of the configured CAs. */
21
120
  get authorized(): boolean;
121
+ /**
122
+ * Reason why the peer certificate was rejected, or `null` when the peer is
123
+ * authorized or the handshake has not completed yet.
124
+ */
22
125
  get authorizationError(): Error | null;
126
+ /**
127
+ * Protocol selected through ALPN, or `null` before the handshake completed
128
+ * and when no protocol was negotiated.
129
+ */
23
130
  get alpnProtocol(): string | null;
131
+ /**
132
+ * Server name requested through SNI, or `null` when the peer sent none.
133
+ *
134
+ * Only set on sockets accepted by a server.
135
+ */
136
+ get servername(): string | null;
137
+ /**
138
+ * Returns the local certificate, or `null` when none was presented.
139
+ *
140
+ * @returns The local certificate or `null`.
141
+ */
24
142
  getCertificate(): tls.PeerCertificate | null;
143
+ /**
144
+ * Returns the peer certificate, or `null` when the peer presented none.
145
+ *
146
+ * @param detailed Whether to include the full issuer chain.
147
+ * @returns The peer certificate or `null`.
148
+ */
149
+ getPeerCertificate(detailed: true): tls.DetailedPeerCertificate | null;
150
+ getPeerCertificate(detailed?: false): tls.PeerCertificate | null;
151
+ /**
152
+ * Returns the peer certificate as an `X509Certificate`, or `null` when the
153
+ * peer presented none.
154
+ *
155
+ * @returns The peer certificate or `null`.
156
+ */
157
+ getPeerX509Certificate(): X509Certificate | null;
158
+ /**
159
+ * Returns the local certificate as an `X509Certificate`, or `null` when none
160
+ * was presented.
161
+ *
162
+ * @returns The local certificate or `null`.
163
+ */
164
+ getX509Certificate(): X509Certificate | null;
165
+ /**
166
+ * Returns the negotiated cipher suite.
167
+ *
168
+ * @returns The cipher name, standard name and protocol version.
169
+ */
25
170
  getCipher(): tls.CipherNameAndProtocol;
26
- getEphemeralKeyInfo(): tls.EphemeralKeyInfo | object | null;
171
+ /**
172
+ * Returns the type, name and size of the ephemeral key exchange, or `null`
173
+ * when the key exchange was not ephemeral.
174
+ *
175
+ * @returns The ephemeral key information or `null`.
176
+ */
177
+ getEphemeralKeyInfo(): tls.EphemeralKeyInfo | null;
178
+ /**
179
+ * Returns the latest `Finished` message sent to the peer, or `null` when no
180
+ * handshake completed.
181
+ *
182
+ * @returns The message or `null`.
183
+ */
27
184
  getFinished(): Buffer | null;
28
- getPeerCertificate<T extends boolean | undefined, R = T extends true ? tls.DetailedPeerCertificate : tls.PeerCertificate>(detailed?: T): R;
185
+ /**
186
+ * Returns the latest `Finished` message received from the peer, or `null`
187
+ * when no handshake completed.
188
+ *
189
+ * @returns The message or `null`.
190
+ */
29
191
  getPeerFinished(): Buffer | null;
192
+ /**
193
+ * Returns the negotiated protocol version, or `null` before the handshake
194
+ * completed.
195
+ *
196
+ * @returns The protocol version such as `TLSv1.3`, or `null`.
197
+ */
30
198
  getProtocol(): string | null;
199
+ /**
200
+ * Returns the negotiated session, which can be passed back as the `session`
201
+ * connect option to resume it.
202
+ *
203
+ * @returns The session or `null`.
204
+ */
31
205
  getSession(): Buffer | null;
206
+ /**
207
+ * Returns the session ticket, or `null` when the peer issued none.
208
+ *
209
+ * @returns The session ticket or `null`.
210
+ */
211
+ getTLSTicket(): Buffer | null;
212
+ /**
213
+ * Returns the signature algorithms shared between client and server, in
214
+ * descending order of preference.
215
+ *
216
+ * @returns The shared signature algorithms.
217
+ */
32
218
  getSharedSigalgs(): string[];
33
- getTicket(): Buffer | null;
219
+ /**
220
+ * Indicates whether the session was resumed rather than renegotiated.
221
+ *
222
+ * @returns `true` when the session was reused.
223
+ */
34
224
  isSessionReused(): boolean;
35
- renegotiate(options: Parameters<tls.TLSSocket["renegotiate"]>[0]): Promise<void>;
36
- setKeyCert(context: tls.SecureContext): void;
225
+ /**
226
+ * Keying material for the connection, as defined by RFC 5705.
227
+ *
228
+ * @param length Number of bytes to derive.
229
+ * @param label Application-specific label.
230
+ * @param context Optional application-specific context.
231
+ * @returns The derived keying material.
232
+ */
233
+ exportKeyingMaterial(length: number, label: string, context?: Buffer): Buffer;
234
+ /**
235
+ * Renegotiates the TLS session and resolves once the new handshake completed.
236
+ *
237
+ * @param options Renegotiation options.
238
+ * @returns A promise that resolves once renegotiation completed.
239
+ * @throws {ConnectionClosedError} When the socket is already destroyed, since
240
+ * Node.js would never invoke the completion callback.
241
+ */
242
+ renegotiate(options?: TlsSocketRenegotiateOptions): Promise<void>;
243
+ /**
244
+ * Sets the private key and certificate to use for this socket, overriding the
245
+ * ones inherited from the secure context.
246
+ *
247
+ * @param context The secure context or the options to build one from.
248
+ */
249
+ setKeyCert(context: TlsSecureContext): void;
250
+ /**
251
+ * Sets the maximum TLS fragment size.
252
+ *
253
+ * @param size The maximum fragment size, between 512 and 16384.
254
+ * @returns `true` when the limit was set.
255
+ */
37
256
  setMaxSendFragment(size: number): boolean;
257
+ /**
258
+ * Disables renegotiation. Any further renegotiation attempt by the peer emits
259
+ * an error instead.
260
+ */
38
261
  disableRenegotiation(): void;
262
+ /** Enables OpenSSL trace output on standard error, for debugging. */
39
263
  enableTrace(): void;
40
- getPeerX509Certificate(): X509Certificate | null;
41
- getX509Certificate(): X509Certificate | null;
42
- exportKeyingMaterial(length: number, label: string, context: Buffer): Buffer;
43
264
  protected setupEventForwarding(): void;
44
265
  }
45
266
  //# sourceMappingURL=tls-socket.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tls-socket.d.ts","sourceRoot":"","sources":["../../src/net/tls-socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tls-socket.d.ts","sourceRoot":"","sources":["../../src/net/tls-socket.ts"],"names":[],"mappings":"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"}