@noble/curves 1.9.6 → 2.0.0-beta.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 (210) hide show
  1. package/README.md +267 -421
  2. package/abstract/bls.d.ts +49 -111
  3. package/abstract/bls.d.ts.map +1 -1
  4. package/abstract/bls.js +108 -152
  5. package/abstract/bls.js.map +1 -1
  6. package/abstract/curve.d.ts +4 -45
  7. package/abstract/curve.d.ts.map +1 -1
  8. package/abstract/curve.js +22 -47
  9. package/abstract/curve.js.map +1 -1
  10. package/abstract/edwards.d.ts +11 -68
  11. package/abstract/edwards.d.ts.map +1 -1
  12. package/abstract/edwards.js +62 -134
  13. package/abstract/edwards.js.map +1 -1
  14. package/abstract/fft.js +14 -27
  15. package/abstract/fft.js.map +1 -1
  16. package/abstract/hash-to-curve.d.ts +11 -24
  17. package/abstract/hash-to-curve.d.ts.map +1 -1
  18. package/abstract/hash-to-curve.js +30 -35
  19. package/abstract/hash-to-curve.js.map +1 -1
  20. package/abstract/modular.d.ts +5 -17
  21. package/abstract/modular.d.ts.map +1 -1
  22. package/abstract/modular.js +166 -167
  23. package/abstract/modular.js.map +1 -1
  24. package/abstract/montgomery.d.ts +4 -9
  25. package/abstract/montgomery.d.ts.map +1 -1
  26. package/abstract/montgomery.js +15 -18
  27. package/abstract/montgomery.js.map +1 -1
  28. package/abstract/oprf.d.ts +282 -0
  29. package/abstract/oprf.d.ts.map +1 -0
  30. package/abstract/oprf.js +297 -0
  31. package/abstract/oprf.js.map +1 -0
  32. package/abstract/poseidon.js +20 -24
  33. package/abstract/poseidon.js.map +1 -1
  34. package/abstract/tower.d.ts.map +1 -1
  35. package/abstract/tower.js +43 -19
  36. package/abstract/tower.js.map +1 -1
  37. package/abstract/weierstrass.d.ts +11 -145
  38. package/abstract/weierstrass.d.ts.map +1 -1
  39. package/abstract/weierstrass.js +122 -331
  40. package/abstract/weierstrass.js.map +1 -1
  41. package/bls12-381.d.ts +2 -2
  42. package/bls12-381.d.ts.map +1 -1
  43. package/bls12-381.js +171 -180
  44. package/bls12-381.js.map +1 -1
  45. package/bn254.d.ts +58 -10
  46. package/bn254.d.ts.map +1 -1
  47. package/bn254.js +69 -97
  48. package/bn254.js.map +1 -1
  49. package/ed25519.d.ts +12 -31
  50. package/ed25519.d.ts.map +1 -1
  51. package/ed25519.js +95 -137
  52. package/ed25519.js.map +1 -1
  53. package/ed448.d.ts +11 -29
  54. package/ed448.d.ts.map +1 -1
  55. package/ed448.js +85 -123
  56. package/ed448.js.map +1 -1
  57. package/index.js +1 -1
  58. package/misc.d.ts +10 -14
  59. package/misc.d.ts.map +1 -1
  60. package/misc.js +51 -60
  61. package/misc.js.map +1 -1
  62. package/nist.d.ts +11 -14
  63. package/nist.d.ts.map +1 -1
  64. package/nist.js +46 -55
  65. package/nist.js.map +1 -1
  66. package/package.json +8 -223
  67. package/secp256k1.d.ts +7 -23
  68. package/secp256k1.d.ts.map +1 -1
  69. package/secp256k1.js +47 -60
  70. package/secp256k1.js.map +1 -1
  71. package/src/abstract/bls.ts +197 -344
  72. package/src/abstract/curve.ts +7 -80
  73. package/src/abstract/edwards.ts +49 -171
  74. package/src/abstract/hash-to-curve.ts +32 -45
  75. package/src/abstract/modular.ts +144 -130
  76. package/src/abstract/montgomery.ts +19 -20
  77. package/src/abstract/oprf.ts +600 -0
  78. package/src/abstract/tower.ts +0 -3
  79. package/src/abstract/weierstrass.ts +69 -438
  80. package/src/bls12-381.ts +143 -138
  81. package/src/bn254.ts +65 -89
  82. package/src/ed25519.ts +53 -105
  83. package/src/ed448.ts +32 -77
  84. package/src/index.ts +1 -1
  85. package/src/misc.ts +66 -49
  86. package/src/nist.ts +48 -57
  87. package/src/secp256k1.ts +32 -65
  88. package/src/utils.ts +41 -61
  89. package/src/webcrypto.ts +362 -0
  90. package/utils.d.ts +28 -19
  91. package/utils.d.ts.map +1 -1
  92. package/utils.js +45 -121
  93. package/utils.js.map +1 -1
  94. package/webcrypto.d.ts +47 -0
  95. package/webcrypto.d.ts.map +1 -0
  96. package/webcrypto.js +231 -0
  97. package/webcrypto.js.map +1 -0
  98. package/esm/_shortw_utils.d.ts +0 -19
  99. package/esm/_shortw_utils.d.ts.map +0 -1
  100. package/esm/_shortw_utils.js +0 -16
  101. package/esm/_shortw_utils.js.map +0 -1
  102. package/esm/abstract/bls.d.ts +0 -190
  103. package/esm/abstract/bls.d.ts.map +0 -1
  104. package/esm/abstract/bls.js +0 -408
  105. package/esm/abstract/bls.js.map +0 -1
  106. package/esm/abstract/curve.d.ts +0 -231
  107. package/esm/abstract/curve.d.ts.map +0 -1
  108. package/esm/abstract/curve.js +0 -465
  109. package/esm/abstract/curve.js.map +0 -1
  110. package/esm/abstract/edwards.d.ts +0 -243
  111. package/esm/abstract/edwards.d.ts.map +0 -1
  112. package/esm/abstract/edwards.js +0 -627
  113. package/esm/abstract/edwards.js.map +0 -1
  114. package/esm/abstract/fft.d.ts +0 -122
  115. package/esm/abstract/fft.d.ts.map +0 -1
  116. package/esm/abstract/fft.js +0 -425
  117. package/esm/abstract/fft.js.map +0 -1
  118. package/esm/abstract/hash-to-curve.d.ts +0 -102
  119. package/esm/abstract/hash-to-curve.d.ts.map +0 -1
  120. package/esm/abstract/hash-to-curve.js +0 -203
  121. package/esm/abstract/hash-to-curve.js.map +0 -1
  122. package/esm/abstract/modular.d.ts +0 -171
  123. package/esm/abstract/modular.d.ts.map +0 -1
  124. package/esm/abstract/modular.js +0 -530
  125. package/esm/abstract/modular.js.map +0 -1
  126. package/esm/abstract/montgomery.d.ts +0 -30
  127. package/esm/abstract/montgomery.d.ts.map +0 -1
  128. package/esm/abstract/montgomery.js +0 -157
  129. package/esm/abstract/montgomery.js.map +0 -1
  130. package/esm/abstract/poseidon.d.ts +0 -68
  131. package/esm/abstract/poseidon.d.ts.map +0 -1
  132. package/esm/abstract/poseidon.js +0 -296
  133. package/esm/abstract/poseidon.js.map +0 -1
  134. package/esm/abstract/tower.d.ts +0 -95
  135. package/esm/abstract/tower.d.ts.map +0 -1
  136. package/esm/abstract/tower.js +0 -714
  137. package/esm/abstract/tower.js.map +0 -1
  138. package/esm/abstract/utils.d.ts +0 -5
  139. package/esm/abstract/utils.d.ts.map +0 -1
  140. package/esm/abstract/utils.js +0 -7
  141. package/esm/abstract/utils.js.map +0 -1
  142. package/esm/abstract/weierstrass.d.ts +0 -413
  143. package/esm/abstract/weierstrass.d.ts.map +0 -1
  144. package/esm/abstract/weierstrass.js +0 -1413
  145. package/esm/abstract/weierstrass.js.map +0 -1
  146. package/esm/bls12-381.d.ts +0 -16
  147. package/esm/bls12-381.d.ts.map +0 -1
  148. package/esm/bls12-381.js +0 -705
  149. package/esm/bls12-381.js.map +0 -1
  150. package/esm/bn254.d.ts +0 -18
  151. package/esm/bn254.d.ts.map +0 -1
  152. package/esm/bn254.js +0 -214
  153. package/esm/bn254.js.map +0 -1
  154. package/esm/ed25519.d.ts +0 -106
  155. package/esm/ed25519.d.ts.map +0 -1
  156. package/esm/ed25519.js +0 -467
  157. package/esm/ed25519.js.map +0 -1
  158. package/esm/ed448.d.ts +0 -100
  159. package/esm/ed448.d.ts.map +0 -1
  160. package/esm/ed448.js +0 -459
  161. package/esm/ed448.js.map +0 -1
  162. package/esm/index.d.ts +0 -2
  163. package/esm/index.d.ts.map +0 -1
  164. package/esm/index.js +0 -17
  165. package/esm/index.js.map +0 -1
  166. package/esm/jubjub.d.ts +0 -12
  167. package/esm/jubjub.d.ts.map +0 -1
  168. package/esm/jubjub.js +0 -12
  169. package/esm/jubjub.js.map +0 -1
  170. package/esm/misc.d.ts +0 -19
  171. package/esm/misc.d.ts.map +0 -1
  172. package/esm/misc.js +0 -109
  173. package/esm/misc.js.map +0 -1
  174. package/esm/nist.d.ts +0 -21
  175. package/esm/nist.d.ts.map +0 -1
  176. package/esm/nist.js +0 -132
  177. package/esm/nist.js.map +0 -1
  178. package/esm/p256.d.ts +0 -16
  179. package/esm/p256.d.ts.map +0 -1
  180. package/esm/p256.js +0 -16
  181. package/esm/p256.js.map +0 -1
  182. package/esm/p384.d.ts +0 -16
  183. package/esm/p384.d.ts.map +0 -1
  184. package/esm/p384.js +0 -16
  185. package/esm/p384.js.map +0 -1
  186. package/esm/p521.d.ts +0 -16
  187. package/esm/p521.d.ts.map +0 -1
  188. package/esm/p521.js +0 -16
  189. package/esm/p521.js.map +0 -1
  190. package/esm/package.json +0 -4
  191. package/esm/pasta.d.ts +0 -10
  192. package/esm/pasta.d.ts.map +0 -1
  193. package/esm/pasta.js +0 -10
  194. package/esm/pasta.js.map +0 -1
  195. package/esm/secp256k1.d.ts +0 -89
  196. package/esm/secp256k1.d.ts.map +0 -1
  197. package/esm/secp256k1.js +0 -294
  198. package/esm/secp256k1.js.map +0 -1
  199. package/esm/utils.d.ts +0 -110
  200. package/esm/utils.d.ts.map +0 -1
  201. package/esm/utils.js +0 -322
  202. package/esm/utils.js.map +0 -1
  203. package/src/_shortw_utils.ts +0 -21
  204. package/src/abstract/utils.ts +0 -7
  205. package/src/jubjub.ts +0 -12
  206. package/src/p256.ts +0 -15
  207. package/src/p384.ts +0 -15
  208. package/src/p521.ts +0 -15
  209. package/src/package.json +0 -3
  210. package/src/pasta.ts +0 -9
