@noble/curves 1.6.0 → 1.8.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 (194) hide show
  1. package/README.md +78 -30
  2. package/_shortw_utils.d.ts +8 -54
  3. package/_shortw_utils.d.ts.map +1 -1
  4. package/_shortw_utils.js +6 -2
  5. package/_shortw_utils.js.map +1 -1
  6. package/abstract/bls.d.ts +15 -11
  7. package/abstract/bls.d.ts.map +1 -1
  8. package/abstract/bls.js +26 -10
  9. package/abstract/bls.js.map +1 -1
  10. package/abstract/curve.d.ts +42 -24
  11. package/abstract/curve.d.ts.map +1 -1
  12. package/abstract/curve.js +203 -53
  13. package/abstract/curve.js.map +1 -1
  14. package/abstract/edwards.d.ts +14 -23
  15. package/abstract/edwards.d.ts.map +1 -1
  16. package/abstract/edwards.js +25 -10
  17. package/abstract/edwards.js.map +1 -1
  18. package/abstract/hash-to-curve.d.ts +28 -8
  19. package/abstract/hash-to-curve.d.ts.map +1 -1
  20. package/abstract/hash-to-curve.js +18 -14
  21. package/abstract/hash-to-curve.js.map +1 -1
  22. package/abstract/modular.d.ts +30 -5
  23. package/abstract/modular.d.ts.map +1 -1
  24. package/abstract/modular.js +68 -37
  25. package/abstract/modular.js.map +1 -1
  26. package/abstract/montgomery.d.ts.map +1 -1
  27. package/abstract/montgomery.js +11 -4
  28. package/abstract/montgomery.js.map +1 -1
  29. package/abstract/poseidon.d.ts +9 -0
  30. package/abstract/poseidon.d.ts.map +1 -1
  31. package/abstract/poseidon.js +31 -23
  32. package/abstract/poseidon.js.map +1 -1
  33. package/abstract/tower.d.ts +13 -1
  34. package/abstract/tower.d.ts.map +1 -1
  35. package/abstract/tower.js +20 -17
  36. package/abstract/tower.js.map +1 -1
  37. package/abstract/utils.d.ts +10 -5
  38. package/abstract/utils.d.ts.map +1 -1
  39. package/abstract/utils.js +26 -24
  40. package/abstract/utils.js.map +1 -1
  41. package/abstract/weierstrass.d.ts +47 -80
  42. package/abstract/weierstrass.d.ts.map +1 -1
  43. package/abstract/weierstrass.js +88 -43
  44. package/abstract/weierstrass.js.map +1 -1
  45. package/bls12-381.d.ts +11 -0
  46. package/bls12-381.d.ts.map +1 -1
  47. package/bls12-381.js +80 -67
  48. package/bls12-381.js.map +1 -1
  49. package/bn254.d.ts +5 -3
  50. package/bn254.d.ts.map +1 -1
  51. package/bn254.js +33 -27
  52. package/bn254.js.map +1 -1
  53. package/ed25519.d.ts +24 -4
  54. package/ed25519.d.ts.map +1 -1
  55. package/ed25519.js +30 -6
  56. package/ed25519.js.map +1 -1
  57. package/ed448.d.ts +23 -8
  58. package/ed448.d.ts.map +1 -1
  59. package/ed448.js +31 -9
  60. package/ed448.js.map +1 -1
  61. package/esm/_shortw_utils.d.ts +8 -54
  62. package/esm/_shortw_utils.d.ts.map +1 -1
  63. package/esm/_shortw_utils.js +6 -2
  64. package/esm/_shortw_utils.js.map +1 -1
  65. package/esm/abstract/bls.d.ts +15 -11
  66. package/esm/abstract/bls.d.ts.map +1 -1
  67. package/esm/abstract/bls.js +26 -10
  68. package/esm/abstract/bls.js.map +1 -1
  69. package/esm/abstract/curve.d.ts +42 -24
  70. package/esm/abstract/curve.d.ts.map +1 -1
  71. package/esm/abstract/curve.js +202 -53
  72. package/esm/abstract/curve.js.map +1 -1
  73. package/esm/abstract/edwards.d.ts +14 -23
  74. package/esm/abstract/edwards.d.ts.map +1 -1
  75. package/esm/abstract/edwards.js +25 -10
  76. package/esm/abstract/edwards.js.map +1 -1
  77. package/esm/abstract/hash-to-curve.d.ts +28 -8
  78. package/esm/abstract/hash-to-curve.d.ts.map +1 -1
  79. package/esm/abstract/hash-to-curve.js +18 -14
  80. package/esm/abstract/hash-to-curve.js.map +1 -1
  81. package/esm/abstract/modular.d.ts +30 -5
  82. package/esm/abstract/modular.d.ts.map +1 -1
  83. package/esm/abstract/modular.js +68 -37
  84. package/esm/abstract/modular.js.map +1 -1
  85. package/esm/abstract/montgomery.d.ts.map +1 -1
  86. package/esm/abstract/montgomery.js +11 -4
  87. package/esm/abstract/montgomery.js.map +1 -1
  88. package/esm/abstract/poseidon.d.ts +9 -0
  89. package/esm/abstract/poseidon.d.ts.map +1 -1
  90. package/esm/abstract/poseidon.js +31 -23
  91. package/esm/abstract/poseidon.js.map +1 -1
  92. package/esm/abstract/tower.d.ts +13 -1
  93. package/esm/abstract/tower.d.ts.map +1 -1
  94. package/esm/abstract/tower.js +20 -17
  95. package/esm/abstract/tower.js.map +1 -1
  96. package/esm/abstract/utils.d.ts +10 -5
  97. package/esm/abstract/utils.d.ts.map +1 -1
  98. package/esm/abstract/utils.js +25 -23
  99. package/esm/abstract/utils.js.map +1 -1
  100. package/esm/abstract/weierstrass.d.ts +47 -80
  101. package/esm/abstract/weierstrass.d.ts.map +1 -1
  102. package/esm/abstract/weierstrass.js +86 -42
  103. package/esm/abstract/weierstrass.js.map +1 -1
  104. package/esm/bls12-381.d.ts +11 -0
  105. package/esm/bls12-381.d.ts.map +1 -1
  106. package/esm/bls12-381.js +80 -67
  107. package/esm/bls12-381.js.map +1 -1
  108. package/esm/bn254.d.ts +5 -3
  109. package/esm/bn254.d.ts.map +1 -1
  110. package/esm/bn254.js +31 -26
  111. package/esm/bn254.js.map +1 -1
  112. package/esm/ed25519.d.ts +24 -4
  113. package/esm/ed25519.d.ts.map +1 -1
  114. package/esm/ed25519.js +31 -7
  115. package/esm/ed25519.js.map +1 -1
  116. package/esm/ed448.d.ts +23 -8
  117. package/esm/ed448.d.ts.map +1 -1
  118. package/esm/ed448.js +32 -10
  119. package/esm/ed448.js.map +1 -1
  120. package/esm/index.js +4 -0
  121. package/esm/index.js.map +1 -1
  122. package/esm/jubjub.d.ts +4 -8
  123. package/esm/jubjub.d.ts.map +1 -1
  124. package/esm/jubjub.js +6 -5
  125. package/esm/jubjub.js.map +1 -1
  126. package/esm/p256.d.ts +10 -104
  127. package/esm/p256.d.ts.map +1 -1
  128. package/esm/p256.js +15 -8
  129. package/esm/p256.js.map +1 -1
  130. package/esm/p384.d.ts +10 -104
  131. package/esm/p384.d.ts.map +1 -1
  132. package/esm/p384.js +15 -8
  133. package/esm/p384.js.map +1 -1
  134. package/esm/p521.d.ts +11 -104
  135. package/esm/p521.d.ts.map +1 -1
  136. package/esm/p521.js +18 -10
  137. package/esm/p521.js.map +1 -1
  138. package/esm/pasta.d.ts +5 -2
  139. package/esm/pasta.d.ts.map +1 -1
  140. package/esm/pasta.js +6 -2
  141. package/esm/pasta.js.map +1 -1
  142. package/esm/secp256k1.d.ts +29 -57
  143. package/esm/secp256k1.d.ts.map +1 -1
  144. package/esm/secp256k1.js +41 -15
  145. package/esm/secp256k1.js.map +1 -1
  146. package/index.js +4 -0
  147. package/index.js.map +1 -1
  148. package/jubjub.d.ts +4 -8
  149. package/jubjub.d.ts.map +1 -1
  150. package/jubjub.js +6 -5
  151. package/jubjub.js.map +1 -1
  152. package/p256.d.ts +10 -104
  153. package/p256.d.ts.map +1 -1
  154. package/p256.js +15 -8
  155. package/p256.js.map +1 -1
  156. package/p384.d.ts +10 -104
  157. package/p384.d.ts.map +1 -1
  158. package/p384.js +15 -8
  159. package/p384.js.map +1 -1
  160. package/p521.d.ts +11 -104
  161. package/p521.d.ts.map +1 -1
  162. package/p521.js +18 -10
  163. package/p521.js.map +1 -1
  164. package/package.json +11 -8
  165. package/pasta.d.ts +5 -2
  166. package/pasta.d.ts.map +1 -1
  167. package/pasta.js +6 -2
  168. package/pasta.js.map +1 -1
  169. package/secp256k1.d.ts +29 -57
  170. package/secp256k1.d.ts.map +1 -1
  171. package/secp256k1.js +41 -15
  172. package/secp256k1.js.map +1 -1
  173. package/src/_shortw_utils.ts +18 -8
  174. package/src/abstract/bls.ts +42 -30
  175. package/src/abstract/curve.ts +237 -55
  176. package/src/abstract/edwards.ts +36 -15
  177. package/src/abstract/hash-to-curve.ts +43 -21
  178. package/src/abstract/modular.ts +84 -46
  179. package/src/abstract/montgomery.ts +12 -4
  180. package/src/abstract/poseidon.ts +48 -30
  181. package/src/abstract/tower.ts +66 -20
  182. package/src/abstract/utils.ts +44 -43
  183. package/src/abstract/weierstrass.ts +125 -70
  184. package/src/bls12-381.ts +80 -68
  185. package/src/bn254.ts +47 -30
  186. package/src/ed25519.ts +50 -20
  187. package/src/ed448.ts +49 -22
  188. package/src/index.ts +4 -0
  189. package/src/jubjub.ts +10 -10
  190. package/src/p256.ts +21 -15
  191. package/src/p384.ts +21 -15
  192. package/src/p521.ts +24 -17
  193. package/src/pasta.ts +15 -7
  194. package/src/secp256k1.ts +63 -21
