@noble/curves 1.8.2 → 1.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/README.md +49 -24
  2. package/abstract/bls.js +1 -1
  3. package/abstract/bls.js.map +1 -1
  4. package/abstract/curve.d.ts +1 -1
  5. package/abstract/curve.d.ts.map +1 -1
  6. package/abstract/curve.js +13 -4
  7. package/abstract/curve.js.map +1 -1
  8. package/abstract/edwards.d.ts.map +1 -1
  9. package/abstract/edwards.js +17 -3
  10. package/abstract/edwards.js.map +1 -1
  11. package/abstract/fft.d.ts +120 -0
  12. package/abstract/fft.d.ts.map +1 -0
  13. package/abstract/fft.js +439 -0
  14. package/abstract/fft.js.map +1 -0
  15. package/abstract/hash-to-curve.d.ts +10 -5
  16. package/abstract/hash-to-curve.d.ts.map +1 -1
  17. package/abstract/hash-to-curve.js +31 -23
  18. package/abstract/hash-to-curve.js.map +1 -1
  19. package/abstract/modular.d.ts +13 -12
  20. package/abstract/modular.d.ts.map +1 -1
  21. package/abstract/modular.js +158 -158
  22. package/abstract/modular.js.map +1 -1
  23. package/abstract/montgomery.d.ts +4 -9
  24. package/abstract/montgomery.d.ts.map +1 -1
  25. package/abstract/montgomery.js +70 -90
  26. package/abstract/montgomery.js.map +1 -1
  27. package/abstract/poseidon.d.ts +39 -2
  28. package/abstract/poseidon.d.ts.map +1 -1
  29. package/abstract/poseidon.js +183 -4
  30. package/abstract/poseidon.js.map +1 -1
  31. package/abstract/tower.d.ts.map +1 -1
  32. package/abstract/tower.js +4 -5
  33. package/abstract/tower.js.map +1 -1
  34. package/abstract/utils.d.ts +1 -0
  35. package/abstract/utils.d.ts.map +1 -1
  36. package/abstract/utils.js +2 -0
  37. package/abstract/utils.js.map +1 -1
  38. package/abstract/weierstrass.d.ts +31 -9
  39. package/abstract/weierstrass.d.ts.map +1 -1
  40. package/abstract/weierstrass.js +67 -48
  41. package/abstract/weierstrass.js.map +1 -1
  42. package/bls12-381.d.ts.map +1 -1
  43. package/bls12-381.js +9 -23
  44. package/bls12-381.js.map +1 -1
  45. package/bn254.d.ts +1 -0
  46. package/bn254.d.ts.map +1 -1
  47. package/bn254.js +10 -0
  48. package/bn254.js.map +1 -1
  49. package/ed25519.d.ts +19 -5
  50. package/ed25519.d.ts.map +1 -1
  51. package/ed25519.js +29 -18
  52. package/ed25519.js.map +1 -1
  53. package/ed448.d.ts +21 -5
  54. package/ed448.d.ts.map +1 -1
  55. package/ed448.js +46 -34
  56. package/ed448.js.map +1 -1
  57. package/esm/abstract/bls.js +1 -1
  58. package/esm/abstract/bls.js.map +1 -1
  59. package/esm/abstract/curve.d.ts +1 -1
  60. package/esm/abstract/curve.d.ts.map +1 -1
  61. package/esm/abstract/curve.js +13 -4
  62. package/esm/abstract/curve.js.map +1 -1
  63. package/esm/abstract/edwards.d.ts.map +1 -1
  64. package/esm/abstract/edwards.js +19 -5
  65. package/esm/abstract/edwards.js.map +1 -1
  66. package/esm/abstract/fft.d.ts +120 -0
  67. package/esm/abstract/fft.d.ts.map +1 -0
  68. package/esm/abstract/fft.js +426 -0
  69. package/esm/abstract/fft.js.map +1 -0
  70. package/esm/abstract/hash-to-curve.d.ts +10 -5
  71. package/esm/abstract/hash-to-curve.d.ts.map +1 -1
  72. package/esm/abstract/hash-to-curve.js +32 -24
  73. package/esm/abstract/hash-to-curve.js.map +1 -1
  74. package/esm/abstract/modular.d.ts +13 -12
  75. package/esm/abstract/modular.d.ts.map +1 -1
  76. package/esm/abstract/modular.js +158 -158
  77. package/esm/abstract/modular.js.map +1 -1
  78. package/esm/abstract/montgomery.d.ts +4 -9
  79. package/esm/abstract/montgomery.d.ts.map +1 -1
  80. package/esm/abstract/montgomery.js +71 -91
  81. package/esm/abstract/montgomery.js.map +1 -1
  82. package/esm/abstract/poseidon.d.ts +39 -2
  83. package/esm/abstract/poseidon.d.ts.map +1 -1
  84. package/esm/abstract/poseidon.js +180 -5
  85. package/esm/abstract/poseidon.js.map +1 -1
  86. package/esm/abstract/tower.d.ts.map +1 -1
  87. package/esm/abstract/tower.js +4 -5
  88. package/esm/abstract/tower.js.map +1 -1
  89. package/esm/abstract/utils.d.ts +1 -0
  90. package/esm/abstract/utils.d.ts.map +1 -1
  91. package/esm/abstract/utils.js +2 -0
  92. package/esm/abstract/utils.js.map +1 -1
  93. package/esm/abstract/weierstrass.d.ts +31 -9
  94. package/esm/abstract/weierstrass.d.ts.map +1 -1
  95. package/esm/abstract/weierstrass.js +69 -50
  96. package/esm/abstract/weierstrass.js.map +1 -1
  97. package/esm/bls12-381.d.ts.map +1 -1
  98. package/esm/bls12-381.js +9 -23
  99. package/esm/bls12-381.js.map +1 -1
  100. package/esm/bn254.d.ts +1 -0
  101. package/esm/bn254.d.ts.map +1 -1
  102. package/esm/bn254.js +10 -0
  103. package/esm/bn254.js.map +1 -1
  104. package/esm/ed25519.d.ts +19 -5
  105. package/esm/ed25519.d.ts.map +1 -1
  106. package/esm/ed25519.js +29 -18
  107. package/esm/ed25519.js.map +1 -1
  108. package/esm/ed448.d.ts +21 -5
  109. package/esm/ed448.d.ts.map +1 -1
  110. package/esm/ed448.js +47 -35
  111. package/esm/ed448.js.map +1 -1
  112. package/esm/jubjub.d.ts +11 -1
  113. package/esm/jubjub.d.ts.map +1 -1
  114. package/esm/jubjub.js +11 -1
  115. package/esm/jubjub.js.map +1 -1
  116. package/esm/misc.d.ts +8 -2
  117. package/esm/misc.d.ts.map +1 -1
  118. package/esm/misc.js +10 -4
  119. package/esm/misc.js.map +1 -1
  120. package/esm/nist.d.ts +30 -0
  121. package/esm/nist.d.ts.map +1 -0
  122. package/esm/nist.js +121 -0
  123. package/esm/nist.js.map +1 -0
  124. package/esm/p256.d.ts +7 -9
  125. package/esm/p256.d.ts.map +1 -1
  126. package/esm/p256.js +6 -44
  127. package/esm/p256.js.map +1 -1
  128. package/esm/p384.d.ts +9 -10
  129. package/esm/p384.d.ts.map +1 -1
  130. package/esm/p384.js +7 -46
  131. package/esm/p384.js.map +1 -1
  132. package/esm/p521.d.ts +7 -8
  133. package/esm/p521.d.ts.map +1 -1
  134. package/esm/p521.js +6 -46
  135. package/esm/p521.js.map +1 -1
  136. package/esm/pasta.d.ts +9 -1
  137. package/esm/pasta.d.ts.map +1 -1
  138. package/esm/pasta.js +9 -1
  139. package/esm/pasta.js.map +1 -1
  140. package/esm/secp256k1.d.ts +3 -3
  141. package/esm/secp256k1.d.ts.map +1 -1
  142. package/esm/secp256k1.js +8 -9
  143. package/esm/secp256k1.js.map +1 -1
  144. package/jubjub.d.ts +11 -1
  145. package/jubjub.d.ts.map +1 -1
  146. package/jubjub.js +12 -5
  147. package/jubjub.js.map +1 -1
  148. package/misc.d.ts +8 -2
  149. package/misc.d.ts.map +1 -1
  150. package/misc.js +11 -5
  151. package/misc.js.map +1 -1
  152. package/nist.d.ts +30 -0
  153. package/nist.d.ts.map +1 -0
  154. package/nist.js +124 -0
  155. package/nist.js.map +1 -0
  156. package/p256.d.ts +7 -9
  157. package/p256.d.ts.map +1 -1
  158. package/p256.js +5 -49
  159. package/p256.js.map +1 -1
  160. package/p384.d.ts +9 -10
  161. package/p384.d.ts.map +1 -1
  162. package/p384.js +6 -51
  163. package/p384.js.map +1 -1
  164. package/p521.d.ts +7 -8
  165. package/p521.d.ts.map +1 -1
  166. package/p521.js +5 -51
  167. package/p521.js.map +1 -1
  168. package/package.json +117 -8
  169. package/pasta.d.ts +9 -1
  170. package/pasta.d.ts.map +1 -1
  171. package/pasta.js +9 -3
  172. package/pasta.js.map +1 -1
  173. package/secp256k1.d.ts +3 -3
  174. package/secp256k1.d.ts.map +1 -1
  175. package/secp256k1.js +9 -10
  176. package/secp256k1.js.map +1 -1
  177. package/src/abstract/bls.ts +1 -1
  178. package/src/abstract/curve.ts +11 -6
  179. package/src/abstract/edwards.ts +26 -12
  180. package/src/abstract/fft.ts +508 -0
  181. package/src/abstract/hash-to-curve.ts +44 -36
  182. package/src/abstract/modular.ts +154 -153
  183. package/src/abstract/montgomery.ts +78 -109
  184. package/src/abstract/poseidon.ts +208 -13
  185. package/src/abstract/tower.ts +4 -5
  186. package/src/abstract/utils.ts +2 -0
  187. package/src/abstract/weierstrass.ts +109 -61
  188. package/src/bls12-381.ts +11 -27
  189. package/src/bn254.ts +10 -0
  190. package/src/ed25519.ts +32 -19
  191. package/src/ed448.ts +91 -75
  192. package/src/jubjub.ts +12 -5
  193. package/src/misc.ts +10 -4
  194. package/src/nist.ts +155 -0
  195. package/src/p256.ts +6 -50
  196. package/src/p384.ts +8 -56
  197. package/src/p521.ts +6 -65
  198. package/src/pasta.ts +9 -1
  199. package/src/secp256k1.ts +12 -11
