@antseed/node 0.2.107 → 0.2.109

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.
@@ -1,11 +1,15 @@
1
1
  import type { Wallet } from 'ethers';
2
2
  import type { PeerId } from '../types/peer.js';
3
- import { INTRO_AUTH_MAX_SKEW_MS, type ConnectionAuthEnvelope, type InitialWireType } from '@antseed/protocol/connection-auth';
3
+ import { INTRO_AUTH_MAX_SKEW_MS, type ConnectionAuthEnvelope, type InitialWireType, type TcpEncAckMessage, type TcpEncOffer } from '@antseed/protocol/connection-auth';
4
4
  export { INTRO_AUTH_MAX_SKEW_MS };
5
- export type { ConnectionAuthEnvelope, InitialWireType };
5
+ export type { ConnectionAuthEnvelope, InitialWireType, TcpEncAckMessage, TcpEncOffer };
6
6
  export interface VerifyConnectionAuthOptions {
7
7
  type: InitialWireType;
8
8
  auth: ConnectionAuthEnvelope | null | undefined;
9
+ /** Capabilities exactly as received on the wire; required to check v2 envelopes. */
10
+ wireCapabilities?: unknown;
11
+ /** Enc public key exactly as received on the wire. */
12
+ wireEncPub?: string | null;
9
13
  nowMs?: number;
10
14
  maxSkewMs?: number;
11
15
  replayGuard?: NonceReplayGuard;
@@ -26,6 +30,43 @@ export declare class NonceReplayGuard {
26
30
  checkAndRemember(peerId: PeerId, nonce: string, nowMs?: number): boolean;
27
31
  private evictExpired;
28
32
  }
29
- export declare function buildConnectionAuthEnvelope(type: InitialWireType, peerId: PeerId, wallet: Wallet, nowMs?: number): ConnectionAuthEnvelope;
33
+ /** Values the v2 envelope signature additionally covers. */
34
+ export interface TransportBinding {
35
+ capabilities: string[];
36
+ encPub?: string | null;
37
+ }
38
+ export declare function buildConnectionAuthEnvelope(type: InitialWireType, peerId: PeerId, wallet: Wallet, nowMs?: number, bind?: TransportBinding): ConnectionAuthEnvelope;
30
39
  export declare function verifyConnectionAuthEnvelope(options: VerifyConnectionAuthOptions): VerifyConnectionAuthResult;
40
+ /** Signed envelope for an outgoing `sdp` signaling message. */
41
+ export declare function buildSdpAuthEnvelope(peerId: PeerId, wallet: Wallet, descriptionType: string, sdp: string, nowMs?: number): ConnectionAuthEnvelope;
42
+ export interface VerifySdpAuthOptions {
43
+ auth: ConnectionAuthEnvelope | null | undefined;
44
+ expectedPeerId: PeerId;
45
+ descriptionType: string;
46
+ sdp: string;
47
+ nowMs?: number;
48
+ maxSkewMs?: number;
49
+ replayGuard?: NonceReplayGuard;
50
+ }
51
+ /** Verify the signed envelope on a received `sdp` signaling message. */
52
+ export declare function verifySdpAuthEnvelope(options: VerifySdpAuthOptions): VerifyConnectionAuthResult;
53
+ /** `enc` offer for an `intro` line, bound to the intro envelope's ts/nonce. */
54
+ export declare function buildTcpEncOffer(wallet: Wallet, peerId: PeerId, introTs: number, introNonce: string, publicKeyHex: string): TcpEncOffer;
55
+ /** Verify an `enc` offer; skew/replay were already checked on the intro envelope. */
56
+ export declare function verifyTcpEncOffer(options: {
57
+ offer: TcpEncOffer | null | undefined;
58
+ peerId: PeerId;
59
+ introTs: number;
60
+ introNonce: string;
61
+ }): VerifyConnectionAuthResult;
62
+ /** Responder's `enc-ack`; signing the initiator's nonce makes it fresh and handshake-bound. */
63
+ export declare function buildTcpEncAck(wallet: Wallet, peerId: PeerId, publicKeyHex: string, initiatorNonce: string, nowMs?: number): TcpEncAckMessage;
64
+ /** Verify an `enc-ack` line received by the initiator. */
65
+ export declare function verifyTcpEncAck(options: {
66
+ ack: Partial<TcpEncAckMessage> | null | undefined;
67
+ expectedPeerId: PeerId;
68
+ initiatorNonce: string;
69
+ nowMs?: number;
70
+ maxSkewMs?: number;
71
+ }): VerifyConnectionAuthResult;
31
72
  //# sourceMappingURL=connection-auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection-auth.d.ts","sourceRoot":"","sources":["../../src/p2p/connection-auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAEL,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACrB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAClC,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,CAAC;AAExD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,sBAAsB,GAAG,IAAI,GAAG,SAAS,CAAC;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAWD;;GAEG;AACH,qBAAa,gBAAgB;IAIzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAJ7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;gBAG/B,KAAK,SAA6B,EAClC,UAAU,SAAS;IAGtC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,SAAa,GAAG,OAAO;IAuB5E,OAAO,CAAC,YAAY;CAOrB;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,eAAe,EACrB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,SAAa,GACjB,sBAAsB,CAWxB;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,2BAA2B,GACnC,0BAA0B,CAwC5B"}
1
+ {"version":3,"file":"connection-auth.d.ts","sourceRoot":"","sources":["../../src/p2p/connection-auth.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { randomBytes } from 'node:crypto';
2
2
  import { toPeerId } from '../types/peer.js';
3
3
  import { signUtf8, verifyUtf8 } from './identity.js';
4
- import { buildConnectionAuthPayload, INTRO_AUTH_MAX_SKEW_MS, } from '@antseed/protocol/connection-auth';
4
+ import { buildConnectionAuthPayload, buildConnectionAuthPayloadV2, buildSdpAuthPayload, buildTcpEncAckPayload, buildTcpEncInitPayload, INTRO_AUTH_MAX_SKEW_MS, } from '@antseed/protocol/connection-auth';
5
+ import { sha256Hex, X25519_PUB_HEX_REGEX } from './secure-channel.js';
5
6
  export { INTRO_AUTH_MAX_SKEW_MS };
6
7
  const NONCE_SIZE_BYTES = 16;
7
8
  const SIG_HEX_LEN = 130;
@@ -50,16 +51,14 @@ export class NonceReplayGuard {
50
51
  }
51
52
  }
52
53
  }
53
- export function buildConnectionAuthEnvelope(type, peerId, wallet, nowMs = Date.now()) {
54
+ export function buildConnectionAuthEnvelope(type, peerId, wallet, nowMs = Date.now(), bind) {
54
55
  const nonce = randomBytes(NONCE_SIZE_BYTES).toString('hex');
56
+ if (bind) {
57
+ const payload = buildConnectionAuthPayloadV2(type, peerId, nowMs, nonce, bind.capabilities, bind.encPub ?? null);
58
+ return { peerId, ts: nowMs, nonce, sig: signUtf8(wallet, payload), v: 2 };
59
+ }
55
60
  const payload = buildConnectionAuthPayload(type, peerId, nowMs, nonce);
56
- const sig = signUtf8(wallet, payload);
57
- return {
58
- peerId,
59
- ts: nowMs,
60
- nonce,
61
- sig,
62
- };
61
+ return { peerId, ts: nowMs, nonce, sig: signUtf8(wallet, payload) };
63
62
  }
64
63
  export function verifyConnectionAuthEnvelope(options) {
65
64
  const nowMs = options.nowMs ?? Date.now();
@@ -90,11 +89,144 @@ export function verifyConnectionAuthEnvelope(options) {
90
89
  if (options.replayGuard && !options.replayGuard.checkAndRemember(peerId, auth.nonce, nowMs)) {
91
90
  return { ok: false, reason: 'replayed intro auth nonce' };
92
91
  }
93
- const payload = buildConnectionAuthPayload(options.type, peerId, auth.ts, auth.nonce);
92
+ let payload;
93
+ if (auth.v === undefined) {
94
+ payload = buildConnectionAuthPayload(options.type, peerId, auth.ts, auth.nonce);
95
+ }
96
+ else if (auth.v === 2) {
97
+ const caps = options.wireCapabilities ?? [];
98
+ if (!Array.isArray(caps) || caps.some((c) => typeof c !== 'string')) {
99
+ return { ok: false, reason: 'invalid capabilities for v2 envelope' };
100
+ }
101
+ payload = buildConnectionAuthPayloadV2(options.type, peerId, auth.ts, auth.nonce, caps, options.wireEncPub ?? null);
102
+ }
103
+ else {
104
+ return { ok: false, reason: 'unsupported envelope version' };
105
+ }
94
106
  const valid = verifyUtf8(peerId, payload, auth.sig);
95
107
  if (!valid) {
96
108
  return { ok: false, reason: 'signature verification failed' };
97
109
  }
98
110
  return { ok: true, peerId };
99
111
  }
112
+ /** Signed envelope for an outgoing `sdp` signaling message. */
113
+ export function buildSdpAuthEnvelope(peerId, wallet, descriptionType, sdp, nowMs = Date.now()) {
114
+ const nonce = randomBytes(NONCE_SIZE_BYTES).toString('hex');
115
+ const payload = buildSdpAuthPayload(peerId, nowMs, nonce, descriptionType, sha256Hex(sdp));
116
+ return { peerId, ts: nowMs, nonce, sig: signUtf8(wallet, payload) };
117
+ }
118
+ /** Verify the signed envelope on a received `sdp` signaling message. */
119
+ export function verifySdpAuthEnvelope(options) {
120
+ const nowMs = options.nowMs ?? Date.now();
121
+ const maxSkewMs = options.maxSkewMs ?? INTRO_AUTH_MAX_SKEW_MS;
122
+ const auth = options.auth;
123
+ if (!auth || typeof auth !== 'object') {
124
+ return { ok: false, reason: 'missing sdp auth envelope' };
125
+ }
126
+ let peerId;
127
+ try {
128
+ peerId = toPeerId(auth.peerId);
129
+ }
130
+ catch {
131
+ return { ok: false, reason: 'invalid peerId' };
132
+ }
133
+ if (peerId !== options.expectedPeerId) {
134
+ return { ok: false, reason: 'sdp auth peerId does not match connection peer' };
135
+ }
136
+ if (!Number.isInteger(auth.ts)) {
137
+ return { ok: false, reason: 'invalid timestamp' };
138
+ }
139
+ if (Math.abs(nowMs - auth.ts) > maxSkewMs) {
140
+ return { ok: false, reason: 'timestamp outside allowed skew' };
141
+ }
142
+ if (!NONCE_HEX_REGEX.test(auth.nonce)) {
143
+ return { ok: false, reason: 'invalid nonce format' };
144
+ }
145
+ if (!SIG_HEX_REGEX.test(auth.sig) || auth.sig.length !== SIG_HEX_LEN) {
146
+ return { ok: false, reason: 'invalid signature format' };
147
+ }
148
+ if (options.replayGuard && !options.replayGuard.checkAndRemember(peerId, auth.nonce, nowMs)) {
149
+ return { ok: false, reason: 'replayed sdp auth nonce' };
150
+ }
151
+ const payload = buildSdpAuthPayload(peerId, auth.ts, auth.nonce, options.descriptionType, sha256Hex(options.sdp));
152
+ if (!verifyUtf8(peerId, payload, auth.sig)) {
153
+ return { ok: false, reason: 'sdp signature verification failed' };
154
+ }
155
+ return { ok: true, peerId };
156
+ }
157
+ /** `enc` offer for an `intro` line, bound to the intro envelope's ts/nonce. */
158
+ export function buildTcpEncOffer(wallet, peerId, introTs, introNonce, publicKeyHex) {
159
+ const payload = buildTcpEncInitPayload(peerId, introTs, introNonce, publicKeyHex);
160
+ return { pub: publicKeyHex, sig: signUtf8(wallet, payload) };
161
+ }
162
+ /** Verify an `enc` offer; skew/replay were already checked on the intro envelope. */
163
+ export function verifyTcpEncOffer(options) {
164
+ const offer = options.offer;
165
+ if (!offer || typeof offer !== 'object') {
166
+ return { ok: false, reason: 'missing enc offer' };
167
+ }
168
+ if (typeof offer.pub !== 'string' || !X25519_PUB_HEX_REGEX.test(offer.pub)) {
169
+ return { ok: false, reason: 'invalid enc public key' };
170
+ }
171
+ if (typeof offer.sig !== 'string' || !SIG_HEX_REGEX.test(offer.sig)) {
172
+ return { ok: false, reason: 'invalid enc signature format' };
173
+ }
174
+ const payload = buildTcpEncInitPayload(options.peerId, options.introTs, options.introNonce, offer.pub);
175
+ if (!verifyUtf8(options.peerId, payload, offer.sig)) {
176
+ return { ok: false, reason: 'enc offer signature verification failed' };
177
+ }
178
+ return { ok: true, peerId: options.peerId };
179
+ }
180
+ /** Responder's `enc-ack`; signing the initiator's nonce makes it fresh and handshake-bound. */
181
+ export function buildTcpEncAck(wallet, peerId, publicKeyHex, initiatorNonce, nowMs = Date.now()) {
182
+ const nonce = randomBytes(NONCE_SIZE_BYTES).toString('hex');
183
+ const payload = buildTcpEncAckPayload(peerId, nowMs, nonce, publicKeyHex, initiatorNonce);
184
+ return {
185
+ type: 'enc-ack',
186
+ peerId,
187
+ ts: nowMs,
188
+ nonce,
189
+ pub: publicKeyHex,
190
+ sig: signUtf8(wallet, payload),
191
+ };
192
+ }
193
+ /** Verify an `enc-ack` line received by the initiator. */
194
+ export function verifyTcpEncAck(options) {
195
+ const nowMs = options.nowMs ?? Date.now();
196
+ const maxSkewMs = options.maxSkewMs ?? INTRO_AUTH_MAX_SKEW_MS;
197
+ const ack = options.ack;
198
+ if (!ack || typeof ack !== 'object' || ack.type !== 'enc-ack') {
199
+ return { ok: false, reason: 'missing enc-ack' };
200
+ }
201
+ let peerId;
202
+ try {
203
+ peerId = toPeerId(ack.peerId ?? '');
204
+ }
205
+ catch {
206
+ return { ok: false, reason: 'invalid peerId' };
207
+ }
208
+ if (peerId !== options.expectedPeerId) {
209
+ return { ok: false, reason: 'enc-ack peerId does not match dialed peer' };
210
+ }
211
+ if (!Number.isInteger(ack.ts)) {
212
+ return { ok: false, reason: 'invalid timestamp' };
213
+ }
214
+ if (Math.abs(nowMs - ack.ts) > maxSkewMs) {
215
+ return { ok: false, reason: 'timestamp outside allowed skew' };
216
+ }
217
+ if (typeof ack.nonce !== 'string' || !NONCE_HEX_REGEX.test(ack.nonce)) {
218
+ return { ok: false, reason: 'invalid nonce format' };
219
+ }
220
+ if (typeof ack.pub !== 'string' || !X25519_PUB_HEX_REGEX.test(ack.pub)) {
221
+ return { ok: false, reason: 'invalid enc public key' };
222
+ }
223
+ if (typeof ack.sig !== 'string' || !SIG_HEX_REGEX.test(ack.sig)) {
224
+ return { ok: false, reason: 'invalid signature format' };
225
+ }
226
+ const payload = buildTcpEncAckPayload(peerId, ack.ts, ack.nonce, ack.pub, options.initiatorNonce);
227
+ if (!verifyUtf8(peerId, payload, ack.sig)) {
228
+ return { ok: false, reason: 'enc-ack signature verification failed' };
229
+ }
230
+ return { ok: true, peerId };
231
+ }
100
232
  //# sourceMappingURL=connection-auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection-auth.js","sourceRoot":"","sources":["../../src/p2p/connection-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-auth.js","sourceRoot":"","sources":["../../src/p2p/connection-auth.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,16 @@ import { type PeerId } from "../types/peer.js";
5
5
  import { ConnectionState, type ConnectionConfig } from "../types/connection.js";
6
6
  import { type IceConfig } from "./ice-config.js";
7
7
  import type { Wallet } from "ethers";
8
+ import { type TransportCrypto } from "./secure-channel.js";
8
9
  export interface PeerEndpoint {
9
10
  host: string;
10
11
  port: number;
11
12
  }
12
13
  type MetadataProvider = () => object | null;
14
+ export interface ConnectionManagerOptions {
15
+ /** Refuse plaintext TCP and unsigned SDP in both directions. Default false (legacy interop). */
16
+ requireSecureTransport?: boolean;
17
+ }
13
18
  /** Represents a single P2P connection. */
14
19
  export declare class PeerConnection extends EventEmitter {
15
20
  readonly remotePeerId: PeerId;
@@ -22,6 +27,7 @@ export declare class PeerConnection extends EventEmitter {
22
27
  private _rawSocket;
23
28
  private _signalingSocket;
24
29
  private _remoteCapabilities;
30
+ private _crypto;
25
31
  constructor(config: ConnectionConfig);
26
32
  get state(): ConnectionState;
27
33
  setRemoteCapabilities(capabilities: Iterable<string>): void;
@@ -29,7 +35,10 @@ export declare class PeerConnection extends EventEmitter {
29
35
  attachRtcPeer(rtc: NativeRtcPeerConnection): void;
30
36
  attachSignalingSocket(socket: Socket): void;
31
37
  attachDataChannel(channel: NativeDataChannel): void;
32
- attachRawSocket(socket: Socket, initialData?: Uint8Array): void;
38
+ /** True for encrypted TCP framing or a (DTLS) data channel; false for legacy plaintext TCP. */
39
+ get isEncryptedTransport(): boolean;
40
+ get transportDescription(): "webrtc" | "tcp-encrypted" | "tcp-plaintext";
41
+ attachRawSocket(socket: Socket, initialData?: Uint8Array, crypto?: TransportCrypto): void;
33
42
  fail(err: Error): void;
34
43
  /** Transition to a new state and emit event. */
35
44
  setState(newState: ConnectionState): void;
@@ -55,13 +64,17 @@ export declare class ConnectionManager extends EventEmitter {
55
64
  private _server;
56
65
  private _transportMode;
57
66
  private _metadataProvider;
67
+ private _requireSecureTransport;
58
68
  private _ipConnectionCounts;
59
69
  private readonly _introReplayGuard;
60
70
  private static _knownEndpoints;
61
71
  private static _detectedTransportMode;
62
- constructor(iceConfig?: IceConfig);
63
- static init(iceConfig?: IceConfig): Promise<ConnectionManager>;
72
+ constructor(iceConfig?: IceConfig, options?: ConnectionManagerOptions);
73
+ static init(iceConfig?: IceConfig, options?: ConnectionManagerOptions): Promise<ConnectionManager>;
64
74
  get iceConfig(): IceConfig;
75
+ /** True when node-datachannel loaded and the probe succeeded. */
76
+ get supportsWebRtc(): boolean;
77
+ private _localCapabilities;
65
78
  get connections(): ReadonlyMap<PeerId, PeerConnection>;
66
79
  getListeningPort(): number | null;
67
80
  setMetadataProvider(provider: MetadataProvider): void;
@@ -89,8 +102,11 @@ export declare class ConnectionManager extends EventEmitter {
89
102
  closeAll(): void;
90
103
  private _createWebRtcConnection;
91
104
  private _createTcpConnection;
105
+ /** Buffer until the first newline, then detach and hand over line + remaining bytes. */
106
+ private _readSingleLine;
92
107
  private _handleInboundSocket;
93
108
  private _serveHttpMetadata;
109
+ private _acceptEncryptedTcpInbound;
94
110
  private _acceptTcpInbound;
95
111
  private _acceptWebRtcInbound;
96
112
  private _wireRtcPeer;
@@ -1 +1 @@
1
- {"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../src/p2p/connection-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../src/p2p/connection-manager.ts"],"names":[],"mappings":"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"}