@noble/post-quantum 0.3.0 → 0.4.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.
- package/README.md +72 -30
- package/_crystals.d.ts +2 -1
- package/_crystals.d.ts.map +1 -1
- package/_crystals.js +1 -1
- package/_crystals.js.map +1 -1
- package/esm/_crystals.d.ts +2 -1
- package/esm/_crystals.d.ts.map +1 -1
- package/esm/_crystals.js +1 -1
- package/esm/_crystals.js.map +1 -1
- package/esm/index.js +13 -0
- package/esm/index.js.map +1 -1
- package/esm/ml-dsa.d.ts +4 -4
- package/esm/ml-dsa.d.ts.map +1 -1
- package/esm/ml-dsa.js +25 -19
- package/esm/ml-dsa.js.map +1 -1
- package/esm/ml-kem.d.ts +3 -3
- package/esm/ml-kem.js +6 -6
- package/esm/ml-kem.js.map +1 -1
- package/esm/slh-dsa.d.ts +4 -1
- package/esm/slh-dsa.d.ts.map +1 -1
- package/esm/slh-dsa.js +61 -23
- package/esm/slh-dsa.js.map +1 -1
- package/esm/utils.d.ts +5 -1
- package/esm/utils.d.ts.map +1 -1
- package/esm/utils.js +45 -1
- package/esm/utils.js.map +1 -1
- package/index.js +13 -0
- package/index.js.map +1 -1
- package/ml-dsa.d.ts +4 -4
- package/ml-dsa.d.ts.map +1 -1
- package/ml-dsa.js +28 -22
- package/ml-dsa.js.map +1 -1
- package/ml-kem.d.ts +3 -3
- package/ml-kem.js +5 -5
- package/ml-kem.js.map +1 -1
- package/package.json +11 -10
- package/slh-dsa.d.ts +4 -1
- package/slh-dsa.d.ts.map +1 -1
- package/slh-dsa.js +59 -21
- package/slh-dsa.js.map +1 -1
- package/src/_crystals.ts +3 -2
- package/src/index.ts +13 -0
- package/src/ml-dsa.ts +30 -22
- package/src/ml-kem.ts +7 -7
- package/src/slh-dsa.ts +53 -18
- package/src/utils.ts +57 -1
- package/utils.d.ts +5 -1
- package/utils.d.ts.map +1 -1
- package/utils.js +47 -1
- package/utils.js.map +1 -1
package/esm/ml-kem.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/**
|
2
|
-
* Module Lattice-based Key Encapsulation Mechanism
|
3
|
-
* FIPS-203
|
2
|
+
* ML-KEM: Module Lattice-based Key Encapsulation Mechanism from
|
3
|
+
* [FIPS-203](https://csrc.nist.gov/pubs/fips/203/ipd). A.k.a. CRYSTALS-Kyber.
|
4
4
|
*
|
5
5
|
* Key encapsulation is similar to DH / ECDH (think X25519), with important differences:
|
6
6
|
* * Unlike in ECDH, we can't verify if it was "Bob" who've sent the shared secret
|
@@ -21,7 +21,7 @@
|
|
21
21
|
*/
|
22
22
|
/*! noble-post-quantum - MIT License (c) 2024 Paul Miller (paulmillr.com) */
|
23
23
|
import { sha3_256, sha3_512, shake256 } from '@noble/hashes/sha3';
|
24
|
-
import { u32 } from '@noble/hashes/utils';
|
24
|
+
import { u32, wrapConstructor, wrapConstructorWithOpts } from '@noble/hashes/utils';
|
25
25
|
import { genCrystals, XOF128 } from './_crystals.js';
|
26
26
|
import { cleanBytes, ensureBytes, equalBytes, randomBytes, splitCoder, vecCoder, } from './utils.js';
|
27
27
|
const N = 256; // Kyber (not FIPS-203) supports different lengths, but all std modes were using 256
|
@@ -287,17 +287,17 @@ const opts = {
|
|
287
287
|
XOF: XOF128,
|
288
288
|
PRF: shakePRF,
|
289
289
|
};
|
290
|
-
/** ML-KEM-512 for 128-bit security level.
|
290
|
+
/** ML-KEM-512 for 128-bit security level. Not recommended after 2030, as per ASD. */
|
291
291
|
export const ml_kem512 = /* @__PURE__ */ createKyber({
|
292
292
|
...opts,
|
293
293
|
...PARAMS[512],
|
294
294
|
});
|
295
|
-
/** ML-KEM-768, for 192-bit security level.
|
295
|
+
/** ML-KEM-768, for 192-bit security level. Not recommended after 2030, as per ASD. */
|
296
296
|
export const ml_kem768 = /* @__PURE__ */ createKyber({
|
297
297
|
...opts,
|
298
298
|
...PARAMS[768],
|
299
299
|
});
|
300
|
-
/** ML-KEM-1024 for 256-bit security level.
|
300
|
+
/** ML-KEM-1024 for 256-bit security level. OK after 2030, as per ASD. */
|
301
301
|
export const ml_kem1024 = /* @__PURE__ */ createKyber({
|
302
302
|
...opts,
|
303
303
|
...PARAMS[1024],
|
package/esm/ml-kem.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ml-kem.js","sourceRoot":"","sources":["../src/ml-kem.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ml-kem.js","sourceRoot":"","sources":["../src/ml-kem.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,4EAA4E;AAC5E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAY,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EACL,UAAU,EAEV,WAAW,EACX,UAAU,EACV,WAAW,EACX,UAAU,EACV,QAAQ,GACT,MAAM,YAAY,CAAC;AAoBpB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,oFAAoF;AACnG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,4BAA4B;AAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,oCAAoC;AACpD,MAAM,aAAa,GAAG,EAAE,CAAC,CAAC,uEAAuE;AACjG,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;IACpD,CAAC;IACD,CAAC;IACD,CAAC;IACD,aAAa;IACb,OAAO,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC;IAC1C,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,IAAI;CACd,CAAC,CAAC;AAaH,yCAAyC;AACzC,kBAAkB;AAClB,MAAM,CAAC,MAAM,MAAM,GAA6B;IAC9C,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;IACtE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;IACtE,IAAI,EAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;CAC9D,CAAC;AAEX,gCAAgC;AAChC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAyB,EAAE;IACpD,qFAAqF;IACrF,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;IAC3E,uFAAuF;IACvF,0EAA0E;IAC1E,wDAAwD;IACxD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO;QACL,oEAAoE;QACpE,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;QAC7C,6DAA6D;QAC7D,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;KACzC,CAAC;AACJ,CAAC,CAAC;AAEF,4FAA4F;AAC5F,yGAAyG;AACzG,gFAAgF;AAChF,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAK3D,SAAS,OAAO,CAAC,CAAO,EAAE,CAAO;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;AAChE,CAAC;AACD,SAAS,OAAO,CAAC,CAAO,EAAE,CAAO;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;AAChE,CAAC;AAED,mGAAmG;AACnG,SAAS,gBAAgB,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,IAAY;IACpF,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACpB,CAAC;AAED,wGAAwG;AACxG,iHAAiH;AACjH,SAAS,YAAY,CAAC,CAAO,EAAE,CAAO;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC;YAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAClB,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAgBD,oCAAoC;AACpC,SAAS,SAAS,CAAC,GAAW;IAC5B,MAAM,CAAC,GAAS,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAI,CAAC;QACxB,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACvD,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACvD,IAAI,EAAE,GAAG,CAAC;gBAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;gBAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,mDAAmD;AACnD,sDAAsD;AACtD,SAAS,SAAS,CAAC,GAAQ,EAAE,IAAgB,EAAE,KAAa,EAAE,GAAW;IACvE,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAS,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACrB,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3D,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,CAAC,KAAK,CAAC,CAAC;YACR,GAAG,IAAI,CAAC,CAAC;YACT,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;gBAChB,EAAE,GAAG,EAAE,CAAC;gBACR,EAAE,GAAG,CAAC,CAAC;YACT,CAAC;iBAAM,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC;gBAC3B,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;gBACtB,EAAE,GAAG,CAAC,CAAC;gBACP,GAAG,GAAG,CAAC,CAAC;YACV,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;IAC7D,OAAO,CAAC,CAAC;AACX,CAAC;AAED,QAAQ;AACR,oGAAoG;AACpG,MAAM,OAAO,GAAG,CAAC,IAAe,EAAE,EAAE;IAClC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAC1D,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IAC5B,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,OAAO;QACL,WAAW;QACX,YAAY,EAAE,WAAW,CAAC,QAAQ;QAClC,YAAY,EAAE,WAAW,CAAC,QAAQ;QAClC,aAAa,EAAE,WAAW,CAAC,QAAQ;QACnC,MAAM,EAAE,CAAC,IAAgB,EAAE,EAAE;YAC3B,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAChB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YAElC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,IAAI,GAAW,EAAE,CAAC;YACxB,MAAM,IAAI,GAAW,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAClF,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;gBACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3B,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB;oBACvD,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB;YAChC,CAAC;YACD,CAAC,CAAC,KAAK,EAAE,CAAC;YACV,MAAM,GAAG,GAAG;gBACV,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC1C,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;aACpC,CAAC;YACF,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YACtD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAO,EAAE,CAAC,SAAqB,EAAE,GAAe,EAAE,IAAgB,EAAE,EAAE;YACpE,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YACjF,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,GAAG,EAAE,CAAC;YACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC7C,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3B,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB;oBACvD,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB;gBACjE,CAAC;gBACD,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY;gBAC1C,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACX,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B;gBACzE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,CAAC;YACD,CAAC,CAAC,KAAK,EAAE,CAAC;YACV,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7C,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa;YAC5C,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,uCAAuC;YACpE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU;YAC1B,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACjC,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,EAAE,CAAC,UAAsB,EAAE,UAAsB,EAAE,EAAE;YAC1D,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC9C,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,4BAA4B;YACvE,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;YAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAAE,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB;YACvG,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW;YACxC,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACvB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,WAAW,CAAC,IAAe;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACvC,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,WAAW;IACnD,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7E,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC;IAC1C,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,OAAO;QACL,YAAY;QACZ,MAAM;QACN,MAAM,EAAE,CAAC,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE;YACjC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACtB,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACvE,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YACzC,wBAAwB;YACxB,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxF,UAAU,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;YAC9B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;QAClC,CAAC;QACD,WAAW,EAAE,CAAC,SAAqB,EAAE,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE;YAC5D,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YACrC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAEzB,8DAA8D;YAC9D,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,mCAAmC;YAC3G,iFAAiF;YACjF,4DAA4D;YAC5D,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;gBACzB,UAAU,CAAC,EAAE,CAAC,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACjE,CAAC;YACD,UAAU,CAAC,EAAE,CAAC,CAAC;YACf,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,oBAAoB;YACjG,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACrE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC1D,CAAC;QACD,WAAW,EAAE,CAAC,UAAsB,EAAE,SAAqB,EAAE,EAAE;YAC7D,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,aAAa;YACnD,WAAW,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,gBAAgB;YACxD,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACxE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACzC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,+CAA+C;YACvH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,0CAA0C;YACjH,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,mDAAmD;YACxG,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC;YAC7E,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,GAAe,EAAE,KAAa;IAC7D,OAAO,QAAQ;SACZ,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;SACjB,MAAM,CAAC,GAAG,CAAC;SACX,MAAM,CAAC,IAAI,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;SAC/B,MAAM,EAAE,CAAC;AACd,CAAC;AAED,MAAM,IAAI,GAAG;IACX,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,QAAQ;CACd,CAAC;AAEF,qFAAqF;AACrF,MAAM,CAAC,MAAM,SAAS,GAAQ,eAAe,CAAC,WAAW,CAAC;IACxD,GAAG,IAAI;IACP,GAAG,MAAM,CAAC,GAAG,CAAC;CACf,CAAC,CAAC;AAEH,sFAAsF;AACtF,MAAM,CAAC,MAAM,SAAS,GAAQ,eAAe,CAAC,WAAW,CAAC;IACxD,GAAG,IAAI;IACP,GAAG,MAAM,CAAC,GAAG,CAAC;CACf,CAAC,CAAC;AAEH,yEAAyE;AACzE,MAAM,CAAC,MAAM,UAAU,GAAQ,eAAe,CAAC,WAAW,CAAC;IACzD,GAAG,IAAI;IACP,GAAG,MAAM,CAAC,IAAI,CAAC;CAChB,CAAC,CAAC"}
|
package/esm/slh-dsa.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Signer } from './utils.js';
|
1
|
+
import { type Signer } from './utils.js';
|
2
2
|
/**
|
3
3
|
* * N: Security parameter (in bytes). W: Winternitz parameter
|
4
4
|
* * H: Hypertree height. D: Hypertree layers
|
@@ -31,6 +31,9 @@ export type Context = {
|
|
31
31
|
export type GetContext = (opts: SphincsOpts) => (pub_seed: Uint8Array, sk_seed?: Uint8Array) => Context;
|
32
32
|
export type SphincsSigner = Signer & {
|
33
33
|
seedLen: number;
|
34
|
+
} & {
|
35
|
+
internal: Signer;
|
36
|
+
prehash: (hashName: string) => Signer;
|
34
37
|
};
|
35
38
|
/** SLH-DSA: 128-bit fast SHAKE version. */
|
36
39
|
export declare const slh_dsa_shake_128f: SphincsSigner;
|
package/esm/slh-dsa.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"slh-dsa.d.ts","sourceRoot":"","sources":["../src/slh-dsa.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"slh-dsa.d.ts","sourceRoot":"","sources":["../src/slh-dsa.ts"],"names":[],"mappings":"AAkCA,OAAO,EAEL,KAAK,MAAM,EAUZ,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,mCAAmC;AACnC,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAOrC,CAAC;AAYX,6CAA6C;AAC7C,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC;AAE9B,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,UAAU,CAAC;IACpC,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,KAAK,UAAU,CAAC;IAC/E,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,UAAU,CAAC;IACnF,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,KAAK,UAAU,CAAC;IACtD,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,KAAK,UAAU,CAAC;IACtE,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AACF,MAAM,MAAM,UAAU,GAAG,CACvB,IAAI,EAAE,WAAW,KACd,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC;AAqC7D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CACvC,CAAC;AA4cF,2CAA2C;AAC3C,eAAO,MAAM,kBAAkB,EAAE,aAAiE,CAAC;AACnG,4CAA4C;AAC5C,eAAO,MAAM,kBAAkB,EAAE,aAAiE,CAAC;AACnG,2CAA2C;AAC3C,eAAO,MAAM,kBAAkB,EAAE,aAAiE,CAAC;AACnG,4CAA4C;AAC5C,eAAO,MAAM,kBAAkB,EAAE,aAAiE,CAAC;AACnG,2CAA2C;AAC3C,eAAO,MAAM,kBAAkB,EAAE,aAAiE,CAAC;AACnG,4CAA4C;AAC5C,eAAO,MAAM,kBAAkB,EAAE,aAAiE,CAAC;AAoGnG,0CAA0C;AAC1C,eAAO,MAAM,iBAAiB,EAAE,aAAkE,CAAC;AACnG,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,EAAE,aAAkE,CAAC;AACnG,0CAA0C;AAC1C,eAAO,MAAM,iBAAiB,EAAE,aAAkE,CAAC;AACnG,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,EAAE,aAAkE,CAAC;AACnG,0CAA0C;AAC1C,eAAO,MAAM,iBAAiB,EAAE,aAAkE,CAAC;AACnG,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,EAAE,aAAkE,CAAC"}
|
package/esm/slh-dsa.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/**
|
2
|
-
* StateLess Hash-based Digital Signature Standard
|
3
|
-
* FIPS-205
|
2
|
+
* SLH-DSA: StateLess Hash-based Digital Signature Standard from
|
3
|
+
* [FIPS-205](https://csrc.nist.gov/pubs/fips/205/ipd). A.k.a. Sphincs+ v3.1.
|
4
4
|
*
|
5
5
|
* There are many different kinds of SLH, but basically `sha2` / `shake` indicate internal hash,
|
6
6
|
* `128` / `192` / `256` indicate security level, and `s` /`f` indicate trade-off (Small / Fast).
|
@@ -27,11 +27,12 @@
|
|
27
27
|
* @module
|
28
28
|
*/
|
29
29
|
/*! noble-post-quantum - MIT License (c) 2024 Paul Miller (paulmillr.com) */
|
30
|
+
import { setBigUint64 } from '@noble/hashes/_md';
|
30
31
|
import { HMAC } from '@noble/hashes/hmac';
|
31
32
|
import { sha256, sha512 } from '@noble/hashes/sha2';
|
32
33
|
import { shake256 } from '@noble/hashes/sha3';
|
33
|
-
import { bytesToHex,
|
34
|
-
import { cleanBytes, ensureBytes, equalBytes, getMask, randomBytes, splitCoder, vecCoder, } from './utils.js';
|
34
|
+
import { bytesToHex, concatBytes, createView, hexToBytes } from '@noble/hashes/utils';
|
35
|
+
import { EMPTY, cleanBytes, ensureBytes, equalBytes, getMask, getMessage, getMessagePrehash, randomBytes, splitCoder, vecCoder, } from './utils.js';
|
35
36
|
/** Winternitz signature params. */
|
36
37
|
export const PARAMS = {
|
37
38
|
'128f': { W: 16, N: 16, H: 66, D: 22, K: 33, A: 6 },
|
@@ -41,6 +42,15 @@ export const PARAMS = {
|
|
41
42
|
'256f': { W: 16, N: 32, H: 68, D: 17, K: 35, A: 9 },
|
42
43
|
'256s': { W: 16, N: 32, H: 64, D: 8, K: 22, A: 14 },
|
43
44
|
};
|
45
|
+
const AddressType = {
|
46
|
+
WOTS: 0,
|
47
|
+
WOTSPK: 1,
|
48
|
+
HASHTREE: 2,
|
49
|
+
FORSTREE: 3,
|
50
|
+
FORSPK: 4,
|
51
|
+
WOTSPRF: 5,
|
52
|
+
FORSPRF: 6,
|
53
|
+
};
|
44
54
|
function hexToNumber(hex) {
|
45
55
|
if (typeof hex !== 'string')
|
46
56
|
throw new Error('hex string expected, got ' + typeof hex);
|
@@ -121,7 +131,7 @@ function gen(opts, hashOpts) {
|
|
121
131
|
if (subtreeAddr)
|
122
132
|
addr.set(subtreeAddr.subarray(0, OFFSET_TREE + 8));
|
123
133
|
if (tree !== undefined)
|
124
|
-
|
134
|
+
setBigUint64(v, OFFSET_TREE, tree, false);
|
125
135
|
if (keypair !== undefined) {
|
126
136
|
addr[OFFSET_KP_ADDR1] = keypair;
|
127
137
|
if (TREE_HEIGHT > 8)
|
@@ -196,9 +206,9 @@ function gen(opts, hashOpts) {
|
|
196
206
|
for (let i = 0; i < WOTS_LEN; i++) {
|
197
207
|
const wotsK = info.wotsSteps[i] | wotsKmask;
|
198
208
|
const pk = wotsPk.subarray(i * N, (i + 1) * N);
|
199
|
-
setAddr({ chain: i, hash: 0, type:
|
209
|
+
setAddr({ chain: i, hash: 0, type: AddressType.WOTSPRF }, info.leafAddr);
|
200
210
|
pk.set(context.PRFaddr(info.leafAddr));
|
201
|
-
setAddr({ type:
|
211
|
+
setAddr({ type: AddressType.WOTS }, info.leafAddr);
|
202
212
|
for (let k = 0;; k++) {
|
203
213
|
if (k === wotsK)
|
204
214
|
info.wotsSig.subarray(i * N).set(pk); //wotsSig.push()
|
@@ -211,19 +221,19 @@ function gen(opts, hashOpts) {
|
|
211
221
|
return context.thashN(WOTS_LEN, wotsPk, info.pkAddr);
|
212
222
|
});
|
213
223
|
const forsTreehash = treehash(A, (_, addrOffset, context, forsLeafAddr) => {
|
214
|
-
setAddr({ type:
|
224
|
+
setAddr({ type: AddressType.FORSPRF, index: addrOffset }, forsLeafAddr);
|
215
225
|
const prf = context.PRFaddr(forsLeafAddr);
|
216
|
-
setAddr({ type:
|
226
|
+
setAddr({ type: AddressType.FORSTREE }, forsLeafAddr);
|
217
227
|
return context.thash1(prf, forsLeafAddr);
|
218
228
|
});
|
219
229
|
const merkleSign = (context, wotsAddr, treeAddr, leafIdx, prevRoot = new Uint8Array(N)) => {
|
220
|
-
setAddr({ type:
|
230
|
+
setAddr({ type: AddressType.HASHTREE }, treeAddr);
|
221
231
|
// State variables
|
222
232
|
const info = {
|
223
233
|
wotsSig: new Uint8Array(wotsCoder.bytesLen),
|
224
234
|
wotsSteps: chainLengths(prevRoot),
|
225
235
|
leafAddr: setAddr({ subtreeAddr: wotsAddr }),
|
226
|
-
pkAddr: setAddr({ type:
|
236
|
+
pkAddr: setAddr({ type: AddressType.WOTSPK, subtreeAddr: wotsAddr }),
|
227
237
|
};
|
228
238
|
const { root, authPath } = wotsTreehash(context, leafIdx, 0, treeAddr, info);
|
229
239
|
return {
|
@@ -270,8 +280,7 @@ function gen(opts, hashOpts) {
|
|
270
280
|
const forsCoder = vecCoder(splitCoder(N, N * A), K);
|
271
281
|
const wotsCoder = vecCoder(splitCoder(WOTS_LEN * N, TREE_HEIGHT * N), D);
|
272
282
|
const sigCoder = splitCoder(N, forsCoder, wotsCoder); // random || fors || wots
|
273
|
-
|
274
|
-
seedLen: seedCoder.bytesLen,
|
283
|
+
const internal = {
|
275
284
|
signRandBytes: N,
|
276
285
|
keygen(seed = randomBytes(seedCoder.bytesLen)) {
|
277
286
|
// Set SK.seed, SK.prf, and PK.seed to random n-byte
|
@@ -301,7 +310,7 @@ function gen(opts, hashOpts) {
|
|
301
310
|
let { tree, leafIdx, md } = hashMessage(R, pk, msg, context);
|
302
311
|
// Create FORS signatures
|
303
312
|
const wotsAddr = setAddr({
|
304
|
-
type:
|
313
|
+
type: AddressType.WOTS,
|
305
314
|
tree,
|
306
315
|
keypair: leafIdx,
|
307
316
|
});
|
@@ -313,23 +322,23 @@ function gen(opts, hashOpts) {
|
|
313
322
|
for (let i = 0; i < indices.length; i++) {
|
314
323
|
const idxOffset = i << A;
|
315
324
|
setAddr({
|
316
|
-
type:
|
325
|
+
type: AddressType.FORSPRF,
|
317
326
|
height: 0,
|
318
327
|
index: indices[i] + idxOffset,
|
319
328
|
}, forsTreeAddr);
|
320
329
|
const prf = context.PRFaddr(forsTreeAddr);
|
321
|
-
setAddr({ type:
|
330
|
+
setAddr({ type: AddressType.FORSTREE }, forsTreeAddr);
|
322
331
|
const { root, authPath } = forsTreehash(context, indices[i], idxOffset, forsTreeAddr, forsLeaf);
|
323
332
|
roots.push(root);
|
324
333
|
fors.push([prf, authPath]);
|
325
334
|
}
|
326
335
|
const forsPkAddr = setAddr({
|
327
|
-
type:
|
336
|
+
type: AddressType.FORSPK,
|
328
337
|
keypairAddr: wotsAddr,
|
329
338
|
});
|
330
339
|
const root = context.thashN(K, concatBytes(...roots), forsPkAddr);
|
331
340
|
// WOTS signatures
|
332
|
-
const treeAddr = setAddr({ type:
|
341
|
+
const treeAddr = setAddr({ type: AddressType.HASHTREE });
|
333
342
|
const wots = [];
|
334
343
|
for (let i = 0; i < D; i++, tree >>= BigInt(TREE_HEIGHT)) {
|
335
344
|
setAddr({ tree, layer: i }, treeAddr);
|
@@ -354,14 +363,14 @@ function gen(opts, hashOpts) {
|
|
354
363
|
const context = getContext(pkSeed);
|
355
364
|
let { tree, leafIdx, md } = hashMessage(random, pk, msg, context);
|
356
365
|
const wotsAddr = setAddr({
|
357
|
-
type:
|
366
|
+
type: AddressType.WOTS,
|
358
367
|
tree,
|
359
368
|
keypair: leafIdx,
|
360
369
|
});
|
361
370
|
// FORS signature
|
362
371
|
const roots = [];
|
363
372
|
const forsTreeAddr = setAddr({
|
364
|
-
type:
|
373
|
+
type: AddressType.FORSTREE,
|
365
374
|
keypairAddr: wotsAddr,
|
366
375
|
});
|
367
376
|
const indices = messageToIndices(md);
|
@@ -374,13 +383,13 @@ function gen(opts, hashOpts) {
|
|
374
383
|
roots.push(computeRoot(leaf, indices[i], idxOffset, authPath, A, context, forsTreeAddr));
|
375
384
|
}
|
376
385
|
const forsPkAddr = setAddr({
|
377
|
-
type:
|
386
|
+
type: AddressType.FORSPK,
|
378
387
|
keypairAddr: wotsAddr,
|
379
388
|
});
|
380
389
|
let root = context.thashN(K, concatBytes(...roots), forsPkAddr); // root = thash()
|
381
390
|
// WOTS signature
|
382
|
-
const treeAddr = setAddr({ type:
|
383
|
-
const wotsPkAddr = setAddr({ type:
|
391
|
+
const treeAddr = setAddr({ type: AddressType.HASHTREE });
|
392
|
+
const wotsPkAddr = setAddr({ type: AddressType.WOTSPK });
|
384
393
|
const wotsPk = new Uint8Array(WOTS_LEN * N);
|
385
394
|
for (let i = 0; i < wotsVec.length; i++, tree >>= BigInt(TREE_HEIGHT)) {
|
386
395
|
const [wots, sigAuth] = wotsVec[i];
|
@@ -406,6 +415,35 @@ function gen(opts, hashOpts) {
|
|
406
415
|
return equalBytes(root, pubRoot);
|
407
416
|
},
|
408
417
|
};
|
418
|
+
return {
|
419
|
+
internal,
|
420
|
+
seedLen: seedCoder.bytesLen,
|
421
|
+
keygen: internal.keygen,
|
422
|
+
signRandBytes: internal.signRandBytes,
|
423
|
+
sign: (secretKey, msg, ctx = EMPTY, random) => {
|
424
|
+
const M = getMessage(msg, ctx);
|
425
|
+
const res = internal.sign(secretKey, M, random);
|
426
|
+
M.fill(0);
|
427
|
+
return res;
|
428
|
+
},
|
429
|
+
verify: (publicKey, msg, sig, ctx = EMPTY) => {
|
430
|
+
return internal.verify(publicKey, getMessage(msg, ctx), sig);
|
431
|
+
},
|
432
|
+
prehash: (hashName) => ({
|
433
|
+
seedLen: seedCoder.bytesLen,
|
434
|
+
keygen: internal.keygen,
|
435
|
+
signRandBytes: internal.signRandBytes,
|
436
|
+
sign: (secretKey, msg, ctx = EMPTY, random) => {
|
437
|
+
const M = getMessagePrehash(hashName, msg, ctx);
|
438
|
+
const res = internal.sign(secretKey, M, random);
|
439
|
+
M.fill(0);
|
440
|
+
return res;
|
441
|
+
},
|
442
|
+
verify: (publicKey, msg, sig, ctx = EMPTY) => {
|
443
|
+
return internal.verify(publicKey, getMessagePrehash(hashName, msg, ctx), sig);
|
444
|
+
},
|
445
|
+
}),
|
446
|
+
};
|
409
447
|
}
|
410
448
|
const genShake = () => (opts) => (pubSeed, skSeed) => {
|
411
449
|
const { N } = opts;
|
package/esm/slh-dsa.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"slh-dsa.js","sourceRoot":"","sources":["../src/slh-dsa.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"slh-dsa.js","sourceRoot":"","sources":["../src/slh-dsa.ts"],"names":[],"mappings":"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"}
|
package/esm/utils.d.ts
CHANGED
@@ -4,11 +4,12 @@
|
|
4
4
|
*/
|
5
5
|
/*! noble-post-quantum - MIT License (c) 2024 Paul Miller (paulmillr.com) */
|
6
6
|
import { abytes } from '@noble/hashes/_assert';
|
7
|
-
import { TypedArray, concatBytes,
|
7
|
+
import { type TypedArray, concatBytes, randomBytes as randb, utf8ToBytes } from '@noble/hashes/utils';
|
8
8
|
export declare const ensureBytes: typeof abytes;
|
9
9
|
export declare const randomBytes: typeof randb;
|
10
10
|
export { concatBytes, utf8ToBytes };
|
11
11
|
export declare function equalBytes(a: Uint8Array, b: Uint8Array): boolean;
|
12
|
+
/** Generic interface for signatures. Has keygen, sign and verify. */
|
12
13
|
export type Signer = {
|
13
14
|
signRandBytes: number;
|
14
15
|
keygen: (seed: Uint8Array) => {
|
@@ -39,4 +40,7 @@ export declare function splitCoder<T extends (number | BytesCoderLen<any>)[]>(..
|
|
39
40
|
export declare function vecCoder<T>(c: BytesCoderLen<T>, vecLen: number): BytesCoderLen<T[]>;
|
40
41
|
export declare function cleanBytes(...list: (TypedArray | TypedArray[])[]): void;
|
41
42
|
export declare function getMask(bits: number): number;
|
43
|
+
export declare const EMPTY: Uint8Array;
|
44
|
+
export declare function getMessage(msg: Uint8Array, ctx?: Uint8Array): Uint8Array;
|
45
|
+
export declare function getMessagePrehash(hashName: string, msg: Uint8Array, ctx?: Uint8Array): Uint8Array;
|
42
46
|
//# sourceMappingURL=utils.d.ts.map
|
package/esm/utils.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,4EAA4E;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,4EAA4E;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAI/C,OAAO,EACL,KAAK,UAAU,EACf,WAAW,EAEX,WAAW,IAAI,KAAK,EACpB,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,WAAW,EAAE,OAAO,MAAe,CAAC;AACjD,eAAO,MAAM,WAAW,EAAE,OAAO,KAAa,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AAGpC,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAKhE;AAED,qEAAqE;AACrE,MAAM,MAAM,MAAM,GAAG;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK;QAC5B,SAAS,EAAE,UAAU,CAAC;QACtB,SAAS,EAAE,UAAU,CAAC;KACvB,CAAC;IACF,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,UAAU,KAAK,UAAU,CAAC;IAClF,MAAM,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC;CAC9E,CAAC;AAEF,MAAM,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;IACzB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;IACnB,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;CAClB;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,CAAE,SAAQ,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;IACzD,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,UAAU,CAAC;IAChC,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,CAAC,CAAC;CAClC;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAGpE,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC5D,KAAK,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI;KACxD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACjE,CAAC;AACF,wBAAgB,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,EAClE,GAAG,OAAO,EAAE,CAAC,GACZ,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CA8BhD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAwBnF;AAGD,wBAAgB,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,EAAE,GAAG,IAAI,CAKvE;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,eAAO,MAAM,KAAK,EAAE,UAA8B,CAAC;AAEnD,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,GAAE,UAAkB,GAAG,UAAU,CAK/E;AAyBD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,UAAU,EACf,GAAG,GAAE,UAAkB,GACtB,UAAU,CAQZ"}
|
package/esm/utils.js
CHANGED
@@ -4,7 +4,10 @@
|
|
4
4
|
*/
|
5
5
|
/*! noble-post-quantum - MIT License (c) 2024 Paul Miller (paulmillr.com) */
|
6
6
|
import { abytes } from '@noble/hashes/_assert';
|
7
|
-
import {
|
7
|
+
import { sha224, sha256 } from '@noble/hashes/sha256';
|
8
|
+
import { sha3_224, sha3_256, sha3_384, sha3_512, shake128, shake256 } from '@noble/hashes/sha3';
|
9
|
+
import { sha384, sha512, sha512_224, sha512_256 } from '@noble/hashes/sha512';
|
10
|
+
import { concatBytes, hexToBytes, randomBytes as randb, utf8ToBytes, } from '@noble/hashes/utils';
|
8
11
|
export const ensureBytes = abytes;
|
9
12
|
export const randomBytes = randb;
|
10
13
|
export { concatBytes, utf8ToBytes };
|
@@ -88,4 +91,45 @@ export function cleanBytes(...list) {
|
|
88
91
|
export function getMask(bits) {
|
89
92
|
return (1 << bits) - 1; // 4 -> 0b1111
|
90
93
|
}
|
94
|
+
export const EMPTY = new Uint8Array(0);
|
95
|
+
export function getMessage(msg, ctx = EMPTY) {
|
96
|
+
ensureBytes(msg);
|
97
|
+
ensureBytes(ctx);
|
98
|
+
if (ctx.length > 255)
|
99
|
+
throw new Error('context should be less than 255 bytes');
|
100
|
+
return concatBytes(new Uint8Array([0, ctx.length]), ctx, msg);
|
101
|
+
}
|
102
|
+
// OIDS from https://csrc.nist.gov/projects/computer-security-objects-register/algorithm-registration
|
103
|
+
// TODO: maybe add 'OID' property to hashes themselves to improve tree-shaking?
|
104
|
+
const HASHES = {
|
105
|
+
'SHA2-256': { oid: hexToBytes('0609608648016503040201'), hash: sha256 },
|
106
|
+
'SHA2-384': { oid: hexToBytes('0609608648016503040202'), hash: sha384 },
|
107
|
+
'SHA2-512': { oid: hexToBytes('0609608648016503040203'), hash: sha512 },
|
108
|
+
'SHA2-224': { oid: hexToBytes('0609608648016503040204'), hash: sha224 },
|
109
|
+
'SHA2-512/224': { oid: hexToBytes('0609608648016503040205'), hash: sha512_224 },
|
110
|
+
'SHA2-512/256': { oid: hexToBytes('0609608648016503040206'), hash: sha512_256 },
|
111
|
+
'SHA3-224': { oid: hexToBytes('0609608648016503040207'), hash: sha3_224 },
|
112
|
+
'SHA3-256': { oid: hexToBytes('0609608648016503040208'), hash: sha3_256 },
|
113
|
+
'SHA3-384': { oid: hexToBytes('0609608648016503040209'), hash: sha3_384 },
|
114
|
+
'SHA3-512': { oid: hexToBytes('060960864801650304020A'), hash: sha3_512 },
|
115
|
+
'SHAKE-128': {
|
116
|
+
oid: hexToBytes('060960864801650304020B'),
|
117
|
+
hash: (msg) => shake128(msg, { dkLen: 32 }),
|
118
|
+
},
|
119
|
+
'SHAKE-256': {
|
120
|
+
oid: hexToBytes('060960864801650304020C'),
|
121
|
+
hash: (msg) => shake256(msg, { dkLen: 64 }),
|
122
|
+
},
|
123
|
+
};
|
124
|
+
export function getMessagePrehash(hashName, msg, ctx = EMPTY) {
|
125
|
+
ensureBytes(msg);
|
126
|
+
ensureBytes(ctx);
|
127
|
+
if (ctx.length > 255)
|
128
|
+
throw new Error('context should be less than 255 bytes');
|
129
|
+
if (!HASHES[hashName])
|
130
|
+
throw new Error('unknown hash: ' + hashName);
|
131
|
+
const { oid, hash } = HASHES[hashName];
|
132
|
+
const hashed = hash(msg);
|
133
|
+
return concatBytes(new Uint8Array([1, ctx.length]), ctx, oid, hashed);
|
134
|
+
}
|
91
135
|
//# sourceMappingURL=utils.js.map
|
package/esm/utils.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,4EAA4E;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/index.js
CHANGED
@@ -3,6 +3,19 @@
|
|
3
3
|
* Auditable & minimal JS implementation of post-quantum public-key cryptography.
|
4
4
|
* Check out individual modules.
|
5
5
|
* @module
|
6
|
+
* @example
|
7
|
+
```js
|
8
|
+
import { ml_kem512, ml_kem768, ml_kem1024 } from '@noble/post-quantum/ml-kem';
|
9
|
+
import { ml_dsa44, ml_dsa65, ml_dsa87 } from '@noble/post-quantum/ml-dsa';
|
10
|
+
import {
|
11
|
+
slh_dsa_sha2_128f, slh_dsa_sha2_128s,
|
12
|
+
slh_dsa_sha2_192f, slh_dsa_sha2_192s,
|
13
|
+
slh_dsa_sha2_256f, slh_dsa_sha2_256s,
|
14
|
+
slh_dsa_shake_128f, slh_dsa_shake_128s,
|
15
|
+
slh_dsa_shake_192f, slh_dsa_shake_192s,
|
16
|
+
slh_dsa_shake_256f, slh_dsa_shake_256s,
|
17
|
+
} from '@noble/post-quantum/slh-dsa';
|
18
|
+
```
|
6
19
|
*/
|
7
20
|
throw new Error('root module cannot be imported: import submodules instead. Check out README');
|
8
21
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":";AAAA
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC"}
|