package/nist.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nist.d.ts","sourceRoot":"","sources":["src/nist.ts"],"names":[],"mappings":"AAOA,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAQxE;;;GAGG;AAEH,eAAO,MAAM,IAAI,EAAE,iBASA,CAAC;AACpB,qBAAqB;AACrB,eAAO,MAAM,SAAS,EAAE,iBAAwB,CAAC;AASjD,mEAAmE;AACnE,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,CAShC,CAAC;AAYR;;;KAGK;AAEL,eAAO,MAAM,IAAI,EAAE,iBASA,CAAC;AACpB,qBAAqB;AACrB,eAAO,MAAM,SAAS,EAAE,iBAAwB,CAAC;AASjD,mEAAmE;AACnE,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,CAShC,CAAC;AAcR;;;GAGG;AAEH,eAAO,MAAM,IAAI,EAAE,iBAgBA,CAAC;AACpB,qBAAqB;AACrB,eAAO,MAAM,SAAS,EAAE,iBAAwB,CAAC;AASjD,mEAAmE;AACnE,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,CAShC,CAAC"}
package/nist.js ADDED
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.p521_hasher = exports.secp521r1 = exports.p521 = exports.p384_hasher = exports.secp384r1 = exports.p384 = exports.p256_hasher = exports.secp256r1 = exports.p256 = void 0;
4
+ /**
5
+ * Internal module for NIST P256, P384, P521 curves.
6
+ * Do not use for now.
7
+ * @module
8
+ */
9
+ /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
10
+ const sha2_1 = require("@noble/hashes/sha2");
11
+ const _shortw_utils_ts_1 = require("./_shortw_utils.js");
12
+ const hash_to_curve_ts_1 = require("./abstract/hash-to-curve.js");
13
+ const modular_ts_1 = require("./abstract/modular.js");
14
+ const weierstrass_ts_1 = require("./abstract/weierstrass.js");
15
+ const Fp256 = (0, modular_ts_1.Field)(BigInt('0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff'));
16
+ const p256_a = Fp256.create(BigInt('-3'));
17
+ const p256_b = BigInt('0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b');
18
+ /**
19
+ * secp256r1 curve, ECDSA and ECDH methods.
20
+ * Field: `2n**224n * (2n**32n-1n) + 2n**192n + 2n**96n-1n`
21
+ */
22
+ // prettier-ignore
23
+ exports.p256 = (0, _shortw_utils_ts_1.createCurve)({
24
+ a: p256_a,
25
+ b: p256_b,
26
+ Fp: Fp256,
27
+ n: BigInt('0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551'),
28
+ Gx: BigInt('0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296'),
29
+ Gy: BigInt('0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5'),
30
+ h: BigInt(1),
31
+ lowS: false
32
+ }, sha2_1.sha256);
33
+ /** Alias to p256. */
34
+ exports.secp256r1 = exports.p256;
35
+ const p256_mapSWU = /* @__PURE__ */ (() => (0, weierstrass_ts_1.mapToCurveSimpleSWU)(Fp256, {
36
+ A: p256_a,
37
+ B: p256_b,
38
+ Z: Fp256.create(BigInt('-10')),
39
+ }))();
40
+ /** Hashing / encoding to p256 points / field. RFC 9380 methods. */
41
+ exports.p256_hasher = (() => (0, hash_to_curve_ts_1.createHasher)(exports.secp256r1.ProjectivePoint, (scalars) => p256_mapSWU(scalars[0]), {
42
+ DST: 'P256_XMD:SHA-256_SSWU_RO_',
43
+ encodeDST: 'P256_XMD:SHA-256_SSWU_NU_',
44
+ p: Fp256.ORDER,
45
+ m: 1,
46
+ k: 128,
47
+ expand: 'xmd',
48
+ hash: sha2_1.sha256,
49
+ }))();
50
+ // Field over which we'll do calculations.
51
+ const Fp384 = (0, modular_ts_1.Field)(BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff'));
52
+ const p384_a = Fp384.create(BigInt('-3'));
53
+ // prettier-ignore
54
+ const p384_b = BigInt('0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef');
55
+ /**
56
+ * secp384r1 curve, ECDSA and ECDH methods.
57
+ * Field: `2n**384n - 2n**128n - 2n**96n + 2n**32n - 1n`.
58
+ * */
59
+ // prettier-ignore
60
+ exports.p384 = (0, _shortw_utils_ts_1.createCurve)({
61
+ a: p384_a,
62
+ b: p384_b,
63
+ Fp: Fp384,
64
+ n: BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973'),
65
+ Gx: BigInt('0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7'),
66
+ Gy: BigInt('0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f'),
67
+ h: BigInt(1),
68
+ lowS: false
69
+ }, sha2_1.sha384);
70
+ /** Alias to p384. */
71
+ exports.secp384r1 = exports.p384;
72
+ const p384_mapSWU = /* @__PURE__ */ (() => (0, weierstrass_ts_1.mapToCurveSimpleSWU)(Fp384, {
73
+ A: p384_a,
74
+ B: p384_b,
75
+ Z: Fp384.create(BigInt('-12')),
76
+ }))();
77
+ /** Hashing / encoding to p384 points / field. RFC 9380 methods. */
78
+ exports.p384_hasher = (() => (0, hash_to_curve_ts_1.createHasher)(exports.secp384r1.ProjectivePoint, (scalars) => p384_mapSWU(scalars[0]), {
79
+ DST: 'P384_XMD:SHA-384_SSWU_RO_',
80
+ encodeDST: 'P384_XMD:SHA-384_SSWU_NU_',
81
+ p: Fp384.ORDER,
82
+ m: 1,
83
+ k: 192,
84
+ expand: 'xmd',
85
+ hash: sha2_1.sha384,
86
+ }))();
87
+ // Field over which we'll do calculations.
88
+ const Fp521 = (0, modular_ts_1.Field)(BigInt('0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'));
89
+ const p521_a = Fp521.create(BigInt('-3'));
90
+ const p521_b = BigInt('0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00');
91
+ /**
92
+ * NIST secp521r1 aka p521 curve, ECDSA and ECDH methods.
93
+ * Field: `2n**521n - 1n`.
94
+ */
95
+ // prettier-ignore
96
+ exports.p521 = (0, _shortw_utils_ts_1.createCurve)({
97
+ a: p521_a,
98
+ b: p521_b,
99
+ Fp: Fp521,
100
+ n: BigInt('0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409'),
101
+ Gx: BigInt('0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66'),
102
+ Gy: BigInt('0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650'),
103
+ h: BigInt(1),
104
+ lowS: false,
105
+ allowedPrivateKeyLengths: [130, 131, 132] // P521 keys are variable-length. Normalize to 132b
106
+ }, sha2_1.sha512);
107
+ /** Alias to p521. */
108
+ exports.secp521r1 = exports.p521;
109
+ const p521_mapSWU = /* @__PURE__ */ (() => (0, weierstrass_ts_1.mapToCurveSimpleSWU)(Fp521, {
110
+ A: p521_a,
111
+ B: p521_b,
112
+ Z: Fp521.create(BigInt('-4')),
113
+ }))();
114
+ /** Hashing / encoding to p521 points / field. RFC 9380 methods. */
115
+ exports.p521_hasher = (() => (0, hash_to_curve_ts_1.createHasher)(exports.secp521r1.ProjectivePoint, (scalars) => p521_mapSWU(scalars[0]), {
116
+ DST: 'P521_XMD:SHA-512_SSWU_RO_',
117
+ encodeDST: 'P521_XMD:SHA-512_SSWU_NU_',
118
+ p: Fp521.ORDER,
119
+ m: 1,
120
+ k: 256,
121
+ expand: 'xmd',
122
+ hash: sha2_1.sha512,
123
+ }))();
124
+ //# sourceMappingURL=nist.js.map
package/nist.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nist.js","sourceRoot":"","sources":["src/nist.ts"],"names":[],"mappings":"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"}
package/p256.d.ts CHANGED
@@ -1,14 +1,12 @@
1
- import { type CurveFnWithCreate } from './_shortw_utils.ts';
2
- import { type HTFMethod } from './abstract/hash-to-curve.ts';
3
1
  /**
4
- * secp256r1 curve, ECDSA and ECDH methods.
5
- * Field: `2n**224n * (2n**32n-1n) + 2n**192n + 2n**96n-1n`
2
+ * NIST secp256r1 aka p256.
3
+ * @module
6
4
  */
7
- export declare const p256: CurveFnWithCreate;
8
- /** Alias to p256. */
9
- export declare const secp256r1: CurveFnWithCreate;
10
- /** secp256r1 hash-to-curve from RFC 9380. */
5
+ /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
6
+ import { type HTFMethod } from './abstract/hash-to-curve.ts';
7
+ import { p256 as p256n } from './nist.ts';
8
+ export declare const p256: typeof p256n;
9
+ export declare const secp256r1: typeof p256n;
11
10
  export declare const hashToCurve: HTFMethod<bigint>;
12
- /** secp256r1 encode-to-curve from RFC 9380. */
13
11
  export declare const encodeToCurve: HTFMethod<bigint>;
14
12
  //# sourceMappingURL=p256.d.ts.map
package/p256.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"p256.d.ts","sourceRoot":"","sources":["src/p256.ts"],"names":[],"mappings":"AAOA,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAQ3E;;;GAGG;AAEH,eAAO,MAAM,IAAI,EAAE,iBASA,CAAC;AACpB,qBAAqB;AACrB,eAAO,MAAM,SAAS,EAAE,iBAAwB,CAAC;AAmBjD,6CAA6C;AAC7C,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,MAAM,CAA6C,CAAC;AACxF,+CAA+C;AAC/C,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,MAAM,CAA+C,CAAC"}
1
+ {"version":3,"file":"p256.d.ts","sourceRoot":"","sources":["src/p256.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,sEAAsE;AACtE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAe,IAAI,IAAI,KAAK,EAAE,MAAM,WAAW,CAAC;AACvD,eAAO,MAAM,IAAI,EAAE,OAAO,KAAa,CAAC;AACxC,eAAO,MAAM,SAAS,EAAE,OAAO,KAAa,CAAC;AAC7C,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,MAAM,CAAqD,CAAC;AAChG,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,MAAM,CAAuD,CAAC"}
package/p256.js CHANGED
@@ -1,53 +1,9 @@
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
- */
9
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
10
- const sha2_1 = require("@noble/hashes/sha2");
11
- const _shortw_utils_ts_1 = require("./_shortw_utils.js");
12
- const hash_to_curve_ts_1 = require("./abstract/hash-to-curve.js");
13
- const modular_ts_1 = require("./abstract/modular.js");
14
- const weierstrass_ts_1 = require("./abstract/weierstrass.js");
15
- const Fp256 = (0, modular_ts_1.Field)(BigInt('0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff'));
16
- const CURVE_A = Fp256.create(BigInt('-3'));
17
- const CURVE_B = BigInt('0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b');
18
- /**
19
- * secp256r1 curve, ECDSA and ECDH methods.
20
- * Field: `2n**224n * (2n**32n-1n) + 2n**192n + 2n**96n-1n`
21
- */
22
- // prettier-ignore
23
- exports.p256 = (0, _shortw_utils_ts_1.createCurve)({
24
- a: CURVE_A,
25
- b: CURVE_B,
26
- Fp: Fp256,
27
- n: BigInt('0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551'),
28
- Gx: BigInt('0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296'),
29
- Gy: BigInt('0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5'),
30
- h: BigInt(1),
31
- lowS: false,
32
- }, sha2_1.sha256);
33
- /** Alias to p256. */
34
- exports.secp256r1 = exports.p256;
35
- const mapSWU = /* @__PURE__ */ (() => (0, weierstrass_ts_1.mapToCurveSimpleSWU)(Fp256, {
36
- A: CURVE_A,
37
- B: CURVE_B,
38
- Z: Fp256.create(BigInt('-10')),
39
- }))();
40
- const htf = /* @__PURE__ */ (() => (0, hash_to_curve_ts_1.createHasher)(exports.secp256r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
41
- DST: 'P256_XMD:SHA-256_SSWU_RO_',
42
- encodeDST: 'P256_XMD:SHA-256_SSWU_NU_',
43
- p: Fp256.ORDER,
44
- m: 1,
45
- k: 128,
46
- expand: 'xmd',
47
- hash: sha2_1.sha256,
48
- }))();
49
- /** secp256r1 hash-to-curve from RFC 9380. */
50
- exports.hashToCurve = (() => htf.hashToCurve)();
51
- /** secp256r1 encode-to-curve from RFC 9380. */
52
- exports.encodeToCurve = (() => htf.encodeToCurve)();
4
+ const nist_ts_1 = require("./nist.js");
5
+ exports.p256 = nist_ts_1.p256;
6
+ exports.secp256r1 = nist_ts_1.p256;
7
+ exports.hashToCurve = (() => nist_ts_1.p256_hasher.hashToCurve)();
8
+ exports.encodeToCurve = (() => nist_ts_1.p256_hasher.encodeToCurve)();
53
9
  //# 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;;;;GAIG;AACH,sEAAsE;AACtE,6CAA4C;AAC5C,yDAAyE;AACzE,kEAA2E;AAC3E,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;;;GAGG;AACH,kBAAkB;AACL,QAAA,IAAI,GAAsB,IAAA,8BAAW,EAAC;IACjD,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,EAAE,EAAE,KAAK;IACT,CAAC,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAC/E,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,aAAM,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,aAAM;CACb,CAAC,CAAC,EAAE,CAAC;AACR,6CAA6C;AAChC,QAAA,WAAW,GAAsC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;AACxF,+CAA+C;AAClC,QAAA,aAAa,GAAsC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"p256.js","sourceRoot":"","sources":["src/p256.ts"],"names":[],"mappings":";;;AAMA,uCAAuD;AAC1C,QAAA,IAAI,GAAiB,cAAK,CAAC;AAC3B,QAAA,SAAS,GAAiB,cAAK,CAAC;AAChC,QAAA,WAAW,GAAsC,CAAC,GAAG,EAAE,CAAC,qBAAW,CAAC,WAAW,CAAC,EAAE,CAAC;AACnF,QAAA,aAAa,GAAsC,CAAC,GAAG,EAAE,CAAC,qBAAW,CAAC,aAAa,CAAC,EAAE,CAAC"}
