@noble/post-quantum 0.4.1 → 0.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.
Files changed (62) hide show
  1. package/README.md +47 -32
  2. package/_crystals.d.ts +1 -1
  3. package/_crystals.d.ts.map +1 -1
  4. package/_crystals.js +31 -46
  5. package/_crystals.js.map +1 -1
  6. package/hybrid.d.ts +102 -0
  7. package/hybrid.d.ts.map +1 -0
  8. package/hybrid.js +283 -0
  9. package/hybrid.js.map +1 -0
  10. package/index.d.ts +1 -0
  11. package/index.js +4 -4
  12. package/index.js.map +1 -1
  13. package/ml-dsa.d.ts +16 -8
  14. package/ml-dsa.d.ts.map +1 -1
  15. package/ml-dsa.js +126 -68
  16. package/ml-dsa.js.map +1 -1
  17. package/ml-kem.d.ts +1 -14
  18. package/ml-kem.d.ts.map +1 -1
  19. package/ml-kem.js +70 -54
  20. package/ml-kem.js.map +1 -1
  21. package/package.json +39 -85
  22. package/slh-dsa.d.ts +4 -3
  23. package/slh-dsa.d.ts.map +1 -1
  24. package/slh-dsa.js +113 -86
  25. package/slh-dsa.js.map +1 -1
  26. package/src/_crystals.ts +30 -41
  27. package/src/hybrid.ts +372 -0
  28. package/src/index.ts +3 -3
  29. package/src/ml-dsa.ts +125 -39
  30. package/src/ml-kem.ts +49 -46
  31. package/src/slh-dsa.ts +90 -50
  32. package/src/utils.ts +85 -50
  33. package/utils.d.ts +52 -10
  34. package/utils.d.ts.map +1 -1
  35. package/utils.js +54 -60
  36. package/utils.js.map +1 -1
  37. package/esm/_crystals.d.ts +0 -34
  38. package/esm/_crystals.d.ts.map +0 -1
  39. package/esm/_crystals.js +0 -141
  40. package/esm/_crystals.js.map +0 -1
  41. package/esm/index.d.ts +0 -2
  42. package/esm/index.d.ts.map +0 -1
  43. package/esm/index.js +0 -21
  44. package/esm/index.js.map +0 -1
  45. package/esm/ml-dsa.d.ts +0 -25
  46. package/esm/ml-dsa.d.ts.map +0 -1
  47. package/esm/ml-dsa.js +0 -525
  48. package/esm/ml-dsa.js.map +0 -1
  49. package/esm/ml-kem.d.ts +0 -34
  50. package/esm/ml-kem.d.ts.map +0 -1
  51. package/esm/ml-kem.js +0 -306
  52. package/esm/ml-kem.js.map +0 -1
  53. package/esm/package.json +0 -10
  54. package/esm/slh-dsa.d.ts +0 -62
  55. package/esm/slh-dsa.d.ts.map +0 -1
  56. package/esm/slh-dsa.js +0 -596
  57. package/esm/slh-dsa.js.map +0 -1
  58. package/esm/utils.d.ts +0 -40
  59. package/esm/utils.d.ts.map +0 -1
  60. package/esm/utils.js +0 -133
  61. package/esm/utils.js.map +0 -1
  62. package/src/package.json +0 -3
package/ml-dsa.js CHANGED
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ml_dsa87 = exports.ml_dsa65 = exports.ml_dsa44 = exports.PARAMS = void 0;
4
1
  /**
5
2
  * ML-DSA: Module Lattice-based Digital Signature Algorithm from
6
3
  * [FIPS-204](https://csrc.nist.gov/pubs/fips/204/ipd). A.k.a. CRYSTALS-Dilithium.
@@ -11,9 +8,15 @@ exports.ml_dsa87 = exports.ml_dsa65 = exports.ml_dsa44 = exports.PARAMS = void 0
11
8
  * @module
12
9
  */
13
10
  /*! noble-post-quantum - MIT License (c) 2024 Paul Miller (paulmillr.com) */
