@noble/curves 1.8.0 → 1.8.2
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 +282 -419
- package/_shortw_utils.d.ts +2 -2
- package/_shortw_utils.d.ts.map +1 -1
- package/_shortw_utils.js +2 -2
- package/_shortw_utils.js.map +1 -1
- package/abstract/bls.d.ts +5 -5
- package/abstract/bls.d.ts.map +1 -1
- package/abstract/bls.js +14 -15
- package/abstract/bls.js.map +1 -1
- package/abstract/curve.d.ts +10 -2
- package/abstract/curve.d.ts.map +1 -1
- package/abstract/curve.js +81 -78
- package/abstract/curve.js.map +1 -1
- package/abstract/edwards.d.ts +2 -2
- package/abstract/edwards.d.ts.map +1 -1
- package/abstract/edwards.js +55 -69
- package/abstract/edwards.js.map +1 -1
- package/abstract/hash-to-curve.d.ts +5 -4
- package/abstract/hash-to-curve.d.ts.map +1 -1
- package/abstract/hash-to-curve.js +20 -18
- package/abstract/hash-to-curve.js.map +1 -1
- package/abstract/modular.d.ts.map +1 -1
- package/abstract/modular.js +9 -9
- package/abstract/montgomery.js +12 -12
- package/abstract/poseidon.d.ts +1 -1
- package/abstract/poseidon.d.ts.map +1 -1
- package/abstract/poseidon.js +3 -3
- package/abstract/poseidon.js.map +1 -1
- package/abstract/tower.d.ts +2 -2
- package/abstract/tower.js +13 -13
- package/abstract/utils.d.ts +4 -2
- package/abstract/utils.d.ts.map +1 -1
- package/abstract/utils.js +25 -14
- package/abstract/utils.js.map +1 -1
- package/abstract/weierstrass.d.ts +19 -6
- package/abstract/weierstrass.d.ts.map +1 -1
- package/abstract/weierstrass.js +97 -80
- package/abstract/weierstrass.js.map +1 -1
- package/bls12-381.d.ts +1 -1
- package/bls12-381.d.ts.map +1 -1
- package/bls12-381.js +48 -49
- package/bls12-381.js.map +1 -1
- package/bn254.d.ts +2 -2
- package/bn254.d.ts.map +1 -1
- package/bn254.js +29 -30
- package/bn254.js.map +1 -1
- package/ed25519.d.ts +8 -6
- package/ed25519.d.ts.map +1 -1
- package/ed25519.js +65 -66
- package/ed25519.js.map +1 -1
- package/ed448.d.ts +6 -6
- package/ed448.d.ts.map +1 -1
- package/ed448.js +50 -52
- package/ed448.js.map +1 -1
- package/esm/_shortw_utils.d.ts +2 -2
- package/esm/_shortw_utils.d.ts.map +1 -1
- package/esm/_shortw_utils.js +1 -1
- package/esm/_shortw_utils.js.map +1 -1
- package/esm/abstract/bls.d.ts +5 -5
- package/esm/abstract/bls.d.ts.map +1 -1
- package/esm/abstract/bls.js +5 -6
- package/esm/abstract/bls.js.map +1 -1
- package/esm/abstract/curve.d.ts +10 -2
- package/esm/abstract/curve.d.ts.map +1 -1
- package/esm/abstract/curve.js +77 -74
- package/esm/abstract/curve.js.map +1 -1
- package/esm/abstract/edwards.d.ts +2 -2
- package/esm/abstract/edwards.d.ts.map +1 -1
- package/esm/abstract/edwards.js +36 -50
- package/esm/abstract/edwards.js.map +1 -1
- package/esm/abstract/hash-to-curve.d.ts +5 -4
- package/esm/abstract/hash-to-curve.d.ts.map +1 -1
- package/esm/abstract/hash-to-curve.js +4 -2
- package/esm/abstract/hash-to-curve.js.map +1 -1
- package/esm/abstract/modular.d.ts.map +1 -1
- package/esm/abstract/modular.js +1 -1
- package/esm/abstract/montgomery.js +2 -2
- package/esm/abstract/poseidon.d.ts +1 -1
- package/esm/abstract/poseidon.d.ts.map +1 -1
- package/esm/abstract/poseidon.js +1 -1
- package/esm/abstract/poseidon.js.map +1 -1
- package/esm/abstract/tower.d.ts +2 -2
- package/esm/abstract/tower.js +5 -5
- package/esm/abstract/utils.d.ts +4 -2
- package/esm/abstract/utils.d.ts.map +1 -1
- package/esm/abstract/utils.js +24 -13
- package/esm/abstract/utils.js.map +1 -1
- package/esm/abstract/weierstrass.d.ts +19 -6
- package/esm/abstract/weierstrass.d.ts.map +1 -1
- package/esm/abstract/weierstrass.js +77 -60
- package/esm/abstract/weierstrass.js.map +1 -1
- package/esm/bls12-381.d.ts +1 -1
- package/esm/bls12-381.d.ts.map +1 -1
- package/esm/bls12-381.js +16 -17
- package/esm/bls12-381.js.map +1 -1
- package/esm/bn254.d.ts +2 -2
- package/esm/bn254.d.ts.map +1 -1
- package/esm/bn254.js +7 -8
- package/esm/bn254.js.map +1 -1
- package/esm/ed25519.d.ts +8 -6
- package/esm/ed25519.d.ts.map +1 -1
- package/esm/ed25519.js +20 -21
- package/esm/ed25519.js.map +1 -1
- package/esm/ed448.d.ts +6 -6
- package/esm/ed448.d.ts.map +1 -1
- package/esm/ed448.js +13 -15
- package/esm/ed448.js.map +1 -1
- package/esm/index.js +13 -1
- package/esm/index.js.map +1 -1
- package/esm/jubjub.d.ts +1 -4
- package/esm/jubjub.d.ts.map +1 -1
- package/esm/jubjub.js +1 -60
- package/esm/jubjub.js.map +1 -1
- package/esm/misc.d.ts +15 -0
- package/esm/misc.d.ts.map +1 -0
- package/esm/misc.js +101 -0
- package/esm/misc.js.map +1 -0
- package/esm/p256.d.ts +8 -5
- package/esm/p256.d.ts.map +1 -1
- package/esm/p256.js +13 -12
- package/esm/p256.js.map +1 -1
- package/esm/p384.d.ts +8 -5
- package/esm/p384.d.ts.map +1 -1
- package/esm/p384.js +14 -15
- package/esm/p384.js.map +1 -1
- package/esm/p521.d.ts +6 -5
- package/esm/p521.d.ts.map +1 -1
- package/esm/p521.js +19 -28
- package/esm/p521.js.map +1 -1
- package/esm/pasta.d.ts +1 -7
- package/esm/pasta.d.ts.map +1 -1
- package/esm/pasta.js +1 -33
- package/esm/pasta.js.map +1 -1
- package/esm/secp256k1.d.ts +15 -10
- package/esm/secp256k1.d.ts.map +1 -1
- package/esm/secp256k1.js +18 -14
- package/esm/secp256k1.js.map +1 -1
- package/index.js +13 -1
- package/index.js.map +1 -1
- package/jubjub.d.ts +1 -4
- package/jubjub.d.ts.map +1 -1
- package/jubjub.js +5 -63
- package/jubjub.js.map +1 -1
- package/misc.d.ts +15 -0
- package/misc.d.ts.map +1 -0
- package/misc.js +106 -0
- package/misc.js.map +1 -0
- package/p256.d.ts +8 -5
- package/p256.d.ts.map +1 -1
- package/p256.js +19 -18
- package/p256.js.map +1 -1
- package/p384.d.ts +8 -5
- package/p384.d.ts.map +1 -1
- package/p384.js +19 -20
- package/p384.js.map +1 -1
- package/p521.d.ts +6 -5
- package/p521.d.ts.map +1 -1
- package/p521.js +23 -32
- package/p521.js.map +1 -1
- package/package.json +21 -16
- package/pasta.d.ts +1 -7
- package/pasta.d.ts.map +1 -1
- package/pasta.js +4 -34
- package/pasta.js.map +1 -1
- package/secp256k1.d.ts +15 -10
- package/secp256k1.d.ts.map +1 -1
- package/secp256k1.js +57 -53
- package/secp256k1.js.map +1 -1
- package/src/_shortw_utils.ts +2 -2
- package/src/abstract/bls.ts +14 -12
- package/src/abstract/curve.ts +88 -79
- package/src/abstract/edwards.ts +52 -59
- package/src/abstract/hash-to-curve.ts +7 -5
- package/src/abstract/modular.ts +1 -1
- package/src/abstract/montgomery.ts +2 -2
- package/src/abstract/poseidon.ts +1 -1
- package/src/abstract/tower.ts +6 -6
- package/src/abstract/utils.ts +26 -15
- package/src/abstract/weierstrass.ts +99 -77
- package/src/bls12-381.ts +30 -28
- package/src/bn254.ts +11 -13
- package/src/ed25519.ts +27 -26
- package/src/ed448.ts +21 -20
- package/src/index.ts +13 -1
- package/src/jubjub.ts +5 -63
- package/src/misc.ts +117 -0
- package/src/p256.ts +13 -12
- package/src/p384.ts +18 -15
- package/src/p521.ts +27 -32
- package/src/pasta.ts +1 -39
- package/src/secp256k1.ts +20 -16
package/p256.js
CHANGED
|
@@ -7,46 +7,47 @@ exports.encodeToCurve = exports.hashToCurve = exports.secp256r1 = exports.p256 =
|
|
|
7
7
|
* @module
|
|
8
8
|
*/
|
|
9
9
|
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const Fp256 = (0,
|
|
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
16
|
const CURVE_A = Fp256.create(BigInt('-3'));
|
|
17
17
|
const CURVE_B = BigInt('0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b');
|
|
18
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* secp256r1 curve, ECDSA and ECDH methods.
|
|
20
|
+
* Field: `2n**224n * (2n**32n-1n) + 2n**192n + 2n**96n-1n`
|
|
21
|
+
*/
|
|
19
22
|
// prettier-ignore
|
|
20
|
-
exports.p256 = (0,
|
|
21
|
-
a: CURVE_A,
|
|
23
|
+
exports.p256 = (0, _shortw_utils_ts_1.createCurve)({
|
|
24
|
+
a: CURVE_A,
|
|
22
25
|
b: CURVE_B,
|
|
23
|
-
Fp: Fp256,
|
|
24
|
-
// Curve order, total count of valid points in the field
|
|
26
|
+
Fp: Fp256,
|
|
25
27
|
n: BigInt('0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551'),
|
|
26
|
-
// Base (generator) point (x, y)
|
|
27
28
|
Gx: BigInt('0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296'),
|
|
28
29
|
Gy: BigInt('0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5'),
|
|
29
30
|
h: BigInt(1),
|
|
30
31
|
lowS: false,
|
|
31
|
-
},
|
|
32
|
+
}, sha2_1.sha256);
|
|
32
33
|
/** Alias to p256. */
|
|
33
34
|
exports.secp256r1 = exports.p256;
|
|
34
|
-
const mapSWU = /* @__PURE__ */ (() => (0,
|
|
35
|
+
const mapSWU = /* @__PURE__ */ (() => (0, weierstrass_ts_1.mapToCurveSimpleSWU)(Fp256, {
|
|
35
36
|
A: CURVE_A,
|
|
36
37
|
B: CURVE_B,
|
|
37
38
|
Z: Fp256.create(BigInt('-10')),
|
|
38
39
|
}))();
|
|
39
|
-
const htf = /* @__PURE__ */ (() => (0,
|
|
40
|
+
const htf = /* @__PURE__ */ (() => (0, hash_to_curve_ts_1.createHasher)(exports.secp256r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
|
|
40
41
|
DST: 'P256_XMD:SHA-256_SSWU_RO_',
|
|
41
42
|
encodeDST: 'P256_XMD:SHA-256_SSWU_NU_',
|
|
42
43
|
p: Fp256.ORDER,
|
|
43
44
|
m: 1,
|
|
44
45
|
k: 128,
|
|
45
46
|
expand: 'xmd',
|
|
46
|
-
hash:
|
|
47
|
+
hash: sha2_1.sha256,
|
|
47
48
|
}))();
|
|
48
|
-
/** secp256r1 hash-to-curve from
|
|
49
|
+
/** secp256r1 hash-to-curve from RFC 9380. */
|
|
49
50
|
exports.hashToCurve = (() => htf.hashToCurve)();
|
|
50
|
-
/** secp256r1 encode-to-curve from
|
|
51
|
+
/** secp256r1 encode-to-curve from RFC 9380. */
|
|
51
52
|
exports.encodeToCurve = (() => htf.encodeToCurve)();
|
|
52
53
|
//# 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,
|
|
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"}
|
package/p384.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { CurveFnWithCreate } from './_shortw_utils.
|
|
2
|
-
import { HTFMethod } from './abstract/hash-to-curve.
|
|
3
|
-
/**
|
|
1
|
+
import { type CurveFnWithCreate } from './_shortw_utils.ts';
|
|
2
|
+
import { type HTFMethod } from './abstract/hash-to-curve.ts';
|
|
3
|
+
/**
|
|
4
|
+
* secp384r1 curve, ECDSA and ECDH methods.
|
|
5
|
+
* Field: `2n**384n - 2n**128n - 2n**96n + 2n**32n - 1n`.
|
|
6
|
+
* */
|
|
4
7
|
export declare const p384: CurveFnWithCreate;
|
|
5
8
|
/** Alias to p384. */
|
|
6
9
|
export declare const secp384r1: CurveFnWithCreate;
|
|
7
|
-
/** secp384r1 hash-to-curve from
|
|
10
|
+
/** secp384r1 hash-to-curve from RFC 9380. */
|
|
8
11
|
export declare const hashToCurve: HTFMethod<bigint>;
|
|
9
|
-
/** secp384r1 encode-to-curve from
|
|
12
|
+
/** secp384r1 encode-to-curve from RFC 9380. */
|
|
10
13
|
export declare const encodeToCurve: HTFMethod<bigint>;
|
|
11
14
|
//# 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,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
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"}
|
package/p384.js
CHANGED
|
@@ -7,50 +7,49 @@ exports.encodeToCurve = exports.hashToCurve = exports.secp384r1 = exports.p384 =
|
|
|
7
7
|
* @module
|
|
8
8
|
*/
|
|
9
9
|
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
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
15
|
// Field over which we'll do calculations.
|
|
16
|
-
|
|
17
|
-
const P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff');
|
|
18
|
-
const Fp384 = (0, modular_js_1.Field)(P);
|
|
16
|
+
const Fp384 = (0, modular_ts_1.Field)(BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff'));
|
|
19
17
|
const CURVE_A = Fp384.create(BigInt('-3'));
|
|
20
18
|
// prettier-ignore
|
|
21
19
|
const CURVE_B = BigInt('0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef');
|
|
22
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* secp384r1 curve, ECDSA and ECDH methods.
|
|
22
|
+
* Field: `2n**384n - 2n**128n - 2n**96n + 2n**32n - 1n`.
|
|
23
|
+
* */
|
|
23
24
|
// prettier-ignore
|
|
24
|
-
exports.p384 = (0,
|
|
25
|
-
a: CURVE_A,
|
|
25
|
+
exports.p384 = (0, _shortw_utils_ts_1.createCurve)({
|
|
26
|
+
a: CURVE_A,
|
|
26
27
|
b: CURVE_B,
|
|
27
|
-
Fp: Fp384,
|
|
28
|
-
// Curve order, total count of valid points in the field.
|
|
28
|
+
Fp: Fp384,
|
|
29
29
|
n: BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973'),
|
|
30
|
-
// Base (generator) point (x, y)
|
|
31
30
|
Gx: BigInt('0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7'),
|
|
32
31
|
Gy: BigInt('0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f'),
|
|
33
32
|
h: BigInt(1),
|
|
34
33
|
lowS: false,
|
|
35
|
-
},
|
|
34
|
+
}, sha2_1.sha384);
|
|
36
35
|
/** Alias to p384. */
|
|
37
36
|
exports.secp384r1 = exports.p384;
|
|
38
|
-
const mapSWU = /* @__PURE__ */ (() => (0,
|
|
37
|
+
const mapSWU = /* @__PURE__ */ (() => (0, weierstrass_ts_1.mapToCurveSimpleSWU)(Fp384, {
|
|
39
38
|
A: CURVE_A,
|
|
40
39
|
B: CURVE_B,
|
|
41
40
|
Z: Fp384.create(BigInt('-12')),
|
|
42
41
|
}))();
|
|
43
|
-
const htf = /* @__PURE__ */ (() => (0,
|
|
42
|
+
const htf = /* @__PURE__ */ (() => (0, hash_to_curve_ts_1.createHasher)(exports.secp384r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
|
|
44
43
|
DST: 'P384_XMD:SHA-384_SSWU_RO_',
|
|
45
44
|
encodeDST: 'P384_XMD:SHA-384_SSWU_NU_',
|
|
46
45
|
p: Fp384.ORDER,
|
|
47
46
|
m: 1,
|
|
48
47
|
k: 192,
|
|
49
48
|
expand: 'xmd',
|
|
50
|
-
hash:
|
|
49
|
+
hash: sha2_1.sha384,
|
|
51
50
|
}))();
|
|
52
|
-
/** secp384r1 hash-to-curve from
|
|
51
|
+
/** secp384r1 hash-to-curve from RFC 9380. */
|
|
53
52
|
exports.hashToCurve = (() => htf.hashToCurve)();
|
|
54
|
-
/** secp384r1 encode-to-curve from
|
|
53
|
+
/** secp384r1 encode-to-curve from RFC 9380. */
|
|
55
54
|
exports.encodeToCurve = (() => htf.encodeToCurve)();
|
|
56
55
|
//# 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,
|
|
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"}
|
package/p521.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { CurveFnWithCreate } from './_shortw_utils.
|
|
2
|
-
import { HTFMethod } from './abstract/hash-to-curve.
|
|
1
|
+
import { type CurveFnWithCreate } from './_shortw_utils.ts';
|
|
2
|
+
import { type HTFMethod } from './abstract/hash-to-curve.ts';
|
|
3
3
|
/**
|
|
4
|
-
* NIST secp521r1 aka p521.
|
|
4
|
+
* NIST secp521r1 aka p521 curve, ECDSA and ECDH methods.
|
|
5
|
+
* Field: `2n**521n - 1n`.
|
|
5
6
|
*/
|
|
6
7
|
export declare const p521: CurveFnWithCreate;
|
|
7
8
|
export declare const secp521r1: CurveFnWithCreate;
|
|
8
|
-
/** secp521r1 hash-to-curve from
|
|
9
|
+
/** secp521r1 hash-to-curve from RFC 9380. */
|
|
9
10
|
export declare const hashToCurve: HTFMethod<bigint>;
|
|
10
|
-
/** secp521r1 encode-to-curve from
|
|
11
|
+
/** secp521r1 encode-to-curve from RFC 9380. */
|
|
11
12
|
export declare const encodeToCurve: HTFMethod<bigint>;
|
|
12
13
|
//# 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,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
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"}
|
package/p521.js
CHANGED
|
@@ -8,57 +8,48 @@ exports.encodeToCurve = exports.hashToCurve = exports.secp521r1 = exports.p521 =
|
|
|
8
8
|
* @module
|
|
9
9
|
*/
|
|
10
10
|
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
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
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
|
+
*/
|
|
17
24
|
// prettier-ignore
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
a: Fp521.create(BigInt('-3')),
|
|
22
|
-
b: BigInt('0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00'),
|
|
25
|
+
exports.p521 = (0, _shortw_utils_ts_1.createCurve)({
|
|
26
|
+
a: CURVE_A,
|
|
27
|
+
b: CURVE_B,
|
|
23
28
|
Fp: Fp521,
|
|
24
29
|
n: BigInt('0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409'),
|
|
25
30
|
Gx: BigInt('0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66'),
|
|
26
31
|
Gy: BigInt('0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650'),
|
|
27
32
|
h: BigInt(1),
|
|
28
|
-
};
|
|
29
|
-
/**
|
|
30
|
-
* NIST secp521r1 aka p521.
|
|
31
|
-
*/
|
|
32
|
-
// prettier-ignore
|
|
33
|
-
exports.p521 = (0, _shortw_utils_js_1.createCurve)({
|
|
34
|
-
a: CURVE.a, // Equation params: a, b
|
|
35
|
-
b: CURVE.b,
|
|
36
|
-
Fp: Fp521, // Field: 2n**521n - 1n
|
|
37
|
-
// Curve order, total count of valid points in the field
|
|
38
|
-
n: CURVE.n,
|
|
39
|
-
Gx: CURVE.Gx, // Base point (x, y) aka generator point
|
|
40
|
-
Gy: CURVE.Gy,
|
|
41
|
-
h: CURVE.h,
|
|
42
33
|
lowS: false,
|
|
43
34
|
allowedPrivateKeyLengths: [130, 131, 132] // P521 keys are variable-length. Normalize to 132b
|
|
44
|
-
},
|
|
35
|
+
}, sha2_1.sha512);
|
|
45
36
|
exports.secp521r1 = exports.p521;
|
|
46
|
-
const mapSWU = /* @__PURE__ */ (() => (0,
|
|
47
|
-
A:
|
|
48
|
-
B:
|
|
37
|
+
const mapSWU = /* @__PURE__ */ (() => (0, weierstrass_ts_1.mapToCurveSimpleSWU)(Fp521, {
|
|
38
|
+
A: CURVE_A,
|
|
39
|
+
B: CURVE_B,
|
|
49
40
|
Z: Fp521.create(BigInt('-4')),
|
|
50
41
|
}))();
|
|
51
|
-
const htf = /* @__PURE__ */ (() => (0,
|
|
42
|
+
const htf = /* @__PURE__ */ (() => (0, hash_to_curve_ts_1.createHasher)(exports.secp521r1.ProjectivePoint, (scalars) => mapSWU(scalars[0]), {
|
|
52
43
|
DST: 'P521_XMD:SHA-512_SSWU_RO_',
|
|
53
44
|
encodeDST: 'P521_XMD:SHA-512_SSWU_NU_',
|
|
54
45
|
p: Fp521.ORDER,
|
|
55
46
|
m: 1,
|
|
56
47
|
k: 256,
|
|
57
48
|
expand: 'xmd',
|
|
58
|
-
hash:
|
|
49
|
+
hash: sha2_1.sha512,
|
|
59
50
|
}))();
|
|
60
|
-
/** secp521r1 hash-to-curve from
|
|
51
|
+
/** secp521r1 hash-to-curve from RFC 9380. */
|
|
61
52
|
exports.hashToCurve = (() => htf.hashToCurve)();
|
|
62
|
-
/** secp521r1 encode-to-curve from
|
|
53
|
+
/** secp521r1 encode-to-curve from RFC 9380. */
|
|
63
54
|
exports.encodeToCurve = (() => htf.encodeToCurve)();
|
|
64
55
|
//# 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,
|
|
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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@noble/curves",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.2",
|
|
4
4
|
"description": "Audited & minimal JS implementation of elliptic curve cryptography",
|
|
5
5
|
"files": [
|
|
6
6
|
"*.js",
|
|
@@ -12,15 +12,17 @@
|
|
|
12
12
|
"abstract"
|
|
13
13
|
],
|
|
14
14
|
"scripts": {
|
|
15
|
-
"bench": "cd benchmark; node secp256k1.js; node curves.js; node
|
|
15
|
+
"bench": "npm run bench:install; cd benchmark; node secp256k1.js; node curves.js; node utils.js; node bls.js",
|
|
16
16
|
"bench:install": "cd benchmark; npm install; npm install .. --install-links",
|
|
17
|
-
"build": "tsc && tsc -p tsconfig.
|
|
18
|
-
"build:release": "
|
|
17
|
+
"build": "tsc && tsc -p tsconfig.cjs.json",
|
|
18
|
+
"build:release": "npx jsbt esbuild test/build",
|
|
19
19
|
"build:clean": "rm {.,esm,abstract,esm/abstract}/*.{js,d.ts,d.ts.map,js.map} 2> /dev/null",
|
|
20
20
|
"lint": "prettier --check 'src/**/*.{js,ts}' 'test/*.js'",
|
|
21
21
|
"format": "prettier --write 'src/**/*.{js,ts}' 'test/*.js'",
|
|
22
22
|
"test": "node test/index.js",
|
|
23
|
-
"test:
|
|
23
|
+
"test:bun": "bun test/index.js",
|
|
24
|
+
"test:deno": "deno --allow-env --allow-read test/index.js",
|
|
25
|
+
"test:coverage": "npm install --no-save c8@10.1.2 && npx c8 npm test"
|
|
24
26
|
},
|
|
25
27
|
"author": "Paul Miller (https://paulmillr.com)",
|
|
26
28
|
"homepage": "https://paulmillr.com/noble/",
|
|
@@ -30,16 +32,15 @@
|
|
|
30
32
|
},
|
|
31
33
|
"license": "MIT",
|
|
32
34
|
"dependencies": {
|
|
33
|
-
"@noble/hashes": "1.7.
|
|
35
|
+
"@noble/hashes": "1.7.2"
|
|
34
36
|
},
|
|
35
37
|
"devDependencies": {
|
|
36
|
-
"@paulmillr/jsbt": "0.
|
|
37
|
-
"c8": "10.1.2",
|
|
38
|
+
"@paulmillr/jsbt": "0.3.3",
|
|
38
39
|
"fast-check": "3.0.0",
|
|
39
|
-
"micro-bmark": "0.
|
|
40
|
-
"micro-should": "0.
|
|
41
|
-
"prettier": "3.
|
|
42
|
-
"typescript": "5.
|
|
40
|
+
"micro-bmark": "0.4.0",
|
|
41
|
+
"micro-should": "0.5.1",
|
|
42
|
+
"prettier": "3.5.2",
|
|
43
|
+
"typescript": "5.8.2"
|
|
43
44
|
},
|
|
44
45
|
"sideEffects": false,
|
|
45
46
|
"main": "index.js",
|
|
@@ -100,14 +101,14 @@
|
|
|
100
101
|
"import": "./esm/bn254.js",
|
|
101
102
|
"require": "./bn254.js"
|
|
102
103
|
},
|
|
103
|
-
"./ed25519": {
|
|
104
|
-
"import": "./esm/ed25519.js",
|
|
105
|
-
"require": "./ed25519.js"
|
|
106
|
-
},
|
|
107
104
|
"./ed448": {
|
|
108
105
|
"import": "./esm/ed448.js",
|
|
109
106
|
"require": "./ed448.js"
|
|
110
107
|
},
|
|
108
|
+
"./ed25519": {
|
|
109
|
+
"import": "./esm/ed25519.js",
|
|
110
|
+
"require": "./ed25519.js"
|
|
111
|
+
},
|
|
111
112
|
"./index": {
|
|
112
113
|
"import": "./esm/index.js",
|
|
113
114
|
"require": "./index.js"
|
|
@@ -116,6 +117,10 @@
|
|
|
116
117
|
"import": "./esm/jubjub.js",
|
|
117
118
|
"require": "./jubjub.js"
|
|
118
119
|
},
|
|
120
|
+
"./misc": {
|
|
121
|
+
"import": "./esm/misc.js",
|
|
122
|
+
"require": "./misc.js"
|
|
123
|
+
},
|
|
119
124
|
"./p256": {
|
|
120
125
|
"import": "./esm/p256.js",
|
|
121
126
|
"require": "./p256.js"
|
package/pasta.d.ts
CHANGED
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const p: bigint;
|
|
3
|
-
export declare const q: bigint;
|
|
4
|
-
/** https://neuromancer.sk/std/other/Pallas */
|
|
5
|
-
export declare const pallas: CurveFn;
|
|
6
|
-
/** https://neuromancer.sk/std/other/Vesta */
|
|
7
|
-
export declare const vesta: CurveFn;
|
|
1
|
+
export { pallas, vesta } from './misc.ts';
|
|
8
2
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"pasta.d.ts","sourceRoot":"","sources":["src/pasta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC"}
|
package/pasta.js
CHANGED
|
@@ -1,37 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.vesta = exports.pallas =
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*/
|
|
8
|
-
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
9
|
-
const sha256_1 = require("@noble/hashes/sha256");
|
|
10
|
-
const _shortw_utils_js_1 = require("./_shortw_utils.js");
|
|
11
|
-
const modular_js_1 = require("./abstract/modular.js");
|
|
12
|
-
const weierstrass_js_1 = require("./abstract/weierstrass.js");
|
|
13
|
-
exports.p = BigInt('0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001');
|
|
14
|
-
exports.q = BigInt('0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001');
|
|
15
|
-
/** https://neuromancer.sk/std/other/Pallas */
|
|
16
|
-
exports.pallas = (0, weierstrass_js_1.weierstrass)({
|
|
17
|
-
a: BigInt(0),
|
|
18
|
-
b: BigInt(5),
|
|
19
|
-
Fp: (0, modular_js_1.Field)(exports.p),
|
|
20
|
-
n: exports.q,
|
|
21
|
-
Gx: (0, modular_js_1.mod)(BigInt(-1), exports.p),
|
|
22
|
-
Gy: BigInt(2),
|
|
23
|
-
h: BigInt(1),
|
|
24
|
-
...(0, _shortw_utils_js_1.getHash)(sha256_1.sha256),
|
|
25
|
-
});
|
|
26
|
-
/** https://neuromancer.sk/std/other/Vesta */
|
|
27
|
-
exports.vesta = (0, weierstrass_js_1.weierstrass)({
|
|
28
|
-
a: BigInt(0),
|
|
29
|
-
b: BigInt(5),
|
|
30
|
-
Fp: (0, modular_js_1.Field)(exports.q),
|
|
31
|
-
n: exports.p,
|
|
32
|
-
Gx: (0, modular_js_1.mod)(BigInt(-1), exports.q),
|
|
33
|
-
Gy: BigInt(2),
|
|
34
|
-
h: BigInt(1),
|
|
35
|
-
...(0, _shortw_utils_js_1.getHash)(sha256_1.sha256),
|
|
36
|
-
});
|
|
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; } });
|
|
37
7
|
//# 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
|
|
1
|
+
{"version":3,"file":"pasta.js","sourceRoot":"","sources":["src/pasta.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAAjC,iGAAA,MAAM,OAAA;AAAE,gGAAA,KAAK,OAAA"}
|
package/secp256k1.d.ts
CHANGED
|
@@ -1,20 +1,23 @@
|
|
|
1
|
-
import { CurveFnWithCreate } from './_shortw_utils.
|
|
2
|
-
import { HTFMethod } from './abstract/hash-to-curve.
|
|
3
|
-
import { mod } from './abstract/modular.
|
|
4
|
-
import type { Hex, PrivKey } from './abstract/utils.
|
|
5
|
-
import { bytesToNumberBE, numberToBytesBE } from './abstract/utils.
|
|
6
|
-
import { ProjPointType as PointType } from './abstract/weierstrass.
|
|
1
|
+
import { type CurveFnWithCreate } from './_shortw_utils.ts';
|
|
2
|
+
import { type HTFMethod } from './abstract/hash-to-curve.ts';
|
|
3
|
+
import { mod } from './abstract/modular.ts';
|
|
4
|
+
import type { Hex, PrivKey } from './abstract/utils.ts';
|
|
5
|
+
import { bytesToNumberBE, numberToBytesBE } from './abstract/utils.ts';
|
|
6
|
+
import { type ProjPointType as PointType } from './abstract/weierstrass.ts';
|
|
7
7
|
/**
|
|
8
|
-
* secp256k1
|
|
8
|
+
* secp256k1 curve, ECDSA and ECDH methods.
|
|
9
|
+
*
|
|
10
|
+
* Field: `2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n`
|
|
9
11
|
*
|
|
10
12
|
* @example
|
|
13
|
+
* ```js
|
|
11
14
|
* import { secp256k1 } from '@noble/curves/secp256k1';
|
|
12
|
-
*
|
|
13
15
|
* const priv = secp256k1.utils.randomPrivateKey();
|
|
14
16
|
* const pub = secp256k1.getPublicKey(priv);
|
|
15
17
|
* const msg = new Uint8Array(32).fill(1); // message hash (not message) in ecdsa
|
|
16
18
|
* const sig = secp256k1.sign(msg, priv); // `{prehash: true}` option is available
|
|
17
19
|
* const isValid = secp256k1.verify(sig, msg, pub) === true;
|
|
20
|
+
* ```
|
|
18
21
|
*/
|
|
19
22
|
export declare const secp256k1: CurveFnWithCreate;
|
|
20
23
|
declare function taggedHash(tag: string, ...messages: Uint8Array[]): Uint8Array;
|
|
@@ -55,17 +58,19 @@ export type SecpSchnorr = {
|
|
|
55
58
|
* Schnorr signatures over secp256k1.
|
|
56
59
|
* https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki
|
|
57
60
|
* @example
|
|
61
|
+
* ```js
|
|
58
62
|
* import { schnorr } from '@noble/curves/secp256k1';
|
|
59
63
|
* const priv = schnorr.utils.randomPrivateKey();
|
|
60
64
|
* const pub = schnorr.getPublicKey(priv);
|
|
61
65
|
* const msg = new TextEncoder().encode('hello');
|
|
62
66
|
* const sig = schnorr.sign(msg, priv);
|
|
63
67
|
* const isValid = schnorr.verify(sig, msg, pub);
|
|
68
|
+
* ```
|
|
64
69
|
*/
|
|
65
70
|
export declare const schnorr: SecpSchnorr;
|
|
66
|
-
/** secp256k1 hash-to-curve from
|
|
71
|
+
/** secp256k1 hash-to-curve from RFC 9380. */
|
|
67
72
|
export declare const hashToCurve: HTFMethod<bigint>;
|
|
68
|
-
/** secp256k1 encode-to-curve from
|
|
73
|
+
/** secp256k1 encode-to-curve from RFC 9380. */
|
|
69
74
|
export declare const encodeToCurve: HTFMethod<bigint>;
|
|
70
75
|
export {};
|
|
71
76
|
//# 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":"AAeA,OAAO,EAAe,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"secp256k1.d.ts","sourceRoot":"","sources":["src/secp256k1.ts"],"names":[],"mappings":"AAeA,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAgB,KAAK,SAAS,EAAc,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAS,GAAG,EAAQ,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAEL,eAAe,EAIf,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAuB,KAAK,aAAa,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAsCjG;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,SAAS,EAAE,iBAqCvB,CAAC;AAOF,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,UAAU,EAAE,GAAG,GAAG,UAAU,CAExD;AAED;;;GAGG;AACH,iBAAS,WAAW,CAClB,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,OAAO,EACnB,OAAO,GAAE,GAAqB,GAC7B,UAAU,CAgBZ;AAED;;;GAGG;AACH,iBAAS,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAiB5E;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY,EAAE,OAAO,mBAAmB,CAAC;IACzC,IAAI,EAAE,OAAO,WAAW,CAAC;IACzB,MAAM,EAAE,OAAO,aAAa,CAAC;IAC7B,KAAK,EAAE;QACL,gBAAgB,EAAE,MAAM,UAAU,CAAC;QACnC,MAAM,EAAE,OAAO,MAAM,CAAC;QACtB,YAAY,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC;QACvD,eAAe,EAAE,OAAO,eAAe,CAAC;QACxC,eAAe,EAAE,OAAO,eAAe,CAAC;QACxC,UAAU,EAAE,OAAO,UAAU,CAAC;QAC9B,GAAG,EAAE,OAAO,GAAG,CAAC;KACjB,CAAC;CACH,CAAC;AACF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO,EAAE,WAajB,CAAC;AA2DN,6CAA6C;AAC7C,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,MAAM,CAA6C,CAAC;AAExF,+CAA+C;AAC/C,eAAO,MAAM,aAAa,EAAE,SAAS,CAAC,MAAM,CAA+C,CAAC"}
|