@bsv/sdk 1.3.28 → 1.3.30
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.
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/src/auth/Peer.js +142 -91
- package/dist/cjs/src/auth/Peer.js.map +1 -1
- package/dist/cjs/src/auth/SessionManager.js +82 -21
- package/dist/cjs/src/auth/SessionManager.js.map +1 -1
- package/dist/cjs/src/auth/clients/AuthFetch.js +50 -41
- package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/auth/Peer.js +138 -88
- package/dist/esm/src/auth/Peer.js.map +1 -1
- package/dist/esm/src/auth/SessionManager.js +88 -22
- package/dist/esm/src/auth/SessionManager.js.map +1 -1
- package/dist/esm/src/auth/clients/AuthFetch.js +49 -41
- package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/auth/Peer.d.ts +21 -23
- package/dist/types/src/auth/Peer.d.ts.map +1 -1
- package/dist/types/src/auth/SessionManager.d.ts +25 -7
- package/dist/types/src/auth/SessionManager.d.ts.map +1 -1
- package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -1
- package/dist/types/src/auth/types.d.ts +1 -0
- package/dist/types/src/auth/types.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +1 -1
- package/docs/auth.md +33 -38
- package/package.json +1 -1
- package/src/auth/Peer.ts +186 -130
- package/src/auth/SessionManager.ts +89 -22
- package/src/auth/__tests/Peer.test.ts +66 -0
- package/src/auth/__tests/SessionManager.test.ts +3 -2
- package/src/auth/clients/AuthFetch.ts +53 -43
- package/src/auth/types.ts +1 -0
package/dist/cjs/package.json
CHANGED
|
@@ -9,6 +9,8 @@ const AUTH_VERSION = '0.1';
|
|
|
9
9
|
* Represents a peer capable of performing mutual authentication.
|
|
10
10
|
* Manages sessions, handles authentication handshakes, certificate requests and responses,
|
|
11
11
|
* and sending and receiving general messages over a transport layer.
|
|
12
|
+
*
|
|
13
|
+
* This version supports multiple concurrent sessions per peer identityKey.
|
|
12
14
|
*/
|
|
13
15
|
class Peer {
|
|
14
16
|
/**
|
|
@@ -36,7 +38,8 @@ class Peer {
|
|
|
36
38
|
types: {}
|
|
37
39
|
};
|
|
38
40
|
this.transport.onData(this.handleIncomingMessage.bind(this)).catch(console.error);
|
|
39
|
-
this.sessionManager =
|
|
41
|
+
this.sessionManager =
|
|
42
|
+
sessionManager != null ? sessionManager : new SessionManager_js_1.SessionManager();
|
|
40
43
|
if (autoPersistLastSession === false) {
|
|
41
44
|
this.autoPersistLastSession = false;
|
|
42
45
|
}
|
|
@@ -48,15 +51,15 @@ class Peer {
|
|
|
48
51
|
* Sends a general message to a peer, and initiates a handshake if necessary.
|
|
49
52
|
*
|
|
50
53
|
* @param {number[]} message - The message payload to send.
|
|
51
|
-
* @param {string} [identityKey] - The identity public key of the peer. If not provided,
|
|
54
|
+
* @param {string} [identityKey] - The identity public key of the peer. If not provided, uses lastInteractedWithPeer (if any).
|
|
55
|
+
* @param {number} [maxWaitTime] - optional max wait time in ms
|
|
52
56
|
* @returns {Promise<void>}
|
|
53
57
|
* @throws Will throw an error if the message fails to send.
|
|
54
58
|
*/
|
|
55
59
|
async toPeer(message, identityKey, maxWaitTime) {
|
|
56
60
|
var _a, _b;
|
|
57
61
|
if (this.autoPersistLastSession &&
|
|
58
|
-
this.lastInteractedWithPeer
|
|
59
|
-
this.lastInteractedWithPeer !== null &&
|
|
62
|
+
typeof this.lastInteractedWithPeer === 'string' &&
|
|
60
63
|
typeof identityKey !== 'string') {
|
|
61
64
|
identityKey = this.lastInteractedWithPeer;
|
|
62
65
|
}
|
|
@@ -79,6 +82,8 @@ class Peer {
|
|
|
79
82
|
payload: message,
|
|
80
83
|
signature
|
|
81
84
|
};
|
|
85
|
+
peerSession.lastUpdate = Date.now();
|
|
86
|
+
this.sessionManager.updateSession(peerSession);
|
|
82
87
|
try {
|
|
83
88
|
await this.transport.send(generalMessage);
|
|
84
89
|
}
|
|
@@ -94,15 +99,20 @@ class Peer {
|
|
|
94
99
|
* an initial handshake or message has been exchanged.
|
|
95
100
|
*
|
|
96
101
|
* @param {RequestedCertificateSet} certificatesToRequest - Specifies the certifiers and types of certificates required from the peer.
|
|
97
|
-
* @param {string} [identityKey] - The identity public key of the peer. If not provided, the current session identity is used.
|
|
102
|
+
* @param {string} [identityKey] - The identity public key of the peer. If not provided, the current or last session identity is used.
|
|
98
103
|
* @param {number} [maxWaitTime=10000] - Maximum time in milliseconds to wait for the peer session to be authenticated.
|
|
99
104
|
* @returns {Promise<void>} Resolves if the certificate request message is successfully sent.
|
|
100
105
|
* @throws Will throw an error if the peer session is not authenticated or if sending the request fails.
|
|
101
106
|
*/
|
|
102
107
|
async requestCertificates(certificatesToRequest, identityKey, maxWaitTime = 10000) {
|
|
103
108
|
var _a, _b;
|
|
109
|
+
if (this.autoPersistLastSession &&
|
|
110
|
+
typeof this.lastInteractedWithPeer === 'string' &&
|
|
111
|
+
typeof identityKey !== 'string') {
|
|
112
|
+
identityKey = this.lastInteractedWithPeer;
|
|
113
|
+
}
|
|
104
114
|
const peerSession = await this.getAuthenticatedSession(identityKey, maxWaitTime);
|
|
105
|
-
// Prepare the
|
|
115
|
+
// Prepare the message
|
|
106
116
|
const requestNonce = mod_js_1.Utils.toBase64((0, mod_js_1.Random)(32));
|
|
107
117
|
const { signature } = await this.wallet.createSignature({
|
|
108
118
|
data: mod_js_1.Utils.toArray(JSON.stringify(certificatesToRequest), 'utf8'),
|
|
@@ -121,6 +131,9 @@ class Peer {
|
|
|
121
131
|
requestedCertificates: certificatesToRequest,
|
|
122
132
|
signature
|
|
123
133
|
};
|
|
134
|
+
// Update last-used timestamp
|
|
135
|
+
peerSession.lastUpdate = Date.now();
|
|
136
|
+
this.sessionManager.updateSession(peerSession);
|
|
124
137
|
try {
|
|
125
138
|
await this.transport.send(certRequestMessage);
|
|
126
139
|
}
|
|
@@ -132,24 +145,29 @@ class Peer {
|
|
|
132
145
|
* Retrieves an authenticated session for a given peer identity. If no session exists
|
|
133
146
|
* or the session is not authenticated, initiates a handshake to create or authenticate the session.
|
|
134
147
|
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
148
|
+
* - If `identityKey` is provided, we look up any existing session for that identity key.
|
|
149
|
+
* - If none is found or not authenticated, we do a new handshake.
|
|
150
|
+
* - If `identityKey` is not provided, but we have a `lastInteractedWithPeer`, we try that key.
|
|
151
|
+
*
|
|
152
|
+
* @param {string} [identityKey] - The identity public key of the peer.
|
|
153
|
+
* @param {number} [maxWaitTime] - The maximum time in milliseconds to wait for the handshake.
|
|
139
154
|
* @returns {Promise<PeerSession>} - A promise that resolves with an authenticated `PeerSession`.
|
|
140
|
-
* @throws {Error} - Throws an error if the transport is not connected or if the handshake fails.
|
|
141
155
|
*/
|
|
142
156
|
async getAuthenticatedSession(identityKey, maxWaitTime) {
|
|
143
157
|
if (this.transport === undefined) {
|
|
144
158
|
throw new Error('Peer transport is not connected!');
|
|
145
159
|
}
|
|
146
|
-
let peerSession
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
160
|
+
let peerSession;
|
|
161
|
+
if (typeof identityKey === 'string') {
|
|
162
|
+
peerSession = this.sessionManager.getSession(identityKey);
|
|
163
|
+
}
|
|
164
|
+
// If that session doesn't exist or isn't authenticated, initiate handshake
|
|
165
|
+
if ((peerSession == null) || !peerSession.isAuthenticated) {
|
|
166
|
+
// This will create a brand-new session
|
|
150
167
|
const sessionNonce = await this.initiateHandshake(identityKey, maxWaitTime);
|
|
151
|
-
|
|
152
|
-
|
|
168
|
+
// Now retrieve it by the sessionNonce
|
|
169
|
+
peerSession = this.sessionManager.getSession(sessionNonce);
|
|
170
|
+
if ((peerSession == null) || !peerSession.isAuthenticated) {
|
|
153
171
|
throw new Error('Unable to establish mutual authentication with peer!');
|
|
154
172
|
}
|
|
155
173
|
}
|
|
@@ -177,7 +195,7 @@ class Peer {
|
|
|
177
195
|
/**
|
|
178
196
|
* Registers a callback to listen for certificates received from peers.
|
|
179
197
|
*
|
|
180
|
-
* @param {(certs: VerifiableCertificate[]) => void} callback - The function to call when certificates are received.
|
|
198
|
+
* @param {(senderPublicKey: string, certs: VerifiableCertificate[]) => void} callback - The function to call when certificates are received.
|
|
181
199
|
* @returns {number} The ID of the callback listener.
|
|
182
200
|
*/
|
|
183
201
|
listenForCertificatesReceived(callback) {
|
|
@@ -217,14 +235,18 @@ class Peer {
|
|
|
217
235
|
*
|
|
218
236
|
* @private
|
|
219
237
|
* @param {string} [identityKey] - The identity public key of the peer.
|
|
238
|
+
* @param {number} [maxWaitTime=10000] - how long to wait for handshake
|
|
220
239
|
* @returns {Promise<string>} A promise that resolves to the session nonce.
|
|
221
240
|
*/
|
|
222
241
|
async initiateHandshake(identityKey, maxWaitTime = 10000) {
|
|
223
242
|
const sessionNonce = await (0, index_js_1.createNonce)(this.wallet); // Initial request nonce
|
|
243
|
+
// Create the preliminary session (not yet authenticated)
|
|
244
|
+
const now = Date.now();
|
|
224
245
|
this.sessionManager.addSession({
|
|
225
246
|
isAuthenticated: false,
|
|
226
247
|
sessionNonce,
|
|
227
|
-
peerIdentityKey: identityKey
|
|
248
|
+
peerIdentityKey: identityKey,
|
|
249
|
+
lastUpdate: now
|
|
228
250
|
});
|
|
229
251
|
const initialRequest = {
|
|
230
252
|
version: AUTH_VERSION,
|
|
@@ -245,10 +267,10 @@ class Peer {
|
|
|
245
267
|
*/
|
|
246
268
|
async waitForInitialResponse(sessionNonce, maxWaitTime = 10000) {
|
|
247
269
|
return await new Promise((resolve, reject) => {
|
|
248
|
-
const callbackID = this.listenForInitialResponse(sessionNonce,
|
|
270
|
+
const callbackID = this.listenForInitialResponse(sessionNonce, nonce => {
|
|
249
271
|
clearTimeout(timeoutHandle);
|
|
250
272
|
this.stopListeningForInitialResponses(callbackID);
|
|
251
|
-
resolve(
|
|
273
|
+
resolve(nonce);
|
|
252
274
|
});
|
|
253
275
|
const timeoutHandle = setTimeout(() => {
|
|
254
276
|
this.stopListeningForInitialResponses(callbackID);
|
|
@@ -288,8 +310,8 @@ class Peer {
|
|
|
288
310
|
* @returns {Promise<void>}
|
|
289
311
|
*/
|
|
290
312
|
async handleIncomingMessage(message) {
|
|
291
|
-
if (
|
|
292
|
-
console.error(`Invalid message auth version! Received: ${message.version}, expected: ${AUTH_VERSION}`);
|
|
313
|
+
if (typeof message.version !== 'string' || message.version !== AUTH_VERSION) {
|
|
314
|
+
console.error(`Invalid or unsupported message auth version! Received: ${message.version}, expected: ${AUTH_VERSION}`);
|
|
293
315
|
return;
|
|
294
316
|
}
|
|
295
317
|
switch (message.messageType) {
|
|
@@ -316,36 +338,41 @@ class Peer {
|
|
|
316
338
|
* Processes an initial request message from a peer.
|
|
317
339
|
*
|
|
318
340
|
* @param {AuthMessage} message - The incoming initial request message.
|
|
319
|
-
* @returns {Promise<void>}
|
|
320
341
|
*/
|
|
321
342
|
async processInitialRequest(message) {
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
343
|
+
if (typeof message.identityKey !== 'string' ||
|
|
344
|
+
typeof message.initialNonce !== 'string' ||
|
|
345
|
+
message.initialNonce === '') {
|
|
346
|
+
throw new Error('Missing required fields in initialRequest message.');
|
|
325
347
|
}
|
|
326
|
-
// Create
|
|
348
|
+
// Create a new sessionNonce for our side
|
|
327
349
|
const sessionNonce = await (0, index_js_1.createNonce)(this.wallet);
|
|
350
|
+
const now = Date.now();
|
|
351
|
+
// We'll treat this as fully authenticated from *our* perspective (the responding side).
|
|
328
352
|
this.sessionManager.addSession({
|
|
329
353
|
isAuthenticated: true,
|
|
330
354
|
sessionNonce,
|
|
331
355
|
peerNonce: message.initialNonce,
|
|
332
|
-
peerIdentityKey: message.identityKey
|
|
356
|
+
peerIdentityKey: message.identityKey,
|
|
357
|
+
lastUpdate: now
|
|
333
358
|
});
|
|
334
|
-
//
|
|
359
|
+
// Possibly handle the peer's requested certs
|
|
335
360
|
let certificatesToInclude;
|
|
336
|
-
if (
|
|
361
|
+
if ((message.requestedCertificates != null) &&
|
|
362
|
+
Array.isArray(message.requestedCertificates.certifiers) &&
|
|
363
|
+
message.requestedCertificates.certifiers.length > 0) {
|
|
337
364
|
if (this.onCertificateRequestReceivedCallbacks.size > 0) {
|
|
338
|
-
//
|
|
339
|
-
this.onCertificateRequestReceivedCallbacks.forEach(
|
|
340
|
-
|
|
365
|
+
// Let the application handle it
|
|
366
|
+
this.onCertificateRequestReceivedCallbacks.forEach(cb => {
|
|
367
|
+
cb(message.identityKey, message.requestedCertificates);
|
|
341
368
|
});
|
|
342
369
|
}
|
|
343
370
|
else {
|
|
344
|
-
// Attempt to find
|
|
371
|
+
// Attempt to find automatically
|
|
345
372
|
certificatesToInclude = await (0, index_js_1.getVerifiableCertificates)(this.wallet, message.requestedCertificates, message.identityKey);
|
|
346
373
|
}
|
|
347
374
|
}
|
|
348
|
-
// Create
|
|
375
|
+
// Create signature
|
|
349
376
|
const { signature } = await this.wallet.createSignature({
|
|
350
377
|
data: mod_js_1.Utils.toArray(message.initialNonce + sessionNonce, 'base64'),
|
|
351
378
|
protocolID: [2, 'auth message signature'],
|
|
@@ -363,10 +390,11 @@ class Peer {
|
|
|
363
390
|
requestedCertificates: this.certificatesToRequest,
|
|
364
391
|
signature
|
|
365
392
|
};
|
|
366
|
-
//
|
|
367
|
-
if (this.lastInteractedWithPeer === undefined
|
|
393
|
+
// If we haven't interacted with a peer yet, store this identity as "lastInteracted"
|
|
394
|
+
if (this.lastInteractedWithPeer === undefined) {
|
|
368
395
|
this.lastInteractedWithPeer = message.identityKey;
|
|
369
396
|
}
|
|
397
|
+
// Send the response
|
|
370
398
|
await this.transport.send(initialResponseMessage);
|
|
371
399
|
}
|
|
372
400
|
/**
|
|
@@ -374,22 +402,23 @@ class Peer {
|
|
|
374
402
|
*
|
|
375
403
|
* @private
|
|
376
404
|
* @param {AuthMessage} message - The incoming initial response message.
|
|
377
|
-
* @
|
|
378
|
-
* @throws Will throw an error if nonce verification or signature verification fails.
|
|
405
|
+
* @throws Will throw an error if nonce or signature verification fails.
|
|
379
406
|
*/
|
|
380
407
|
async processInitialResponse(message) {
|
|
381
|
-
var _a, _b, _c, _d, _e, _f, _g
|
|
408
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
382
409
|
const validNonce = await (0, index_js_1.verifyNonce)(message.yourNonce, this.wallet);
|
|
383
410
|
if (!validNonce) {
|
|
384
411
|
throw new Error(`Initial response nonce verification failed from peer: ${message.identityKey}`);
|
|
385
412
|
}
|
|
413
|
+
// This is the session we previously created by calling initiateHandshake
|
|
386
414
|
const peerSession = this.sessionManager.getSession(message.yourNonce);
|
|
387
|
-
if (peerSession
|
|
415
|
+
if (peerSession == null) {
|
|
388
416
|
throw new Error(`Peer session not found for peer: ${message.identityKey}`);
|
|
389
417
|
}
|
|
390
418
|
// Validate message signature
|
|
419
|
+
const dataToVerify = mod_js_1.Utils.toArray(((_a = peerSession.sessionNonce) !== null && _a !== void 0 ? _a : '') + ((_b = message.initialNonce) !== null && _b !== void 0 ? _b : ''), 'base64');
|
|
391
420
|
const { valid } = await this.wallet.verifySignature({
|
|
392
|
-
data:
|
|
421
|
+
data: dataToVerify,
|
|
393
422
|
signature: message.signature,
|
|
394
423
|
protocolID: [2, 'auth message signature'],
|
|
395
424
|
keyID: `${(_c = peerSession.sessionNonce) !== null && _c !== void 0 ? _c : ''} ${(_d = message.initialNonce) !== null && _d !== void 0 ? _d : ''}`,
|
|
@@ -398,39 +427,39 @@ class Peer {
|
|
|
398
427
|
if (!valid) {
|
|
399
428
|
throw new Error(`Unable to verify initial response signature for peer: ${message.identityKey}`);
|
|
400
429
|
}
|
|
401
|
-
//
|
|
402
|
-
// Save the peer's identity key and initial nonce
|
|
403
|
-
// This allows future requests to be linked to the same session
|
|
430
|
+
// Now mark the session as authenticated
|
|
404
431
|
peerSession.peerNonce = message.initialNonce;
|
|
405
432
|
peerSession.peerIdentityKey = message.identityKey;
|
|
406
433
|
peerSession.isAuthenticated = true;
|
|
407
|
-
|
|
434
|
+
peerSession.lastUpdate = Date.now();
|
|
408
435
|
this.sessionManager.updateSession(peerSession);
|
|
409
|
-
//
|
|
410
|
-
if (((
|
|
411
|
-
(message.certificates
|
|
436
|
+
// If the handshake had requested certificates, validate them
|
|
437
|
+
if (((_f = (_e = this.certificatesToRequest) === null || _e === void 0 ? void 0 : _e.certifiers) === null || _f === void 0 ? void 0 : _f.length) > 0 &&
|
|
438
|
+
((_g = message.certificates) === null || _g === void 0 ? void 0 : _g.length) > 0) {
|
|
412
439
|
await (0, index_js_1.validateCertificates)(this.wallet, message, this.certificatesToRequest);
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
this.onCertificatesReceivedCallbacks.forEach(callback => callback(message.identityKey, messageCertificates));
|
|
416
|
-
}
|
|
440
|
+
// Notify listeners
|
|
441
|
+
this.onCertificatesReceivedCallbacks.forEach(cb => cb(message.identityKey, message.certificates));
|
|
417
442
|
}
|
|
443
|
+
// Update lastInteractedWithPeer
|
|
418
444
|
this.lastInteractedWithPeer = message.identityKey;
|
|
445
|
+
// Let the handshake wait-latch know we got our response
|
|
419
446
|
this.onInitialResponseReceivedCallbacks.forEach(entry => {
|
|
420
|
-
if (
|
|
447
|
+
if (entry.sessionNonce === peerSession.sessionNonce) {
|
|
421
448
|
entry.callback(peerSession.sessionNonce);
|
|
422
449
|
}
|
|
423
450
|
});
|
|
424
|
-
//
|
|
425
|
-
if (
|
|
451
|
+
// The peer might also request certificates from us
|
|
452
|
+
if ((message.requestedCertificates != null) &&
|
|
453
|
+
Array.isArray(message.requestedCertificates.certifiers) &&
|
|
454
|
+
message.requestedCertificates.certifiers.length > 0) {
|
|
426
455
|
if (this.onCertificateRequestReceivedCallbacks.size > 0) {
|
|
427
|
-
//
|
|
428
|
-
this.onCertificateRequestReceivedCallbacks.forEach(
|
|
429
|
-
|
|
456
|
+
// Let the application handle it
|
|
457
|
+
this.onCertificateRequestReceivedCallbacks.forEach(cb => {
|
|
458
|
+
cb(message.identityKey, message.requestedCertificates);
|
|
430
459
|
});
|
|
431
460
|
}
|
|
432
461
|
else {
|
|
433
|
-
// Attempt
|
|
462
|
+
// Attempt auto
|
|
434
463
|
const verifiableCertificates = await (0, index_js_1.getVerifiableCertificates)(this.wallet, message.requestedCertificates, message.identityKey);
|
|
435
464
|
await this.sendCertificateResponse(message.identityKey, verifiableCertificates);
|
|
436
465
|
}
|
|
@@ -438,38 +467,45 @@ class Peer {
|
|
|
438
467
|
}
|
|
439
468
|
/**
|
|
440
469
|
* Processes an incoming certificate request message from a peer.
|
|
441
|
-
* Verifies
|
|
442
|
-
* then initiates a response with any requested certificates that are available.
|
|
470
|
+
* Verifies nonce/signature and then possibly sends a certificateResponse.
|
|
443
471
|
*
|
|
444
472
|
* @param {AuthMessage} message - The certificate request message received from the peer.
|
|
445
|
-
* @throws {Error}
|
|
473
|
+
* @throws {Error} if nonce or signature is invalid.
|
|
446
474
|
*/
|
|
447
475
|
async processCertificateRequest(message) {
|
|
448
|
-
var _a, _b
|
|
476
|
+
var _a, _b;
|
|
449
477
|
const validNonce = await (0, index_js_1.verifyNonce)(message.yourNonce, this.wallet);
|
|
450
478
|
if (!validNonce) {
|
|
451
479
|
throw new Error(`Unable to verify nonce for certificate request message from: ${message.identityKey}`);
|
|
452
480
|
}
|
|
453
481
|
const peerSession = this.sessionManager.getSession(message.yourNonce);
|
|
482
|
+
if (peerSession == null) {
|
|
483
|
+
throw new Error(`Session not found for nonce: ${message.yourNonce}`);
|
|
484
|
+
}
|
|
454
485
|
const { valid } = await this.wallet.verifySignature({
|
|
455
486
|
data: mod_js_1.Utils.toArray(JSON.stringify(message.requestedCertificates), 'utf8'),
|
|
456
487
|
signature: message.signature,
|
|
457
488
|
protocolID: [2, 'auth message signature'],
|
|
458
|
-
keyID: `${(_a = message.nonce) !== null && _a !== void 0 ? _a : ''} ${(_b = peerSession
|
|
459
|
-
counterparty: peerSession
|
|
489
|
+
keyID: `${(_a = message.nonce) !== null && _a !== void 0 ? _a : ''} ${(_b = peerSession.sessionNonce) !== null && _b !== void 0 ? _b : ''}`,
|
|
490
|
+
counterparty: peerSession.peerIdentityKey
|
|
460
491
|
});
|
|
461
492
|
if (!valid) {
|
|
462
|
-
throw new Error(`Invalid signature in certificate request message from ${
|
|
493
|
+
throw new Error(`Invalid signature in certificate request message from ${peerSession.peerIdentityKey}`);
|
|
463
494
|
}
|
|
464
|
-
|
|
495
|
+
// Update usage
|
|
496
|
+
peerSession.lastUpdate = Date.now();
|
|
497
|
+
this.sessionManager.updateSession(peerSession);
|
|
498
|
+
if ((message.requestedCertificates != null) &&
|
|
499
|
+
Array.isArray(message.requestedCertificates.certifiers) &&
|
|
500
|
+
message.requestedCertificates.certifiers.length > 0) {
|
|
465
501
|
if (this.onCertificateRequestReceivedCallbacks.size > 0) {
|
|
466
|
-
//
|
|
467
|
-
this.onCertificateRequestReceivedCallbacks.forEach(
|
|
468
|
-
|
|
502
|
+
// Let the application handle it
|
|
503
|
+
this.onCertificateRequestReceivedCallbacks.forEach(cb => {
|
|
504
|
+
cb(message.identityKey, message.requestedCertificates);
|
|
469
505
|
});
|
|
470
506
|
}
|
|
471
507
|
else {
|
|
472
|
-
// Attempt
|
|
508
|
+
// Attempt auto
|
|
473
509
|
const verifiableCertificates = await (0, index_js_1.getVerifiableCertificates)(this.wallet, message.requestedCertificates, message.identityKey);
|
|
474
510
|
await this.sendCertificateResponse(message.identityKey, verifiableCertificates);
|
|
475
511
|
}
|
|
@@ -479,10 +515,8 @@ class Peer {
|
|
|
479
515
|
* Sends a certificate response message containing the specified certificates to a peer.
|
|
480
516
|
*
|
|
481
517
|
* @param {string} verifierIdentityKey - The identity key of the peer requesting the certificates.
|
|
482
|
-
* @param {VerifiableCertificate[]} certificates - The list of certificates to
|
|
483
|
-
* @
|
|
484
|
-
*
|
|
485
|
-
* @throws {Error} Throws an error if the peer session could not be authenticated or if message signing fails.
|
|
518
|
+
* @param {VerifiableCertificate[]} certificates - The list of certificates to include in the response.
|
|
519
|
+
* @throws Will throw an error if the transport fails to send the message.
|
|
486
520
|
*/
|
|
487
521
|
async sendCertificateResponse(verifierIdentityKey, certificates) {
|
|
488
522
|
var _a, _b;
|
|
@@ -505,6 +539,9 @@ class Peer {
|
|
|
505
539
|
certificates,
|
|
506
540
|
signature
|
|
507
541
|
};
|
|
542
|
+
// Update usage
|
|
543
|
+
peerSession.lastUpdate = Date.now();
|
|
544
|
+
this.sessionManager.updateSession(peerSession);
|
|
508
545
|
try {
|
|
509
546
|
await this.transport.send(certificateResponse);
|
|
510
547
|
}
|
|
@@ -518,61 +555,75 @@ class Peer {
|
|
|
518
555
|
*
|
|
519
556
|
* @private
|
|
520
557
|
* @param {AuthMessage} message - The incoming certificate response message.
|
|
521
|
-
* @returns {Promise<void>}
|
|
522
558
|
* @throws Will throw an error if nonce verification or signature verification fails.
|
|
523
559
|
*/
|
|
524
560
|
async processCertificateResponse(message) {
|
|
525
561
|
var _a, _b;
|
|
526
562
|
const validNonce = await (0, index_js_1.verifyNonce)(message.yourNonce, this.wallet);
|
|
527
563
|
if (!validNonce) {
|
|
528
|
-
throw new Error(`Unable to verify nonce for certificate response from: ${message.identityKey}
|
|
564
|
+
throw new Error(`Unable to verify nonce for certificate response from: ${message.identityKey}`);
|
|
529
565
|
}
|
|
530
566
|
const peerSession = this.sessionManager.getSession(message.yourNonce);
|
|
567
|
+
if (peerSession == null) {
|
|
568
|
+
throw new Error(`Session not found for nonce: ${message.yourNonce}`);
|
|
569
|
+
}
|
|
531
570
|
// Validate message signature
|
|
532
571
|
const { valid } = await this.wallet.verifySignature({
|
|
533
572
|
data: mod_js_1.Utils.toArray(JSON.stringify(message.certificates), 'utf8'),
|
|
534
573
|
signature: message.signature,
|
|
535
574
|
protocolID: [2, 'auth message signature'],
|
|
536
|
-
keyID: `${(_a = message.nonce) !== null && _a !== void 0 ? _a : ''} ${(_b = peerSession
|
|
575
|
+
keyID: `${(_a = message.nonce) !== null && _a !== void 0 ? _a : ''} ${(_b = peerSession.sessionNonce) !== null && _b !== void 0 ? _b : ''}`,
|
|
537
576
|
counterparty: message.identityKey
|
|
538
577
|
});
|
|
539
578
|
if (!valid) {
|
|
540
579
|
throw new Error(`Unable to verify certificate response signature for peer: ${message.identityKey}`);
|
|
541
580
|
}
|
|
542
|
-
//
|
|
581
|
+
// We also handle optional validation if there's a requestedCertificates field
|
|
543
582
|
await (0, index_js_1.validateCertificates)(this.wallet, message, message.requestedCertificates);
|
|
544
|
-
|
|
545
|
-
|
|
583
|
+
// Notify any listeners
|
|
584
|
+
this.onCertificatesReceivedCallbacks.forEach(cb => {
|
|
585
|
+
var _a;
|
|
586
|
+
cb(message.identityKey, (_a = message.certificates) !== null && _a !== void 0 ? _a : []);
|
|
546
587
|
});
|
|
588
|
+
peerSession.lastUpdate = Date.now();
|
|
589
|
+
this.sessionManager.updateSession(peerSession);
|
|
547
590
|
}
|
|
548
591
|
/**
|
|
549
592
|
* Processes a general message from a peer.
|
|
550
593
|
*
|
|
551
594
|
* @private
|
|
552
595
|
* @param {AuthMessage} message - The incoming general message.
|
|
553
|
-
* @
|
|
554
|
-
* @throws Will throw an error if nonce verification or signature verification fails.
|
|
596
|
+
* @throws Will throw an error if nonce or signature verification fails.
|
|
555
597
|
*/
|
|
556
598
|
async processGeneralMessage(message) {
|
|
557
|
-
var _a, _b
|
|
599
|
+
var _a, _b;
|
|
558
600
|
const validNonce = await (0, index_js_1.verifyNonce)(message.yourNonce, this.wallet);
|
|
559
601
|
if (!validNonce) {
|
|
560
602
|
throw new Error(`Unable to verify nonce for general message from: ${message.identityKey}`);
|
|
561
603
|
}
|
|
562
604
|
const peerSession = this.sessionManager.getSession(message.yourNonce);
|
|
605
|
+
if (peerSession == null) {
|
|
606
|
+
throw new Error(`Session not found for nonce: ${message.yourNonce}`);
|
|
607
|
+
}
|
|
563
608
|
const { valid } = await this.wallet.verifySignature({
|
|
564
609
|
data: message.payload,
|
|
565
610
|
signature: message.signature,
|
|
566
611
|
protocolID: [2, 'auth message signature'],
|
|
567
|
-
keyID: `${(_a = message.nonce) !== null && _a !== void 0 ? _a : ''} ${(_b = peerSession
|
|
568
|
-
counterparty: peerSession
|
|
612
|
+
keyID: `${(_a = message.nonce) !== null && _a !== void 0 ? _a : ''} ${(_b = peerSession.sessionNonce) !== null && _b !== void 0 ? _b : ''}`,
|
|
613
|
+
counterparty: peerSession.peerIdentityKey
|
|
569
614
|
});
|
|
570
615
|
if (!valid) {
|
|
571
|
-
throw new Error(`Invalid signature in generalMessage from ${
|
|
616
|
+
throw new Error(`Invalid signature in generalMessage from ${peerSession.peerIdentityKey}`);
|
|
572
617
|
}
|
|
618
|
+
// Mark last usage
|
|
619
|
+
peerSession.lastUpdate = Date.now();
|
|
620
|
+
this.sessionManager.updateSession(peerSession);
|
|
621
|
+
// Update lastInteractedWithPeer
|
|
573
622
|
this.lastInteractedWithPeer = message.identityKey;
|
|
574
|
-
|
|
575
|
-
|
|
623
|
+
// Dispatch callbacks
|
|
624
|
+
this.onGeneralMessageReceivedCallbacks.forEach(cb => {
|
|
625
|
+
var _a;
|
|
626
|
+
cb(message.identityKey, (_a = message.payload) !== null && _a !== void 0 ? _a : []);
|
|
576
627
|
});
|
|
577
628
|
}
|
|
578
629
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Peer.js","sourceRoot":"","sources":["../../../../src/auth/Peer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Peer.js","sourceRoot":"","sources":["../../../../src/auth/Peer.ts"],"names":[],"mappings":"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"}
|