@bsv/sdk 1.9.31 → 1.10.1
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 +68 -48
- package/dist/cjs/src/auth/Peer.js.map +1 -1
- package/dist/cjs/src/primitives/BigNumber.js +28 -54
- package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
- package/dist/cjs/src/primitives/ECDSA.js +36 -1
- package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
- package/dist/cjs/src/primitives/ReductionContext.js +35 -46
- package/dist/cjs/src/primitives/ReductionContext.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/auth/Peer.js +68 -48
- package/dist/esm/src/auth/Peer.js.map +1 -1
- package/dist/esm/src/primitives/BigNumber.js +28 -54
- package/dist/esm/src/primitives/BigNumber.js.map +1 -1
- package/dist/esm/src/primitives/ECDSA.js +36 -1
- package/dist/esm/src/primitives/ECDSA.js.map +1 -1
- package/dist/esm/src/primitives/ReductionContext.js +35 -46
- package/dist/esm/src/primitives/ReductionContext.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/auth/Peer.d.ts.map +1 -1
- package/dist/types/src/auth/types.d.ts +2 -0
- package/dist/types/src/auth/types.d.ts.map +1 -1
- package/dist/types/src/primitives/BigNumber.d.ts +8 -0
- package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
- package/dist/types/src/primitives/ECDSA.d.ts +24 -0
- package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
- package/dist/types/src/primitives/ReductionContext.d.ts +9 -0
- package/dist/types/src/primitives/ReductionContext.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +3 -3
- package/dist/umd/bundle.js.map +1 -1
- package/docs/index.md +15 -1
- package/docs/reference/auth.md +2 -0
- package/docs/reference/messages.md +0 -24
- package/docs/reference/primitives.md +91 -31
- package/package.json +1 -1
- package/src/auth/Peer.ts +122 -57
- package/src/auth/__tests/Peer.test.ts +166 -257
- package/src/auth/types.ts +2 -0
- package/src/primitives/BigNumber.ts +27 -31
- package/src/primitives/ECDSA.ts +41 -2
- package/src/primitives/ReductionContext.ts +44 -48
- package/src/primitives/__tests/ECDSA.test.ts +16 -0
package/dist/cjs/package.json
CHANGED
|
@@ -104,7 +104,13 @@ class Peer {
|
|
|
104
104
|
identityKey = this.lastInteractedWithPeer;
|
|
105
105
|
}
|
|
106
106
|
const peerSession = await this.getAuthenticatedSession(identityKey, maxWaitTime);
|
|
107
|
-
|
|
107
|
+
if (peerSession.peerIdentityKey == null) {
|
|
108
|
+
throw new Error('Peer identity is not established');
|
|
109
|
+
}
|
|
110
|
+
if (peerSession.certificatesRequired === true &&
|
|
111
|
+
peerSession.certificatesValidated !== true) {
|
|
112
|
+
throw new Error('Cannot send general message before certificate validation is complete');
|
|
113
|
+
}
|
|
108
114
|
const requestNonce = Utils.toBase64((0, Random_js_1.default)(32));
|
|
109
115
|
const { signature } = await this.wallet.createSignature({
|
|
110
116
|
data: message,
|
|
@@ -274,14 +280,16 @@ class Peer {
|
|
|
274
280
|
* @returns {Promise<string>} A promise that resolves to the session nonce.
|
|
275
281
|
*/
|
|
276
282
|
async initiateHandshake(identityKey, maxWaitTime = 10000) {
|
|
277
|
-
const sessionNonce = await (0, index_js_1.createNonce)(this.wallet, undefined, this.originator);
|
|
278
|
-
// Create the preliminary session (not yet authenticated)
|
|
283
|
+
const sessionNonce = await (0, index_js_1.createNonce)(this.wallet, undefined, this.originator);
|
|
279
284
|
const now = Date.now();
|
|
285
|
+
const certificatesRequired = this.certificatesToRequest.certifiers.length > 0;
|
|
280
286
|
this.sessionManager.addSession({
|
|
281
287
|
isAuthenticated: false,
|
|
282
288
|
sessionNonce,
|
|
283
289
|
peerIdentityKey: identityKey,
|
|
284
|
-
lastUpdate: now
|
|
290
|
+
lastUpdate: now,
|
|
291
|
+
certificatesRequired,
|
|
292
|
+
certificatesValidated: !certificatesRequired
|
|
285
293
|
});
|
|
286
294
|
const initialRequest = {
|
|
287
295
|
version: AUTH_VERSION,
|
|
@@ -365,24 +373,30 @@ class Peer {
|
|
|
365
373
|
if (typeof message.version !== 'string' || message.version !== AUTH_VERSION) {
|
|
366
374
|
throw new Error(`Invalid or unsupported message auth version! Received: ${message.version}, expected: ${AUTH_VERSION}`);
|
|
367
375
|
}
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
376
|
+
try {
|
|
377
|
+
switch (message.messageType) {
|
|
378
|
+
case 'initialRequest':
|
|
379
|
+
await this.processInitialRequest(message);
|
|
380
|
+
break;
|
|
381
|
+
case 'initialResponse':
|
|
382
|
+
await this.processInitialResponse(message);
|
|
383
|
+
break;
|
|
384
|
+
case 'certificateRequest':
|
|
385
|
+
await this.processCertificateRequest(message);
|
|
386
|
+
break;
|
|
387
|
+
case 'certificateResponse':
|
|
388
|
+
await this.processCertificateResponse(message);
|
|
389
|
+
break;
|
|
390
|
+
case 'general':
|
|
391
|
+
await this.processGeneralMessage(message);
|
|
392
|
+
break;
|
|
393
|
+
default:
|
|
394
|
+
throw new Error(`Unknown message type of ${String(message.messageType)} from ${String(message.identityKey)}`);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
catch (err) {
|
|
398
|
+
// Swallow protocol violations so transport does not crash the process
|
|
399
|
+
// (Message is intentionally rejected)
|
|
386
400
|
}
|
|
387
401
|
}
|
|
388
402
|
/**
|
|
@@ -396,34 +410,32 @@ class Peer {
|
|
|
396
410
|
message.initialNonce === '') {
|
|
397
411
|
throw new Error('Missing required fields in initialRequest message.');
|
|
398
412
|
}
|
|
399
|
-
// Create a new sessionNonce for our side
|
|
400
413
|
const sessionNonce = await (0, index_js_1.createNonce)(this.wallet, undefined, this.originator);
|
|
401
414
|
const now = Date.now();
|
|
402
|
-
|
|
415
|
+
const certificatesRequired = Array.isArray(this.certificatesToRequest?.certifiers) &&
|
|
416
|
+
this.certificatesToRequest.certifiers.length > 0;
|
|
403
417
|
this.sessionManager.addSession({
|
|
404
418
|
isAuthenticated: true,
|
|
405
419
|
sessionNonce,
|
|
406
420
|
peerNonce: message.initialNonce,
|
|
407
421
|
peerIdentityKey: message.identityKey,
|
|
408
|
-
lastUpdate: now
|
|
422
|
+
lastUpdate: now,
|
|
423
|
+
certificatesRequired,
|
|
424
|
+
certificatesValidated: !certificatesRequired
|
|
409
425
|
});
|
|
410
|
-
// Possibly handle the peer's requested certs
|
|
411
426
|
let certificatesToInclude;
|
|
412
|
-
|
|
413
|
-
|
|
427
|
+
// Handle THEIR certificate request (if any)
|
|
428
|
+
if (Array.isArray(message.requestedCertificates?.certifiers) &&
|
|
414
429
|
message.requestedCertificates.certifiers.length > 0) {
|
|
415
430
|
if (this.onCertificateRequestReceivedCallbacks.size > 0) {
|
|
416
|
-
// Let the application handle it
|
|
417
431
|
this.onCertificateRequestReceivedCallbacks.forEach(cb => {
|
|
418
432
|
cb(message.identityKey, message.requestedCertificates);
|
|
419
433
|
});
|
|
420
434
|
}
|
|
421
435
|
else {
|
|
422
|
-
// Attempt to find automatically
|
|
423
436
|
certificatesToInclude = await (0, index_js_1.getVerifiableCertificates)(this.wallet, message.requestedCertificates, message.identityKey, this.originator);
|
|
424
437
|
}
|
|
425
438
|
}
|
|
426
|
-
// Create signature
|
|
427
439
|
const { signature } = await this.wallet.createSignature({
|
|
428
440
|
data: Peer.base64ToBytes(message.initialNonce + sessionNonce),
|
|
429
441
|
protocolID: [2, 'auth message signature'],
|
|
@@ -440,11 +452,9 @@ class Peer {
|
|
|
440
452
|
requestedCertificates: this.certificatesToRequest,
|
|
441
453
|
signature
|
|
442
454
|
};
|
|
443
|
-
// If we haven't interacted with a peer yet, store this identity as "lastInteracted"
|
|
444
455
|
if (this.lastInteractedWithPeer === undefined) {
|
|
445
456
|
this.lastInteractedWithPeer = message.identityKey;
|
|
446
457
|
}
|
|
447
|
-
// Send the response
|
|
448
458
|
await this.transport.send(initialResponseMessage);
|
|
449
459
|
}
|
|
450
460
|
/**
|
|
@@ -459,12 +469,10 @@ class Peer {
|
|
|
459
469
|
if (!validNonce) {
|
|
460
470
|
throw new Error(`Initial response nonce verification failed from peer: ${message.identityKey}`);
|
|
461
471
|
}
|
|
462
|
-
// This is the session we previously created by calling initiateHandshake
|
|
463
472
|
const peerSession = this.sessionManager.getSession(message.yourNonce);
|
|
464
473
|
if (peerSession == null) {
|
|
465
474
|
throw new Error(`Peer session not found for peer: ${message.identityKey}`);
|
|
466
475
|
}
|
|
467
|
-
// Validate message signature
|
|
468
476
|
const dataToVerify = Peer.base64ToBytes((peerSession.sessionNonce ?? '') + (message.initialNonce ?? ''));
|
|
469
477
|
const { valid } = await this.wallet.verifySignature({
|
|
470
478
|
data: dataToVerify,
|
|
@@ -476,39 +484,45 @@ class Peer {
|
|
|
476
484
|
if (!valid) {
|
|
477
485
|
throw new Error(`Unable to verify initial response signature for peer: ${message.identityKey}`);
|
|
478
486
|
}
|
|
479
|
-
//
|
|
487
|
+
// --- Transport authentication complete ---
|
|
480
488
|
peerSession.peerNonce = message.initialNonce;
|
|
481
489
|
peerSession.peerIdentityKey = message.identityKey;
|
|
482
490
|
peerSession.isAuthenticated = true;
|
|
491
|
+
peerSession.certificatesRequired =
|
|
492
|
+
Array.isArray(this.certificatesToRequest?.certifiers) &&
|
|
493
|
+
this.certificatesToRequest.certifiers.length > 0;
|
|
494
|
+
// IMPORTANT: validation defaults to false if certs are required
|
|
495
|
+
peerSession.certificatesValidated = !peerSession.certificatesRequired;
|
|
483
496
|
peerSession.lastUpdate = Date.now();
|
|
484
497
|
this.sessionManager.updateSession(peerSession);
|
|
485
|
-
//
|
|
486
|
-
if (
|
|
487
|
-
message.certificates
|
|
498
|
+
// --- Validate certificates if provided ---
|
|
499
|
+
if (peerSession.certificatesRequired &&
|
|
500
|
+
Array.isArray(message.certificates) &&
|
|
501
|
+
message.certificates.length > 0) {
|
|
488
502
|
await (0, index_js_1.validateCertificates)(this.wallet, message, this.certificatesToRequest, this.originator);
|
|
489
|
-
|
|
503
|
+
peerSession.certificatesValidated = true;
|
|
504
|
+
peerSession.lastUpdate = Date.now();
|
|
505
|
+
this.sessionManager.updateSession(peerSession);
|
|
490
506
|
this.onCertificatesReceivedCallbacks.forEach(cb => cb(message.identityKey, message.certificates));
|
|
491
507
|
}
|
|
492
|
-
// Update
|
|
508
|
+
// Update last-interacted peer
|
|
493
509
|
this.lastInteractedWithPeer = message.identityKey;
|
|
494
|
-
//
|
|
510
|
+
// Release handshake waiters (even if certs still pending)
|
|
495
511
|
this.onInitialResponseReceivedCallbacks.forEach(entry => {
|
|
496
512
|
if (entry.sessionNonce === peerSession.sessionNonce) {
|
|
497
513
|
entry.callback(peerSession.sessionNonce);
|
|
498
514
|
}
|
|
499
515
|
});
|
|
500
|
-
//
|
|
501
|
-
if (
|
|
516
|
+
// --- Peer may request certificates from us ---
|
|
517
|
+
if (message.requestedCertificates != null &&
|
|
502
518
|
Array.isArray(message.requestedCertificates.certifiers) &&
|
|
503
519
|
message.requestedCertificates.certifiers.length > 0) {
|
|
504
520
|
if (this.onCertificateRequestReceivedCallbacks.size > 0) {
|
|
505
|
-
// Let the application handle it
|
|
506
521
|
this.onCertificateRequestReceivedCallbacks.forEach(cb => {
|
|
507
522
|
cb(message.identityKey, message.requestedCertificates);
|
|
508
523
|
});
|
|
509
524
|
}
|
|
510
525
|
else {
|
|
511
|
-
// Attempt auto
|
|
512
526
|
const verifiableCertificates = await (0, index_js_1.getVerifiableCertificates)(this.wallet, message.requestedCertificates, message.identityKey, this.originator);
|
|
513
527
|
await this.sendCertificateResponse(message.identityKey, verifiableCertificates);
|
|
514
528
|
}
|
|
@@ -624,12 +638,13 @@ class Peer {
|
|
|
624
638
|
}
|
|
625
639
|
// We also handle optional validation if there's a requestedCertificates field
|
|
626
640
|
await (0, index_js_1.validateCertificates)(this.wallet, message, message.requestedCertificates, this.originator);
|
|
641
|
+
peerSession.certificatesValidated = true;
|
|
642
|
+
peerSession.lastUpdate = Date.now();
|
|
643
|
+
this.sessionManager.updateSession(peerSession);
|
|
627
644
|
// Notify any listeners
|
|
628
645
|
this.onCertificatesReceivedCallbacks.forEach(cb => {
|
|
629
646
|
cb(message.identityKey, message.certificates ?? []);
|
|
630
647
|
});
|
|
631
|
-
peerSession.lastUpdate = Date.now();
|
|
632
|
-
this.sessionManager.updateSession(peerSession);
|
|
633
648
|
}
|
|
634
649
|
/**
|
|
635
650
|
* Processes a general message from a peer.
|
|
@@ -647,6 +662,11 @@ class Peer {
|
|
|
647
662
|
if (peerSession == null) {
|
|
648
663
|
throw new Error(`Session not found for nonce: ${message.yourNonce}`);
|
|
649
664
|
}
|
|
665
|
+
const certificatesRequired = peerSession.certificatesRequired === true;
|
|
666
|
+
const certificatesValidated = peerSession.certificatesValidated === true;
|
|
667
|
+
if (certificatesRequired && !certificatesValidated) {
|
|
668
|
+
throw new Error(`Received general message before certificate validation from peer ${peerSession.peerIdentityKey ?? 'unknown'}`);
|
|
669
|
+
}
|
|
650
670
|
const { valid } = await this.wallet.verifySignature({
|
|
651
671
|
data: message.payload,
|
|
652
672
|
signature: message.signature,
|
|
@@ -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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"}
|
|
@@ -1243,64 +1243,38 @@ class BigNumber {
|
|
|
1243
1243
|
* @param p - The `BigNumber` specifying the modulus field.
|
|
1244
1244
|
* @returns The multiplicative inverse `BigNumber` in the modulus field specified by `p`.
|
|
1245
1245
|
*/
|
|
1246
|
+
/**
|
|
1247
|
+
* SECURITY NOTE:
|
|
1248
|
+
* This implementation avoids variable-time extended Euclidean algorithms
|
|
1249
|
+
* to reduce timing side-channel leakage. However, JavaScript BigInt arithmetic
|
|
1250
|
+
* does not provide constant-time guarantees. This implementation is suitable
|
|
1251
|
+
* for browser and single-tenant environments but is not hardened against
|
|
1252
|
+
* high-resolution timing attacks in shared CPU contexts.
|
|
1253
|
+
*/
|
|
1246
1254
|
_invmp(p) {
|
|
1247
1255
|
this.assert(p._sign === 0, 'p must not be negative for _invmp');
|
|
1248
1256
|
this.assert(!p.isZero(), 'p must not be zero for _invmp');
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
const
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
while (((bVal >> BigInt(j)) & 1n) === 0n)
|
|
1269
|
-
j++;
|
|
1270
|
-
if (j > 0) {
|
|
1271
|
-
bVal >>= BigInt(j);
|
|
1272
|
-
for (let k = 0; k < j; ++k) {
|
|
1273
|
-
if ((x2Val & 1n) !== 0n)
|
|
1274
|
-
x2Val += modulus;
|
|
1275
|
-
x2Val >>= 1n;
|
|
1276
|
-
}
|
|
1277
|
-
}
|
|
1278
|
-
if (aVal >= bVal) {
|
|
1279
|
-
aVal -= bVal;
|
|
1280
|
-
x1Val -= x2Val;
|
|
1281
|
-
}
|
|
1282
|
-
else {
|
|
1283
|
-
bVal -= aVal;
|
|
1284
|
-
x2Val -= x1Val;
|
|
1285
|
-
}
|
|
1257
|
+
// Fermat inversion: a^(p-2) mod p
|
|
1258
|
+
// NOTE: This assumes p is prime (true for all cryptographic use cases here).
|
|
1259
|
+
// This avoids variable-time EEA loops but BigInt arithmetic itself
|
|
1260
|
+
// is not constant-time (documented limitation).
|
|
1261
|
+
const a = this.umod(p);
|
|
1262
|
+
const exp = p.subn(2);
|
|
1263
|
+
// Use modular exponentiation via ReductionContext if available
|
|
1264
|
+
if (a.red !== null) {
|
|
1265
|
+
return a.redPow(exp);
|
|
1266
|
+
}
|
|
1267
|
+
// Fallback: non-reduction context modular exponentiation
|
|
1268
|
+
let result = new BigNumber(1n);
|
|
1269
|
+
let base = a.clone();
|
|
1270
|
+
const e = exp.clone();
|
|
1271
|
+
while (!e.isZero()) {
|
|
1272
|
+
if (e.isOdd())
|
|
1273
|
+
result = result.mul(base).umod(p);
|
|
1274
|
+
base = base.sqr().umod(p);
|
|
1275
|
+
e.iushrn(1);
|
|
1286
1276
|
}
|
|
1287
|
-
|
|
1288
|
-
if (aVal === 1n)
|
|
1289
|
-
resultVal = x1Val;
|
|
1290
|
-
else if (bVal === 1n)
|
|
1291
|
-
resultVal = x2Val;
|
|
1292
|
-
else if (aVal === 0n && bVal === 1n)
|
|
1293
|
-
resultVal = x2Val;
|
|
1294
|
-
else if (bVal === 0n && aVal === 1n)
|
|
1295
|
-
resultVal = x1Val;
|
|
1296
|
-
else
|
|
1297
|
-
throw new Error('_invmp: GCD is not 1, inverse does not exist. aVal=' + aVal + ', bVal=' + bVal);
|
|
1298
|
-
resultVal %= modulus;
|
|
1299
|
-
if (resultVal < 0n)
|
|
1300
|
-
resultVal += modulus;
|
|
1301
|
-
const resultBN = new BigNumber(0n);
|
|
1302
|
-
resultBN._initializeState(resultVal, 0);
|
|
1303
|
-
return resultBN;
|
|
1277
|
+
return result;
|
|
1304
1278
|
}
|
|
1305
1279
|
/**
|
|
1306
1280
|
* Performs multiplication between the BigNumber instance and a given BigNumber.
|