package/esm/secp256k1.js DELETED
@@ -1,294 +0,0 @@
1
- /**
2
- * SECG secp256k1. See [pdf](https://www.secg.org/sec2-v2.pdf).
3
- *
4
- * Belongs to Koblitz curves: it has efficiently-computable GLV endomorphism ψ,
5
- * check out {@link EndomorphismOpts}. Seems to be rigid (not backdoored).
6
- * @module
7
- */
8
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
9
- import { sha256 } from '@noble/hashes/sha2.js';
10
- import { randomBytes } from '@noble/hashes/utils.js';
11
- import { createCurve } from "./_shortw_utils.js";
12
- import { createHasher, isogenyMap, } from "./abstract/hash-to-curve.js";
13
- import { Field, mapHashToField, mod, pow2 } from "./abstract/modular.js";
14
- import { _normFnElement, mapToCurveSimpleSWU, } from "./abstract/weierstrass.js";
15
- import { bytesToNumberBE, concatBytes, ensureBytes, inRange, numberToBytesBE, utf8ToBytes, } from "./utils.js";
16
- // Seems like generator was produced from some seed:
17
- // `Point.BASE.multiply(Point.Fn.inv(2n, N)).toAffine().x`
18
- // // gives short x 0x3b78ce563f89a0ed9414f5aa28ad0d96d6795f9c63n
19
- const secp256k1_CURVE = {
20
- p: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f'),
21
- n: BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141'),
22
- h: BigInt(1),
23
- a: BigInt(0),
24
- b: BigInt(7),
25
- Gx: BigInt('0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'),
26
- Gy: BigInt('0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8'),
27
- };
28
- const secp256k1_ENDO = {
29
- beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),
30
- basises: [
31
- [BigInt('0x3086d221a7d46bcde86c90e49284eb15'), -BigInt('0xe4437ed6010e88286f547fa90abfe4c3')],
32
- [BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8'), BigInt('0x3086d221a7d46bcde86c90e49284eb15')],
33
- ],
34
- };
35
- const _0n = /* @__PURE__ */ BigInt(0);
36
- const _1n = /* @__PURE__ */ BigInt(1);
37
- const _2n = /* @__PURE__ */ BigInt(2);
38
- /**
39
- * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.
40
- * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]
41
- */
42
- function sqrtMod(y) {
43
- const P = secp256k1_CURVE.p;
44
- // prettier-ignore
45
- const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);
46
- // prettier-ignore
47
- const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);
48
- const b2 = (y * y * y) % P; // x^3, 11
49
- const b3 = (b2 * b2 * y) % P; // x^7
50
- const b6 = (pow2(b3, _3n, P) * b3) % P;
51
- const b9 = (pow2(b6, _3n, P) * b3) % P;
52
- const b11 = (pow2(b9, _2n, P) * b2) % P;
53
- const b22 = (pow2(b11, _11n, P) * b11) % P;
54
- const b44 = (pow2(b22, _22n, P) * b22) % P;
55
- const b88 = (pow2(b44, _44n, P) * b44) % P;
56
- const b176 = (pow2(b88, _88n, P) * b88) % P;
57
- const b220 = (pow2(b176, _44n, P) * b44) % P;
58
- const b223 = (pow2(b220, _3n, P) * b3) % P;
59
- const t1 = (pow2(b223, _23n, P) * b22) % P;
60
- const t2 = (pow2(t1, _6n, P) * b2) % P;
61
- const root = pow2(t2, _2n, P);
62
- if (!Fpk1.eql(Fpk1.sqr(root), y))
63
- throw new Error('Cannot find square root');
64
- return root;
65
- }
66
- const Fpk1 = Field(secp256k1_CURVE.p, { sqrt: sqrtMod });
67
- /**
68
- * secp256k1 curve, ECDSA and ECDH methods.
69
- *
70
- * Field: `2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n`
71
- *
72
- * @example
73
- * ```js
74
- * import { secp256k1 } from '@noble/curves/secp256k1';
75
- * const { secretKey, publicKey } = secp256k1.keygen();
76
- * const msg = new TextEncoder().encode('hello');
77
- * const sig = secp256k1.sign(msg, secretKey);
78
- * const isValid = secp256k1.verify(sig, msg, publicKey) === true;
79
- * ```
80
- */
81
- export const secp256k1 = createCurve({ ...secp256k1_CURVE, Fp: Fpk1, lowS: true, endo: secp256k1_ENDO }, sha256);
82
- // Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.
83
- // https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki
84
- /** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */
85
- const TAGGED_HASH_PREFIXES = {};
86
- function taggedHash(tag, ...messages) {
87
- let tagP = TAGGED_HASH_PREFIXES[tag];
88
- if (tagP === undefined) {
89
- const tagH = sha256(utf8ToBytes(tag));
90
- tagP = concatBytes(tagH, tagH);
91
- TAGGED_HASH_PREFIXES[tag] = tagP;
92
- }
93
- return sha256(concatBytes(tagP, ...messages));
94
- }
95
- // ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03
96
- const pointToBytes = (point) => point.toBytes(true).slice(1);
97
- const Pointk1 = /* @__PURE__ */ (() => secp256k1.Point)();
98
- const hasEven = (y) => y % _2n === _0n;
99
- // Calculate point, scalar and bytes
100
- function schnorrGetExtPubKey(priv) {
101
- const { Fn, BASE } = Pointk1;
102
- const d_ = _normFnElement(Fn, priv);
103
- const p = BASE.multiply(d_); // P = d'⋅G; 0 < d' < n check is done inside
104
- const scalar = hasEven(p.y) ? d_ : Fn.neg(d_);
105
- return { scalar, bytes: pointToBytes(p) };
106
- }
107
- /**
108
- * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.
109
- * @returns valid point checked for being on-curve
110
- */
111
- function lift_x(x) {
112
- const Fp = Fpk1;
113
- if (!Fp.isValidNot0(x))
114
- throw new Error('invalid x: Fail if x ≥ p');
115
- const xx = Fp.create(x * x);
116
- const c = Fp.create(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.
117
- let y = Fp.sqrt(c); // Let y = c^(p+1)/4 mod p. Same as sqrt().
118
- // Return the unique point P such that x(P) = x and
119
- // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.
120
- if (!hasEven(y))
121
- y = Fp.neg(y);
122
- const p = Pointk1.fromAffine({ x, y });
123
- p.assertValidity();
124
- return p;
125
- }
126
- const num = bytesToNumberBE;
127
- /**
128
- * Create tagged hash, convert it to bigint, reduce modulo-n.
129
- */
130
- function challenge(...args) {
131
- return Pointk1.Fn.create(num(taggedHash('BIP0340/challenge', ...args)));
132
- }
133
- /**
134
- * Schnorr public key is just `x` coordinate of Point as per BIP340.
135
- */
136
- function schnorrGetPublicKey(secretKey) {
137
- return schnorrGetExtPubKey(secretKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)
138
- }
139
- /**
140
- * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.
141
- * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.
142
- */
143
- function schnorrSign(message, secretKey, auxRand = randomBytes(32)) {
144
- const { Fn } = Pointk1;
145
- const m = ensureBytes('message', message);
146
- const { bytes: px, scalar: d } = schnorrGetExtPubKey(secretKey); // checks for isWithinCurveOrder
147
- const a = ensureBytes('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array
148
- const t = Fn.toBytes(d ^ num(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)
149
- const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)
150
- // Let k' = int(rand) mod n. Fail if k' = 0. Let R = k'⋅G
151
- const { bytes: rx, scalar: k } = schnorrGetExtPubKey(rand);
152
- const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.
153
- const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).
154
- sig.set(rx, 0);
155
- sig.set(Fn.toBytes(Fn.create(k + e * d)), 32);
156
- // If Verify(bytes(P), m, sig) (see below) returns failure, abort
157
- if (!schnorrVerify(sig, m, px))
158
- throw new Error('sign: Invalid signature produced');
159
- return sig;
160
- }
161
- /**
162
- * Verifies Schnorr signature.
163
- * Will swallow errors & return false except for initial type validation of arguments.
164
- */
165
- function schnorrVerify(signature, message, publicKey) {
166
- const { Fn, BASE } = Pointk1;
167
- const sig = ensureBytes('signature', signature, 64);
168
- const m = ensureBytes('message', message);
169
- const pub = ensureBytes('publicKey', publicKey, 32);
170
- try {
171
- const P = lift_x(num(pub)); // P = lift_x(int(pk)); fail if that fails
172
- const r = num(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.
173
- if (!inRange(r, _1n, secp256k1_CURVE.p))
174
- return false;
175
- const s = num(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.
176
- if (!inRange(s, _1n, secp256k1_CURVE.n))
177
- return false;
178
- // int(challenge(bytes(r)||bytes(P)||m))%n
179
- const e = challenge(Fn.toBytes(r), pointToBytes(P), m);
180
- // R = s⋅G - e⋅P, where -eP == (n-e)P
181
- const R = BASE.multiplyUnsafe(s).add(P.multiplyUnsafe(Fn.neg(e)));
182
- const { x, y } = R.toAffine();
183
- // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.
184
- if (R.is0() || !hasEven(y) || x !== r)
185
- return false;
186
- return true;
187
- }
188
- catch (error) {
189
- return false;
190
- }
191
- }
192
- /**
193
- * Schnorr signatures over secp256k1.
194
- * https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki
195
- * @example
196
- * ```js
197
- * import { schnorr } from '@noble/curves/secp256k1';
198
- * const { secretKey, publicKey } = schnorr.keygen();
199
- * // const publicKey = schnorr.getPublicKey(secretKey);
200
- * const msg = new TextEncoder().encode('hello');
201
- * const sig = schnorr.sign(msg, secretKey);
202
- * const isValid = schnorr.verify(sig, msg, publicKey);
203
- * ```
204
- */
205
- export const schnorr = /* @__PURE__ */ (() => {
206
- const size = 32;
207
- const seedLength = 48;
208
- const randomSecretKey = (seed = randomBytes(seedLength)) => {
209
- return mapHashToField(seed, secp256k1_CURVE.n);
210
- };
211
- // TODO: remove
212
- secp256k1.utils.randomSecretKey;
213
- function keygen(seed) {
214
- const secretKey = randomSecretKey(seed);
215
- return { secretKey, publicKey: schnorrGetPublicKey(secretKey) };
216
- }
217
- return {
218
- keygen,
219
- getPublicKey: schnorrGetPublicKey,
220
- sign: schnorrSign,
221
- verify: schnorrVerify,
222
- Point: Pointk1,
223
- utils: {
224
- randomSecretKey: randomSecretKey,
225
- randomPrivateKey: randomSecretKey,
226
- taggedHash,
227
- // TODO: remove
228
- lift_x,
229
- pointToBytes,
230
- numberToBytesBE,
231
- bytesToNumberBE,
232
- mod,
233
- },
234
- lengths: {
235
- secretKey: size,
236
- publicKey: size,
237
- publicKeyHasPrefix: false,
238
- signature: size * 2,
239
- seed: seedLength,
240
- },
241
- };
242
- })();
243
- const isoMap = /* @__PURE__ */ (() => isogenyMap(Fpk1, [
244
- // xNum
245
- [
246
- '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',
247
- '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',
248
- '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',
249
- '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',
250
- ],
251
- // xDen
252
- [
253
- '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',
254
- '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',
255
- '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1
256
- ],
257
- // yNum
258
- [
259
- '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',
260
- '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',
261
- '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',
262
- '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',
263
- ],
264
- // yDen
265
- [
266
- '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',
267
- '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',
268
- '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',
269
- '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1
270
- ],
271
- ].map((i) => i.map((j) => BigInt(j)))))();
272
- const mapSWU = /* @__PURE__ */ (() => mapToCurveSimpleSWU(Fpk1, {
273
- A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),
274
- B: BigInt('1771'),
275
- Z: Fpk1.create(BigInt('-11')),
276
- }))();
277
- /** Hashing / encoding to secp256k1 points / field. RFC 9380 methods. */
278
- export const secp256k1_hasher = /* @__PURE__ */ (() => createHasher(secp256k1.Point, (scalars) => {
279
- const { x, y } = mapSWU(Fpk1.create(scalars[0]));
280
- return isoMap(x, y);
281
- }, {
282
- DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',
283
- encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',
284
- p: Fpk1.ORDER,
285
- m: 1,
286
- k: 128,
287
- expand: 'xmd',
288
- hash: sha256,
289
- }))();
290
- /** @deprecated use `import { secp256k1_hasher } from '@noble/curves/secp256k1.js';` */
291
- export const hashToCurve = /* @__PURE__ */ (() => secp256k1_hasher.hashToCurve)();
292
- /** @deprecated use `import { secp256k1_hasher } from '@noble/curves/secp256k1.js';` */
293
- export const encodeToCurve = /* @__PURE__ */ (() => secp256k1_hasher.encodeToCurve)();
294
- //# sourceMappingURL=secp256k1.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"secp256k1.js","sourceRoot":"","sources":["../src/secp256k1.ts"],"names":[],"mappings":"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"}
package/esm/utils.d.ts DELETED
@@ -1,110 +0,0 @@
1
- export { abytes, anumber, bytesToHex, bytesToUtf8, concatBytes, hexToBytes, isBytes, randomBytes, utf8ToBytes, } from '@noble/hashes/utils.js';
2
- export type Hex = Uint8Array | string;
3
- export type PrivKey = Hex | bigint;
4
- export type CHash = {
5
- (message: Uint8Array | string): Uint8Array;
6
- blockLen: number;
7
- outputLen: number;
8
- create(opts?: {
9
- dkLen?: number;
10
- }): any;
11
- };
12
- export type FHash = (message: Uint8Array | string) => Uint8Array;
13
- export declare function abool(title: string, value: boolean): void;
14
- export declare function _abool2(value: boolean, title?: string): boolean;
15
- /** Asserts something is Uint8Array. */
16
- export declare function _abytes2(value: Uint8Array, length?: number, title?: string): Uint8Array;
17
- export declare function numberToHexUnpadded(num: number | bigint): string;
18
- export declare function hexToNumber(hex: string): bigint;
19
- export declare function bytesToNumberBE(bytes: Uint8Array): bigint;
20
- export declare function bytesToNumberLE(bytes: Uint8Array): bigint;
21
- export declare function numberToBytesBE(n: number | bigint, len: number): Uint8Array;
22
- export declare function numberToBytesLE(n: number | bigint, len: number): Uint8Array;
23
- export declare function numberToVarBytesBE(n: number | bigint): Uint8Array;
24
- /**
25
- * Takes hex string or Uint8Array, converts to Uint8Array.
26
- * Validates output length.
27
- * Will throw error for other types.
28
- * @param title descriptive title for an error e.g. 'secret key'
29
- * @param hex hex string or Uint8Array
30
- * @param expectedLength optional, will compare to result array's length
31
- * @returns
32
- */
33
- export declare function ensureBytes(title: string, hex: Hex, expectedLength?: number): Uint8Array;
34
- export declare function equalBytes(a: Uint8Array, b: Uint8Array): boolean;
35
- /**
36
- * Copies Uint8Array. We can't use u8a.slice(), because u8a can be Buffer,
37
- * and Buffer#slice creates mutable copy. Never use Buffers!
38
- */
39
- export declare function copyBytes(bytes: Uint8Array): Uint8Array;
40
- /**
41
- * Decodes 7-bit ASCII string to Uint8Array, throws on non-ascii symbols
42
- * Should be safe to use for things expected to be ASCII.
43
- * Returns exact same result as utf8ToBytes for ASCII or throws.
44
- */
45
- export declare function asciiToBytes(ascii: string): Uint8Array;
46
- export declare function inRange(n: bigint, min: bigint, max: bigint): boolean;
47
- /**
48
- * Asserts min <= n < max. NOTE: It's < max and not <= max.
49
- * @example
50
- * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)
51
- */
52
- export declare function aInRange(title: string, n: bigint, min: bigint, max: bigint): void;
53
- /**
54
- * Calculates amount of bits in a bigint.
55
- * Same as `n.toString(2).length`
56
- * TODO: merge with nLength in modular
57
- */
58
- export declare function bitLen(n: bigint): number;
59
- /**
60
- * Gets single bit at position.
61
- * NOTE: first bit position is 0 (same as arrays)
62
- * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`
63
- */
64
- export declare function bitGet(n: bigint, pos: number): bigint;
65
- /**
66
- * Sets single bit at position.
67
- */
68
- export declare function bitSet(n: bigint, pos: number, value: boolean): bigint;
69
- /**
70
- * Calculate mask for N bits. Not using ** operator with bigints because of old engines.
71
- * Same as BigInt(`0b${Array(i).fill('1').join('')}`)
72
- */
73
- export declare const bitMask: (n: number) => bigint;
74
- type Pred<T> = (v: Uint8Array) => T | undefined;
75
- /**
76
- * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.
77
- * @returns function that will call DRBG until 2nd arg returns something meaningful
78
- * @example
79
- * const drbg = createHmacDRBG<Key>(32, 32, hmac);
80
- * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined
81
- */
82
- export declare function createHmacDrbg<T>(hashLen: number, qByteLen: number, hmacFn: (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array): (seed: Uint8Array, predicate: Pred<T>) => T;
83
- declare const validatorFns: {
84
- readonly bigint: (val: any) => boolean;
85
- readonly function: (val: any) => boolean;
86
- readonly boolean: (val: any) => boolean;
87
- readonly string: (val: any) => boolean;
88
- readonly stringOrUint8Array: (val: any) => boolean;
89
- readonly isSafeInteger: (val: any) => boolean;
90
- readonly array: (val: any) => boolean;
91
- readonly field: (val: any, object: any) => any;
92
- readonly hash: (val: any) => boolean;
93
- };
94
- type Validator = keyof typeof validatorFns;
95
- type ValMap<T extends Record<string, any>> = {
96
- [K in keyof T]?: Validator;
97
- };
98
- export declare function validateObject<T extends Record<string, any>>(object: T, validators: ValMap<T>, optValidators?: ValMap<T>): T;
99
- export declare function isHash(val: CHash): boolean;
100
- export declare function _validateObject(object: Record<string, any>, fields: Record<string, string>, optFields?: Record<string, string>): void;
101
- /**
102
- * throws not implemented error
103
- */
104
- export declare const notImplemented: () => never;
105
- /**
106
- * Memoizes (caches) computation result.
107
- * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.
108
- */
109
- export declare function memoized<T extends object, R, O extends any[]>(fn: (arg: T, ...args: O) => R): (arg: T, ...args: O) => R;
110
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}