@smartledger/keys 1.4.0 → 1.5.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.
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAkBpD;AAED;;GAEG;;;;AACH,wBAEE"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAqBpD;AAED;;GAEG;;;;AACH,wBAEE"}
@@ -33,10 +33,13 @@ Object.defineProperty(exports, "InMemoryKeyStorage", { enumerable: true, get: fu
33
33
  async function createKeySDK() {
34
34
  const storage = new crypto_1.InMemoryKeyStorage();
35
35
  const keyRegistry = new crypto_1.KeyRegistry(storage);
36
- // Initialize suite registry with both ECDSA and ML-DSA
36
+ // Initialize suite registry with ECDSA and all ML-DSA variants
37
37
  const suiteRegistry = new crypto_1.SignatureSuiteRegistry();
38
38
  suiteRegistry.register(new crypto_1.BsvEcdsaSuite());
39
- suiteRegistry.register(new crypto_1.MlDsaSuite());
39
+ suiteRegistry.register(new crypto_1.MlDsa44Suite()); // Level 2 (AES-128 equivalent)
40
+ suiteRegistry.register(new crypto_1.MlDsa65Suite()); // Level 3 (AES-192 equivalent)
41
+ suiteRegistry.register(new crypto_1.MlDsa87Suite()); // Level 5 (AES-256 equivalent)
42
+ suiteRegistry.register(new crypto_1.MlDsaSuite()); // Alias for MlDsa65Suite
40
43
  const sdk = new sdk_js_1.DefaultKeySDK({
41
44
  keyRegistry,
42
45
  suiteRegistry,
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAoBH,oCAkBC;AApCD,qCAAyC;AACzC,gDAM6B;AAG7B,wCAAwC;AACxC,6CAA2B;AAC3B,8CAAyD;AAAhD,4GAAA,kBAAkB,OAAA;AAE3B;;;GAGG;AACI,KAAK,UAAU,YAAY;IAChC,MAAM,OAAO,GAAG,IAAI,2BAAkB,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,oBAAW,CAAC,OAAO,CAAC,CAAC;IAE7C,uDAAuD;IACvD,MAAM,aAAa,GAAG,IAAI,+BAAsB,EAAE,CAAC;IACnD,aAAa,CAAC,QAAQ,CAAC,IAAI,sBAAa,EAAE,CAAC,CAAC;IAC5C,aAAa,CAAC,QAAQ,CAAC,IAAI,mBAAU,EAAE,CAAC,CAAC;IAEzC,MAAM,GAAG,GAAG,IAAI,sBAAa,CAAC;QAC5B,WAAW;QACX,aAAa;KACd,CAAC,CAAC;IAEH,2CAA2C;IAC3C,kEAAkE;IAElE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,kBAAe;IACb,YAAY;CACb,CAAC;AAEF,8BAA8B;AAC9B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,SAAS,GAAG;QAC1B,YAAY;KACb,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAuBH,oCAqBC;AA1CD,qCAAyC;AACzC,gDAS6B;AAG7B,wCAAwC;AACxC,6CAA2B;AAC3B,8CAAyD;AAAhD,4GAAA,kBAAkB,OAAA;AAE3B;;;GAGG;AACI,KAAK,UAAU,YAAY;IAChC,MAAM,OAAO,GAAG,IAAI,2BAAkB,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,oBAAW,CAAC,OAAO,CAAC,CAAC;IAE7C,+DAA+D;IAC/D,MAAM,aAAa,GAAG,IAAI,+BAAsB,EAAE,CAAC;IACnD,aAAa,CAAC,QAAQ,CAAC,IAAI,sBAAa,EAAE,CAAC,CAAC;IAC5C,aAAa,CAAC,QAAQ,CAAC,IAAI,qBAAY,EAAE,CAAC,CAAC,CAAC,+BAA+B;IAC3E,aAAa,CAAC,QAAQ,CAAC,IAAI,qBAAY,EAAE,CAAC,CAAC,CAAC,+BAA+B;IAC3E,aAAa,CAAC,QAAQ,CAAC,IAAI,qBAAY,EAAE,CAAC,CAAC,CAAC,+BAA+B;IAC3E,aAAa,CAAC,QAAQ,CAAC,IAAI,mBAAU,EAAE,CAAC,CAAC,CAAG,yBAAyB;IAErE,MAAM,GAAG,GAAG,IAAI,sBAAa,CAAC;QAC5B,WAAW;QACX,aAAa;KACd,CAAC,CAAC;IAEH,2CAA2C;IAC3C,kEAAkE;IAElE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,kBAAe;IACb,YAAY;CACb,CAAC;AAEF,8BAA8B;AAC9B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,SAAS,GAAG;QAC1B,YAAY;KACb,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAkBpD;AAED;;GAEG;;;;AACH,wBAEE"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAqBpD;AAED;;GAEG;;;;AACH,wBAEE"}
@@ -3,7 +3,7 @@
3
3
  * Includes WASM initialization and browser-compatible exports
4
4
  */
5
5
  import { DefaultKeySDK } from './sdk.js';
6
- import { InMemoryKeyStorage, KeyRegistry, SignatureSuiteRegistry, BsvEcdsaSuite, MlDsaSuite, } from '@smartledger/crypto';
6
+ import { InMemoryKeyStorage, KeyRegistry, SignatureSuiteRegistry, BsvEcdsaSuite, MlDsa44Suite, MlDsa65Suite, MlDsa87Suite, MlDsaSuite, } from '@smartledger/crypto';
7
7
  // Re-export all types for browser usage
8
8
  export * from './types.js';
9
9
  export { InMemoryKeyStorage } from '@smartledger/crypto';
@@ -14,10 +14,13 @@ export { InMemoryKeyStorage } from '@smartledger/crypto';
14
14
  export async function createKeySDK() {
15
15
  const storage = new InMemoryKeyStorage();
16
16
  const keyRegistry = new KeyRegistry(storage);
17
- // Initialize suite registry with both ECDSA and ML-DSA
17
+ // Initialize suite registry with ECDSA and all ML-DSA variants
18
18
  const suiteRegistry = new SignatureSuiteRegistry();
19
19
  suiteRegistry.register(new BsvEcdsaSuite());
20
- suiteRegistry.register(new MlDsaSuite());
20
+ suiteRegistry.register(new MlDsa44Suite()); // Level 2 (AES-128 equivalent)
21
+ suiteRegistry.register(new MlDsa65Suite()); // Level 3 (AES-192 equivalent)
22
+ suiteRegistry.register(new MlDsa87Suite()); // Level 5 (AES-256 equivalent)
23
+ suiteRegistry.register(new MlDsaSuite()); // Alias for MlDsa65Suite
21
24
  const sdk = new DefaultKeySDK({
22
25
  keyRegistry,
23
26
  suiteRegistry,
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,aAAa,EACb,UAAU,GACX,MAAM,qBAAqB,CAAC;AAG7B,wCAAwC;AACxC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IAE7C,uDAAuD;IACvD,MAAM,aAAa,GAAG,IAAI,sBAAsB,EAAE,CAAC;IACnD,aAAa,CAAC,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IAC5C,aAAa,CAAC,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;IAEzC,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC;QAC5B,WAAW;QACX,aAAa;KACd,CAAC,CAAC;IAEH,2CAA2C;IAC3C,kEAAkE;IAElE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,eAAe;IACb,YAAY;CACb,CAAC;AAEF,8BAA8B;AAC9B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,SAAS,GAAG;QAC1B,YAAY;KACb,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,UAAU,GACX,MAAM,qBAAqB,CAAC;AAG7B,wCAAwC;AACxC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IAE7C,+DAA+D;IAC/D,MAAM,aAAa,GAAG,IAAI,sBAAsB,EAAE,CAAC;IACnD,aAAa,CAAC,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IAC5C,aAAa,CAAC,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,+BAA+B;IAC3E,aAAa,CAAC,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,+BAA+B;IAC3E,aAAa,CAAC,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,+BAA+B;IAC3E,aAAa,CAAC,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAG,yBAAyB;IAErE,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC;QAC5B,WAAW;QACX,aAAa;KACd,CAAC,CAAC;IAEH,2CAA2C;IAC3C,kEAAkE;IAElE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,eAAe;IACb,YAAY;CACb,CAAC;AAEF,8BAA8B;AAC9B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,SAAS,GAAG;QAC1B,YAAY;KACb,CAAC;AACJ,CAAC"}
@@ -10313,13 +10313,16 @@ zoo`.split("\n");
10313
10313
  }
10314
10314
  return dilithiumLib;
10315
10315
  }
10316
- var MlDsa87Suite = class {
10316
+ var ML_DSA_SIZES = {
10317
+ "ml-dsa-44": { publicKey: 1312, privateKey: 2560, signature: 2420 },
10318
+ "ml-dsa-65": { publicKey: 1952, privateKey: 4032, signature: 3309 },
10319
+ "ml-dsa-87": { publicKey: 2592, privateKey: 4864, signature: 4627 }
10320
+ };
10321
+ var BaseMlDsaSuite = class {
10317
10322
  constructor() {
10318
- __publicField(this, "suiteId", "ml-dsa-87");
10319
10323
  __publicField(this, "version", "1.0.0");
10320
10324
  __publicField(this, "capabilities", {});
10321
10325
  }
10322
- // No capabilities yet, reserved for future (custom KDF, etc.)
10323
10326
  async generateKeypair() {
10324
10327
  try {
10325
10328
  const dilithium2 = await getDilithium();
@@ -10329,7 +10332,7 @@ zoo`.split("\n");
10329
10332
  privateKey: new Uint8Array(keypair.privateKey)
10330
10333
  };
10331
10334
  } catch (error) {
10332
- throw new Error(`ML-DSA-87 key generation failed: ${error instanceof Error ? error.message : String(error)}`);
10335
+ throw new Error(`${this.suiteId} key generation failed: ${error instanceof Error ? error.message : String(error)}`);
10333
10336
  }
10334
10337
  }
10335
10338
  async sign(privateKey, message) {
@@ -10338,7 +10341,7 @@ zoo`.split("\n");
10338
10341
  const signature = await dilithium2.signDetached(Buffer.from(message), Buffer.from(privateKey));
10339
10342
  return new Uint8Array(signature);
10340
10343
  } catch (error) {
10341
- throw new Error(`ML-DSA-87 signing failed: ${error instanceof Error ? error.message : String(error)}`);
10344
+ throw new Error(`${this.suiteId} signing failed: ${error instanceof Error ? error.message : String(error)}`);
10342
10345
  }
10343
10346
  }
10344
10347
  async verify(publicKey, message, signature) {
@@ -10354,8 +10357,8 @@ zoo`.split("\n");
10354
10357
  }
10355
10358
  importPublicKey(encoded) {
10356
10359
  const bytes = hexToBytes(encoded);
10357
- if (bytes.length !== 2592) {
10358
- throw new Error(`ML-DSA-87 public key must be 2592 bytes, got ${bytes.length}`);
10360
+ if (bytes.length !== this.sizes.publicKey) {
10361
+ throw new Error(`${this.suiteId} public key must be ${this.sizes.publicKey} bytes, got ${bytes.length}`);
10359
10362
  }
10360
10363
  return bytes;
10361
10364
  }
@@ -10364,40 +10367,41 @@ zoo`.split("\n");
10364
10367
  }
10365
10368
  importPrivateKey(encoded) {
10366
10369
  const bytes = hexToBytes(encoded);
10367
- if (bytes.length !== 4864) {
10368
- throw new Error(`ML-DSA-87 private key must be 4864 bytes, got ${bytes.length}`);
10370
+ if (bytes.length !== this.sizes.privateKey) {
10371
+ throw new Error(`${this.suiteId} private key must be ${this.sizes.privateKey} bytes, got ${bytes.length}`);
10369
10372
  }
10370
10373
  return bytes;
10371
10374
  }
10372
10375
  };
10373
- var MlDsaSuite = class {
10376
+ var MlDsa44Suite = class extends BaseMlDsaSuite {
10374
10377
  constructor() {
10375
- __publicField(this, "suiteId", "ml-dsa-65");
10376
- __publicField(this, "version", "1.0.0");
10377
- __publicField(this, "impl", new MlDsa87Suite());
10378
- }
10379
- async generateKeypair() {
10380
- return this.impl.generateKeypair();
10378
+ super(...arguments);
10379
+ __publicField(this, "suiteId", "ml-dsa-44");
10381
10380
  }
10382
- async sign(privateKey, message) {
10383
- return this.impl.sign(privateKey, message);
10381
+ get sizes() {
10382
+ return ML_DSA_SIZES["ml-dsa-44"];
10384
10383
  }
10385
- async verify(publicKey, message, signature) {
10386
- return this.impl.verify(publicKey, message, signature);
10387
- }
10388
- exportPublicKey(pub) {
10389
- return this.impl.exportPublicKey(pub);
10384
+ };
10385
+ var MlDsa65Suite = class extends BaseMlDsaSuite {
10386
+ constructor() {
10387
+ super(...arguments);
10388
+ __publicField(this, "suiteId", "ml-dsa-65");
10390
10389
  }
10391
- importPublicKey(encoded) {
10392
- return this.impl.importPublicKey(encoded);
10390
+ get sizes() {
10391
+ return ML_DSA_SIZES["ml-dsa-65"];
10393
10392
  }
10394
- exportPrivateKey(priv) {
10395
- return this.impl.exportPrivateKey(priv);
10393
+ };
10394
+ var MlDsa87Suite = class extends BaseMlDsaSuite {
10395
+ constructor() {
10396
+ super(...arguments);
10397
+ __publicField(this, "suiteId", "ml-dsa-87");
10396
10398
  }
10397
- importPrivateKey(encoded) {
10398
- return this.impl.importPrivateKey(encoded);
10399
+ get sizes() {
10400
+ return ML_DSA_SIZES["ml-dsa-87"];
10399
10401
  }
10400
10402
  };
10403
+ var MlDsaSuite = class extends MlDsa65Suite {
10404
+ };
10401
10405
 
10402
10406
  // src/sdk.ts
10403
10407
  var DefaultKeySDK = class {
@@ -10787,6 +10791,9 @@ Consider using one of these suites or remove the derivationContext option.` : `N
10787
10791
  const keyRegistry = new KeyRegistry(storage);
10788
10792
  const suiteRegistry = new SignatureSuiteRegistry();
10789
10793
  suiteRegistry.register(new BsvEcdsaSuite());
10794
+ suiteRegistry.register(new MlDsa44Suite());
10795
+ suiteRegistry.register(new MlDsa65Suite());
10796
+ suiteRegistry.register(new MlDsa87Suite());
10790
10797
  suiteRegistry.register(new MlDsaSuite());
10791
10798
  const sdk = new DefaultKeySDK({
10792
10799
  keyRegistry,