@noble/curves 1.9.1 → 1.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +238 -227
- package/_shortw_utils.d.ts +8 -5
- package/_shortw_utils.d.ts.map +1 -1
- package/_shortw_utils.js +3 -8
- package/_shortw_utils.js.map +1 -1
- package/abstract/bls.d.ts +123 -62
- package/abstract/bls.d.ts.map +1 -1
- package/abstract/bls.js +219 -163
- package/abstract/bls.js.map +1 -1
- package/abstract/curve.d.ts +142 -21
- package/abstract/curve.d.ts.map +1 -1
- package/abstract/curve.js +224 -143
- package/abstract/curve.js.map +1 -1
- package/abstract/edwards.d.ts +190 -49
- package/abstract/edwards.d.ts.map +1 -1
- package/abstract/edwards.js +322 -136
- package/abstract/edwards.js.map +1 -1
- package/abstract/fft.d.ts +12 -10
- package/abstract/fft.d.ts.map +1 -1
- package/abstract/fft.js +12 -13
- package/abstract/fft.js.map +1 -1
- package/abstract/hash-to-curve.d.ts +31 -13
- package/abstract/hash-to-curve.d.ts.map +1 -1
- package/abstract/hash-to-curve.js +34 -19
- package/abstract/hash-to-curve.js.map +1 -1
- package/abstract/modular.d.ts +31 -13
- package/abstract/modular.d.ts.map +1 -1
- package/abstract/modular.js +125 -52
- package/abstract/modular.js.map +1 -1
- package/abstract/montgomery.d.ts +18 -5
- package/abstract/montgomery.d.ts.map +1 -1
- package/abstract/montgomery.js +23 -6
- package/abstract/montgomery.js.map +1 -1
- package/abstract/poseidon.d.ts +5 -13
- package/abstract/poseidon.d.ts.map +1 -1
- package/abstract/poseidon.js +12 -7
- package/abstract/poseidon.js.map +1 -1
- package/abstract/tower.d.ts +23 -49
- package/abstract/tower.d.ts.map +1 -1
- package/abstract/tower.js +9 -3
- package/abstract/tower.js.map +1 -1
- package/abstract/utils.d.ts +1 -115
- package/abstract/utils.d.ts.map +1 -1
- package/abstract/utils.js +17 -371
- package/abstract/utils.js.map +1 -1
- package/abstract/weierstrass.d.ts +206 -124
- package/abstract/weierstrass.d.ts.map +1 -1
- package/abstract/weierstrass.js +747 -604
- package/abstract/weierstrass.js.map +1 -1
- package/bls12-381.d.ts +2 -0
- package/bls12-381.d.ts.map +1 -1
- package/bls12-381.js +504 -466
- package/bls12-381.js.map +1 -1
- package/bn254.d.ts +2 -0
- package/bn254.d.ts.map +1 -1
- package/bn254.js +44 -32
- package/bn254.js.map +1 -1
- package/ed25519.d.ts +55 -66
- package/ed25519.d.ts.map +1 -1
- package/ed25519.js +172 -186
- package/ed25519.js.map +1 -1
- package/ed448.d.ts +60 -57
- package/ed448.d.ts.map +1 -1
- package/ed448.js +172 -166
- package/ed448.js.map +1 -1
- package/esm/_shortw_utils.d.ts +8 -5
- package/esm/_shortw_utils.d.ts.map +1 -1
- package/esm/_shortw_utils.js +3 -8
- package/esm/_shortw_utils.js.map +1 -1
- package/esm/abstract/bls.d.ts +123 -62
- package/esm/abstract/bls.d.ts.map +1 -1
- package/esm/abstract/bls.js +220 -164
- package/esm/abstract/bls.js.map +1 -1
- package/esm/abstract/curve.d.ts +142 -21
- package/esm/abstract/curve.d.ts.map +1 -1
- package/esm/abstract/curve.js +219 -143
- package/esm/abstract/curve.js.map +1 -1
- package/esm/abstract/edwards.d.ts +190 -49
- package/esm/abstract/edwards.d.ts.map +1 -1
- package/esm/abstract/edwards.js +320 -138
- package/esm/abstract/edwards.js.map +1 -1
- package/esm/abstract/fft.d.ts +12 -10
- package/esm/abstract/fft.d.ts.map +1 -1
- package/esm/abstract/fft.js +10 -11
- package/esm/abstract/fft.js.map +1 -1
- package/esm/abstract/hash-to-curve.d.ts +31 -13
- package/esm/abstract/hash-to-curve.d.ts.map +1 -1
- package/esm/abstract/hash-to-curve.js +33 -19
- package/esm/abstract/hash-to-curve.js.map +1 -1
- package/esm/abstract/modular.d.ts +31 -13
- package/esm/abstract/modular.d.ts.map +1 -1
- package/esm/abstract/modular.js +124 -51
- package/esm/abstract/modular.js.map +1 -1
- package/esm/abstract/montgomery.d.ts +18 -5
- package/esm/abstract/montgomery.d.ts.map +1 -1
- package/esm/abstract/montgomery.js +23 -6
- package/esm/abstract/montgomery.js.map +1 -1
- package/esm/abstract/poseidon.d.ts +5 -13
- package/esm/abstract/poseidon.d.ts.map +1 -1
- package/esm/abstract/poseidon.js +12 -7
- package/esm/abstract/poseidon.js.map +1 -1
- package/esm/abstract/tower.d.ts +23 -49
- package/esm/abstract/tower.d.ts.map +1 -1
- package/esm/abstract/tower.js +9 -3
- package/esm/abstract/tower.js.map +1 -1
- package/esm/abstract/utils.d.ts +1 -115
- package/esm/abstract/utils.d.ts.map +1 -1
- package/esm/abstract/utils.js +3 -344
- package/esm/abstract/utils.js.map +1 -1
- package/esm/abstract/weierstrass.d.ts +206 -124
- package/esm/abstract/weierstrass.d.ts.map +1 -1
- package/esm/abstract/weierstrass.js +743 -605
- package/esm/abstract/weierstrass.js.map +1 -1
- package/esm/bls12-381.d.ts +2 -0
- package/esm/bls12-381.d.ts.map +1 -1
- package/esm/bls12-381.js +503 -465
- package/esm/bls12-381.js.map +1 -1
- package/esm/bn254.d.ts +2 -0
- package/esm/bn254.d.ts.map +1 -1
- package/esm/bn254.js +41 -29
- package/esm/bn254.js.map +1 -1
- package/esm/ed25519.d.ts +55 -66
- package/esm/ed25519.d.ts.map +1 -1
- package/esm/ed25519.js +170 -183
- package/esm/ed25519.js.map +1 -1
- package/esm/ed448.d.ts +60 -57
- package/esm/ed448.d.ts.map +1 -1
- package/esm/ed448.js +169 -162
- package/esm/ed448.js.map +1 -1
- package/esm/index.js +7 -9
- package/esm/index.js.map +1 -1
- package/esm/jubjub.d.ts +3 -3
- package/esm/jubjub.d.ts.map +1 -1
- package/esm/jubjub.js +3 -3
- package/esm/jubjub.js.map +1 -1
- package/esm/misc.d.ts +3 -5
- package/esm/misc.d.ts.map +1 -1
- package/esm/misc.js +31 -29
- package/esm/misc.js.map +1 -1
- package/esm/nist.d.ts +7 -22
- package/esm/nist.d.ts.map +1 -1
- package/esm/nist.js +106 -101
- package/esm/nist.js.map +1 -1
- package/esm/p256.d.ts +7 -3
- package/esm/p256.d.ts.map +1 -1
- package/esm/p256.js +4 -0
- package/esm/p256.js.map +1 -1
- package/esm/p384.d.ts +7 -4
- package/esm/p384.d.ts.map +1 -1
- package/esm/p384.js +4 -1
- package/esm/p384.js.map +1 -1
- package/esm/p521.d.ts +7 -3
- package/esm/p521.d.ts.map +1 -1
- package/esm/p521.js +4 -0
- package/esm/p521.js.map +1 -1
- package/esm/secp256k1.d.ts +38 -21
- package/esm/secp256k1.d.ts.map +1 -1
- package/esm/secp256k1.js +112 -104
- package/esm/secp256k1.js.map +1 -1
- package/esm/utils.d.ts +96 -0
- package/esm/utils.d.ts.map +1 -0
- package/esm/utils.js +279 -0
- package/esm/utils.js.map +1 -0
- package/index.js +7 -9
- package/index.js.map +1 -1
- package/jubjub.d.ts +3 -3
- package/jubjub.d.ts.map +1 -1
- package/jubjub.js +3 -3
- package/jubjub.js.map +1 -1
- package/misc.d.ts +3 -5
- package/misc.d.ts.map +1 -1
- package/misc.js +35 -33
- package/misc.js.map +1 -1
- package/nist.d.ts +7 -22
- package/nist.d.ts.map +1 -1
- package/nist.js +106 -101
- package/nist.js.map +1 -1
- package/p256.d.ts +7 -3
- package/p256.d.ts.map +1 -1
- package/p256.js +4 -0
- package/p256.js.map +1 -1
- package/p384.d.ts +7 -4
- package/p384.d.ts.map +1 -1
- package/p384.js +4 -1
- package/p384.js.map +1 -1
- package/p521.d.ts +7 -3
- package/p521.d.ts.map +1 -1
- package/p521.js +4 -0
- package/p521.js.map +1 -1
- package/package.json +17 -6
- package/secp256k1.d.ts +38 -21
- package/secp256k1.d.ts.map +1 -1
- package/secp256k1.js +112 -104
- package/secp256k1.js.map +1 -1
- package/src/_shortw_utils.ts +6 -15
- package/src/abstract/bls.ts +428 -251
- package/src/abstract/curve.ts +307 -149
- package/src/abstract/edwards.ts +555 -203
- package/src/abstract/fft.ts +30 -19
- package/src/abstract/hash-to-curve.ts +75 -34
- package/src/abstract/modular.ts +131 -59
- package/src/abstract/montgomery.ts +44 -15
- package/src/abstract/poseidon.ts +22 -18
- package/src/abstract/tower.ts +40 -71
- package/src/abstract/utils.ts +3 -378
- package/src/abstract/weierstrass.ts +1086 -746
- package/src/bls12-381.ts +549 -490
- package/src/bn254.ts +47 -35
- package/src/ed25519.ts +214 -216
- package/src/ed448.ts +251 -220
- package/src/index.ts +7 -9
- package/src/jubjub.ts +3 -3
- package/src/misc.ts +41 -40
- package/src/nist.ts +161 -126
- package/src/p256.ts +7 -3
- package/src/p384.ts +7 -5
- package/src/p521.ts +7 -3
- package/src/secp256k1.ts +145 -115
- package/src/utils.ts +328 -0
- package/utils.d.ts +96 -0
- package/utils.d.ts.map +1 -0
- package/utils.js +313 -0
- package/utils.js.map +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@noble/curves",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.3",
|
|
4
4
|
"description": "Audited & minimal JS implementation of elliptic curve cryptography",
|
|
5
5
|
"files": [
|
|
6
6
|
"*.js",
|
|
@@ -9,11 +9,13 @@
|
|
|
9
9
|
"*.d.ts.map",
|
|
10
10
|
"esm",
|
|
11
11
|
"src",
|
|
12
|
-
"abstract"
|
|
12
|
+
"abstract",
|
|
13
|
+
"!oprf.*",
|
|
14
|
+
"!webcrypto.*"
|
|
13
15
|
],
|
|
14
16
|
"scripts": {
|
|
15
|
-
"bench": "npm run bench:install; cd benchmark; node secp256k1.js; node curves.js; node utils.js; node bls.js",
|
|
16
|
-
"bench:install": "cd benchmark; npm install; npm install
|
|
17
|
+
"bench": "npm run bench:install; cd test/benchmark; node secp256k1.js; node curves.js; node utils.js; node bls.js",
|
|
18
|
+
"bench:install": "cd test/benchmark; npm install; npm install ../.. --install-links",
|
|
17
19
|
"build": "tsc && tsc -p tsconfig.cjs.json",
|
|
18
20
|
"build:release": "npx jsbt esbuild test/build",
|
|
19
21
|
"build:clean": "rm {.,esm,abstract,esm/abstract}/*.{js,d.ts,d.ts.map,js.map} 2> /dev/null",
|
|
@@ -36,8 +38,9 @@
|
|
|
36
38
|
},
|
|
37
39
|
"devDependencies": {
|
|
38
40
|
"@paulmillr/jsbt": "0.4.0",
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
+
"@types/node": "22.15.21",
|
|
42
|
+
"fast-check": "4.1.1",
|
|
43
|
+
"micro-bmark": "0.4.2",
|
|
41
44
|
"micro-should": "0.5.3",
|
|
42
45
|
"prettier": "3.5.3",
|
|
43
46
|
"typescript": "5.8.3"
|
|
@@ -149,6 +152,10 @@
|
|
|
149
152
|
"import": "./esm/secp256k1.js",
|
|
150
153
|
"require": "./secp256k1.js"
|
|
151
154
|
},
|
|
155
|
+
"./utils": {
|
|
156
|
+
"import": "./esm/utils.js",
|
|
157
|
+
"require": "./utils.js"
|
|
158
|
+
},
|
|
152
159
|
"./abstract/bls.js": {
|
|
153
160
|
"import": "./esm/abstract/bls.js",
|
|
154
161
|
"require": "./abstract/bls.js"
|
|
@@ -205,6 +212,10 @@
|
|
|
205
212
|
"import": "./esm/bn254.js",
|
|
206
213
|
"require": "./bn254.js"
|
|
207
214
|
},
|
|
215
|
+
"./utils.js": {
|
|
216
|
+
"import": "./esm/utils.js",
|
|
217
|
+
"require": "./utils.js"
|
|
218
|
+
},
|
|
208
219
|
"./ed448.js": {
|
|
209
220
|
"import": "./esm/ed448.js",
|
|
210
221
|
"require": "./ed448.js"
|
package/secp256k1.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { type CurveFnWithCreate } from './_shortw_utils.ts';
|
|
2
|
-
import
|
|
2
|
+
import type { CurveInfo } from './abstract/curve.ts';
|
|
3
|
+
import { type H2CHasher, type H2CMethod } from './abstract/hash-to-curve.ts';
|
|
3
4
|
import { mod } from './abstract/modular.ts';
|
|
4
|
-
import type
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { type WeierstrassPoint as PointType, type WeierstrassPointCons } from './abstract/weierstrass.ts';
|
|
6
|
+
import type { Hex, PrivKey } from './utils.ts';
|
|
7
|
+
import { bytesToNumberBE, numberToBytesBE } from './utils.ts';
|
|
7
8
|
/**
|
|
8
9
|
* secp256k1 curve, ECDSA and ECDH methods.
|
|
9
10
|
*
|
|
@@ -12,11 +13,10 @@ import { type ProjPointType as PointType } from './abstract/weierstrass.ts';
|
|
|
12
13
|
* @example
|
|
13
14
|
* ```js
|
|
14
15
|
* import { secp256k1 } from '@noble/curves/secp256k1';
|
|
15
|
-
* const
|
|
16
|
-
* const
|
|
17
|
-
* const
|
|
18
|
-
* const
|
|
19
|
-
* const isValid = secp256k1.verify(sig, msg, pub) === true;
|
|
16
|
+
* const { secretKey, publicKey } = secp256k1.keygen();
|
|
17
|
+
* const msg = new TextEncoder().encode('hello');
|
|
18
|
+
* const sig = secp256k1.sign(msg, secretKey);
|
|
19
|
+
* const isValid = secp256k1.verify(sig, msg, publicKey) === true;
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
22
|
export declare const secp256k1: CurveFnWithCreate;
|
|
@@ -29,30 +29,45 @@ declare function lift_x(x: bigint): PointType<bigint>;
|
|
|
29
29
|
/**
|
|
30
30
|
* Schnorr public key is just `x` coordinate of Point as per BIP340.
|
|
31
31
|
*/
|
|
32
|
-
declare function schnorrGetPublicKey(
|
|
32
|
+
declare function schnorrGetPublicKey(secretKey: Hex): Uint8Array;
|
|
33
33
|
/**
|
|
34
34
|
* Creates Schnorr signature as per BIP340. Verifies itself before returning anything.
|
|
35
35
|
* auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.
|
|
36
36
|
*/
|
|
37
|
-
declare function schnorrSign(message: Hex,
|
|
37
|
+
declare function schnorrSign(message: Hex, secretKey: PrivKey, auxRand?: Hex): Uint8Array;
|
|
38
38
|
/**
|
|
39
39
|
* Verifies Schnorr signature.
|
|
40
40
|
* Will swallow errors & return false except for initial type validation of arguments.
|
|
41
41
|
*/
|
|
42
42
|
declare function schnorrVerify(signature: Hex, message: Hex, publicKey: Hex): boolean;
|
|
43
43
|
export type SecpSchnorr = {
|
|
44
|
+
keygen: (seed?: Uint8Array) => {
|
|
45
|
+
secretKey: Uint8Array;
|
|
46
|
+
publicKey: Uint8Array;
|
|
47
|
+
};
|
|
44
48
|
getPublicKey: typeof schnorrGetPublicKey;
|
|
45
49
|
sign: typeof schnorrSign;
|
|
46
50
|
verify: typeof schnorrVerify;
|
|
51
|
+
Point: WeierstrassPointCons<bigint>;
|
|
47
52
|
utils: {
|
|
48
|
-
|
|
49
|
-
lift_x: typeof lift_x;
|
|
53
|
+
randomSecretKey: (seed?: Uint8Array) => Uint8Array;
|
|
50
54
|
pointToBytes: (point: PointType<bigint>) => Uint8Array;
|
|
55
|
+
lift_x: typeof lift_x;
|
|
56
|
+
taggedHash: typeof taggedHash;
|
|
57
|
+
/** @deprecated use `randomSecretKey` */
|
|
58
|
+
randomPrivateKey: (seed?: Uint8Array) => Uint8Array;
|
|
59
|
+
/** @deprecated use `utils` */
|
|
51
60
|
numberToBytesBE: typeof numberToBytesBE;
|
|
61
|
+
/** @deprecated use `utils` */
|
|
52
62
|
bytesToNumberBE: typeof bytesToNumberBE;
|
|
53
|
-
|
|
63
|
+
/** @deprecated use `modular` */
|
|
54
64
|
mod: typeof mod;
|
|
55
65
|
};
|
|
66
|
+
info: {
|
|
67
|
+
type: 'weierstrass';
|
|
68
|
+
publicKeyHasPrefix: false;
|
|
69
|
+
lengths: CurveInfo['lengths'];
|
|
70
|
+
};
|
|
56
71
|
};
|
|
57
72
|
/**
|
|
58
73
|
* Schnorr signatures over secp256k1.
|
|
@@ -60,17 +75,19 @@ export type SecpSchnorr = {
|
|
|
60
75
|
* @example
|
|
61
76
|
* ```js
|
|
62
77
|
* import { schnorr } from '@noble/curves/secp256k1';
|
|
63
|
-
* const
|
|
64
|
-
* const
|
|
78
|
+
* const { secretKey, publicKey } = schnorr.keygen();
|
|
79
|
+
* // const publicKey = schnorr.getPublicKey(secretKey);
|
|
65
80
|
* const msg = new TextEncoder().encode('hello');
|
|
66
|
-
* const sig = schnorr.sign(msg,
|
|
67
|
-
* const isValid = schnorr.verify(sig, msg,
|
|
81
|
+
* const sig = schnorr.sign(msg, secretKey);
|
|
82
|
+
* const isValid = schnorr.verify(sig, msg, publicKey);
|
|
68
83
|
* ```
|
|
69
84
|
*/
|
|
70
85
|
export declare const schnorr: SecpSchnorr;
|
|
71
86
|
/** Hashing / encoding to secp256k1 points / field. RFC 9380 methods. */
|
|
72
|
-
export declare const secp256k1_hasher:
|
|
73
|
-
|
|
74
|
-
export declare const
|
|
87
|
+
export declare const secp256k1_hasher: H2CHasher<bigint>;
|
|
88
|
+
/** @deprecated use `import { secp256k1_hasher } from '@noble/curves/secp256k1.js';` */
|
|
89
|
+
export declare const hashToCurve: H2CMethod<bigint>;
|
|
90
|
+
/** @deprecated use `import { secp256k1_hasher } from '@noble/curves/secp256k1.js';` */
|
|
91
|
+
export declare const encodeToCurve: H2CMethod<bigint>;
|
|
75
92
|
export {};
|
|
76
93
|
//# sourceMappingURL=secp256k1.d.ts.map
|
package/secp256k1.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secp256k1.d.ts","sourceRoot":"","sources":["src/secp256k1.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"secp256k1.d.ts","sourceRoot":"","sources":["src/secp256k1.ts"],"names":[],"mappings":"AAUA,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,SAAS,EAEf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAyB,GAAG,EAAQ,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAIL,KAAK,gBAAgB,IAAI,SAAS,EAElC,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAEL,eAAe,EAIf,eAAe,EAChB,MAAM,YAAY,CAAC;AAyDpB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,SAAS,EAAE,iBAGvB,CAAC;AAMF,iBAAS,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,GAAG,UAAU,CAQtE;AAkBD;;;GAGG;AACH,iBAAS,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAS5C;AASD;;GAEG;AACH,iBAAS,mBAAmB,CAAC,SAAS,EAAE,GAAG,GAAG,UAAU,CAEvD;AAED;;;GAGG;AACH,iBAAS,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAE,GAAqB,GAAG,UAAU,CAgBjG;AAED;;;GAGG;AACH,iBAAS,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAoB5E;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,KAAK;QAAE,SAAS,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,UAAU,CAAA;KAAE,CAAC;IAChF,YAAY,EAAE,OAAO,mBAAmB,CAAC;IACzC,IAAI,EAAE,OAAO,WAAW,CAAC;IACzB,MAAM,EAAE,OAAO,aAAa,CAAC;IAC7B,KAAK,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACpC,KAAK,EAAE;QACL,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,KAAK,UAAU,CAAC;QACnD,YAAY,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC;QACvD,MAAM,EAAE,OAAO,MAAM,CAAC;QACtB,UAAU,EAAE,OAAO,UAAU,CAAC;QAE9B,wCAAwC;QACxC,gBAAgB,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,KAAK,UAAU,CAAC;QACpD,8BAA8B;QAC9B,eAAe,EAAE,OAAO,eAAe,CAAC;QACxC,8BAA8B;QAC9B,eAAe,EAAE,OAAO,eAAe,CAAC;QACxC,gCAAgC;QAChC,GAAG,EAAE,OAAO,GAAG,CAAC;KACjB,CAAC;IACF,IAAI,EAAE;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,kBAAkB,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;KAAE,CAAC;CACzF,CAAC;AACF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO,EAAE,WAyClB,CAAC;AA0CL,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,EAAE,SAAS,CAAC,MAAM,CAgBzC,CAAC;AAEP,uFAAuF;AACvF,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,MAAM,CACT,CAAC;AAElC,uFAAuF;AACvF,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,MAAM,CACT,CAAC"}
|
package/secp256k1.js
CHANGED
|
@@ -2,37 +2,48 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.encodeToCurve = exports.hashToCurve = exports.secp256k1_hasher = exports.schnorr = exports.secp256k1 = void 0;
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* SECG secp256k1. See [pdf](https://www.secg.org/sec2-v2.pdf).
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.
|
|
11
|
-
* Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.
|
|
12
|
-
* For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.
|
|
13
|
-
* [See explanation](https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066).
|
|
7
|
+
* Belongs to Koblitz curves: it has efficiently-computable GLV endomorphism ψ,
|
|
8
|
+
* check out {@link EndomorphismOpts}. Seems to be rigid (not backdoored).
|
|
14
9
|
* @module
|
|
15
10
|
*/
|
|
16
11
|
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
17
|
-
const
|
|
18
|
-
const
|
|
12
|
+
const sha2_js_1 = require("@noble/hashes/sha2.js");
|
|
13
|
+
const utils_js_1 = require("@noble/hashes/utils.js");
|
|
19
14
|
const _shortw_utils_ts_1 = require("./_shortw_utils.js");
|
|
20
15
|
const hash_to_curve_ts_1 = require("./abstract/hash-to-curve.js");
|
|
21
16
|
const modular_ts_1 = require("./abstract/modular.js");
|
|
22
|
-
const utils_ts_1 = require("./abstract/utils.js");
|
|
23
17
|
const weierstrass_ts_1 = require("./abstract/weierstrass.js");
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
|
|
18
|
+
const utils_ts_1 = require("./utils.js");
|
|
19
|
+
// Seems like generator was produced from some seed:
|
|
20
|
+
// `Point.BASE.multiply(Point.Fn.inv(2n, N)).toAffine().x`
|
|
21
|
+
// // gives short x 0x3b78ce563f89a0ed9414f5aa28ad0d96d6795f9c63n
|
|
22
|
+
const secp256k1_CURVE = {
|
|
23
|
+
p: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f'),
|
|
24
|
+
n: BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141'),
|
|
25
|
+
h: BigInt(1),
|
|
26
|
+
a: BigInt(0),
|
|
27
|
+
b: BigInt(7),
|
|
28
|
+
Gx: BigInt('0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'),
|
|
29
|
+
Gy: BigInt('0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8'),
|
|
30
|
+
};
|
|
31
|
+
const secp256k1_ENDO = {
|
|
32
|
+
beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),
|
|
33
|
+
basises: [
|
|
34
|
+
[BigInt('0x3086d221a7d46bcde86c90e49284eb15'), -BigInt('0xe4437ed6010e88286f547fa90abfe4c3')],
|
|
35
|
+
[BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8'), BigInt('0x3086d221a7d46bcde86c90e49284eb15')],
|
|
36
|
+
],
|
|
37
|
+
};
|
|
38
|
+
const _0n = /* @__PURE__ */ BigInt(0);
|
|
39
|
+
const _1n = /* @__PURE__ */ BigInt(1);
|
|
40
|
+
const _2n = /* @__PURE__ */ BigInt(2);
|
|
30
41
|
/**
|
|
31
42
|
* √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.
|
|
32
43
|
* (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]
|
|
33
44
|
*/
|
|
34
45
|
function sqrtMod(y) {
|
|
35
|
-
const P =
|
|
46
|
+
const P = secp256k1_CURVE.p;
|
|
36
47
|
// prettier-ignore
|
|
37
48
|
const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);
|
|
38
49
|
// prettier-ignore
|
|
@@ -55,7 +66,7 @@ function sqrtMod(y) {
|
|
|
55
66
|
throw new Error('Cannot find square root');
|
|
56
67
|
return root;
|
|
57
68
|
}
|
|
58
|
-
const Fpk1 = (0, modular_ts_1.Field)(
|
|
69
|
+
const Fpk1 = (0, modular_ts_1.Field)(secp256k1_CURVE.p, undefined, undefined, { sqrt: sqrtMod });
|
|
59
70
|
/**
|
|
60
71
|
* secp256k1 curve, ECDSA and ECDH methods.
|
|
61
72
|
*
|
|
@@ -64,49 +75,13 @@ const Fpk1 = (0, modular_ts_1.Field)(secp256k1P, undefined, undefined, { sqrt: s
|
|
|
64
75
|
* @example
|
|
65
76
|
* ```js
|
|
66
77
|
* import { secp256k1 } from '@noble/curves/secp256k1';
|
|
67
|
-
* const
|
|
68
|
-
* const
|
|
69
|
-
* const
|
|
70
|
-
* const
|
|
71
|
-
* const isValid = secp256k1.verify(sig, msg, pub) === true;
|
|
78
|
+
* const { secretKey, publicKey } = secp256k1.keygen();
|
|
79
|
+
* const msg = new TextEncoder().encode('hello');
|
|
80
|
+
* const sig = secp256k1.sign(msg, secretKey);
|
|
81
|
+
* const isValid = secp256k1.verify(sig, msg, publicKey) === true;
|
|
72
82
|
* ```
|
|
73
83
|
*/
|
|
74
|
-
exports.secp256k1 = (0, _shortw_utils_ts_1.createCurve)({
|
|
75
|
-
a: _0n,
|
|
76
|
-
b: BigInt(7),
|
|
77
|
-
Fp: Fpk1,
|
|
78
|
-
n: secp256k1N,
|
|
79
|
-
Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),
|
|
80
|
-
Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),
|
|
81
|
-
h: BigInt(1),
|
|
82
|
-
lowS: true, // Allow only low-S signatures by default in sign() and verify()
|
|
83
|
-
endo: {
|
|
84
|
-
// Endomorphism, see above
|
|
85
|
-
beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),
|
|
86
|
-
splitScalar: (k) => {
|
|
87
|
-
const n = secp256k1N;
|
|
88
|
-
const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');
|
|
89
|
-
const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');
|
|
90
|
-
const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');
|
|
91
|
-
const b2 = a1;
|
|
92
|
-
const POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)
|
|
93
|
-
const c1 = divNearest(b2 * k, n);
|
|
94
|
-
const c2 = divNearest(-b1 * k, n);
|
|
95
|
-
let k1 = (0, modular_ts_1.mod)(k - c1 * a1 - c2 * a2, n);
|
|
96
|
-
let k2 = (0, modular_ts_1.mod)(-c1 * b1 - c2 * b2, n);
|
|
97
|
-
const k1neg = k1 > POW_2_128;
|
|
98
|
-
const k2neg = k2 > POW_2_128;
|
|
99
|
-
if (k1neg)
|
|
100
|
-
k1 = n - k1;
|
|
101
|
-
if (k2neg)
|
|
102
|
-
k2 = n - k2;
|
|
103
|
-
if (k1 > POW_2_128 || k2 > POW_2_128) {
|
|
104
|
-
throw new Error('splitScalar: Endomorphism failed, k=' + k);
|
|
105
|
-
}
|
|
106
|
-
return { k1neg, k1, k2neg, k2 };
|
|
107
|
-
},
|
|
108
|
-
},
|
|
109
|
-
}, sha2_1.sha256);
|
|
84
|
+
exports.secp256k1 = (0, _shortw_utils_ts_1.createCurve)({ ...secp256k1_CURVE, Fp: Fpk1, lowS: true, endo: secp256k1_ENDO }, sha2_js_1.sha256);
|
|
110
85
|
// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.
|
|
111
86
|
// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki
|
|
112
87
|
/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */
|
|
@@ -114,38 +89,39 @@ const TAGGED_HASH_PREFIXES = {};
|
|
|
114
89
|
function taggedHash(tag, ...messages) {
|
|
115
90
|
let tagP = TAGGED_HASH_PREFIXES[tag];
|
|
116
91
|
if (tagP === undefined) {
|
|
117
|
-
const tagH = (0,
|
|
92
|
+
const tagH = (0, sha2_js_1.sha256)(Uint8Array.from(tag, (c) => c.charCodeAt(0)));
|
|
118
93
|
tagP = (0, utils_ts_1.concatBytes)(tagH, tagH);
|
|
119
94
|
TAGGED_HASH_PREFIXES[tag] = tagP;
|
|
120
95
|
}
|
|
121
|
-
return (0,
|
|
96
|
+
return (0, sha2_js_1.sha256)((0, utils_ts_1.concatBytes)(tagP, ...messages));
|
|
122
97
|
}
|
|
123
98
|
// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03
|
|
124
|
-
const pointToBytes = (point) => point.
|
|
99
|
+
const pointToBytes = (point) => point.toBytes(true).slice(1);
|
|
125
100
|
const numTo32b = (n) => (0, utils_ts_1.numberToBytesBE)(n, 32);
|
|
126
|
-
const modP = (x) => (0, modular_ts_1.mod)(x,
|
|
127
|
-
const modN = (x) => (0, modular_ts_1.mod)(x,
|
|
128
|
-
const Point = /* @__PURE__ */ (() => exports.secp256k1.
|
|
129
|
-
const
|
|
101
|
+
const modP = (x) => (0, modular_ts_1.mod)(x, secp256k1_CURVE.p);
|
|
102
|
+
const modN = (x) => (0, modular_ts_1.mod)(x, secp256k1_CURVE.n);
|
|
103
|
+
const Point = /* @__PURE__ */ (() => exports.secp256k1.Point)();
|
|
104
|
+
const hasEven = (y) => y % _2n === _0n;
|
|
130
105
|
// Calculate point, scalar and bytes
|
|
131
106
|
function schnorrGetExtPubKey(priv) {
|
|
132
|
-
|
|
133
|
-
let
|
|
134
|
-
|
|
135
|
-
|
|
107
|
+
// TODO: replace with Point.Fn.fromBytes(priv)
|
|
108
|
+
let d_ = (0, weierstrass_ts_1._normFnElement)(Point.Fn, priv);
|
|
109
|
+
let p = Point.BASE.multiply(d_); // P = d'⋅G; 0 < d' < n check is done inside
|
|
110
|
+
const scalar = hasEven(p.y) ? d_ : modN(-d_);
|
|
111
|
+
return { scalar, bytes: pointToBytes(p) };
|
|
136
112
|
}
|
|
137
113
|
/**
|
|
138
114
|
* lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.
|
|
139
115
|
* @returns valid point checked for being on-curve
|
|
140
116
|
*/
|
|
141
117
|
function lift_x(x) {
|
|
142
|
-
(0, utils_ts_1.aInRange)('x', x, _1n,
|
|
118
|
+
(0, utils_ts_1.aInRange)('x', x, _1n, secp256k1_CURVE.p); // Fail if x ≥ p.
|
|
143
119
|
const xx = modP(x * x);
|
|
144
120
|
const c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.
|
|
145
121
|
let y = sqrtMod(c); // Let y = c^(p+1)/4 mod p.
|
|
146
|
-
if (y
|
|
122
|
+
if (!hasEven(y))
|
|
147
123
|
y = modP(-y); // Return the unique point P such that x(P) = x and
|
|
148
|
-
const p =
|
|
124
|
+
const p = Point.fromAffine({ x, y }); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.
|
|
149
125
|
p.assertValidity();
|
|
150
126
|
return p;
|
|
151
127
|
}
|
|
@@ -159,16 +135,16 @@ function challenge(...args) {
|
|
|
159
135
|
/**
|
|
160
136
|
* Schnorr public key is just `x` coordinate of Point as per BIP340.
|
|
161
137
|
*/
|
|
162
|
-
function schnorrGetPublicKey(
|
|
163
|
-
return schnorrGetExtPubKey(
|
|
138
|
+
function schnorrGetPublicKey(secretKey) {
|
|
139
|
+
return schnorrGetExtPubKey(secretKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)
|
|
164
140
|
}
|
|
165
141
|
/**
|
|
166
142
|
* Creates Schnorr signature as per BIP340. Verifies itself before returning anything.
|
|
167
143
|
* auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.
|
|
168
144
|
*/
|
|
169
|
-
function schnorrSign(message,
|
|
145
|
+
function schnorrSign(message, secretKey, auxRand = (0, utils_js_1.randomBytes)(32)) {
|
|
170
146
|
const m = (0, utils_ts_1.ensureBytes)('message', message);
|
|
171
|
-
const { bytes: px, scalar: d } = schnorrGetExtPubKey(
|
|
147
|
+
const { bytes: px, scalar: d } = schnorrGetExtPubKey(secretKey); // checks for isWithinCurveOrder
|
|
172
148
|
const a = (0, utils_ts_1.ensureBytes)('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array
|
|
173
149
|
const t = numTo32b(d ^ num(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)
|
|
174
150
|
const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)
|
|
@@ -196,16 +172,19 @@ function schnorrVerify(signature, message, publicKey) {
|
|
|
196
172
|
try {
|
|
197
173
|
const P = lift_x(num(pub)); // P = lift_x(int(pk)); fail if that fails
|
|
198
174
|
const r = num(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.
|
|
199
|
-
if (!(0, utils_ts_1.inRange)(r, _1n,
|
|
175
|
+
if (!(0, utils_ts_1.inRange)(r, _1n, secp256k1_CURVE.p))
|
|
200
176
|
return false;
|
|
201
177
|
const s = num(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.
|
|
202
|
-
if (!(0, utils_ts_1.inRange)(s, _1n,
|
|
178
|
+
if (!(0, utils_ts_1.inRange)(s, _1n, secp256k1_CURVE.n))
|
|
203
179
|
return false;
|
|
204
180
|
const e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
181
|
+
// R = s⋅G - e⋅P, where -eP == (n-e)P
|
|
182
|
+
const R = Point.BASE.multiplyUnsafe(s).add(P.multiplyUnsafe(modN(-e)));
|
|
183
|
+
const { x, y } = R.toAffine();
|
|
184
|
+
// Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.
|
|
185
|
+
if (R.is0() || !hasEven(y) || x !== r)
|
|
186
|
+
return false;
|
|
187
|
+
return true;
|
|
209
188
|
}
|
|
210
189
|
catch (error) {
|
|
211
190
|
return false;
|
|
@@ -217,27 +196,54 @@ function schnorrVerify(signature, message, publicKey) {
|
|
|
217
196
|
* @example
|
|
218
197
|
* ```js
|
|
219
198
|
* import { schnorr } from '@noble/curves/secp256k1';
|
|
220
|
-
* const
|
|
221
|
-
* const
|
|
199
|
+
* const { secretKey, publicKey } = schnorr.keygen();
|
|
200
|
+
* // const publicKey = schnorr.getPublicKey(secretKey);
|
|
222
201
|
* const msg = new TextEncoder().encode('hello');
|
|
223
|
-
* const sig = schnorr.sign(msg,
|
|
224
|
-
* const isValid = schnorr.verify(sig, msg,
|
|
202
|
+
* const sig = schnorr.sign(msg, secretKey);
|
|
203
|
+
* const isValid = schnorr.verify(sig, msg, publicKey);
|
|
225
204
|
* ```
|
|
226
205
|
*/
|
|
227
|
-
exports.schnorr = (() =>
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
206
|
+
exports.schnorr = (() => {
|
|
207
|
+
const size = 32;
|
|
208
|
+
const seedLength = 48;
|
|
209
|
+
const randomSecretKey = (seed = (0, utils_js_1.randomBytes)(seedLength)) => {
|
|
210
|
+
return (0, modular_ts_1.mapHashToField)(seed, secp256k1_CURVE.n);
|
|
211
|
+
};
|
|
212
|
+
// TODO: remove
|
|
213
|
+
exports.secp256k1.utils.randomSecretKey;
|
|
214
|
+
function keygen(seed) {
|
|
215
|
+
const secretKey = randomSecretKey(seed);
|
|
216
|
+
return { secretKey, publicKey: schnorrGetPublicKey(secretKey) };
|
|
217
|
+
}
|
|
218
|
+
return {
|
|
219
|
+
keygen,
|
|
220
|
+
getPublicKey: schnorrGetPublicKey,
|
|
221
|
+
sign: schnorrSign,
|
|
222
|
+
verify: schnorrVerify,
|
|
223
|
+
Point,
|
|
224
|
+
utils: {
|
|
225
|
+
randomSecretKey: randomSecretKey,
|
|
226
|
+
randomPrivateKey: randomSecretKey,
|
|
227
|
+
taggedHash,
|
|
228
|
+
// TODO: remove
|
|
229
|
+
lift_x,
|
|
230
|
+
pointToBytes,
|
|
231
|
+
numberToBytesBE: utils_ts_1.numberToBytesBE,
|
|
232
|
+
bytesToNumberBE: utils_ts_1.bytesToNumberBE,
|
|
233
|
+
mod: modular_ts_1.mod,
|
|
234
|
+
},
|
|
235
|
+
info: {
|
|
236
|
+
type: 'weierstrass',
|
|
237
|
+
publicKeyHasPrefix: false,
|
|
238
|
+
lengths: {
|
|
239
|
+
secret: size,
|
|
240
|
+
public: size,
|
|
241
|
+
signature: size * 2,
|
|
242
|
+
seed: seedLength,
|
|
243
|
+
},
|
|
244
|
+
},
|
|
245
|
+
};
|
|
246
|
+
})();
|
|
241
247
|
const isoMap = /* @__PURE__ */ (() => (0, hash_to_curve_ts_1.isogenyMap)(Fpk1, [
|
|
242
248
|
// xNum
|
|
243
249
|
[
|
|
@@ -273,7 +279,7 @@ const mapSWU = /* @__PURE__ */ (() => (0, weierstrass_ts_1.mapToCurveSimpleSWU)(
|
|
|
273
279
|
Z: Fpk1.create(BigInt('-11')),
|
|
274
280
|
}))();
|
|
275
281
|
/** Hashing / encoding to secp256k1 points / field. RFC 9380 methods. */
|
|
276
|
-
exports.secp256k1_hasher = (() => (0, hash_to_curve_ts_1.createHasher)(exports.secp256k1.
|
|
282
|
+
exports.secp256k1_hasher = (() => (0, hash_to_curve_ts_1.createHasher)(exports.secp256k1.Point, (scalars) => {
|
|
277
283
|
const { x, y } = mapSWU(Fpk1.create(scalars[0]));
|
|
278
284
|
return isoMap(x, y);
|
|
279
285
|
}, {
|
|
@@ -283,8 +289,10 @@ exports.secp256k1_hasher = (() => (0, hash_to_curve_ts_1.createHasher)(exports.s
|
|
|
283
289
|
m: 1,
|
|
284
290
|
k: 128,
|
|
285
291
|
expand: 'xmd',
|
|
286
|
-
hash:
|
|
292
|
+
hash: sha2_js_1.sha256,
|
|
287
293
|
}))();
|
|
294
|
+
/** @deprecated use `import { secp256k1_hasher } from '@noble/curves/secp256k1.js';` */
|
|
288
295
|
exports.hashToCurve = (() => exports.secp256k1_hasher.hashToCurve)();
|
|
296
|
+
/** @deprecated use `import { secp256k1_hasher } from '@noble/curves/secp256k1.js';` */
|
|
289
297
|
exports.encodeToCurve = (() => exports.secp256k1_hasher.encodeToCurve)();
|
|
290
298
|
//# sourceMappingURL=secp256k1.js.map
|
package/secp256k1.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secp256k1.js","sourceRoot":"","sources":["src/secp256k1.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"secp256k1.js","sourceRoot":"","sources":["src/secp256k1.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,sEAAsE;AACtE,mDAA+C;AAC/C,qDAAqD;AACrD,yDAAyE;AAEzE,kEAKqC;AACrC,sDAAyE;AACzE,8DAOmC;AAEnC,yCAOoB;AAEpB,oDAAoD;AACpD,0DAA0D;AAC1D,iEAAiE;AACjE,MAAM,eAAe,GAA4B;IAC/C,CAAC,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAC/E,CAAC,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAC/E,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAChF,EAAE,EAAE,MAAM,CAAC,oEAAoE,CAAC;CACjF,CAAC;AAEF,MAAM,cAAc,GAAqB;IACvC,IAAI,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAClF,OAAO,EAAE;QACP,CAAC,MAAM,CAAC,oCAAoC,CAAC,EAAE,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC;QAC7F,CAAC,MAAM,CAAC,qCAAqC,CAAC,EAAE,MAAM,CAAC,oCAAoC,CAAC,CAAC;KAC9F;CACF,CAAC;AAEF,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtC,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtC,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAEtC;;;GAGG;AACH,SAAS,OAAO,CAAC,CAAS;IACxB,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAC5B,kBAAkB;IAClB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7E,kBAAkB;IAClB,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9D,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU;IACtC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;IACpC,MAAM,EAAE,GAAG,CAAC,IAAA,iBAAI,EAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,EAAE,GAAG,CAAC,IAAA,iBAAI,EAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,CAAC,IAAA,iBAAI,EAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,CAAC,IAAA,iBAAI,EAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,CAAC,IAAA,iBAAI,EAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,CAAC,IAAA,iBAAI,EAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,CAAC,IAAA,iBAAI,EAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,CAAC,IAAA,iBAAI,EAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,CAAC,IAAA,iBAAI,EAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,EAAE,GAAG,CAAC,IAAA,iBAAI,EAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,EAAE,GAAG,CAAC,IAAA,iBAAI,EAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAA,iBAAI,EAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,IAAI,GAAG,IAAA,kBAAK,EAAC,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAE/E;;;;;;;;;;;;;GAaG;AACU,QAAA,SAAS,GAAsB,IAAA,8BAAW,EACrD,EAAE,GAAG,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,EAClE,gBAAM,CACP,CAAC;AAEF,+FAA+F;AAC/F,iEAAiE;AACjE,wFAAwF;AACxF,MAAM,oBAAoB,GAAkC,EAAE,CAAC;AAC/D,SAAS,UAAU,CAAC,GAAW,EAAE,GAAG,QAAsB;IACxD,IAAI,IAAI,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAA,gBAAM,EAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,GAAG,IAAA,sBAAW,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/B,oBAAoB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACnC,CAAC;IACD,OAAO,IAAA,gBAAM,EAAC,IAAA,sBAAW,EAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,oFAAoF;AACpF,MAAM,YAAY,GAAG,CAAC,KAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChF,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAA,0BAAe,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvD,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAA,gBAAG,EAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;AACtD,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAA,gBAAG,EAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;AACtD,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC,iBAAS,CAAC,KAAK,CAAC,EAAE,CAAC;AACxD,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC;AAE/C,oCAAoC;AACpC,SAAS,mBAAmB,CAAC,IAAa;IACxC,8CAA8C;IAC9C,IAAI,EAAE,GAAG,IAAA,+BAAc,EAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,4CAA4C;IAC7E,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5C,CAAC;AACD;;;GAGG;AACH,SAAS,MAAM,CAAC,CAAS;IACvB,IAAA,mBAAQ,EAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB;IAC3D,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB;IAC5D,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B;IAC/C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mDAAmD;IAClF,MAAM,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,mDAAmD;IACzF,CAAC,CAAC,cAAc,EAAE,CAAC;IACnB,OAAO,CAAC,CAAC;AACX,CAAC;AACD,MAAM,GAAG,GAAG,0BAAe,CAAC;AAC5B;;GAEG;AACH,SAAS,SAAS,CAAC,GAAG,IAAkB;IACtC,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,SAAc;IACzC,OAAO,mBAAmB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,oDAAoD;AACnG,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,OAAY,EAAE,SAAkB,EAAE,UAAe,IAAA,sBAAW,EAAC,EAAE,CAAC;IACnF,MAAM,CAAC,GAAG,IAAA,sBAAW,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,gCAAgC;IACjG,MAAM,CAAC,GAAG,IAAA,sBAAW,EAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,2CAA2C;IAC1F,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yDAAyD;IACpH,MAAM,IAAI,GAAG,UAAU,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,4CAA4C;IAChG,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,2BAA2B;IACvD,IAAI,EAAE,KAAK,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,kBAAkB;IAC7E,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB;IAC1E,MAAM,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,gEAAgE;IAChG,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,+CAA+C;IAC/E,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACf,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvC,iEAAiE;IACjE,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACpF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,SAAc,EAAE,OAAY,EAAE,SAAc;IACjE,MAAM,GAAG,GAAG,IAAA,sBAAW,EAAC,WAAW,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,CAAC,GAAG,IAAA,sBAAW,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAA,sBAAW,EAAC,WAAW,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,0CAA0C;QACtE,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,yCAAyC;QAC7E,IAAI,CAAC,IAAA,kBAAO,EAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACtD,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,0CAA0C;QAC/E,IAAI,CAAC,IAAA,kBAAO,EAAC,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACtD,MAAM,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,0CAA0C;QAChG,qCAAqC;QACrC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9B,yDAAyD;QACzD,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAyBD;;;;;;;;;;;;GAYG;AACU,QAAA,OAAO,GAAgC,CAAC,GAAG,EAAE;IACxD,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,MAAM,eAAe,GAAG,CAAC,IAAI,GAAG,IAAA,sBAAW,EAAC,UAAU,CAAC,EAAc,EAAE;QACrE,OAAO,IAAA,2BAAc,EAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC;IACF,eAAe;IACf,iBAAS,CAAC,KAAK,CAAC,eAAe,CAAC;IAChC,SAAS,MAAM,CAAC,IAAiB;QAC/B,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;IAClE,CAAC;IACD,OAAO;QACL,MAAM;QACN,YAAY,EAAE,mBAAmB;QACjC,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,aAAa;QACrB,KAAK;QACL,KAAK,EAAE;YACL,eAAe,EAAE,eAAe;YAChC,gBAAgB,EAAE,eAAe;YACjC,UAAU;YAEV,eAAe;YACf,MAAM;YACN,YAAY;YACZ,eAAe,EAAf,0BAAe;YACf,eAAe,EAAf,0BAAe;YACf,GAAG,EAAH,gBAAG;SACJ;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,aAAa;YACnB,kBAAkB,EAAE,KAAK;YACzB,OAAO,EAAE;gBACP,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE,IAAI,GAAG,CAAC;gBACnB,IAAI,EAAE,UAAU;aACjB;SACF;KACF,CAAC;AACJ,CAAC,CAAC,EAAE,CAAC;AAEL,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CACnC,IAAA,6BAAU,EACR,IAAI,EACJ;IACE,OAAO;IACP;QACE,oEAAoE;QACpE,mEAAmE;QACnE,oEAAoE;QACpE,oEAAoE;KACrE;IACD,OAAO;IACP;QACE,oEAAoE;QACpE,oEAAoE;QACpE,oEAAoE,EAAE,SAAS;KAChF;IACD,OAAO;IACP;QACE,oEAAoE;QACpE,oEAAoE;QACpE,oEAAoE;QACpE,oEAAoE;KACrE;IACD,OAAO;IACP;QACE,oEAAoE;QACpE,oEAAoE;QACpE,oEAAoE;QACpE,oEAAoE,EAAE,SAAS;KAChF;CACF,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAA6C,CAClF,CAAC,EAAE,CAAC;AACP,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,CACnC,IAAA,oCAAmB,EAAC,IAAI,EAAE;IACxB,CAAC,EAAE,MAAM,CAAC,oEAAoE,CAAC;IAC/E,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;IACjB,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;CAC9B,CAAC,CAAC,EAAE,CAAC;AAER,wEAAwE;AAC3D,QAAA,gBAAgB,GAAsC,CAAC,GAAG,EAAE,CACvE,IAAA,+BAAY,EACV,iBAAS,CAAC,KAAK,EACf,CAAC,OAAiB,EAAE,EAAE;IACpB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtB,CAAC,EACD;IACE,GAAG,EAAE,gCAAgC;IACrC,SAAS,EAAE,gCAAgC;IAC3C,CAAC,EAAE,IAAI,CAAC,KAAK;IACb,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,GAAG;IACN,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,gBAAM;CACb,CACF,CAAC,EAAE,CAAC;AAEP,uFAAuF;AAC1E,QAAA,WAAW,GAAsC,CAAC,GAAG,EAAE,CAClE,wBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;AAElC,uFAAuF;AAC1E,QAAA,aAAa,GAAsC,CAAC,GAAG,EAAE,CACpE,wBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC"}
|
package/src/_shortw_utils.ts
CHANGED
|
@@ -3,28 +3,19 @@
|
|
|
3
3
|
* @module
|
|
4
4
|
*/
|
|
5
5
|
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
6
|
-
import { hmac } from '@noble/hashes/hmac';
|
|
7
|
-
import { concatBytes, randomBytes } from '@noble/hashes/utils';
|
|
8
|
-
import type { CHash } from './abstract/utils.ts';
|
|
9
6
|
import { type CurveFn, type CurveType, weierstrass } from './abstract/weierstrass.ts';
|
|
7
|
+
import type { CHash } from './utils.ts';
|
|
10
8
|
|
|
11
9
|
/** connects noble-curves to noble-hashes */
|
|
12
|
-
export function getHash(hash: CHash): {
|
|
13
|
-
hash
|
|
14
|
-
hmac: (key: Uint8Array, ...msgs: Uint8Array[]) => Uint8Array;
|
|
15
|
-
randomBytes: typeof randomBytes;
|
|
16
|
-
} {
|
|
17
|
-
return {
|
|
18
|
-
hash,
|
|
19
|
-
hmac: (key: Uint8Array, ...msgs: Uint8Array[]) => hmac(hash, key, concatBytes(...msgs)),
|
|
20
|
-
randomBytes,
|
|
21
|
-
};
|
|
10
|
+
export function getHash(hash: CHash): { hash: CHash } {
|
|
11
|
+
return { hash };
|
|
22
12
|
}
|
|
23
13
|
/** Same API as @noble/hashes, with ability to create curve with custom hash */
|
|
24
|
-
export type CurveDef = Readonly<Omit<CurveType, 'hash'
|
|
14
|
+
export type CurveDef = Readonly<Omit<CurveType, 'hash'>>;
|
|
25
15
|
export type CurveFnWithCreate = CurveFn & { create: (hash: CHash) => CurveFn };
|
|
26
16
|
|
|
17
|
+
/** @deprecated use new `weierstrass()` and `ecdsa()` methods */
|
|
27
18
|
export function createCurve(curveDef: CurveDef, defHash: CHash): CurveFnWithCreate {
|
|
28
|
-
const create = (hash: CHash): CurveFn => weierstrass({ ...curveDef,
|
|
19
|
+
const create = (hash: CHash): CurveFn => weierstrass({ ...curveDef, hash: hash });
|
|
29
20
|
return { ...create(defHash), create };
|
|
30
21
|
}
|