14
- const sha3_1 = require("@noble/hashes/sha3");
15
- const _crystals_ts_1 = require("./_crystals.js");
16
- const utils_ts_1 = require("./utils.js");
11
+ import { shake256 } from '@noble/hashes/sha3.js';
12
+ import { genCrystals, XOF128, XOF256 } from "./_crystals.js";
13
+ import { abytes, checkHash, validateSigOpts, validateVerOpts, cleanBytes, equalBytes, getMessage, getMessagePrehash, randomBytes, splitCoder, vecCoder, validateOpts, } from "./utils.js";
14
+ import { abool } from '@noble/curves/utils.js';
15
+ function validateInternalOpts(opts) {
16
+ validateOpts(opts);
17
+ if (opts.externalMu !== undefined)
18
+ abool(opts.externalMu, 'opts.externalMu');
19
+ }
17
20
  // Constants
18
21
  const N = 256;
19
22
  // 2**23 − 2**13 + 1, 23 bits: multiply will be 46. We have enough precision in JS to avoid bigints
@@ -27,13 +30,13 @@ const GAMMA2_1 = Math.floor((Q - 1) / 88) | 0;
27
30
  const GAMMA2_2 = Math.floor((Q - 1) / 32) | 0;
28
31
  /** Internal params for different versions of ML-DSA */
29
32
  // prettier-ignore