package/p384.d.ts CHANGED
@@ -1,14 +1,13 @@
1
- import { type CurveFnWithCreate } from './_shortw_utils.ts';
2
- import { type HTFMethod } from './abstract/hash-to-curve.ts';
3
1
  /**
4
- * secp384r1 curve, ECDSA and ECDH methods.
5
- * Field: `2n**384n - 2n**128n - 2n**96n + 2n**32n - 1n`.
6
- * */
7
- export declare const p384: CurveFnWithCreate;
8
- /** Alias to p384. */
9
- export declare const secp384r1: CurveFnWithCreate;
10
- /** secp384r1 hash-to-curve from RFC 9380. */
2
+ * NIST secp384r1 aka p384.
3
+ * @module
4
+ */
5
+ /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
6
+ import { type HTFMethod } from './abstract/hash-to-curve.ts';
7
+ import { p384 as p384n } from './nist.ts';
8
+ export declare const p384: typeof p384n;
9
+ export declare const secp384r1: typeof p384n;
11
10
  export declare const hashToCurve: HTFMethod<bigint>;
12
- /** secp384r1 encode-to-curve from RFC 9380. */
13
11
  export declare const encodeToCurve: HTFMethod<bigint>;
12
+ /** @deprecated Use `import { p384_hasher } from "@noble/curves/nist"` module. */
14
13
  //# 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":"AAOA,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAc3E;;;KAGK;AAEL,eAAO,MAAM,IAAI,EAAE,iBASA,CAAC;AACpB,qBAAqB;AACrB,eAAO,MAAM,SAAS,EAAE,iBAAwB,CAAC;AAmBjD,6CAA6C;AAC7C,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,MAAM,CAA6C,CAAC;AACxF,+CAA+C;AAC/C,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,MAAM,CAA+C,CAAC"}