package/p256.js CHANGED
@@ -1,22 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.encodeToCurve = exports.hashToCurve = exports.secp256r1 = exports.p256 = void 0;
4
+ /**
5
+ * NIST secp256r1 aka p256.
6
+ * https://www.secg.org/sec2-v2.pdf, https://neuromancer.sk/std/nist/P-256
7
+ * @module
8
+ */
4
9
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
5
10
  const sha256_1 = require("@noble/hashes/sha256");
6
11
  const _shortw_utils_js_1 = require("./_shortw_utils.js");
7
12
  const hash_to_curve_js_1 = require("./abstract/hash-to-curve.js");
8
13
  const modular_js_1 = require("./abstract/modular.js");
9
14
  const weierstrass_js_1 = require("./abstract/weierstrass.js");
10
- // NIST secp256r1 aka p256
11
- // https://www.secg.org/sec2-v2.pdf, https://neuromancer.sk/std/nist/P-256
12
- const Fp = (0, modular_js_1.Field)(BigInt('0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff'));
13
- const CURVE_A = Fp.create(BigInt('-3'));
15
+ const Fp256 = (0, modular_js_1.Field)(BigInt('0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff'));
16
+ const CURVE_A = Fp256.create(BigInt('-3'));
14
17
  const CURVE_B = BigInt('0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b');
18
+ /** secp256r1 curve, ECDSA and ECDH methods. */
15
19
  // prettier-ignore
