@noble/curves 1.4.0 → 1.4.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.
- package/README.md +31 -23
- package/_shortw_utils.d.ts +16 -16
- package/_shortw_utils.d.ts.map +1 -1
- package/_shortw_utils.js +2 -3
- package/_shortw_utils.js.map +1 -1
- package/abstract/bls.d.ts +24 -22
- package/abstract/bls.d.ts.map +1 -1
- package/abstract/bls.js +1 -2
- package/abstract/bls.js.map +1 -1
- package/abstract/curve.d.ts.map +1 -1
- package/abstract/curve.js +2 -3
- package/abstract/curve.js.map +1 -1
- package/abstract/edwards.d.ts +12 -12
- package/abstract/edwards.d.ts.map +1 -1
- package/abstract/edwards.js +12 -5
- package/abstract/edwards.js.map +1 -1
- package/abstract/hash-to-curve.d.ts +2 -1
- package/abstract/hash-to-curve.d.ts.map +1 -1
- package/abstract/hash-to-curve.js +16 -6
- package/abstract/hash-to-curve.js.map +1 -1
- package/abstract/modular.d.ts.map +1 -1
- package/abstract/modular.js +20 -20
- package/abstract/modular.js.map +1 -1
- package/abstract/montgomery.js +1 -2
- package/abstract/montgomery.js.map +1 -1
- package/abstract/poseidon.d.ts +2 -2
- package/abstract/poseidon.d.ts.map +1 -1
- package/abstract/poseidon.js +3 -4
- package/abstract/poseidon.js.map +1 -1
- package/abstract/utils.d.ts +5 -5
- package/abstract/utils.js +24 -24
- package/abstract/utils.js.map +1 -1
- package/abstract/weierstrass.d.ts +17 -17
- package/abstract/weierstrass.d.ts.map +1 -1
- package/abstract/weierstrass.js +18 -8
- package/abstract/weierstrass.js.map +1 -1
- package/bls12-381.d.ts +0 -1
- package/bls12-381.d.ts.map +1 -1
- package/bls12-381.js +41 -39
- package/bls12-381.js.map +1 -1
- package/bn254.js +1 -1
- package/bn254.js.map +1 -1
- package/ed25519.d.ts +4 -4
- package/ed25519.d.ts.map +1 -1
- package/ed25519.js +34 -30
- package/ed25519.js.map +1 -1
- package/ed448.d.ts +3 -3
- package/ed448.d.ts.map +1 -1
- package/ed448.js +6 -3
- package/ed448.js.map +1 -1
- package/esm/_shortw_utils.d.ts +62 -0
- package/esm/_shortw_utils.d.ts.map +1 -0
- package/esm/_shortw_utils.js.map +1 -1
- package/esm/abstract/bls.d.ts +122 -0
- package/esm/abstract/bls.d.ts.map +1 -0
- package/esm/abstract/bls.js.map +1 -1
- package/esm/abstract/curve.d.ts +70 -0
- package/esm/abstract/curve.d.ts.map +1 -0
- package/esm/abstract/edwards.d.ts +89 -0
- package/esm/abstract/edwards.d.ts.map +1 -0
- package/esm/abstract/edwards.js +11 -3
- package/esm/abstract/edwards.js.map +1 -1
- package/esm/abstract/hash-to-curve.d.ts +58 -0
- package/esm/abstract/hash-to-curve.d.ts.map +1 -0
- package/esm/abstract/hash-to-curve.js +12 -1
- package/esm/abstract/hash-to-curve.js.map +1 -1
- package/esm/abstract/modular.d.ts +123 -0
- package/esm/abstract/modular.d.ts.map +1 -0
- package/esm/abstract/modular.js +1 -1
- package/esm/abstract/modular.js.map +1 -1
- package/esm/abstract/montgomery.d.ts +26 -0
- package/esm/abstract/montgomery.d.ts.map +1 -0
- package/esm/abstract/poseidon.d.ts +30 -0
- package/esm/abstract/poseidon.d.ts.map +1 -0
- package/esm/abstract/poseidon.js.map +1 -1
- package/esm/abstract/utils.d.ts +94 -0
- package/esm/abstract/utils.d.ts.map +1 -0
- package/esm/abstract/utils.js +3 -3
- package/esm/abstract/utils.js.map +1 -1
- package/esm/abstract/weierstrass.d.ts +237 -0
- package/esm/abstract/weierstrass.d.ts.map +1 -0
- package/esm/abstract/weierstrass.js +13 -3
- package/esm/abstract/weierstrass.js.map +1 -1
- package/esm/bls12-381.d.ts +67 -0
- package/esm/bls12-381.d.ts.map +1 -0
- package/esm/bls12-381.js +41 -39
- package/esm/bls12-381.js.map +1 -1
- package/esm/bn254.d.ts +9 -0
- package/esm/bn254.d.ts.map +1 -0
- package/esm/bn254.js +1 -1
- package/esm/bn254.js.map +1 -1
- package/esm/ed25519.d.ts +78 -0
- package/esm/ed25519.d.ts.map +1 -0
- package/esm/ed25519.js +31 -27
- package/esm/ed25519.js.map +1 -1
- package/esm/ed448.d.ts +67 -0
- package/esm/ed448.d.ts.map +1 -0
- package/esm/ed448.js +5 -2
- package/esm/ed448.js.map +1 -1
- package/esm/index.d.ts +2 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/esm/jubjub.d.ts +9 -0
- package/esm/jubjub.d.ts.map +1 -0
- package/esm/jubjub.js +1 -1
- package/esm/jubjub.js.map +1 -1
- package/esm/p256.d.ts +105 -0
- package/esm/p256.d.ts.map +1 -0
- package/esm/p256.js +2 -2
- package/esm/p256.js.map +1 -1
- package/esm/p384.d.ts +105 -0
- package/esm/p384.d.ts.map +1 -0
- package/esm/p384.js +2 -2
- package/esm/p384.js.map +1 -1
- package/esm/p521.d.ts +105 -0
- package/esm/p521.d.ts.map +1 -0
- package/esm/p521.js +2 -2
- package/esm/p521.js.map +1 -1
- package/esm/pasta.d.ts +5 -0
- package/esm/pasta.d.ts.map +1 -0
- package/esm/pasta.js +6 -6
- package/esm/pasta.js.map +1 -1
- package/esm/secp256k1.d.ts +93 -0
- package/esm/secp256k1.d.ts.map +1 -0
- package/esm/secp256k1.js +3 -3
- package/esm/secp256k1.js.map +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/jubjub.js +4 -4
- package/jubjub.js.map +1 -1
- package/p256.d.ts +32 -32
- package/p256.d.ts.map +1 -1
- package/p256.js +2 -2
- package/p256.js.map +1 -1
- package/p384.d.ts +32 -32
- package/p384.d.ts.map +1 -1
- package/p384.js +2 -2
- package/p384.js.map +1 -1
- package/p521.d.ts +32 -32
- package/p521.d.ts.map +1 -1
- package/p521.js +2 -2
- package/p521.js.map +1 -1
- package/package.json +26 -47
- package/pasta.js +6 -6
- package/pasta.js.map +1 -1
- package/secp256k1.d.ts +18 -18
- package/secp256k1.d.ts.map +1 -1
- package/secp256k1.js +3 -3
- package/secp256k1.js.map +1 -1
- package/src/_shortw_utils.ts +1 -1
- package/src/abstract/bls.ts +31 -25
- package/src/abstract/edwards.ts +3 -2
- package/src/abstract/hash-to-curve.ts +13 -3
- package/src/abstract/modular.ts +2 -2
- package/src/abstract/poseidon.ts +1 -1
- package/src/abstract/utils.ts +3 -3
- package/src/abstract/weierstrass.ts +1 -1
- package/src/bls12-381.ts +46 -44
- package/src/bn254.ts +1 -1
- package/src/ed25519.ts +76 -68
- package/src/ed448.ts +3 -3
- package/src/index.ts +1 -1
- package/src/jubjub.ts +1 -1
- package/src/p256.ts +2 -2
- package/src/p384.ts +2 -2
- package/src/p521.ts +2 -2
- package/src/pasta.ts +6 -6
- package/src/secp256k1.ts +3 -3
package/secp256k1.d.ts
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { mod } from './abstract/modular.js';
|
|
2
|
-
import { ProjPointType as PointType } from './abstract/weierstrass.js';
|
|
3
2
|
import type { Hex, PrivKey } from './abstract/utils.js';
|
|
4
3
|
import { bytesToNumberBE, numberToBytesBE } from './abstract/utils.js';
|
|
4
|
+
import { ProjPointType as PointType } from './abstract/weierstrass.js';
|
|
5
5
|
export declare const secp256k1: Readonly<{
|
|
6
6
|
create: (hash: import("./abstract/utils.js").CHash) => import("./abstract/weierstrass.js").CurveFn;
|
|
7
|
-
CURVE: Readonly<{
|
|
7
|
+
CURVE: ReturnType<(curve: import("./abstract/weierstrass.js").CurveType) => Readonly<{
|
|
8
8
|
readonly nBitLength: number;
|
|
9
9
|
readonly nByteLength: number;
|
|
10
10
|
readonly Fp: import("./abstract/modular.js").IField<bigint>;
|
|
11
11
|
readonly n: bigint;
|
|
12
12
|
readonly h: bigint;
|
|
13
|
-
readonly hEff?: bigint
|
|
13
|
+
readonly hEff?: bigint;
|
|
14
14
|
readonly Gx: bigint;
|
|
15
15
|
readonly Gy: bigint;
|
|
16
|
-
readonly allowInfinityPoint?: boolean
|
|
16
|
+
readonly allowInfinityPoint?: boolean;
|
|
17
17
|
readonly a: bigint;
|
|
18
18
|
readonly b: bigint;
|
|
19
|
-
readonly allowedPrivateKeyLengths?: readonly number[]
|
|
20
|
-
readonly wrapPrivateKey?: boolean
|
|
19
|
+
readonly allowedPrivateKeyLengths?: readonly number[];
|
|
20
|
+
readonly wrapPrivateKey?: boolean;
|
|
21
21
|
readonly endo?: {
|
|
22
22
|
beta: bigint;
|
|
23
23
|
splitScalar: (k: bigint) => {
|
|
@@ -26,31 +26,31 @@ export declare const secp256k1: Readonly<{
|
|
|
26
26
|
k2neg: boolean;
|
|
27
27
|
k2: bigint;
|
|
28
28
|
};
|
|
29
|
-
}
|
|
29
|
+
};
|
|
30
30
|
readonly isTorsionFree?: ((c: import("./abstract/weierstrass.js").ProjConstructor<bigint>, point: PointType<bigint>) => boolean) | undefined;
|
|
31
31
|
readonly clearCofactor?: ((c: import("./abstract/weierstrass.js").ProjConstructor<bigint>, point: PointType<bigint>) => PointType<bigint>) | undefined;
|
|
32
32
|
readonly hash: import("./abstract/utils.js").CHash;
|
|
33
33
|
readonly hmac: (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array;
|
|
34
|
-
readonly randomBytes: (bytesLength?: number
|
|
34
|
+
readonly randomBytes: (bytesLength?: number) => Uint8Array;
|
|
35
35
|
lowS: boolean;
|
|
36
|
-
readonly bits2int?: (
|
|
37
|
-
readonly bits2int_modN?: (
|
|
36
|
+
readonly bits2int?: (bytes: Uint8Array) => bigint;
|
|
37
|
+
readonly bits2int_modN?: (bytes: Uint8Array) => bigint;
|
|
38
38
|
readonly p: bigint;
|
|
39
|
-
}
|
|
40
|
-
getPublicKey: (privateKey: PrivKey, isCompressed?: boolean
|
|
41
|
-
getSharedSecret: (privateA: PrivKey, publicB: Hex, isCompressed?: boolean
|
|
42
|
-
sign: (msgHash: Hex, privKey: PrivKey, opts?: import("./abstract/weierstrass.js").SignOpts
|
|
39
|
+
}>>;
|
|
40
|
+
getPublicKey: (privateKey: PrivKey, isCompressed?: boolean) => Uint8Array;
|
|
41
|
+
getSharedSecret: (privateA: PrivKey, publicB: Hex, isCompressed?: boolean) => Uint8Array;
|
|
42
|
+
sign: (msgHash: Hex, privKey: PrivKey, opts?: import("./abstract/weierstrass.js").SignOpts) => import("./abstract/weierstrass.js").RecoveredSignatureType;
|
|
43
43
|
verify: (signature: Hex | {
|
|
44
44
|
r: bigint;
|
|
45
45
|
s: bigint;
|
|
46
|
-
}, msgHash: Hex, publicKey: Hex, opts?: import("./abstract/weierstrass.js").VerOpts
|
|
46
|
+
}, msgHash: Hex, publicKey: Hex, opts?: import("./abstract/weierstrass.js").VerOpts) => boolean;
|
|
47
47
|
ProjectivePoint: import("./abstract/weierstrass.js").ProjConstructor<bigint>;
|
|
48
48
|
Signature: import("./abstract/weierstrass.js").SignatureConstructor;
|
|
49
49
|
utils: {
|
|
50
50
|
normPrivateKeyToScalar: (key: PrivKey) => bigint;
|
|
51
51
|
isValidPrivateKey(privateKey: PrivKey): boolean;
|
|
52
52
|
randomPrivateKey: () => Uint8Array;
|
|
53
|
-
precompute: (windowSize?: number
|
|
53
|
+
precompute: (windowSize?: number, point?: PointType<bigint>) => PointType<bigint>;
|
|
54
54
|
};
|
|
55
55
|
}>;
|
|
56
56
|
declare function taggedHash(tag: string, ...messages: Uint8Array[]): Uint8Array;
|
|
@@ -87,7 +87,7 @@ export declare const schnorr: {
|
|
|
87
87
|
mod: typeof mod;
|
|
88
88
|
};
|
|
89
89
|
};
|
|
90
|
-
export declare const hashToCurve: (msg: Uint8Array, options?: import("./abstract/hash-to-curve.js").htfBasicOpts
|
|
91
|
-
export declare const encodeToCurve: (msg: Uint8Array, options?: import("./abstract/hash-to-curve.js").htfBasicOpts
|
|
90
|
+
export declare const hashToCurve: (msg: Uint8Array, options?: import("./abstract/hash-to-curve.js").htfBasicOpts) => import("./abstract/hash-to-curve.js").H2CPoint<bigint>;
|
|
91
|
+
export declare const encodeToCurve: (msg: Uint8Array, options?: import("./abstract/hash-to-curve.js").htfBasicOpts) => import("./abstract/hash-to-curve.js").H2CPoint<bigint>;
|
|
92
92
|
export {};
|
|
93
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":"AAKA,OAAO,EAAS,GAAG,EAAQ,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAA4B,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,aAAa,IAAI,SAAS,EAAuB,MAAM,2BAA2B,CAAC;AAsC5F,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CAoOq0Y,CAAC;;;;;;oDAAwmB,CAAC;mEAA2F,CAAC;+CAAuE,CAAC;;;;yCAAoH,CAAC;;;;;;;+BAA+R,CAAC,eAAe,CAAC;;EAzL7gb,CAAC;AASF,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;AAQD;;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,eAAO,MAAM,OAAO;;;;;;;8BA5FS,SAAS,CAAC,MAAM,CAAC;;;;;;CAyGzC,CAAC;AA0DN,eAAO,MAAM,WAAW,2IAA4C,CAAC;AACrE,eAAO,MAAM,aAAa,2IAA8C,CAAC"}
|
package/secp256k1.js
CHANGED
|
@@ -4,11 +4,11 @@ exports.encodeToCurve = exports.hashToCurve = exports.schnorr = exports.secp256k
|
|
|
4
4
|
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
5
5
|
const sha256_1 = require("@noble/hashes/sha256");
|
|
6
6
|
const utils_1 = require("@noble/hashes/utils");
|
|
7
|
+
const _shortw_utils_js_1 = require("./_shortw_utils.js");
|
|
8
|
+
const hash_to_curve_js_1 = require("./abstract/hash-to-curve.js");
|
|
7
9
|
const modular_js_1 = require("./abstract/modular.js");
|
|
8
|
-
const weierstrass_js_1 = require("./abstract/weierstrass.js");
|
|
9
10
|
const utils_js_1 = require("./abstract/utils.js");
|
|
10
|
-
const
|
|
11
|
-
const _shortw_utils_js_1 = require("./_shortw_utils.js");
|
|
11
|
+
const weierstrass_js_1 = require("./abstract/weierstrass.js");
|
|
12
12
|
const secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');
|
|
13
13
|
const secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');
|
|
14
14
|
const _1n = BigInt(1);
|
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":"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"}
|
package/src/_shortw_utils.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
2
2
|
import { hmac } from '@noble/hashes/hmac';
|
|
3
3
|
import { concatBytes, randomBytes } from '@noble/hashes/utils';
|
|
4
|
-
import { weierstrass, CurveType } from './abstract/weierstrass.js';
|
|
5
4
|
import { CHash } from './abstract/utils.js';
|
|
5
|
+
import { CurveType, weierstrass } from './abstract/weierstrass.js';
|
|
6
6
|
|
|
7
7
|
// connects noble-curves to noble-hashes
|
|
8
8
|
export function getHash(hash: CHash) {
|
package/src/abstract/bls.ts
CHANGED
|
@@ -1,16 +1,5 @@
|
|
|
1
1
|
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
2
|
-
|
|
3
|
-
* BLS (Barreto-Lynn-Scott) family of pairing-friendly curves.
|
|
4
|
-
* Implements BLS (Boneh-Lynn-Shacham) signatures.
|
|
5
|
-
* Consists of two curves: G1 and G2:
|
|
6
|
-
* - G1 is a subgroup of (x, y) E(Fq) over y² = x³ + 4.
|
|
7
|
-
* - G2 is a subgroup of ((x₁, x₂+i), (y₁, y₂+i)) E(Fq²) over y² = x³ + 4(1 + i) where i is √-1
|
|
8
|
-
* - Gt, created by bilinear (ate) pairing e(G1, G2), consists of p-th roots of unity in
|
|
9
|
-
* Fq^k where k is embedding degree. Only degree 12 is currently supported, 24 is not.
|
|
10
|
-
* Pairing is used to aggregate and verify signatures.
|
|
11
|
-
* We are using Fp for private keys (shorter) and Fp₂ for signatures (longer).
|
|
12
|
-
* Some projects may prefer to swap this relation, it is not supported for now.
|
|
13
|
-
*/
|
|
2
|
+
// BLS (Barreto-Lynn-Scott) family of pairing-friendly curves.
|
|
14
3
|
import { AffinePoint } from './curve.js';
|
|
15
4
|
import { IField, getMinHashLength, mapHashToField } from './modular.js';
|
|
16
5
|
import { Hex, PrivKey, CHash, bitLen, bitGet, ensureBytes } from './utils.js';
|
|
@@ -26,6 +15,19 @@ import {
|
|
|
26
15
|
weierstrassPoints,
|
|
27
16
|
} from './weierstrass.js';
|
|
28
17
|
|
|
18
|
+
/**
|
|
19
|
+
* BLS (Barreto-Lynn-Scott) family of pairing-friendly curves.
|
|
20
|
+
* Implements BLS (Boneh-Lynn-Shacham) signatures.
|
|
21
|
+
* Consists of two curves: G1 and G2:
|
|
22
|
+
* - G1 is a subgroup of (x, y) E(Fq) over y² = x³ + 4.
|
|
23
|
+
* - G2 is a subgroup of ((x₁, x₂+i), (y₁, y₂+i)) E(Fq²) over y² = x³ + 4(1 + i) where i is √-1
|
|
24
|
+
* - Gt, created by bilinear (ate) pairing e(G1, G2), consists of p-th roots of unity in
|
|
25
|
+
* Fq^k where k is embedding degree. Only degree 12 is currently supported, 24 is not.
|
|
26
|
+
* Pairing is used to aggregate and verify signatures.
|
|
27
|
+
* We are using Fp for private keys (shorter) and Fp₂ for signatures (longer).
|
|
28
|
+
* Some projects may prefer to swap this relation, it is not supported for now.
|
|
29
|
+
**/
|
|
30
|
+
|
|
29
31
|
type Fp = bigint; // Can be different field?
|
|
30
32
|
|
|
31
33
|
// prettier-ignore
|
|
@@ -43,6 +45,19 @@ export type SignatureCoder<Fp2> = {
|
|
|
43
45
|
toHex(point: ProjPointType<Fp2>): string;
|
|
44
46
|
};
|
|
45
47
|
|
|
48
|
+
type Fp2Bls<Fp, Fp2> = IField<Fp2> & {
|
|
49
|
+
reim: (num: Fp2) => { re: Fp; im: Fp };
|
|
50
|
+
multiplyByB: (num: Fp2) => Fp2;
|
|
51
|
+
frobeniusMap(num: Fp2, power: number): Fp2;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
type Fp12Bls<Fp2, Fp12> = IField<Fp12> & {
|
|
55
|
+
frobeniusMap(num: Fp12, power: number): Fp12;
|
|
56
|
+
multiplyBy014(num: Fp12, o0: Fp2, o1: Fp2, o4: Fp2): Fp12;
|
|
57
|
+
conjugate(num: Fp12): Fp12;
|
|
58
|
+
finalExponentiate(num: Fp12): Fp12;
|
|
59
|
+
};
|
|
60
|
+
|
|
46
61
|
export type CurveType<Fp, Fp2, Fp6, Fp12> = {
|
|
47
62
|
G1: Omit<CurvePointsType<Fp>, 'n'> & {
|
|
48
63
|
ShortSignature: SignatureCoder<Fp>;
|
|
@@ -57,18 +72,9 @@ export type CurveType<Fp, Fp2, Fp6, Fp12> = {
|
|
|
57
72
|
fields: {
|
|
58
73
|
Fp: IField<Fp>;
|
|
59
74
|
Fr: IField<bigint>;
|
|
60
|
-
Fp2:
|
|
61
|
-
reim: (num: Fp2) => { re: bigint; im: bigint };
|
|
62
|
-
multiplyByB: (num: Fp2) => Fp2;
|
|
63
|
-
frobeniusMap(num: Fp2, power: number): Fp2;
|
|
64
|
-
};
|
|
75
|
+
Fp2: Fp2Bls<Fp, Fp2>;
|
|
65
76
|
Fp6: IField<Fp6>;
|
|
66
|
-
Fp12:
|
|
67
|
-
frobeniusMap(num: Fp12, power: number): Fp12;
|
|
68
|
-
multiplyBy014(num: Fp12, o0: Fp2, o1: Fp2, o4: Fp2): Fp12;
|
|
69
|
-
conjugate(num: Fp12): Fp12;
|
|
70
|
-
finalExponentiate(num: Fp12): Fp12;
|
|
71
|
-
};
|
|
77
|
+
Fp12: Fp12Bls<Fp2, Fp12>;
|
|
72
78
|
};
|
|
73
79
|
params: {
|
|
74
80
|
x: bigint;
|
|
@@ -134,9 +140,9 @@ export type CurveFn<Fp, Fp2, Fp6, Fp12> = {
|
|
|
134
140
|
};
|
|
135
141
|
fields: {
|
|
136
142
|
Fp: IField<Fp>;
|
|
137
|
-
Fp2:
|
|
143
|
+
Fp2: Fp2Bls<Fp, Fp2>;
|
|
138
144
|
Fp6: IField<Fp6>;
|
|
139
|
-
Fp12:
|
|
145
|
+
Fp12: Fp12Bls<Fp2, Fp12>;
|
|
140
146
|
Fr: IField<bigint>;
|
|
141
147
|
};
|
|
142
148
|
utils: {
|
package/src/abstract/edwards.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
2
2
|
// Twisted Edwards curve. The formula is: ax² + y² = 1 + dx²y²
|
|
3
|
+
import { AffinePoint, BasicCurve, Group, GroupConstructor, validateBasic, wNAF } from './curve.js';
|
|
3
4
|
import { mod } from './modular.js';
|
|
4
5
|
import * as ut from './utils.js';
|
|
5
6
|
import { ensureBytes, FHash, Hex } from './utils.js';
|
|
6
|
-
import { Group, GroupConstructor, wNAF, BasicCurve, validateBasic, AffinePoint } from './curve.js';
|
|
7
7
|
|
|
8
8
|
// Be friendly to bad ECMAScript parsers by not using bigint literals
|
|
9
9
|
// prettier-ignore
|
|
@@ -372,7 +372,8 @@ export function twistedEdwards(curveDef: CurveType): CurveFn {
|
|
|
372
372
|
// y=0 is allowed
|
|
373
373
|
} else {
|
|
374
374
|
// RFC8032 prohibits >= p, but ZIP215 doesn't
|
|
375
|
-
if (zip215)
|
|
375
|
+
if (zip215)
|
|
376
|
+
assertInRange(y, MASK); // zip215=true [1..P-1] (2^255-19-1 for ed25519)
|
|
376
377
|
else assertInRange(y, Fp.ORDER); // zip215=false [1..MASK-1] (2^256-1 for ed25519)
|
|
377
378
|
}
|
|
378
379
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
2
|
-
import type { Group, GroupConstructor
|
|
3
|
-
import {
|
|
2
|
+
import type { AffinePoint, Group, GroupConstructor } from './curve.js';
|
|
3
|
+
import { IField, mod } from './modular.js';
|
|
4
4
|
import type { CHash } from './utils.js';
|
|
5
|
-
import {
|
|
5
|
+
import { abytes, bytesToNumberBE, concatBytes, utf8ToBytes, validateObject } from './utils.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* * `DST` is a domain separation tag, defined in section 2.2.5
|
|
@@ -217,5 +217,15 @@ export function createHasher<T>(
|
|
|
217
217
|
P.assertValidity();
|
|
218
218
|
return P;
|
|
219
219
|
},
|
|
220
|
+
// Same as encodeToCurve, but without hash
|
|
221
|
+
mapToCurve(scalars: bigint[]) {
|
|
222
|
+
if (!Array.isArray(scalars)) throw new Error('mapToCurve: expected array of bigints');
|
|
223
|
+
for (const i of scalars)
|
|
224
|
+
if (typeof i !== 'bigint')
|
|
225
|
+
throw new Error(`mapToCurve: expected array of bigints, got ${i} in array`);
|
|
226
|
+
const P = Point.fromAffine(mapToCurve(scalars)).clearCofactor();
|
|
227
|
+
P.assertValidity();
|
|
228
|
+
return P;
|
|
229
|
+
},
|
|
220
230
|
};
|
|
221
231
|
}
|
package/src/abstract/modular.ts
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
// Utilities for modular arithmetics and finite fields
|
|
3
3
|
import {
|
|
4
4
|
bitMask,
|
|
5
|
-
numberToBytesBE,
|
|
6
|
-
numberToBytesLE,
|
|
7
5
|
bytesToNumberBE,
|
|
8
6
|
bytesToNumberLE,
|
|
9
7
|
ensureBytes,
|
|
8
|
+
numberToBytesBE,
|
|
9
|
+
numberToBytesLE,
|
|
10
10
|
validateObject,
|
|
11
11
|
} from './utils.js';
|
|
12
12
|
// prettier-ignore
|
package/src/abstract/poseidon.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
2
2
|
// Poseidon Hash: https://eprint.iacr.org/2019/458.pdf, https://www.poseidon-hash.info
|
|
3
|
-
import {
|
|
3
|
+
import { FpPow, IField, validateField } from './modular.js';
|
|
4
4
|
// We don't provide any constants, since different implementations use different constants.
|
|
5
5
|
// For reference constants see './test/poseidon.test.js'.
|
|
6
6
|
export type PoseidonOpts = {
|
package/src/abstract/utils.ts
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
// This is OK: `abstract` directory does not use noble-hashes.
|
|
4
4
|
// User may opt-in into using different hashing library. This way, noble-hashes
|
|
5
5
|
// won't be included into their bundle.
|
|
6
|
-
const _0n = BigInt(0);
|
|
7
|
-
const _1n = BigInt(1);
|
|
8
|
-
const _2n = BigInt(2);
|
|
6
|
+
const _0n = /* @__PURE__ */ BigInt(0);
|
|
7
|
+
const _1n = /* @__PURE__ */ BigInt(1);
|
|
8
|
+
const _2n = /* @__PURE__ */ BigInt(2);
|
|
9
9
|
export type Hex = Uint8Array | string; // hex strings are accepted for simplicity
|
|
10
10
|
export type PrivKey = Hex | bigint; // bigints are accepted to ease learning curve
|
|
11
11
|
export type CHash = {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
2
2
|
// Short Weierstrass curve. The formula is: y² = x³ + ax + b
|
|
3
|
+
import { AffinePoint, BasicCurve, Group, GroupConstructor, validateBasic, wNAF } from './curve.js';
|
|
3
4
|
import * as mod from './modular.js';
|
|
4
5
|
import * as ut from './utils.js';
|
|
5
6
|
import { CHash, Hex, PrivKey, ensureBytes } from './utils.js';
|
|
6
|
-
import { Group, GroupConstructor, wNAF, BasicCurve, validateBasic, AffinePoint } from './curve.js';
|
|
7
7
|
|
|
8
8
|
export type { AffinePoint };
|
|
9
9
|
type HmacFnSync = (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array;
|
package/src/bls12-381.ts
CHANGED
|
@@ -1,58 +1,60 @@
|
|
|
1
1
|
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
2
|
-
|
|
3
|
-
// bls12-381 is pairing-friendly Barreto-Lynn-Scott elliptic curve construction allowing to:
|
|
4
|
-
// - Construct zk-SNARKs at the 120-bit security
|
|
5
|
-
// - Efficiently verify N aggregate signatures with 1 pairing and N ec additions:
|
|
6
|
-
// the Boneh-Lynn-Shacham signature scheme is orders of magnitude more efficient than Schnorr
|
|
7
|
-
//
|
|
8
|
-
// ### Summary
|
|
9
|
-
// 1. BLS Relies on Bilinear Pairing (expensive)
|
|
10
|
-
// 2. Private Keys: 32 bytes
|
|
11
|
-
// 3. Public Keys: 48 bytes: 381 bit affine x coordinate, encoded into 48 big-endian bytes.
|
|
12
|
-
// 4. Signatures: 96 bytes: two 381 bit integers (affine x coordinate), encoded into two 48 big-endian byte arrays.
|
|
13
|
-
// - The signature is a point on the G2 subgroup, which is defined over a finite field
|
|
14
|
-
// with elements twice as big as the G1 curve (G2 is over Fp2 rather than Fp. Fp2 is analogous to the complex numbers).
|
|
15
|
-
// 5. The 12 stands for the Embedding degree.
|
|
16
|
-
//
|
|
17
|
-
// ### Formulas
|
|
18
|
-
// - `P = pk x G` - public keys
|
|
19
|
-
// - `S = pk x H(m)` - signing
|
|
20
|
-
// - `e(P, H(m)) == e(G, S)` - verification using pairings
|
|
21
|
-
// - `e(G, S) = e(G, SUM(n)(Si)) = MUL(n)(e(G, Si))` - signature aggregation
|
|
22
|
-
//
|
|
23
|
-
// ### Compatibility and notes
|
|
24
|
-
// 1. It is compatible with Algorand, Chia, Dfinity, Ethereum, Filecoin, ZEC
|
|
25
|
-
// Filecoin uses little endian byte arrays for private keys - make sure to reverse byte order.
|
|
26
|
-
// 2. Some projects use G2 for public keys and G1 for signatures. It's called "short signature"
|
|
27
|
-
// 3. Curve security level is about 120 bits as per Barbulescu-Duquesne 2017
|
|
28
|
-
// https://hal.science/hal-01534101/file/main.pdf
|
|
29
|
-
// 4. Compatible with specs:
|
|
30
|
-
// [cfrg-pairing-friendly-curves-11](https://tools.ietf.org/html/draft-irtf-cfrg-pairing-friendly-curves-11),
|
|
31
|
-
// [cfrg-bls-signature-05](https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-bls-signature-05),
|
|
32
|
-
// [RFC 9380](https://www.rfc-editor.org/rfc/rfc9380).
|
|
33
2
|
import { sha256 } from '@noble/hashes/sha256';
|
|
34
3
|
import { randomBytes } from '@noble/hashes/utils';
|
|
35
4
|
import { bls, CurveFn } from './abstract/bls.js';
|
|
36
5
|
import * as mod from './abstract/modular.js';
|
|
37
6
|
import {
|
|
38
|
-
concatBytes as concatB,
|
|
39
|
-
ensureBytes,
|
|
40
|
-
numberToBytesBE,
|
|
41
|
-
bytesToNumberBE,
|
|
42
|
-
bitLen,
|
|
43
7
|
bitGet,
|
|
44
|
-
|
|
8
|
+
bitLen,
|
|
45
9
|
bitMask,
|
|
46
10
|
bytesToHex,
|
|
11
|
+
bytesToNumberBE,
|
|
12
|
+
concatBytes as concatB,
|
|
13
|
+
ensureBytes,
|
|
14
|
+
Hex,
|
|
15
|
+
numberToBytesBE,
|
|
47
16
|
} from './abstract/utils.js';
|
|
48
17
|
// Types
|
|
18
|
+
import { isogenyMap } from './abstract/hash-to-curve.js';
|
|
49
19
|
import {
|
|
50
|
-
ProjPointType,
|
|
51
|
-
ProjConstructor,
|
|
52
|
-
mapToCurveSimpleSWU,
|
|
53
20
|
AffinePoint,
|
|
21
|
+
mapToCurveSimpleSWU,
|
|
22
|
+
ProjConstructor,
|
|
23
|
+
ProjPointType,
|
|
54
24
|
} from './abstract/weierstrass.js';
|
|
55
|
-
|
|
25
|
+
|
|
26
|
+
/*
|
|
27
|
+
bls12-381 is pairing-friendly Barreto-Lynn-Scott elliptic curve construction allowing to:
|
|
28
|
+
- Construct zk-SNARKs at the 120-bit security
|
|
29
|
+
- Efficiently verify N aggregate signatures with 1 pairing and N ec additions:
|
|
30
|
+
the Boneh-Lynn-Shacham signature scheme is orders of magnitude more efficient than Schnorr
|
|
31
|
+
|
|
32
|
+
### Summary
|
|
33
|
+
1. BLS Relies on Bilinear Pairing (expensive)
|
|
34
|
+
2. Private Keys: 32 bytes
|
|
35
|
+
3. Public Keys: 48 bytes: 381 bit affine x coordinate, encoded into 48 big-endian bytes.
|
|
36
|
+
4. Signatures: 96 bytes: two 381 bit integers (affine x coordinate), encoded into two 48 big-endian byte arrays.
|
|
37
|
+
- The signature is a point on the G2 subgroup, which is defined over a finite field
|
|
38
|
+
with elements twice as big as the G1 curve (G2 is over Fp2 rather than Fp. Fp2 is analogous to the complex numbers).
|
|
39
|
+
5. The 12 stands for the Embedding degree.
|
|
40
|
+
|
|
41
|
+
### Formulas
|
|
42
|
+
- `P = pk x G` - public keys
|
|
43
|
+
- `S = pk x H(m)` - signing
|
|
44
|
+
- `e(P, H(m)) == e(G, S)` - verification using pairings
|
|
45
|
+
- `e(G, S) = e(G, SUM(n)(Si)) = MUL(n)(e(G, Si))` - signature aggregation
|
|
46
|
+
|
|
47
|
+
### Compatibility and notes
|
|
48
|
+
1. It is compatible with Algorand, Chia, Dfinity, Ethereum, Filecoin, ZEC
|
|
49
|
+
Filecoin uses little endian byte arrays for private keys - make sure to reverse byte order.
|
|
50
|
+
2. Some projects use G2 for public keys and G1 for signatures. It's called "short signature"
|
|
51
|
+
3. Curve security level is about 120 bits as per Barbulescu-Duquesne 2017
|
|
52
|
+
https://hal.science/hal-01534101/file/main.pdf
|
|
53
|
+
4. Compatible with specs:
|
|
54
|
+
[cfrg-pairing-friendly-curves-11](https://tools.ietf.org/html/draft-irtf-cfrg-pairing-friendly-curves-11),
|
|
55
|
+
[cfrg-bls-signature-05](https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-bls-signature-05),
|
|
56
|
+
[RFC 9380](https://www.rfc-editor.org/rfc/rfc9380).
|
|
57
|
+
*/
|
|
56
58
|
|
|
57
59
|
// Be friendly to bad ECMAScript parsers by not using bigint literals
|
|
58
60
|
// prettier-ignore
|
|
@@ -503,9 +505,9 @@ const BLS_X_LEN = bitLen(BLS_X);
|
|
|
503
505
|
|
|
504
506
|
// prettier-ignore
|
|
505
507
|
type BigintTwelve = [
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
508
|
+
bigint, bigint, bigint, bigint, bigint, bigint,
|
|
509
|
+
bigint, bigint, bigint, bigint, bigint, bigint
|
|
510
|
+
];
|
|
509
511
|
const Fp12Add = ({ c0, c1 }: Fp12, { c0: r0, c1: r1 }: Fp12) => ({
|
|
510
512
|
c0: Fp6.add(c0, r0),
|
|
511
513
|
c1: Fp6.add(c1, r1),
|
package/src/bn254.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
2
2
|
import { sha256 } from '@noble/hashes/sha256';
|
|
3
|
-
import { weierstrass } from './abstract/weierstrass.js';
|
|
4
3
|
import { getHash } from './_shortw_utils.js';
|
|
5
4
|
import { Field } from './abstract/modular.js';
|
|
5
|
+
import { weierstrass } from './abstract/weierstrass.js';
|
|
6
6
|
/**
|
|
7
7
|
* bn254 pairing-friendly curve.
|
|
8
8
|
* Previously known as alt_bn_128, when it had 128-bit security.
|