30
- exports.PARAMS = {
33
+ export const PARAMS = {
31
34
  2: { K: 4, L: 4, D, GAMMA1: 2 ** 17, GAMMA2: GAMMA2_1, TAU: 39, ETA: 2, OMEGA: 80 },
32
35
  3: { K: 6, L: 5, D, GAMMA1: 2 ** 19, GAMMA2: GAMMA2_2, TAU: 49, ETA: 4, OMEGA: 55 },
33
36
  5: { K: 8, L: 7, D, GAMMA1: 2 ** 19, GAMMA2: GAMMA2_2, TAU: 60, ETA: 2, OMEGA: 75 },
34
37
  };
35
38
  const newPoly = (n) => new Int32Array(n);
36
- const { mod, smod, NTT, bitsCoder } = (0, _crystals_ts_1.genCrystals)({
39
+ const { mod, smod, NTT, bitsCoder } = genCrystals({
37
40
  N,
38
41
  Q,
39
42
  F,
@@ -98,7 +101,7 @@ function RejNTTPoly(xof) {
98
101
  }
99
102
  function getDilithium(opts) {
100
103
  const { K, L, GAMMA1, GAMMA2, TAU, ETA, OMEGA } = opts;
101
- const { CRH_BYTES, TR_BYTES, C_TILDE_BYTES, XOF128, XOF256 } = opts;
104
+ const { CRH_BYTES, TR_BYTES, C_TILDE_BYTES, XOF128, XOF256, securityLevel } = opts;
102
105
  if (![2, 4].includes(ETA))
103
106
  throw new Error('Wrong ETA');
104
107
  if (![1 << 17, 1 << 19].includes(GAMMA1))
@@ -193,11 +196,11 @@ function getDilithium(opts) {
193
196
  // Requires smod. Need to fix!
194
197
  const ZCoder = polyCoder(GAMMA1 === 1 << 17 ? 18 : 20, (i) => smod(GAMMA1 - i));
195
198
  const W1Coder = polyCoder(GAMMA2 === GAMMA2_1 ? 6 : 4);
196
- const W1Vec = (0, utils_ts_1.vecCoder)(W1Coder, K);
199
+ const W1Vec = vecCoder(W1Coder, K);
197
200
  // Main structures
198
- const publicCoder = (0, utils_ts_1.splitCoder)(32, (0, utils_ts_1.vecCoder)(T1Coder, K));
199
- const secretCoder = (0, utils_ts_1.splitCoder)(32, 32, TR_BYTES, (0, utils_ts_1.vecCoder)(ETACoder, L), (0, utils_ts_1.vecCoder)(ETACoder, K), (0, utils_ts_1.vecCoder)(T0Coder, K));
200
- const sigCoder = (0, utils_ts_1.splitCoder)(C_TILDE_BYTES, (0, utils_ts_1.vecCoder)(ZCoder, L), hintCoder);
201
+ const publicCoder = splitCoder(32, vecCoder(T1Coder, K));
202
+ const secretCoder = splitCoder(32, 32, TR_BYTES, vecCoder(ETACoder, L), vecCoder(ETACoder, K), vecCoder(T0Coder, K));
203
+ const sigCoder = splitCoder(C_TILDE_BYTES, vecCoder(ZCoder, L), hintCoder);
201
204
  const CoefFromHalfByte = ETA === 2
202
205
  ? (n) => (n < 15 ? 2 - (n % 5) : false)
203
206
  : (n) => (n < 9 ? 4 - n : false);
@@ -222,15 +225,15 @@ function getDilithium(opts) {
222
225
  const SampleInBall = (seed) => {
223
226
  // Samples a polynomial c ∈ Rq with coeffcients from {−1, 0, 1} and Hamming weight τ
224
227
  const pre = newPoly(N);
225
- const s = sha3_1.shake256.create({}).update(seed);
226
- const buf = new Uint8Array(sha3_1.shake256.blockLen);
228
+ const s = shake256.create({}).update(seed);
229
+ const buf = new Uint8Array(shake256.blockLen);
227
230
  s.xofInto(buf);
228
231
  const masks = buf.slice(0, 8);
229
232
  for (let i = N - TAU, pos = 8, maskPos = 0, maskBit = 0; i < N; i++) {
230
233
  let b = i + 1;
231
234
  for (; b > i;) {
232
235
  b = buf[pos++];
233
- if (pos < sha3_1.shake256.blockLen)
236
+ if (pos < shake256.blockLen)
234
237
  continue;
235
238
  s.xofInto(buf);
236
239
  pos = 0;
@@ -270,23 +273,30 @@ function getDilithium(opts) {
270
273
  return { v, cnt };
271
274
  };
272
275
  const signRandBytes = 32;
273
- const seedCoder = (0, utils_ts_1.splitCoder)(32, 64, 32);
276
+ const seedCoder = splitCoder(32, 64, 32);
274
277
  // API & argument positions are exactly as in FIPS204.
275
278
  const internal = {
276
- signRandBytes,
279
+ info: { type: 'internal-ml-dsa' },
280
+ lengths: {
281
+ secretKey: secretCoder.bytesLen,
282
+ publicKey: publicCoder.bytesLen,
283
+ seed: 32,
284
+ signature: sigCoder.bytesLen,
285
+ signRand: signRandBytes,
286
+ },
277
287
  keygen: (seed) => {
278
288
  // H(𝜉||IntegerToBytes(𝑘, 1)||IntegerToBytes(ℓ, 1), 128) 2: ▷ expand seed
279
289
  const seedDst = new Uint8Array(32 + 2);
280
290
  const randSeed = seed === undefined;
281
291
  if (randSeed)
282
- seed = (0, utils_ts_1.randomBytes)(32);
283
- (0, utils_ts_1.ensureBytes)(seed, 32);
292
+ seed = randomBytes(32);
293
+ abytes(seed, 32);
284
294
  seedDst.set(seed);
285
295
  if (randSeed)
286
- seed.fill(0);
296
+ cleanBytes(seed);
287
297
  seedDst[32] = K;
288
298
  seedDst[33] = L;
289
- const [rho, rhoPrime, K_] = seedCoder.decode((0, sha3_1.shake256)(seedDst, { dkLen: seedCoder.bytesLen }));
299
+ const [rho, rhoPrime, K_] = seedCoder.decode(shake256(seedDst, { dkLen: seedCoder.bytesLen }));
290
300
  const xofPrime = XOF256(rhoPrime);
291
301
  const s1 = [];
292
302
  for (let i = 0; i < L; i++)
@@ -301,7 +311,7 @@ function getDilithium(opts) {
301
311
  const t = newPoly(N);
302
312
  for (let i = 0; i < K; i++) {
303
313
  // t ← NTT−1(A*NTT(s1)) + s2
304
- t.fill(0); // don't-reallocate
314
+ cleanBytes(t); // don't-reallocate
305
315
  for (let j = 0; j < L; j++) {
306
316
  const aij = RejNTTPoly(xof.get(j, i)); // super slow!
307
317
  polyAdd(t, MultiplyNTTs(aij, s1Hat[j]));
@@ -312,18 +322,42 @@ function getDilithium(opts) {
312
322
  t1.push(r1);
313
323
  }
314
324
  const publicKey = publicCoder.encode([rho, t1]); // pk ← pkEncode(ρ, t1)
315
- const tr = (0, sha3_1.shake256)(publicKey, { dkLen: TR_BYTES }); // tr ← H(BytesToBits(pk), 512)
325
+ const tr = shake256(publicKey, { dkLen: TR_BYTES }); // tr ← H(BytesToBits(pk), 512)
316
326
  const secretKey = secretCoder.encode([rho, K_, tr, s1, s2, t0]); // sk ← skEncode(ρ, K,tr, s1, s2, t0)
317
327
  xof.clean();
318
328
  xofPrime.clean();
319
329
  // STATS
320
330
  // Kyber512: { calls: 4, xofs: 12 }, Kyber768: { calls: 9, xofs: 27 }, Kyber1024: { calls: 16, xofs: 48 }
321
331
  // DSA44: { calls: 24, xofs: 24 }, DSA65: { calls: 41, xofs: 41 }, DSA87: { calls: 71, xofs: 71 }
322
- (0, utils_ts_1.cleanBytes)(rho, rhoPrime, K_, s1, s2, s1Hat, t, t0, t1, tr, seedDst);
332
+ cleanBytes(rho, rhoPrime, K_, s1, s2, s1Hat, t, t0, t1, tr, seedDst);
323
333
  return { publicKey, secretKey };
324
334
  },
335
+ getPublicKey: (secretKey) => {
336
+ const [rho, _K, _tr, s1, s2, _t0] = secretCoder.decode(secretKey); // (ρ, K,tr, s1, s2, t0) ← skDecode(sk)
337
+ const xof = XOF128(rho);
338
+ const s1Hat = s1.map((p) => NTT.encode(p.slice()));
339
+ const t1 = [];
340
+ const tmp = newPoly(N);
341
+ for (let i = 0; i < K; i++) {
342
+ tmp.fill(0);
343
+ for (let j = 0; j < L; j++) {
344
+ const aij = RejNTTPoly(xof.get(j, i)); // A_ij in NTT
345
+ polyAdd(tmp, MultiplyNTTs(aij, s1Hat[j])); // += A_ij * s1_j
346
+ }
347
+ NTT.decode(tmp); // NTT⁻¹
348
+ polyAdd(tmp, s2[i]); // t_i = A·s1 + s2
349
+ const { r1 } = polyPowerRound(tmp); // r1 = t1, r0 ≈ t0
350
+ t1.push(r1);
351
+ }
352
+ xof.clean();
353
+ cleanBytes(tmp, s1Hat, _t0, s1, s2);
354
+ return publicCoder.encode([rho, t1]);
355
+ },
325
356
  // NOTE: random is optional.
326
- sign: (secretKey, msg, random, externalMu = false) => {
357
+ sign: (msg, secretKey, opts = {}) => {
358
+ validateSigOpts(opts);
359
+ validateInternalOpts(opts);
360
+ let { extraEntropy: random, externalMu = false } = opts;
327
361
  // This part can be pre-cached per secretKey, but there is only minor performance improvement,
328
362
  // since we re-use a lot of variables to computation.
329
363
  const [rho, _K, tr, s1, s2, t0] = secretCoder.decode(secretKey); // (ρ, K,tr, s1, s2, t0) ← skDecode(sk)
@@ -346,17 +380,21 @@ function getDilithium(opts) {
346
380
  // This part is per msg
347
381
  const mu = externalMu
348
382
  ? msg
349
- : sha3_1.shake256.create({ dkLen: CRH_BYTES }).update(tr).update(msg).digest(); // 6: µ ← H(tr||M, 512) ▷ Compute message representative µ
383
+ : shake256.create({ dkLen: CRH_BYTES }).update(tr).update(msg).digest(); // 6: µ ← H(tr||M, 512) ▷ Compute message representative µ
350
384
  // Compute private random seed
351
- const rnd = random ? random : new Uint8Array(32);
352
- (0, utils_ts_1.ensureBytes)(rnd);
353
- const rhoprime = sha3_1.shake256
385
+ const rnd = random === false
386
+ ? new Uint8Array(32)
387
+ : random === undefined
388
+ ? randomBytes(signRandBytes)
389
+ : random;
390
+ abytes(rnd, 32);
391
+ const rhoprime = shake256
354
392
  .create({ dkLen: CRH_BYTES })
355
393
  .update(_K)
356
394
  .update(rnd)
357
395
  .update(mu)
358
396
  .digest(); // ρ′← H(K||rnd||µ, 512)
359
- (0, utils_ts_1.ensureBytes)(rhoprime, CRH_BYTES);
397
+ abytes(rhoprime, CRH_BYTES);
360
398
  const x256 = XOF256(rhoprime, ZCoder.bytesLen);
361
399
  // Rejection sampling loop
362
400
  main_loop: for (let kappa = 0;;) {
@@ -376,7 +414,7 @@ function getDilithium(opts) {
376
414
  }
377
415
  const w1 = w.map((j) => j.map(HighBits)); // w1 ← HighBits(w)
378
416
  // Commitment hash: c˜ ∈{0, 1 2λ } ← H(µ||w1Encode(w1), 2λ)
379
- const cTilde = sha3_1.shake256
417
+ const cTilde = shake256
380
418
  .create({ dkLen: C_TILDE_BYTES })
381
419
  .update(mu)
382
420
  .update(W1Vec.encode(w1))
@@ -412,16 +450,18 @@ function getDilithium(opts) {
412
450
  x256.clean();
413
451
  const res = sigCoder.encode([cTilde, cs1, h]); // σ ← sigEncode(c˜, z mod±q, h)
414
452
  // rho, _K, tr is subarray of secretKey, cannot clean.
415
- (0, utils_ts_1.cleanBytes)(cTilde, cs1, h, cHat, w1, w, z, y, rhoprime, mu, s1, s2, t0, ...A);
453
+ cleanBytes(cTilde, cs1, h, cHat, w1, w, z, y, rhoprime, mu, s1, s2, t0, ...A);
416
454
  return res;
417
455
  }
418
456
  // @ts-ignore
419
457
  throw new Error('Unreachable code path reached, report this error');
420
458
  },
421
- verify: (publicKey, msg, sig, externalMu = false) => {
459
+ verify: (sig, msg, publicKey, opts = {}) => {
460
+ validateInternalOpts(opts);
461
+ const { externalMu = false } = opts;
422
462
  // ML-DSA.Verify(pk, M, σ): Verifes a signature σ for a message M.
423
463
  const [rho, t1] = publicCoder.decode(publicKey); // (ρ, t1) ← pkDecode(pk)
424
- const tr = (0, sha3_1.shake256)(publicKey, { dkLen: TR_BYTES }); // 6: tr ← H(BytesToBits(pk), 512)
464
+ const tr = shake256(publicKey, { dkLen: TR_BYTES }); // 6: tr ← H(BytesToBits(pk), 512)
425
465
  if (sig.length !== sigCoder.bytesLen)
426
466
  return false; // return false instead of exception
427
467
  const [cTilde, z, h] = sigCoder.decode(sig); // (c˜, z, h) ← sigDecode(σ), ▷ Signer’s commitment hash c ˜, response z and hint
@@ -432,7 +472,7 @@ function getDilithium(opts) {
432
472
  return false;
433
473
  const mu = externalMu
434
474
  ? msg
435
- : sha3_1.shake256.create({ dkLen: CRH_BYTES }).update(tr).update(msg).digest(); // 7: µ ← H(tr||M, 512)
475
+ : shake256.create({ dkLen: CRH_BYTES }).update(tr).update(msg).digest(); // 7: µ ← H(tr||M, 512)
436
476
  // Compute verifer’s challenge from c˜
437
477
  const c = NTT.encode(SampleInBall(cTilde)); // c ← SampleInBall(c˜1)
438
478
  const zNtt = z.map((i) => i.slice()); // zNtt = NTT(z)
@@ -454,7 +494,7 @@ function getDilithium(opts) {
454
494
  }
455
495
  xof.clean();
456
496
  // c˜′← H (µ||w1Encode(w′1), 2λ), Hash it; this should match c˜
457
- const c2 = sha3_1.shake256
497
+ const c2 = shake256
458
498
  .create({ dkLen: C_TILDE_BYTES })
459
499
  .update(mu)
460
500
  .update(W1Vec.encode(wTick1))
@@ -469,60 +509,78 @@ function getDilithium(opts) {
469
509
  for (const t of z)
470
510
  if (polyChknorm(t, GAMMA1 - BETA))
471
511
  return false;
472
- return (0, utils_ts_1.equalBytes)(cTilde, c2);
512
+ return equalBytes(cTilde, c2);
473
513
  },
474
514
  };
475
515
  return {
516
+ info: { type: 'ml-dsa' },
476
517
  internal,
518
+ securityLevel: securityLevel,
477
519
  keygen: internal.keygen,
478
- signRandBytes: internal.signRandBytes,
479
- sign: (secretKey, msg, ctx = utils_ts_1.EMPTY, random) => {
480
- const M = (0, utils_ts_1.getMessage)(msg, ctx);
481
- const res = internal.sign(secretKey, M, random);
482
- M.fill(0);
520
+ lengths: internal.lengths,
521
+ getPublicKey: internal.getPublicKey,
522
+ sign: (msg, secretKey, opts = {}) => {
523
+ validateSigOpts(opts);
524
+ const M = getMessage(msg, opts.context);
525
+ const res = internal.sign(M, secretKey, opts);
526
+ cleanBytes(M);
483
527
  return res;
484
528
  },
485
- verify: (publicKey, msg, sig, ctx = utils_ts_1.EMPTY) => {
486
- return internal.verify(publicKey, (0, utils_ts_1.getMessage)(msg, ctx), sig);
529
+ verify: (sig, msg, publicKey, opts = {}) => {
530
+ validateVerOpts(opts);
531
+ return internal.verify(sig, getMessage(msg, opts.context), publicKey);
532
+ },
533
+ prehash: (hash) => {
534
+ checkHash(hash, securityLevel);
535
+ return {
536
+ info: { type: 'hashml-dsa' },
537
+ securityLevel: securityLevel,
538
+ lengths: internal.lengths,
539
+ keygen: internal.keygen,
540
+ getPublicKey: internal.getPublicKey,
541
+ sign: (msg, secretKey, opts = {}) => {
542
+ validateSigOpts(opts);
543
+ const M = getMessagePrehash(hash, msg, opts.context);
544
+ const res = internal.sign(M, secretKey, opts);
545
+ cleanBytes(M);
546
+ return res;
547
+ },
548
+ verify: (sig, msg, publicKey, opts = {}) => {
549
+ validateVerOpts(opts);
550
+ return internal.verify(sig, getMessagePrehash(hash, msg, opts.context), publicKey);
551
+ },
552
+ };
487
553
  },
488
- prehash: (hashName) => ({
489
- sign: (secretKey, msg, ctx = utils_ts_1.EMPTY, random) => {
490
- const M = (0, utils_ts_1.getMessagePrehash)(hashName, msg, ctx);
491
- const res = internal.sign(secretKey, M, random);
492
- M.fill(0);
493
- return res;
494
- },
495
- verify: (publicKey, msg, sig, ctx = utils_ts_1.EMPTY) => {
496
- return internal.verify(publicKey, (0, utils_ts_1.getMessagePrehash)(hashName, msg, ctx), sig);
497
- },
498
- }),
499
554
  };
500
555
  }
501
556
  /** ML-DSA-44 for 128-bit security level. Not recommended after 2030, as per ASD. */
502
- exports.ml_dsa44 = getDilithium({
503
- ...exports.PARAMS[2],
557
+ export const ml_dsa44 = /* @__PURE__ */ getDilithium({
558
+ ...PARAMS[2],
504
559
  CRH_BYTES: 64,
505
560
  TR_BYTES: 64,
506
561
  C_TILDE_BYTES: 32,
507
- XOF128: _crystals_ts_1.XOF128,
508
- XOF256: _crystals_ts_1.XOF256,
562
+ XOF128,
563
+ XOF256,
564
+ securityLevel: 128,
509
565
  });
510
566
  /** ML-DSA-65 for 192-bit security level. Not recommended after 2030, as per ASD. */
511
- exports.ml_dsa65 = getDilithium({
512
- ...exports.PARAMS[3],
567
+ export const ml_dsa65 = /* @__PURE__ */ getDilithium({
568
+ ...PARAMS[3],
513
569
  CRH_BYTES: 64,
514
570
  TR_BYTES: 64,
515
571
  C_TILDE_BYTES: 48,
516
- XOF128: _crystals_ts_1.XOF128,
517
- XOF256: _crystals_ts_1.XOF256,
572
+ XOF128,
573
+ XOF256,
574
+ securityLevel: 192,
518
575
  });
519
576
  /** ML-DSA-87 for 256-bit security level. OK after 2030, as per ASD. */
520
- exports.ml_dsa87 = getDilithium({
521
- ...exports.PARAMS[5],
577
+ export const ml_dsa87 = /* @__PURE__ */ getDilithium({
578
+ ...PARAMS[5],
522
579
  CRH_BYTES: 64,
523
580
  TR_BYTES: 64,
524
581
  C_TILDE_BYTES: 64,
525
- XOF128: _crystals_ts_1.XOF128,
526
- XOF256: _crystals_ts_1.XOF256,
582
+ XOF128,
583
+ XOF256,
584
+ securityLevel: 256,
527
585
  });
528
586
  //# sourceMappingURL=ml-dsa.js.map
package/ml-dsa.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ml-dsa.js","sourceRoot":"","sources":["src/ml-dsa.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ml-dsa.js","sourceRoot":"","sources":["src/ml-dsa.ts"],"names":[],"mappings":"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"}
package/ml-kem.d.ts CHANGED
@@ -1,17 +1,4 @@
1
- /** Key encapsulation mechanism interface */
2
- export type KEM = {
3
- publicKeyLen: number;
4
- msgLen: number;
5
- keygen: (seed?: Uint8Array) => {
6
- publicKey: Uint8Array;
7
- secretKey: Uint8Array;
8
- };
9
- encapsulate: (publicKey: Uint8Array, msg?: Uint8Array) => {
10
- cipherText: Uint8Array;
11
- sharedSecret: Uint8Array;
12
- };
13
- decapsulate: (cipherText: Uint8Array, secretKey: Uint8Array) => Uint8Array;
14
- };
1
+ import { type KEM } from './utils.ts';
15
2
  /** FIPS 203: 7. Parameter Sets */
16
3
  export type KEMParam = {
17
4
  N: number;
package/ml-kem.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ml-kem.d.ts","sourceRoot":"","sources":["src/ml-kem.ts"],"names":[],"mappings":"AAmCA,4CAA4C;AAC5C,MAAM,MAAM,GAAG,GAAG;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,KAAK;QAC7B,SAAS,EAAE,UAAU,CAAC;QACtB,SAAS,EAAE,UAAU,CAAC;KACvB,CAAC;IACF,WAAW,EAAE,CACX,SAAS,EAAE,UAAU,EACrB,GAAG,CAAC,EAAE,UAAU,KACb;QACH,UAAU,EAAE,UAAU,CAAC;QACvB,YAAY,EAAE,UAAU,CAAC;KAC1B,CAAC;IACF,WAAW,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,KAAK,UAAU,CAAC;CAC5E,CAAC;AAgBF,kCAAkC;AAClC,MAAM,MAAM,QAAQ,GAAG;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,yCAAyC;AAEzC,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAIlC,CAAC;AAwQX,qFAAqF;AACrF,eAAO,MAAM,SAAS,EAAE,GAGtB,CAAC;AAEH,sFAAsF;AACtF,eAAO,MAAM,SAAS,EAAE,GAGtB,CAAC;AAEH,yEAAyE;AACzE,eAAO,MAAM,UAAU,EAAE,GAGvB,CAAC"}
1
+ {"version":3,"file":"ml-kem.d.ts","sourceRoot":"","sources":["src/ml-kem.ts"],"names":[],"mappings":"AAyBA,OAAO,EAML,KAAK,GAAG,EAIT,MAAM,YAAY,CAAC;AAkBpB,kCAAkC;AAClC,MAAM,MAAM,QAAQ,GAAG;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,yCAAyC;AAEzC,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAIlC,CAAC;AAyRX,qFAAqF;AACrF,eAAO,MAAM,SAAS,EAAE,GAGtB,CAAC;AAEH,sFAAsF;AACtF,eAAO,MAAM,SAAS,EAAE,GAGtB,CAAC;AAEH,yEAAyE;AACzE,eAAO,MAAM,UAAU,EAAE,GAGvB,CAAC"}