1
+ {"version":3,"file":"p384.d.ts","sourceRoot":"","sources":["src/p384.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,sEAAsE;AACtE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAe,IAAI,IAAI,KAAK,EAAE,MAAM,WAAW,CAAC;AACvD,eAAO,MAAM,IAAI,EAAE,OAAO,KAAa,CAAC;AACxC,eAAO,MAAM,SAAS,EAAE,OAAO,KAAa,CAAC;AAC7C,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,MAAM,CAAqD,CAAC;AAChG,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,MAAM,CAAuD,CAAC;AAEpG,iFAAiF"}
package/p384.js CHANGED
@@ -1,55 +1,10 @@
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
- */
9
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
10
- const sha2_1 = require("@noble/hashes/sha2");
11
- const _shortw_utils_ts_1 = require("./_shortw_utils.js");
12
- const hash_to_curve_ts_1 = require("./abstract/hash-to-curve.js");
13
- const modular_ts_1 = require("./abstract/modular.js");
14
- const weierstrass_ts_1 = require("./abstract/weierstrass.js");
15
- // Field over which we'll do calculations.
16
- const Fp384 = (0, modular_ts_1.Field)(BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff'));
17
- const CURVE_A = Fp384.create(BigInt('-3'));
18
- // prettier-ignore
19
- const CURVE_B = BigInt('0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef');
20
- /**
21
- * secp384r1 curve, ECDSA and ECDH methods.
22
- * Field: `2n**384n - 2n**128n - 2n**96n + 2n**32n - 1n`.
23
- * */
24
- // prettier-ignore
25
- exports.p384 = (0, _shortw_utils_ts_1.createCurve)({
26
- a: CURVE_A,
27
- b: CURVE_B,
28
- Fp: Fp384,
29
- n: BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973'),
30
- Gx: BigInt('0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7'),
31
- Gy: BigInt('0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f'),
32
- h: BigInt(1),
33
- lowS: false,
34
- }, sha2_1.sha384);
35
- /** Alias to p384. */
36
- exports.secp384r1 = exports.p384;
37
- const mapSWU = /* @__PURE__ */ (() => (0, weierstrass_ts_1.mapToCurveSimpleSWU)(Fp384, {
38
- A: CURVE_A,
39
- B: CURVE_B,
40
- Z: Fp384.create(BigInt('-12')),
41
- }))();
42
- const htf = /* @__PURE__ */ (() => (0, hash_to_curve_ts_1.createHasher)(exports.secp384r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
43
- DST: 'P384_XMD:SHA-384_SSWU_RO_',
44
- encodeDST: 'P384_XMD:SHA-384_SSWU_NU_',
45
- p: Fp384.ORDER,
46
- m: 1,
47
- k: 192,
48
- expand: 'xmd',
49
- hash: sha2_1.sha384,
50
- }))();
51
- /** secp384r1 hash-to-curve from RFC 9380. */
52
- exports.hashToCurve = (() => htf.hashToCurve)();
53
- /** secp384r1 encode-to-curve from RFC 9380. */
54
- exports.encodeToCurve = (() => htf.encodeToCurve)();
4
+ const nist_ts_1 = require("./nist.js");
5
+ exports.p384 = nist_ts_1.p384;
6
+ exports.secp384r1 = nist_ts_1.p384;
7
+ exports.hashToCurve = (() => nist_ts_1.p384_hasher.hashToCurve)();
8
+ exports.encodeToCurve = (() => nist_ts_1.p384_hasher.encodeToCurve)();
9
+ /** @deprecated Use `import { p384_hasher } from "@noble/curves/nist"` module. */
55
10
  //# 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;;;;GAIG;AACH,sEAAsE;AACtE,6CAA4C;AAC5C,yDAAyE;AACzE,kEAA2E;AAC3E,sDAA8C;AAC9C,8DAAgE;AAEhE,0CAA0C;AAC1C,MAAM,KAAK,GAAG,IAAA,kBAAK,EACjB,MAAM,CACJ,oGAAoG,CACrG,CACF,CAAC;AACF,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;;;KAGK;AACL,kBAAkB;AACL,QAAA,IAAI,GAAsB,IAAA,8BAAW,EAAC;IACjD,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,EAAE,EAAE,KAAK;IACT,CAAC,EAAE,MAAM,CAAC,oGAAoG,CAAC;IAC/G,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,aAAM,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,aAAM;CACb,CAAC,CAAC,EAAE,CAAC;AACR,6CAA6C;AAChC,QAAA,WAAW,GAAsC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;AACxF,+CAA+C;AAClC,QAAA,aAAa,GAAsC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"p384.js","sourceRoot":"","sources":["src/p384.ts"],"names":[],"mappings":";;;AAMA,uCAAuD;AAC1C,QAAA,IAAI,GAAiB,cAAK,CAAC;AAC3B,QAAA,SAAS,GAAiB,cAAK,CAAC;AAChC,QAAA,WAAW,GAAsC,CAAC,GAAG,EAAE,CAAC,qBAAW,CAAC,WAAW,CAAC,EAAE,CAAC;AACnF,QAAA,aAAa,GAAsC,CAAC,GAAG,EAAE,CAAC,qBAAW,CAAC,aAAa,CAAC,EAAE,CAAC;AAEpG,iFAAiF"}
package/p521.d.ts CHANGED
@@ -1,13 +1,12 @@
1
- import { type CurveFnWithCreate } from './_shortw_utils.ts';
2
- import { type HTFMethod } from './abstract/hash-to-curve.ts';
3
1
  /**
4
- * NIST secp521r1 aka p521 curve, ECDSA and ECDH methods.
5
- * Field: `2n**521n - 1n`.
2
+ * NIST secp521r1 aka p521.
3
+ * @module
6
4
  */
7
- export declare const p521: CurveFnWithCreate;
8
- export declare const secp521r1: CurveFnWithCreate;
9
- /** secp521r1 hash-to-curve from RFC 9380. */
5
+ /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
6
+ import { type HTFMethod } from './abstract/hash-to-curve.ts';
7
+ import { p521 as p521n } from './nist.ts';
8
+ export declare const p521: typeof p521n;
9
+ export declare const secp521r1: typeof p521n;
10
10
  export declare const hashToCurve: HTFMethod<bigint>;
11
- /** secp521r1 encode-to-curve from RFC 9380. */
12
11
  export declare const encodeToCurve: HTFMethod<bigint>;
13
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":"AAQA,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAgB3E;;;GAGG;AAEH,eAAO,MAAM,IAAI,EAAE,iBAgBA,CAAC;AACpB,eAAO,MAAM,SAAS,EAAE,iBAAwB,CAAC;AAmBjD,6CAA6C;AAC7C,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,MAAM,CAA6C,CAAC;AACxF,+CAA+C;AAC/C,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,MAAM,CAA+C,CAAC"}
1
+ {"version":3,"file":"p521.d.ts","sourceRoot":"","sources":["src/p521.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,sEAAsE;AACtE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAe,IAAI,IAAI,KAAK,EAAE,MAAM,WAAW,CAAC;AACvD,eAAO,MAAM,IAAI,EAAE,OAAO,KAAa,CAAC;AACxC,eAAO,MAAM,SAAS,EAAE,OAAO,KAAa,CAAC;AAC7C,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,MAAM,CAAqD,CAAC;AAChG,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,MAAM,CAAuD,CAAC"}
package/p521.js CHANGED
@@ -1,55 +1,9 @@
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
- */
10
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
11
- const sha2_1 = require("@noble/hashes/sha2");
12
- const _shortw_utils_ts_1 = require("./_shortw_utils.js");
13
- const hash_to_curve_ts_1 = require("./abstract/hash-to-curve.js");
14
- const modular_ts_1 = require("./abstract/modular.js");
15
- const weierstrass_ts_1 = require("./abstract/weierstrass.js");
16
- // Field over which we'll do calculations.
17
- const Fp521 = (0, modular_ts_1.Field)(BigInt('0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'));
18
- const CURVE_A = Fp521.create(BigInt('-3'));
19
- const CURVE_B = BigInt('0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00');
20
- /**
21
- * NIST secp521r1 aka p521 curve, ECDSA and ECDH methods.
22
- * Field: `2n**521n - 1n`.
23
- */
24
- // prettier-ignore
25
- exports.p521 = (0, _shortw_utils_ts_1.createCurve)({
26
- a: CURVE_A,
27
- b: CURVE_B,
28
- Fp: Fp521,
29
- n: BigInt('0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409'),
30
- Gx: BigInt('0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66'),
31
- Gy: BigInt('0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650'),
32
- h: BigInt(1),
33
- lowS: false,
34
- allowedPrivateKeyLengths: [130, 131, 132] // P521 keys are variable-length. Normalize to 132b
35
- }, sha2_1.sha512);
36
- exports.secp521r1 = exports.p521;
37
- const mapSWU = /* @__PURE__ */ (() => (0, weierstrass_ts_1.mapToCurveSimpleSWU)(Fp521, {
38
- A: CURVE_A,
39
- B: CURVE_B,
40
- Z: Fp521.create(BigInt('-4')),
41
- }))();
42
- const htf = /* @__PURE__ */ (() => (0, hash_to_curve_ts_1.createHasher)(exports.secp521r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
43
- DST: 'P521_XMD:SHA-512_SSWU_RO_',
44
- encodeDST: 'P521_XMD:SHA-512_SSWU_NU_',
45
- p: Fp521.ORDER,
46
- m: 1,
47
- k: 256,
48
- expand: 'xmd',
49
- hash: sha2_1.sha512,
50
- }))();
51
- /** secp521r1 hash-to-curve from RFC 9380. */
52
- exports.hashToCurve = (() => htf.hashToCurve)();
53
- /** secp521r1 encode-to-curve from RFC 9380. */
54
- exports.encodeToCurve = (() => htf.encodeToCurve)();
4
+ const nist_ts_1 = require("./nist.js");
5
+ exports.p521 = nist_ts_1.p521;
6
+ exports.secp521r1 = nist_ts_1.p521;
7
+ exports.hashToCurve = (() => nist_ts_1.p521_hasher.hashToCurve)();
8
+ exports.encodeToCurve = (() => nist_ts_1.p521_hasher.encodeToCurve)();
55
9
  //# 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;;;;;GAKG;AACH,sEAAsE;AACtE,6CAA4C;AAC5C,yDAAyE;AACzE,kEAA2E;AAC3E,sDAA8C;AAC9C,8DAAgE;AAEhE,0CAA0C;AAC1C,MAAM,KAAK,GAAG,IAAA,kBAAK,EACjB,MAAM,CACJ,uIAAuI,CACxI,CACF,CAAC;AAEF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,MAAM,OAAO,GAAG,MAAM,CACpB,wIAAwI,CACzI,CAAC;AAEF;;;GAGG;AACH,kBAAkB;AACL,QAAA,IAAI,GAAsB,IAAA,8BAAW,EAAC;IACjD,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,OAAO;IACV,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;IACZ,IAAI,EAAE,KAAK;IACX,wBAAwB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,mDAAmD;CACrF,EAAE,aAAM,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,OAAO;IACV,CAAC,EAAE,OAAO;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,aAAM;CACb,CAAC,CAAC,EAAE,CAAC;AACR,6CAA6C;AAChC,QAAA,WAAW,GAAsC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;AACxF,+CAA+C;AAClC,QAAA,aAAa,GAAsC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"p521.js","sourceRoot":"","sources":["src/p521.ts"],"names":[],"mappings":";;;AAMA,uCAAuD;AAC1C,QAAA,IAAI,GAAiB,cAAK,CAAC;AAC3B,QAAA,SAAS,GAAiB,cAAK,CAAC;AAChC,QAAA,WAAW,GAAsC,CAAC,GAAG,EAAE,CAAC,qBAAW,CAAC,WAAW,CAAC,EAAE,CAAC;AACnF,QAAA,aAAa,GAAsC,CAAC,GAAG,EAAE,CAAC,qBAAW,CAAC,aAAa,CAAC,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noble/curves",
3
- "version": "1.8.2",
3
+ "version": "1.9.1",
4
4
  "description": "Audited & minimal JS implementation of elliptic curve cryptography",
5
5
  "files": [
6
6
  "*.js",
@@ -32,15 +32,15 @@
32
32
  },
33
33
  "license": "MIT",
34
34
  "dependencies": {
35
- "@noble/hashes": "1.7.2"
35
+ "@noble/hashes": "1.8.0"
36
36
  },
37
37
  "devDependencies": {
38
- "@paulmillr/jsbt": "0.3.3",
38
+ "@paulmillr/jsbt": "0.4.0",
39
39
  "fast-check": "3.0.0",
40
- "micro-bmark": "0.4.0",
41
- "micro-should": "0.5.1",
42
- "prettier": "3.5.2",
43
- "typescript": "5.8.2"
40
+ "micro-bmark": "0.4.1",
41
+ "micro-should": "0.5.3",
42
+ "prettier": "3.5.3",
43
+ "typescript": "5.8.3"
44
44
  },
45
45
  "sideEffects": false,
46
46
  "main": "index.js",
@@ -89,6 +89,10 @@
89
89
  "import": "./esm/abstract/weierstrass.js",
90
90
  "require": "./abstract/weierstrass.js"
91
91
  },