16
20
  exports.p256 = (0, _shortw_utils_js_1.createCurve)({
17
21
  a: CURVE_A, // Equation params: a, b
18
22
  b: CURVE_B,
19
- Fp, // Field: 2n**224n * (2n**32n-1n) + 2n**192n + 2n**96n-1n
23
+ Fp: Fp256, // Field: 2n**224n * (2n**32n-1n) + 2n**192n + 2n**96n-1n
20
24
  // Curve order, total count of valid points in the field
21
25
  n: BigInt('0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551'),
22
26
  // Base (generator) point (x, y)
@@ -25,21 +29,24 @@ exports.p256 = (0, _shortw_utils_js_1.createCurve)({
25
29
  h: BigInt(1),
26
30
  lowS: false,
27
31
  }, sha256_1.sha256);
32
+ /** Alias to p256. */
28
33
  exports.secp256r1 = exports.p256;
29
- const mapSWU = /* @__PURE__ */ (() => (0, weierstrass_js_1.mapToCurveSimpleSWU)(Fp, {
34
+ const mapSWU = /* @__PURE__ */ (() => (0, weierstrass_js_1.mapToCurveSimpleSWU)(Fp256, {
30
35
  A: CURVE_A,
31
36
  B: CURVE_B,
32
- Z: Fp.create(BigInt('-10')),
37
+ Z: Fp256.create(BigInt('-10')),
33
38
  }))();
34
39
  const htf = /* @__PURE__ */ (() => (0, hash_to_curve_js_1.createHasher)(exports.secp256r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
35
40
  DST: 'P256_XMD:SHA-256_SSWU_RO_',
36
41
  encodeDST: 'P256_XMD:SHA-256_SSWU_NU_',
37
- p: Fp.ORDER,
42
+ p: Fp256.ORDER,
38
43
  m: 1,
39
44
  k: 128,
40
45
  expand: 'xmd',
41
46
  hash: sha256_1.sha256,
42
47
  }))();
48
+ /** secp256r1 hash-to-curve from [RFC 9380](https://www.rfc-editor.org/rfc/rfc9380). */
43
49
  exports.hashToCurve = (() => htf.hashToCurve)();
50
+ /** secp256r1 encode-to-curve from [RFC 9380](https://www.rfc-editor.org/rfc/rfc9380). */
44
51
  exports.encodeToCurve = (() => htf.encodeToCurve)();
45
52
  //# sourceMappingURL=p256.js.map
package/p256.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"p256.js","sourceRoot":"","sources":["src/p256.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AACtE,iDAA8C;AAC9C,yDAAiD;AACjD,kEAA2D;AAC3D,sDAA8C;AAC9C,8DAAgE;AAEhE,0BAA0B;AAC1B,0EAA0E;AAE1E,MAAM,EAAE,GAAG,IAAA,kBAAK,EAAC,MAAM,CAAC,oEAAoE,CAAC,CAAC,CAAC;AAC/F,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,MAAM,OAAO,GAAG,MAAM,CAAC,oEAAoE,CAAC,CAAC;AAE7F,kBAAkB;AACL,QAAA,IAAI,GAAG,IAAA,8BAAW,EAAC;IAC9B,CAAC,EAAE,OAAO,EAAE,wBAAwB;IACpC,CAAC,EAAE,OAAO;IACV,EAAE,EAAE,yDAAyD;IAC7D,wDAAwD;IACxD,CAAC,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAC/E,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAChF,EAAE,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAChF,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,IAAI,EAAE,KAAK;CACH,EAAE,eAAM,CAAC,CAAC;AACP,QAAA,SAAS,GAAG,YAAI,CAAC;AAE9B,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CACnC,IAAA,oCAAmB,EAAC,EAAE,EAAE;IACtB,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;CAC5B,CAAC,CAAC,EAAE,CAAC;AAER,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CAChC,IAAA,+BAAY,EAAC,iBAAS,CAAC,eAAe,EAAE,CAAC,OAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;IACjF,GAAG,EAAE,2BAA2B;IAChC,SAAS,EAAE,2BAA2B;IACtC,CAAC,EAAE,EAAE,CAAC,KAAK;IACX,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,GAAG;IACN,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,eAAM;CACb,CAAC,CAAC,EAAE,CAAC;AACK,QAAA,WAAW,GAAmB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;AACxD,QAAA,aAAa,GAAmB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"p256.js","sourceRoot":"","sources":["src/p256.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,sEAAsE;AACtE,iDAA8C;AAC9C,yDAAoE;AACpE,kEAAsE;AACtE,sDAA8C;AAC9C,8DAAgE;AAEhE,MAAM,KAAK,GAAG,IAAA,kBAAK,EAAC,MAAM,CAAC,oEAAoE,CAAC,CAAC,CAAC;AAClG,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,oEAAoE,CAAC,CAAC;AAE7F,+CAA+C;AAC/C,kBAAkB;AACL,QAAA,IAAI,GAAsB,IAAA,8BAAW,EAAC;IACjD,CAAC,EAAE,OAAO,EAAE,wBAAwB;IACpC,CAAC,EAAE,OAAO;IACV,EAAE,EAAE,KAAK,EAAE,yDAAyD;IACpE,wDAAwD;IACxD,CAAC,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAC/E,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAChF,EAAE,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAChF,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,IAAI,EAAE,KAAK;CACH,EAAE,eAAM,CAAC,CAAC;AACpB,qBAAqB;AACR,QAAA,SAAS,GAAsB,YAAI,CAAC;AAEjD,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CACnC,IAAA,oCAAmB,EAAC,KAAK,EAAE;IACzB,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;CAC/B,CAAC,CAAC,EAAE,CAAC;AAER,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CAChC,IAAA,+BAAY,EAAC,iBAAS,CAAC,eAAe,EAAE,CAAC,OAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;IACjF,GAAG,EAAE,2BAA2B;IAChC,SAAS,EAAE,2BAA2B;IACtC,CAAC,EAAE,KAAK,CAAC,KAAK;IACd,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,GAAG;IACN,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,eAAM;CACb,CAAC,CAAC,EAAE,CAAC;AACR,uFAAuF;AAC1E,QAAA,WAAW,GAAsC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;AACxF,yFAAyF;AAC5E,QAAA,aAAa,GAAsC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC"}
package/p384.d.ts CHANGED
@@ -1,105 +1,11 @@
1
- export declare const p384: Readonly<{
2
- create: (hash: import("./abstract/utils.js").CHash) => import("./abstract/weierstrass.js").CurveFn;
3
- CURVE: ReturnType<(curve: import("./abstract/weierstrass.js").CurveType) => Readonly<{
4
- readonly nBitLength: number;
5
- readonly nByteLength: number;
6
- readonly Fp: import("./abstract/modular.js").IField<bigint>;
7
- readonly n: bigint;
8
- readonly h: bigint;
9
- readonly hEff?: bigint;
10
- readonly Gx: bigint;
11
- readonly Gy: bigint;
12
- readonly allowInfinityPoint?: boolean;
13
- readonly a: bigint;
14
- readonly b: bigint;
15
- readonly allowedPrivateKeyLengths?: readonly number[];
16
- readonly wrapPrivateKey?: boolean;
17
- readonly endo?: {
18
- beta: bigint;
19
- splitScalar: (k: bigint) => {
20
- k1neg: boolean;
21
- k1: bigint;
22
- k2neg: boolean;
23
- k2: bigint;
24
- };
25
- };
26
- readonly isTorsionFree?: ((c: import("./abstract/weierstrass.js").ProjConstructor<bigint>, point: import("./abstract/weierstrass.js").ProjPointType<bigint>) => boolean) | undefined;
27
- readonly clearCofactor?: ((c: import("./abstract/weierstrass.js").ProjConstructor<bigint>, point: import("./abstract/weierstrass.js").ProjPointType<bigint>) => import("./abstract/weierstrass.js").ProjPointType<bigint>) | undefined;
28
- readonly hash: import("./abstract/utils.js").CHash;
29
- readonly hmac: (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array;
30
- readonly randomBytes: (bytesLength?: number) => Uint8Array;
31
- lowS: boolean;
32
- readonly bits2int?: (bytes: Uint8Array) => bigint;
33
- readonly bits2int_modN?: (bytes: Uint8Array) => bigint;
34
- readonly p: bigint;
35
- }>>;
36
- getPublicKey: (privateKey: import("./abstract/utils.js").PrivKey, isCompressed?: boolean) => Uint8Array;
37
- getSharedSecret: (privateA: import("./abstract/utils.js").PrivKey, publicB: import("./abstract/utils.js").Hex, isCompressed?: boolean) => Uint8Array;
38
- sign: (msgHash: import("./abstract/utils.js").Hex, privKey: import("./abstract/utils.js").PrivKey, opts?: import("./abstract/weierstrass.js").SignOpts) => import("./abstract/weierstrass.js").RecoveredSignatureType;
39
- verify: (signature: import("./abstract/utils.js").Hex | {
40
- r: bigint;
41
- s: bigint;
42
- }, msgHash: import("./abstract/utils.js").Hex, publicKey: import("./abstract/utils.js").Hex, opts?: import("./abstract/weierstrass.js").VerOpts) => boolean;
43
- ProjectivePoint: import("./abstract/weierstrass.js").ProjConstructor<bigint>;
44
- Signature: import("./abstract/weierstrass.js").SignatureConstructor;
45
- utils: {
46
- normPrivateKeyToScalar: (key: import("./abstract/utils.js").PrivKey) => bigint;
47
- isValidPrivateKey(privateKey: import("./abstract/utils.js").PrivKey): boolean;
48
- randomPrivateKey: () => Uint8Array;
49
- precompute: (windowSize?: number, point?: import("./abstract/weierstrass.js").ProjPointType<bigint>) => import("./abstract/weierstrass.js").ProjPointType<bigint>;
50
- };
51
- }>;
52
- export declare const secp384r1: Readonly<{
53
- create: (hash: import("./abstract/utils.js").CHash) => import("./abstract/weierstrass.js").CurveFn;
54
- CURVE: ReturnType<(curve: import("./abstract/weierstrass.js").CurveType) => Readonly<{
55
- readonly nBitLength: number;
56
- readonly nByteLength: number;
57
- readonly Fp: import("./abstract/modular.js").IField<bigint>;
58
- readonly n: bigint;
59
- readonly h: bigint;
60
- readonly hEff?: bigint;
61
- readonly Gx: bigint;
62
- readonly Gy: bigint;
63
- readonly allowInfinityPoint?: boolean;
64
- readonly a: bigint;
65
- readonly b: bigint;
66
- readonly allowedPrivateKeyLengths?: readonly number[];
67
- readonly wrapPrivateKey?: boolean;
68
- readonly endo?: {
69
- beta: bigint;
70
- splitScalar: (k: bigint) => {
71
- k1neg: boolean;
72
- k1: bigint;
73
- k2neg: boolean;
74
- k2: bigint;
75
- };
76
- };
77
- readonly isTorsionFree?: ((c: import("./abstract/weierstrass.js").ProjConstructor<bigint>, point: import("./abstract/weierstrass.js").ProjPointType<bigint>) => boolean) | undefined;
78
- readonly clearCofactor?: ((c: import("./abstract/weierstrass.js").ProjConstructor<bigint>, point: import("./abstract/weierstrass.js").ProjPointType<bigint>) => import("./abstract/weierstrass.js").ProjPointType<bigint>) | undefined;
79
- readonly hash: import("./abstract/utils.js").CHash;
80
- readonly hmac: (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array;
81
- readonly randomBytes: (bytesLength?: number) => Uint8Array;
82
- lowS: boolean;
83
- readonly bits2int?: (bytes: Uint8Array) => bigint;
84
- readonly bits2int_modN?: (bytes: Uint8Array) => bigint;
85
- readonly p: bigint;
86
- }>>;
87
- getPublicKey: (privateKey: import("./abstract/utils.js").PrivKey, isCompressed?: boolean) => Uint8Array;
88
- getSharedSecret: (privateA: import("./abstract/utils.js").PrivKey, publicB: import("./abstract/utils.js").Hex, isCompressed?: boolean) => Uint8Array;
89
- sign: (msgHash: import("./abstract/utils.js").Hex, privKey: import("./abstract/utils.js").PrivKey, opts?: import("./abstract/weierstrass.js").SignOpts) => import("./abstract/weierstrass.js").RecoveredSignatureType;
90
- verify: (signature: import("./abstract/utils.js").Hex | {
91
- r: bigint;
92
- s: bigint;
93
- }, msgHash: import("./abstract/utils.js").Hex, publicKey: import("./abstract/utils.js").Hex, opts?: import("./abstract/weierstrass.js").VerOpts) => boolean;
94
- ProjectivePoint: import("./abstract/weierstrass.js").ProjConstructor<bigint>;
95
- Signature: import("./abstract/weierstrass.js").SignatureConstructor;
96
- utils: {
97
- normPrivateKeyToScalar: (key: import("./abstract/utils.js").PrivKey) => bigint;
98
- isValidPrivateKey(privateKey: import("./abstract/utils.js").PrivKey): boolean;
99
- randomPrivateKey: () => Uint8Array;
100
- precompute: (windowSize?: number, point?: import("./abstract/weierstrass.js").ProjPointType<bigint>) => import("./abstract/weierstrass.js").ProjPointType<bigint>;
101
- };
102
- }>;
103
- export declare const hashToCurve: (msg: Uint8Array, options?: import("./abstract/hash-to-curve.js").htfBasicOpts) => import("./abstract/hash-to-curve.js").H2CPoint<bigint>;
104
- export declare const encodeToCurve: (msg: Uint8Array, options?: import("./abstract/hash-to-curve.js").htfBasicOpts) => import("./abstract/hash-to-curve.js").H2CPoint<bigint>;
1
+ import { CurveFnWithCreate } from './_shortw_utils.js';
2
+ import { HTFMethod } from './abstract/hash-to-curve.js';
3
+ /** secp384r1 curve, ECDSA and ECDH methods. */
4
+ export declare const p384: CurveFnWithCreate;
5
+ /** Alias to p384. */
6
+ export declare const secp384r1: CurveFnWithCreate;
7
+ /** secp384r1 hash-to-curve from [RFC 9380](https://www.rfc-editor.org/rfc/rfc9380). */
8
+ export declare const hashToCurve: HTFMethod<bigint>;
9
+ /** secp384r1 encode-to-curve from [RFC 9380](https://www.rfc-editor.org/rfc/rfc9380). */
10
+ export declare const encodeToCurve: HTFMethod<bigint>;
105
11
  //# sourceMappingURL=p384.d.ts.map
package/p384.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"p384.d.ts","sourceRoot":"","sources":["src/p384.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CAiCqpxB,CAAC;;;;;;kFAAwmB,CAAC;+HAA2F,CAAC;2GAAuE,CAAC;;;;qGAAoH,CAAC;;;;;;;+BAA+R,CAAC,eAAe,CAAC;;EAtBt0zB,CAAC;AACpB,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CAqBgpxB,CAAC;;;;;;kFAAwmB,CAAC;+HAA2F,CAAC;2GAAuE,CAAC;;;;qGAAoH,CAAC;;;;;;;+BAA+R,CAAC,eAAe,CAAC;;EArB5zzB,CAAC;AAmB9B,eAAO,MAAM,WAAW,2IAA4C,CAAC;AACrE,eAAO,MAAM,aAAa,2IAA8C,CAAC"}
1
+ {"version":3,"file":"p384.d.ts","sourceRoot":"","sources":["src/p384.ts"],"names":[],"mappings":"AAOA,OAAO,EAAe,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAgB,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAYtE,+CAA+C;AAE/C,eAAO,MAAM,IAAI,EAAE,iBAWA,CAAC;AACpB,qBAAqB;AACrB,eAAO,MAAM,SAAS,EAAE,iBAAwB,CAAC;AAmBjD,uFAAuF;AACvF,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,MAAM,CAA6C,CAAC;AACxF,yFAAyF;AACzF,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,MAAM,CAA+C,CAAC"}
package/p384.js CHANGED
@@ -1,26 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.encodeToCurve = exports.hashToCurve = exports.secp384r1 = exports.p384 = void 0;
4
+ /**
5
+ * NIST secp384r1 aka p384.
6
+ * https://www.secg.org/sec2-v2.pdf, https://neuromancer.sk/std/nist/P-384
7
+ * @module
8
+ */
4
9
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
5
10
  const sha512_1 = require("@noble/hashes/sha512");
6
11
  const _shortw_utils_js_1 = require("./_shortw_utils.js");
7
12
  const hash_to_curve_js_1 = require("./abstract/hash-to-curve.js");
8
13
  const modular_js_1 = require("./abstract/modular.js");
9
14
  const weierstrass_js_1 = require("./abstract/weierstrass.js");
10
- // NIST secp384r1 aka p384
11
- // https://www.secg.org/sec2-v2.pdf, https://neuromancer.sk/std/nist/P-384
12
15
  // Field over which we'll do calculations.
13
16
  // prettier-ignore
14
17
  const P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff');
15
- const Fp = (0, modular_js_1.Field)(P);
16
- const CURVE_A = Fp.create(BigInt('-3'));
18
+ const Fp384 = (0, modular_js_1.Field)(P);
19
+ const CURVE_A = Fp384.create(BigInt('-3'));
17
20
  // prettier-ignore
18
21
  const CURVE_B = BigInt('0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef');
22
+ /** secp384r1 curve, ECDSA and ECDH methods. */
19
23
  // prettier-ignore
20
24
  exports.p384 = (0, _shortw_utils_js_1.createCurve)({
21
25
  a: CURVE_A, // Equation params: a, b
22
26
  b: CURVE_B,
23
- Fp, // Field: 2n**384n - 2n**128n - 2n**96n + 2n**32n - 1n
27
+ Fp: Fp384, // Field: 2n**384n - 2n**128n - 2n**96n + 2n**32n - 1n
24
28
  // Curve order, total count of valid points in the field.
25
29
  n: BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973'),
26
30
  // Base (generator) point (x, y)
@@ -29,21 +33,24 @@ exports.p384 = (0, _shortw_utils_js_1.createCurve)({
29
33
  h: BigInt(1),
30
34
  lowS: false,
31
35
  }, sha512_1.sha384);
36
+ /** Alias to p384. */
32
37
  exports.secp384r1 = exports.p384;
33
- const mapSWU = /* @__PURE__ */ (() => (0, weierstrass_js_1.mapToCurveSimpleSWU)(Fp, {
38
+ const mapSWU = /* @__PURE__ */ (() => (0, weierstrass_js_1.mapToCurveSimpleSWU)(Fp384, {
34
39
  A: CURVE_A,
35
40
  B: CURVE_B,
36
- Z: Fp.create(BigInt('-12')),
41
+ Z: Fp384.create(BigInt('-12')),
37
42
  }))();
38
43
  const htf = /* @__PURE__ */ (() => (0, hash_to_curve_js_1.createHasher)(exports.secp384r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
39
44
  DST: 'P384_XMD:SHA-384_SSWU_RO_',
40
45
  encodeDST: 'P384_XMD:SHA-384_SSWU_NU_',
41
- p: Fp.ORDER,
46
+ p: Fp384.ORDER,
42
47
  m: 1,
43
48
  k: 192,
44
49
  expand: 'xmd',
45
50
  hash: sha512_1.sha384,
46
51
  }))();
52
+ /** secp384r1 hash-to-curve from [RFC 9380](https://www.rfc-editor.org/rfc/rfc9380). */
47
53
  exports.hashToCurve = (() => htf.hashToCurve)();
54
+ /** secp384r1 encode-to-curve from [RFC 9380](https://www.rfc-editor.org/rfc/rfc9380). */
48
55
  exports.encodeToCurve = (() => htf.encodeToCurve)();
49
56
  //# sourceMappingURL=p384.js.map
package/p384.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"p384.js","sourceRoot":"","sources":["src/p384.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AACtE,iDAA8C;AAC9C,yDAAiD;AACjD,kEAA2D;AAC3D,sDAA8C;AAC9C,8DAAgE;AAEhE,0BAA0B;AAC1B,0EAA0E;AAE1E,0CAA0C;AAC1C,kBAAkB;AAClB,MAAM,CAAC,GAAG,MAAM,CAAC,oGAAoG,CAAC,CAAC;AACvH,MAAM,EAAE,GAAG,IAAA,kBAAK,EAAC,CAAC,CAAC,CAAC;AACpB,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,kBAAkB;AAClB,MAAM,OAAO,GAAG,MAAM,CAAC,oGAAoG,CAAC,CAAC;AAE7H,kBAAkB;AACL,QAAA,IAAI,GAAG,IAAA,8BAAW,EAAC;IAC9B,CAAC,EAAE,OAAO,EAAE,wBAAwB;IACpC,CAAC,EAAE,OAAO;IACV,EAAE,EAAE,sDAAsD;IAC1D,yDAAyD;IACzD,CAAC,EAAE,MAAM,CAAC,oGAAoG,CAAC;IAC/G,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC,oGAAoG,CAAC;IAChH,EAAE,EAAE,MAAM,CAAC,oGAAoG,CAAC;IAChH,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,IAAI,EAAE,KAAK;CACH,EAAE,eAAM,CAAC,CAAC;AACP,QAAA,SAAS,GAAG,YAAI,CAAC;AAE9B,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CACnC,IAAA,oCAAmB,EAAC,EAAE,EAAE;IACtB,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;CAC5B,CAAC,CAAC,EAAE,CAAC;AAER,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CAChC,IAAA,+BAAY,EAAC,iBAAS,CAAC,eAAe,EAAE,CAAC,OAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;IACjF,GAAG,EAAE,2BAA2B;IAChC,SAAS,EAAE,2BAA2B;IACtC,CAAC,EAAE,EAAE,CAAC,KAAK;IACX,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,GAAG;IACN,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,eAAM;CACb,CAAC,CAAC,EAAE,CAAC;AACK,QAAA,WAAW,GAAmB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;AACxD,QAAA,aAAa,GAAmB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"p384.js","sourceRoot":"","sources":["src/p384.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,sEAAsE;AACtE,iDAA8C;AAC9C,yDAAoE;AACpE,kEAAsE;AACtE,sDAA8C;AAC9C,8DAAgE;AAEhE,0CAA0C;AAC1C,kBAAkB;AAClB,MAAM,CAAC,GAAG,MAAM,CAAC,oGAAoG,CAAC,CAAC;AACvH,MAAM,KAAK,GAAG,IAAA,kBAAK,EAAC,CAAC,CAAC,CAAC;AACvB,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,kBAAkB;AAClB,MAAM,OAAO,GAAG,MAAM,CAAC,oGAAoG,CAAC,CAAC;AAE7H,+CAA+C;AAC/C,kBAAkB;AACL,QAAA,IAAI,GAAsB,IAAA,8BAAW,EAAC;IACjD,CAAC,EAAE,OAAO,EAAE,wBAAwB;IACpC,CAAC,EAAE,OAAO;IACV,EAAE,EAAE,KAAK,EAAE,sDAAsD;IACjE,yDAAyD;IACzD,CAAC,EAAE,MAAM,CAAC,oGAAoG,CAAC;IAC/G,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC,oGAAoG,CAAC;IAChH,EAAE,EAAE,MAAM,CAAC,oGAAoG,CAAC;IAChH,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,IAAI,EAAE,KAAK;CACH,EAAE,eAAM,CAAC,CAAC;AACpB,qBAAqB;AACR,QAAA,SAAS,GAAsB,YAAI,CAAC;AAEjD,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CACnC,IAAA,oCAAmB,EAAC,KAAK,EAAE;IACzB,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;CAC/B,CAAC,CAAC,EAAE,CAAC;AAER,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CAChC,IAAA,+BAAY,EAAC,iBAAS,CAAC,eAAe,EAAE,CAAC,OAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;IACjF,GAAG,EAAE,2BAA2B;IAChC,SAAS,EAAE,2BAA2B;IACtC,CAAC,EAAE,KAAK,CAAC,KAAK;IACd,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,GAAG;IACN,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,eAAM;CACb,CAAC,CAAC,EAAE,CAAC;AACR,uFAAuF;AAC1E,QAAA,WAAW,GAAsC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;AACxF,yFAAyF;AAC5E,QAAA,aAAa,GAAsC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC"}
package/p521.d.ts CHANGED
@@ -1,105 +1,12 @@
1
- export declare const p521: Readonly<{
2
- create: (hash: import("./abstract/utils.js").CHash) => import("./abstract/weierstrass.js").CurveFn;
3
- CURVE: ReturnType<(curve: import("./abstract/weierstrass.js").CurveType) => Readonly<{
4
- readonly nBitLength: number;
5
- readonly nByteLength: number;
6
- readonly Fp: import("./abstract/modular.js").IField<bigint>;
7
- readonly n: bigint;
8
- readonly h: bigint;
9
- readonly hEff?: bigint;
10
- readonly Gx: bigint;
11
- readonly Gy: bigint;
12
- readonly allowInfinityPoint?: boolean;
13
- readonly a: bigint;
14
- readonly b: bigint;
15
- readonly allowedPrivateKeyLengths?: readonly number[];
16
- readonly wrapPrivateKey?: boolean;
17
- readonly endo?: {
18
- beta: bigint;
19
- splitScalar: (k: bigint) => {
20
- k1neg: boolean;
21
- k1: bigint;
22
- k2neg: boolean;
23
- k2: bigint;
24
- };
25
- };
26
- readonly isTorsionFree?: ((c: import("./abstract/weierstrass.js").ProjConstructor<bigint>, point: import("./abstract/weierstrass.js").ProjPointType<bigint>) => boolean) | undefined;
27
- readonly clearCofactor?: ((c: import("./abstract/weierstrass.js").ProjConstructor<bigint>, point: import("./abstract/weierstrass.js").ProjPointType<bigint>) => import("./abstract/weierstrass.js").ProjPointType<bigint>) | undefined;
28
- readonly hash: import("./abstract/utils.js").CHash;
29
- readonly hmac: (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array;
30
- readonly randomBytes: (bytesLength?: number) => Uint8Array;
31
- lowS: boolean;
32
- readonly bits2int?: (bytes: Uint8Array) => bigint;
33
- readonly bits2int_modN?: (bytes: Uint8Array) => bigint;
34
- readonly p: bigint;
35
- }>>;
36
- getPublicKey: (privateKey: import("./abstract/utils.js").PrivKey, isCompressed?: boolean) => Uint8Array;
37
- getSharedSecret: (privateA: import("./abstract/utils.js").PrivKey, publicB: import("./abstract/utils.js").Hex, isCompressed?: boolean) => Uint8Array;
38
- sign: (msgHash: import("./abstract/utils.js").Hex, privKey: import("./abstract/utils.js").PrivKey, opts?: import("./abstract/weierstrass.js").SignOpts) => import("./abstract/weierstrass.js").RecoveredSignatureType;
39
- verify: (signature: import("./abstract/utils.js").Hex | {
40
- r: bigint;
41
- s: bigint;
42
- }, msgHash: import("./abstract/utils.js").Hex, publicKey: import("./abstract/utils.js").Hex, opts?: import("./abstract/weierstrass.js").VerOpts) => boolean;
43
- ProjectivePoint: import("./abstract/weierstrass.js").ProjConstructor<bigint>;
44
- Signature: import("./abstract/weierstrass.js").SignatureConstructor;
45
- utils: {
46
- normPrivateKeyToScalar: (key: import("./abstract/utils.js").PrivKey) => bigint;
47
- isValidPrivateKey(privateKey: import("./abstract/utils.js").PrivKey): boolean;
48
- randomPrivateKey: () => Uint8Array;
49
- precompute: (windowSize?: number, point?: import("./abstract/weierstrass.js").ProjPointType<bigint>) => import("./abstract/weierstrass.js").ProjPointType<bigint>;
50
- };
51
- }>;
52
- export declare const secp521r1: Readonly<{
53
- create: (hash: import("./abstract/utils.js").CHash) => import("./abstract/weierstrass.js").CurveFn;
54
- CURVE: ReturnType<(curve: import("./abstract/weierstrass.js").CurveType) => Readonly<{
55
- readonly nBitLength: number;
56
- readonly nByteLength: number;
57
- readonly Fp: import("./abstract/modular.js").IField<bigint>;
58
- readonly n: bigint;
59
- readonly h: bigint;
60
- readonly hEff?: bigint;
61
- readonly Gx: bigint;
62
- readonly Gy: bigint;
63
- readonly allowInfinityPoint?: boolean;
64
- readonly a: bigint;
65
- readonly b: bigint;
66
- readonly allowedPrivateKeyLengths?: readonly number[];
67
- readonly wrapPrivateKey?: boolean;
68
- readonly endo?: {
69
- beta: bigint;
70
- splitScalar: (k: bigint) => {
71
- k1neg: boolean;
72
- k1: bigint;
73
- k2neg: boolean;
74
- k2: bigint;
75
- };
76
- };
77
- readonly isTorsionFree?: ((c: import("./abstract/weierstrass.js").ProjConstructor<bigint>, point: import("./abstract/weierstrass.js").ProjPointType<bigint>) => boolean) | undefined;
78
- readonly clearCofactor?: ((c: import("./abstract/weierstrass.js").ProjConstructor<bigint>, point: import("./abstract/weierstrass.js").ProjPointType<bigint>) => import("./abstract/weierstrass.js").ProjPointType<bigint>) | undefined;
79
- readonly hash: import("./abstract/utils.js").CHash;
80
- readonly hmac: (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array;
81
- readonly randomBytes: (bytesLength?: number) => Uint8Array;
82
- lowS: boolean;
83
- readonly bits2int?: (bytes: Uint8Array) => bigint;
84
- readonly bits2int_modN?: (bytes: Uint8Array) => bigint;
85
- readonly p: bigint;
86
- }>>;
87
- getPublicKey: (privateKey: import("./abstract/utils.js").PrivKey, isCompressed?: boolean) => Uint8Array;
88
- getSharedSecret: (privateA: import("./abstract/utils.js").PrivKey, publicB: import("./abstract/utils.js").Hex, isCompressed?: boolean) => Uint8Array;
89
- sign: (msgHash: import("./abstract/utils.js").Hex, privKey: import("./abstract/utils.js").PrivKey, opts?: import("./abstract/weierstrass.js").SignOpts) => import("./abstract/weierstrass.js").RecoveredSignatureType;
90
- verify: (signature: import("./abstract/utils.js").Hex | {
91
- r: bigint;
92
- s: bigint;
93
- }, msgHash: import("./abstract/utils.js").Hex, publicKey: import("./abstract/utils.js").Hex, opts?: import("./abstract/weierstrass.js").VerOpts) => boolean;
94
- ProjectivePoint: import("./abstract/weierstrass.js").ProjConstructor<bigint>;
95
- Signature: import("./abstract/weierstrass.js").SignatureConstructor;
96
- utils: {
97
- normPrivateKeyToScalar: (key: import("./abstract/utils.js").PrivKey) => bigint;
98
- isValidPrivateKey(privateKey: import("./abstract/utils.js").PrivKey): boolean;
99
- randomPrivateKey: () => Uint8Array;
100
- precompute: (windowSize?: number, point?: import("./abstract/weierstrass.js").ProjPointType<bigint>) => import("./abstract/weierstrass.js").ProjPointType<bigint>;
101
- };
102
- }>;
103
- export declare const hashToCurve: (msg: Uint8Array, options?: import("./abstract/hash-to-curve.js").htfBasicOpts) => import("./abstract/hash-to-curve.js").H2CPoint<bigint>;
104
- export declare const encodeToCurve: (msg: Uint8Array, options?: import("./abstract/hash-to-curve.js").htfBasicOpts) => import("./abstract/hash-to-curve.js").H2CPoint<bigint>;
1
+ import { CurveFnWithCreate } from './_shortw_utils.js';
2
+ import { HTFMethod } from './abstract/hash-to-curve.js';
3
+ /**
4
+ * NIST secp521r1 aka p521.
5
+ */
6
+ export declare const p521: CurveFnWithCreate;
7
+ export declare const secp521r1: CurveFnWithCreate;
8
+ /** secp521r1 hash-to-curve from [RFC 9380](https://www.rfc-editor.org/rfc/rfc9380). */
9
+ export declare const hashToCurve: HTFMethod<bigint>;
10
+ /** secp521r1 encode-to-curve from [RFC 9380](https://www.rfc-editor.org/rfc/rfc9380). */
11
+ export declare const encodeToCurve: HTFMethod<bigint>;
105
12
  //# sourceMappingURL=p521.d.ts.map
package/p521.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"p521.d.ts","sourceRoot":"","sources":["src/p521.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CAiC4wwB,CAAC;;;;;;kFAAwmB,CAAC;+HAA2F,CAAC;2GAAuE,CAAC;;;;qGAAoH,CAAC;;;;;;;+BAA+R,CAAC,eAAe,CAAC;;EAtB77yB,CAAC;AACpB,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CAqBuwwB,CAAC;;;;;;kFAAwmB,CAAC;+HAA2F,CAAC;2GAAuE,CAAC;;;;qGAAoH,CAAC;;;;;;;+BAA+R,CAAC,eAAe,CAAC;;EArBn7yB,CAAC;AAmB9B,eAAO,MAAM,WAAW,2IAA4C,CAAC;AACrE,eAAO,MAAM,aAAa,2IAA8C,CAAC"}
1
+ {"version":3,"file":"p521.d.ts","sourceRoot":"","sources":["src/p521.ts"],"names":[],"mappings":"AAQA,OAAO,EAAe,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAgB,SAAS,EAAE,MAAM,6BAA6B,CAAC;AA2BtE;;GAEG;AAEH,eAAO,MAAM,IAAI,EAAE,iBAWA,CAAC;AACpB,eAAO,MAAM,SAAS,EAAE,iBAAwB,CAAC;AAmBjD,uFAAuF;AACvF,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,MAAM,CAA6C,CAAC;AACxF,yFAAyF;AACzF,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,MAAM,CAA+C,CAAC"}
package/p521.js CHANGED
@@ -1,33 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.encodeToCurve = exports.hashToCurve = exports.secp521r1 = exports.p521 = void 0;
4
+ /**
5
+ * NIST secp521r1 aka p521.
6
+ * Note that it's 521, which differs from 512 of its hash function.
7
+ * https://www.secg.org/sec2-v2.pdf, https://neuromancer.sk/std/nist/P-521
8
+ * @module
9
+ */
4
10
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
5
11
  const sha512_1 = require("@noble/hashes/sha512");
6
12
  const _shortw_utils_js_1 = require("./_shortw_utils.js");
7
13
  const hash_to_curve_js_1 = require("./abstract/hash-to-curve.js");
8
14
  const modular_js_1 = require("./abstract/modular.js");
9
15
  const weierstrass_js_1 = require("./abstract/weierstrass.js");
10
- // NIST secp521r1 aka p521
11
- // Note that it's 521, which differs from 512 of its hash function.
12
- // https://www.secg.org/sec2-v2.pdf, https://neuromancer.sk/std/nist/P-521
13
16
  // Field over which we'll do calculations.
14
17
  // prettier-ignore
15
18
  const P = BigInt('0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');
16
- const Fp = (0, modular_js_1.Field)(P);
19
+ const Fp521 = (0, modular_js_1.Field)(P);
17
20
  const CURVE = {
18
- a: Fp.create(BigInt('-3')),
21
+ a: Fp521.create(BigInt('-3')),
19
22
  b: BigInt('0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00'),
20
- Fp,
23
+ Fp: Fp521,
21
24
  n: BigInt('0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409'),
22
25
  Gx: BigInt('0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66'),
23
26
  Gy: BigInt('0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650'),
24
27
  h: BigInt(1),
25
28
  };
29
+ /**
30
+ * NIST secp521r1 aka p521.
31
+ */
26
32
  // prettier-ignore
27
33
  exports.p521 = (0, _shortw_utils_js_1.createCurve)({
28
34
  a: CURVE.a, // Equation params: a, b
29
35
  b: CURVE.b,
30
- Fp, // Field: 2n**521n - 1n
36
+ Fp: Fp521, // Field: 2n**521n - 1n
31
37
  // Curve order, total count of valid points in the field
32
38
  n: CURVE.n,
33
39
  Gx: CURVE.Gx, // Base point (x, y) aka generator point
@@ -37,20 +43,22 @@ exports.p521 = (0, _shortw_utils_js_1.createCurve)({
37
43
  allowedPrivateKeyLengths: [130, 131, 132] // P521 keys are variable-length. Normalize to 132b
38
44
  }, sha512_1.sha512);
39
45
  exports.secp521r1 = exports.p521;
40
- const mapSWU = /* @__PURE__ */ (() => (0, weierstrass_js_1.mapToCurveSimpleSWU)(Fp, {
46
+ const mapSWU = /* @__PURE__ */ (() => (0, weierstrass_js_1.mapToCurveSimpleSWU)(Fp521, {
41
47
  A: CURVE.a,
42
48
  B: CURVE.b,
43
- Z: Fp.create(BigInt('-4')),
49
+ Z: Fp521.create(BigInt('-4')),
44
50
  }))();
45
51
  const htf = /* @__PURE__ */ (() => (0, hash_to_curve_js_1.createHasher)(exports.secp521r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
46
52
  DST: 'P521_XMD:SHA-512_SSWU_RO_',
47
53
  encodeDST: 'P521_XMD:SHA-512_SSWU_NU_',
48
- p: Fp.ORDER,
54
+ p: Fp521.ORDER,
49
55
  m: 1,
50
56
  k: 256,
51
57
  expand: 'xmd',
52
58
  hash: sha512_1.sha512,
53
59
  }))();
60
+ /** secp521r1 hash-to-curve from [RFC 9380](https://www.rfc-editor.org/rfc/rfc9380). */
54
61
  exports.hashToCurve = (() => htf.hashToCurve)();
62
+ /** secp521r1 encode-to-curve from [RFC 9380](https://www.rfc-editor.org/rfc/rfc9380). */
55
63
  exports.encodeToCurve = (() => htf.encodeToCurve)();
56
64
  //# sourceMappingURL=p521.js.map
package/p521.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"p521.js","sourceRoot":"","sources":["src/p521.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AACtE,iDAA8C;AAC9C,yDAAiD;AACjD,kEAA2D;AAC3D,sDAA8C;AAC9C,8DAAgE;AAEhE,0BAA0B;AAC1B,mEAAmE;AACnE,0EAA0E;AAE1E,0CAA0C;AAC1C,kBAAkB;AAClB,MAAM,CAAC,GAAG,MAAM,CAAC,uIAAuI,CAAC,CAAC;AAC1J,MAAM,EAAE,GAAG,IAAA,kBAAK,EAAC,CAAC,CAAC,CAAC;AAEpB,MAAM,KAAK,GAAG;IACZ,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,EAAE,MAAM,CACP,wIAAwI,CACzI;IACD,EAAE;IACF,CAAC,EAAE,MAAM,CACP,wIAAwI,CACzI;IACD,EAAE,EAAE,MAAM,CACR,wIAAwI,CACzI;IACD,EAAE,EAAE,MAAM,CACR,wIAAwI,CACzI;IACD,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;CACb,CAAC;AAEF,kBAAkB;AACL,QAAA,IAAI,GAAG,IAAA,8BAAW,EAAC;IAC9B,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,wBAAwB;IACpC,CAAC,EAAE,KAAK,CAAC,CAAC;IACV,EAAE,EAAE,uBAAuB;IAC3B,wDAAwD;IACxD,CAAC,EAAE,KAAK,CAAC,CAAC;IACV,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,wCAAwC;IACtD,EAAE,EAAE,KAAK,CAAC,EAAE;IACZ,CAAC,EAAE,KAAK,CAAC,CAAC;IACV,IAAI,EAAE,KAAK;IACX,wBAAwB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,mDAAmD;CACrF,EAAE,eAAM,CAAC,CAAC;AACP,QAAA,SAAS,GAAG,YAAI,CAAC;AAE9B,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CACnC,IAAA,oCAAmB,EAAC,EAAE,EAAE;IACtB,CAAC,EAAE,KAAK,CAAC,CAAC;IACV,CAAC,EAAE,KAAK,CAAC,CAAC;IACV,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAC3B,CAAC,CAAC,EAAE,CAAC;AAER,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CAChC,IAAA,+BAAY,EAAC,iBAAS,CAAC,eAAe,EAAE,CAAC,OAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;IACjF,GAAG,EAAE,2BAA2B;IAChC,SAAS,EAAE,2BAA2B;IACtC,CAAC,EAAE,EAAE,CAAC,KAAK;IACX,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,GAAG;IACN,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,eAAM;CACb,CAAC,CAAC,EAAE,CAAC;AACK,QAAA,WAAW,GAAmB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;AACxD,QAAA,aAAa,GAAmB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"p521.js","sourceRoot":"","sources":["src/p521.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,sEAAsE;AACtE,iDAA8C;AAC9C,yDAAoE;AACpE,kEAAsE;AACtE,sDAA8C;AAC9C,8DAAgE;AAEhE,0CAA0C;AAC1C,kBAAkB;AAClB,MAAM,CAAC,GAAG,MAAM,CAAC,uIAAuI,CAAC,CAAC;AAC1J,MAAM,KAAK,GAAG,IAAA,kBAAK,EAAC,CAAC,CAAC,CAAC;AAEvB,MAAM,KAAK,GAAG;IACZ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,EAAE,MAAM,CACP,wIAAwI,CACzI;IACD,EAAE,EAAE,KAAK;IACT,CAAC,EAAE,MAAM,CACP,wIAAwI,CACzI;IACD,EAAE,EAAE,MAAM,CACR,wIAAwI,CACzI;IACD,EAAE,EAAE,MAAM,CACR,wIAAwI,CACzI;IACD,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;CACb,CAAC;AAEF;;GAEG;AACH,kBAAkB;AACL,QAAA,IAAI,GAAsB,IAAA,8BAAW,EAAC;IACjD,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,wBAAwB;IACpC,CAAC,EAAE,KAAK,CAAC,CAAC;IACV,EAAE,EAAE,KAAK,EAAE,uBAAuB;IAClC,wDAAwD;IACxD,CAAC,EAAE,KAAK,CAAC,CAAC;IACV,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,wCAAwC;IACtD,EAAE,EAAE,KAAK,CAAC,EAAE;IACZ,CAAC,EAAE,KAAK,CAAC,CAAC;IACV,IAAI,EAAE,KAAK;IACX,wBAAwB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,mDAAmD;CACrF,EAAE,eAAM,CAAC,CAAC;AACP,QAAA,SAAS,GAAsB,YAAI,CAAC;AAEjD,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CACnC,IAAA,oCAAmB,EAAC,KAAK,EAAE;IACzB,CAAC,EAAE,KAAK,CAAC,CAAC;IACV,CAAC,EAAE,KAAK,CAAC,CAAC;IACV,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC,CAAC,EAAE,CAAC;AAER,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CAChC,IAAA,+BAAY,EAAC,iBAAS,CAAC,eAAe,EAAE,CAAC,OAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;IACjF,GAAG,EAAE,2BAA2B;IAChC,SAAS,EAAE,2BAA2B;IACtC,CAAC,EAAE,KAAK,CAAC,KAAK;IACd,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,GAAG;IACN,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,eAAM;CACb,CAAC,CAAC,EAAE,CAAC;AACR,uFAAuF;AAC1E,QAAA,WAAW,GAAsC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;AACxF,yFAAyF;AAC5E,QAAA,aAAa,GAAsC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,24 +1,26 @@
1
1
  {
2
2
  "name": "@noble/curves",
3
- "version": "1.6.0",
3
+ "version": "1.8.0",
4
4
  "description": "Audited & minimal JS implementation of elliptic curve cryptography",
5
5
  "files": [
6
- "abstract",
7
- "esm",
8
- "src",
9
6
  "*.js",
10
7
  "*.js.map",
11
8
  "*.d.ts",
12
- "*.d.ts.map"
9
+ "*.d.ts.map",
10
+ "esm",
11
+ "src",
12
+ "abstract"
13
13
  ],
14
14
  "scripts": {
15
15
  "bench": "cd benchmark; node secp256k1.js; node curves.js; node ecdh.js; node hash-to-curve.js; node modular.js; node bls.js; node ristretto255.js; node decaf448.js",
16
+ "bench:install": "cd benchmark; npm install; npm install .. --install-links",
16
17
  "build": "tsc && tsc -p tsconfig.esm.json",
17
18
  "build:release": "cd build && npm i && npm run build",
18
- "build:clean": "rm *.{js,d.ts,d.ts.map,js.map} esm/*.{js,d.ts,d.ts.map,js.map} 2> /dev/null",
19
+ "build:clean": "rm {.,esm,abstract,esm/abstract}/*.{js,d.ts,d.ts.map,js.map} 2> /dev/null",
19
20
  "lint": "prettier --check 'src/**/*.{js,ts}' 'test/*.js'",
20
21
  "format": "prettier --write 'src/**/*.{js,ts}' 'test/*.js'",
21
- "test": "node test/index.test.js"
22
+ "test": "node test/index.js",
23
+ "test:coverage": "c8 node test/index.js"
22
24
  },
23
25
  "author": "Paul Miller (https://paulmillr.com)",
24
26
  "homepage": "https://paulmillr.com/noble/",
@@ -28,10 +30,11 @@
28
30
  },
29
31
  "license": "MIT",
30
32
  "dependencies": {
31
- "@noble/hashes": "1.5.0"
33
+ "@noble/hashes": "1.7.0"
32
34
  },
33
35
  "devDependencies": {
34
36
  "@paulmillr/jsbt": "0.2.1",
37
+ "c8": "10.1.2",
35
38
  "fast-check": "3.0.0",
36
39
  "micro-bmark": "0.3.1",
37
40
  "micro-should": "0.4.0",
package/pasta.d.ts CHANGED
@@ -1,5 +1,8 @@
1
+ import { CurveFn } from './abstract/weierstrass.js';
1
2
  export declare const p: bigint;
2
3
  export declare const q: bigint;
3
- export declare const pallas: import("./abstract/weierstrass.js").CurveFn;
4
- export declare const vesta: import("./abstract/weierstrass.js").CurveFn;
4
+ /** https://neuromancer.sk/std/other/Pallas */
5
+ export declare const pallas: CurveFn;
6
+ /** https://neuromancer.sk/std/other/Vesta */
7
+ export declare const vesta: CurveFn;
5
8
  //# sourceMappingURL=pasta.d.ts.map
package/pasta.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pasta.d.ts","sourceRoot":"","sources":["src/pasta.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,CAAC,QAA+E,CAAC;AAC9F,eAAO,MAAM,CAAC,QAA+E,CAAC;AAG9F,eAAO,MAAM,MAAM,6CASjB,CAAC;AAEH,eAAO,MAAM,KAAK,6CAShB,CAAC"}
1
+ {"version":3,"file":"pasta.d.ts","sourceRoot":"","sources":["src/pasta.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAe,MAAM,2BAA2B,CAAC;AAEjE,eAAO,MAAM,CAAC,EAAE,MAEf,CAAC;AACF,eAAO,MAAM,CAAC,EAAE,MAEf,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,MAAM,EAAE,OASnB,CAAC;AACH,6CAA6C;AAC7C,eAAO,MAAM,KAAK,EAAE,OASlB,CAAC"}
package/pasta.js CHANGED
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.vesta = exports.pallas = exports.q = exports.p = void 0;
4
+ /**
5
+ * Pasta curves. See [Spec](https://o1-labs.github.io/proof-systems/specs/pasta.html).
6
+ * @module
7
+ */
4
8
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
5
9
  const sha256_1 = require("@noble/hashes/sha256");
6
10
  const _shortw_utils_js_1 = require("./_shortw_utils.js");
@@ -8,7 +12,7 @@ const modular_js_1 = require("./abstract/modular.js");
8
12
  const weierstrass_js_1 = require("./abstract/weierstrass.js");
9
13
  exports.p = BigInt('0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001');
10
14
  exports.q = BigInt('0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001');
11
- // https://neuromancer.sk/std/other/Pallas
15
+ /** https://neuromancer.sk/std/other/Pallas */
12
16
  exports.pallas = (0, weierstrass_js_1.weierstrass)({
13
17
  a: BigInt(0),
14
18
  b: BigInt(5),
@@ -19,7 +23,7 @@ exports.pallas = (0, weierstrass_js_1.weierstrass)({
19
23
  h: BigInt(1),
20
24
  ...(0, _shortw_utils_js_1.getHash)(sha256_1.sha256),
21
25
  });
22
- // https://neuromancer.sk/std/other/Vesta
26
+ /** https://neuromancer.sk/std/other/Vesta */
23
27
  exports.vesta = (0, weierstrass_js_1.weierstrass)({
24
28
  a: BigInt(0),
25
29
  b: BigInt(5),
package/pasta.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pasta.js","sourceRoot":"","sources":["src/pasta.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AACtE,iDAA8C;AAC9C,yDAA6C;AAC7C,sDAAmD;AACnD,8DAAwD;AAE3C,QAAA,CAAC,GAAG,MAAM,CAAC,oEAAoE,CAAC,CAAC;AACjF,QAAA,CAAC,GAAG,MAAM,CAAC,oEAAoE,CAAC,CAAC;AAE9F,0CAA0C;AAC7B,QAAA,MAAM,GAAG,IAAA,4BAAW,EAAC;IAChC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,EAAE,EAAE,IAAA,kBAAK,EAAC,SAAC,CAAC;IACZ,CAAC,EAAE,SAAC;IACJ,EAAE,EAAE,IAAA,gBAAG,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,SAAC,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IACb,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,GAAG,IAAA,0BAAO,EAAC,eAAM,CAAC;CACnB,CAAC,CAAC;AACH,yCAAyC;AAC5B,QAAA,KAAK,GAAG,IAAA,4BAAW,EAAC;IAC/B,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,EAAE,EAAE,IAAA,kBAAK,EAAC,SAAC,CAAC;IACZ,CAAC,EAAE,SAAC;IACJ,EAAE,EAAE,IAAA,gBAAG,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,SAAC,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IACb,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,GAAG,IAAA,0BAAO,EAAC,eAAM,CAAC;CACnB,CAAC,CAAC"}
1
+ {"version":3,"file":"pasta.js","sourceRoot":"","sources":["src/pasta.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,sEAAsE;AACtE,iDAA8C;AAC9C,yDAA6C;AAC7C,sDAAmD;AACnD,8DAAiE;AAEpD,QAAA,CAAC,GAAW,MAAM,CAC7B,oEAAoE,CACrE,CAAC;AACW,QAAA,CAAC,GAAW,MAAM,CAC7B,oEAAoE,CACrE,CAAC;AAEF,8CAA8C;AACjC,QAAA,MAAM,GAAY,IAAA,4BAAW,EAAC;IACzC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,EAAE,EAAE,IAAA,kBAAK,EAAC,SAAC,CAAC;IACZ,CAAC,EAAE,SAAC;IACJ,EAAE,EAAE,IAAA,gBAAG,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,SAAC,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IACb,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,GAAG,IAAA,0BAAO,EAAC,eAAM,CAAC;CACnB,CAAC,CAAC;AACH,6CAA6C;AAChC,QAAA,KAAK,GAAY,IAAA,4BAAW,EAAC;IACxC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,EAAE,EAAE,IAAA,kBAAK,EAAC,SAAC,CAAC;IACZ,CAAC,EAAE,SAAC;IACJ,EAAE,EAAE,IAAA,gBAAG,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,SAAC,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IACb,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,GAAG,IAAA,0BAAO,EAAC,eAAM,CAAC;CACnB,CAAC,CAAC"}