92
+ "./abstract/fft": {
93
+ "import": "./esm/abstract/fft.js",
94
+ "require": "./abstract/fft.js"
95
+ },
92
96
  "./_shortw_utils": {
93
97
  "import": "./esm/_shortw_utils.js",
94
98
  "require": "./_shortw_utils.js"
@@ -121,6 +125,10 @@
121
125
  "import": "./esm/misc.js",
122
126
  "require": "./misc.js"
123
127
  },
128
+ "./nist": {
129
+ "import": "./esm/nist.js",
130
+ "require": "./nist.js"
131
+ },
124
132
  "./p256": {
125
133
  "import": "./esm/p256.js",
126
134
  "require": "./p256.js"
@@ -140,6 +148,106 @@
140
148
  "./secp256k1": {
141
149
  "import": "./esm/secp256k1.js",
142
150
  "require": "./secp256k1.js"
151
+ },
152
+ "./abstract/bls.js": {
153
+ "import": "./esm/abstract/bls.js",
154
+ "require": "./abstract/bls.js"
155
+ },
156
+ "./abstract/curve.js": {
157
+ "import": "./esm/abstract/curve.js",
158
+ "require": "./abstract/curve.js"
159
+ },
160
+ "./abstract/edwards.js": {
161
+ "import": "./esm/abstract/edwards.js",
162
+ "require": "./abstract/edwards.js"
163
+ },
164
+ "./abstract/hash-to-curve.js": {
165
+ "import": "./esm/abstract/hash-to-curve.js",
166
+ "require": "./abstract/hash-to-curve.js"
167
+ },
168
+ "./abstract/modular.js": {
169
+ "import": "./esm/abstract/modular.js",
170
+ "require": "./abstract/modular.js"
171
+ },
172
+ "./abstract/montgomery.js": {
173
+ "import": "./esm/abstract/montgomery.js",
174
+ "require": "./abstract/montgomery.js"
175
+ },
176
+ "./abstract/poseidon.js": {
177
+ "import": "./esm/abstract/poseidon.js",
178
+ "require": "./abstract/poseidon.js"
179
+ },
180
+ "./abstract/tower.js": {
181
+ "import": "./esm/abstract/tower.js",
182
+ "require": "./abstract/tower.js"
183
+ },
184
+ "./abstract/utils.js": {
185
+ "import": "./esm/abstract/utils.js",
186
+ "require": "./abstract/utils.js"
187
+ },
188
+ "./abstract/weierstrass.js": {
189
+ "import": "./esm/abstract/weierstrass.js",
190
+ "require": "./abstract/weierstrass.js"
191
+ },
192
+ "./abstract/fft.js": {
193
+ "import": "./esm/abstract/fft.js",
194
+ "require": "./abstract/fft.js"
195
+ },
196
+ "./_shortw_utils.js": {
197
+ "import": "./esm/_shortw_utils.js",
198
+ "require": "./_shortw_utils.js"
199
+ },
200
+ "./bls12-381.js": {
201
+ "import": "./esm/bls12-381.js",
202
+ "require": "./bls12-381.js"
203
+ },
204
+ "./bn254.js": {
205
+ "import": "./esm/bn254.js",
206
+ "require": "./bn254.js"
207
+ },
208
+ "./ed448.js": {
209
+ "import": "./esm/ed448.js",
210
+ "require": "./ed448.js"
211
+ },
212
+ "./ed25519.js": {
213
+ "import": "./esm/ed25519.js",
214
+ "require": "./ed25519.js"
215
+ },
216
+ "./index.js": {
217
+ "import": "./esm/index.js",
218
+ "require": "./index.js"
219
+ },
220
+ "./jubjub.js": {
221
+ "import": "./esm/jubjub.js",
222
+ "require": "./jubjub.js"
223
+ },
224
+ "./misc.js": {
225
+ "import": "./esm/misc.js",
226
+ "require": "./misc.js"
227
+ },
228
+ "./nist.js": {
229
+ "import": "./esm/nist.js",
230
+ "require": "./nist.js"
231
+ },
232
+ "./p256.js": {
233
+ "import": "./esm/p256.js",
234
+ "require": "./p256.js"
235
+ },
236
+ "./p384.js": {
237
+ "import": "./esm/p384.js",
238
+ "require": "./p384.js"
239
+ },
240
+ "./p521.js": {
241
+ "import": "./esm/p521.js",
242
+ "require": "./p521.js"
243
+ },
244
+ "./pasta.js": {
245
+ "import": "./esm/pasta.js",
246
+ "require": "./pasta.js"
247
+ },
248
+ "./secp256k1.js": {
249
+ "import": "./esm/secp256k1.js",
250
+ "require": "./secp256k1.js"
143
251
  }
144
252
  },
145
253
  "engines": {
@@ -169,7 +277,8 @@
169
277
  "weierstrass",
170
278
  "montgomery",
171
279
  "edwards",
172
- "schnorr"
280
+ "schnorr",
281
+ "fft"
173
282
  ],
174
283
  "funding": "https://paulmillr.com/funding/"
175
284
  }
package/pasta.d.ts CHANGED
@@ -1,2 +1,10 @@
1
- export { pallas, vesta } from './misc.ts';
1
+ /**
2
+ * @deprecated
3
+ * @module
4
+ */
5
+ import { pallas as pn, vesta as vn } from './misc.ts';
6
+ /** @deprecated */
7
+ export declare const pallas: typeof pn;
8
+ /** @deprecated */
9
+ export declare const vesta: typeof vn;
2
10
  //# 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":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"pasta.d.ts","sourceRoot":"","sources":["src/pasta.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,MAAM,WAAW,CAAC;AACtD,kBAAkB;AAClB,eAAO,MAAM,MAAM,EAAE,OAAO,EAAO,CAAC;AACpC,kBAAkB;AAClB,eAAO,MAAM,KAAK,EAAE,OAAO,EAAO,CAAC"}
package/pasta.js CHANGED
@@ -1,7 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.vesta = exports.pallas = void 0;
4
- var misc_ts_1 = require("./misc.js");
5
- Object.defineProperty(exports, "pallas", { enumerable: true, get: function () { return misc_ts_1.pallas; } });
6
- Object.defineProperty(exports, "vesta", { enumerable: true, get: function () { return misc_ts_1.vesta; } });
4
+ /**
5
+ * @deprecated
6
+ * @module
7
+ */
8
+ const misc_ts_1 = require("./misc.js");
9
+ /** @deprecated */
10
+ exports.pallas = misc_ts_1.pallas;
11
+ /** @deprecated */
12
+ exports.vesta = misc_ts_1.vesta;
7
13
  //# sourceMappingURL=pasta.js.map
package/pasta.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pasta.js","sourceRoot":"","sources":["src/pasta.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAAjC,iGAAA,MAAM,OAAA;AAAE,gGAAA,KAAK,OAAA"}
1
+ {"version":3,"file":"pasta.js","sourceRoot":"","sources":["src/pasta.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAAsD;AACtD,kBAAkB;AACL,QAAA,MAAM,GAAc,gBAAE,CAAC;AACpC,kBAAkB;AACL,QAAA,KAAK,GAAc,eAAE,CAAC"}