@noble/curves 1.9.5 → 2.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +267 -421
- package/abstract/bls.d.ts +49 -111
- package/abstract/bls.d.ts.map +1 -1
- package/abstract/bls.js +108 -152
- package/abstract/bls.js.map +1 -1
- package/abstract/curve.d.ts +7 -48
- package/abstract/curve.d.ts.map +1 -1
- package/abstract/curve.js +22 -47
- package/abstract/curve.js.map +1 -1
- package/abstract/edwards.d.ts +17 -68
- package/abstract/edwards.d.ts.map +1 -1
- package/abstract/edwards.js +98 -175
- package/abstract/edwards.js.map +1 -1
- package/abstract/fft.js +14 -27
- package/abstract/fft.js.map +1 -1
- package/abstract/hash-to-curve.d.ts +11 -24
- package/abstract/hash-to-curve.d.ts.map +1 -1
- package/abstract/hash-to-curve.js +30 -35
- package/abstract/hash-to-curve.js.map +1 -1
- package/abstract/modular.d.ts +5 -17
- package/abstract/modular.d.ts.map +1 -1
- package/abstract/modular.js +166 -167
- package/abstract/modular.js.map +1 -1
- package/abstract/montgomery.d.ts +4 -9
- package/abstract/montgomery.d.ts.map +1 -1
- package/abstract/montgomery.js +17 -20
- package/abstract/montgomery.js.map +1 -1
- package/abstract/oprf.d.ts +282 -0
- package/abstract/oprf.d.ts.map +1 -0
- package/abstract/oprf.js +297 -0
- package/abstract/oprf.js.map +1 -0
- package/abstract/poseidon.js +20 -24
- package/abstract/poseidon.js.map +1 -1
- package/abstract/tower.d.ts +9 -7
- package/abstract/tower.d.ts.map +1 -1
- package/abstract/tower.js +600 -364
- package/abstract/tower.js.map +1 -1
- package/abstract/weierstrass.d.ts +12 -145
- package/abstract/weierstrass.d.ts.map +1 -1
- package/abstract/weierstrass.js +153 -377
- package/abstract/weierstrass.js.map +1 -1
- package/bls12-381.d.ts +2 -2
- package/bls12-381.d.ts.map +1 -1
- package/bls12-381.js +174 -216
- package/bls12-381.js.map +1 -1
- package/bn254.d.ts +58 -10
- package/bn254.d.ts.map +1 -1
- package/bn254.js +70 -130
- package/bn254.js.map +1 -1
- package/ed25519.d.ts +12 -31
- package/ed25519.d.ts.map +1 -1
- package/ed25519.js +104 -146
- package/ed25519.js.map +1 -1
- package/ed448.d.ts +14 -33
- package/ed448.d.ts.map +1 -1
- package/ed448.js +105 -132
- package/ed448.js.map +1 -1
- package/index.js +1 -1
- package/misc.d.ts +10 -14
- package/misc.d.ts.map +1 -1
- package/misc.js +51 -60
- package/misc.js.map +1 -1
- package/nist.d.ts +11 -14
- package/nist.d.ts.map +1 -1
- package/nist.js +46 -55
- package/nist.js.map +1 -1
- package/package.json +9 -224
- package/secp256k1.d.ts +7 -23
- package/secp256k1.d.ts.map +1 -1
- package/secp256k1.js +72 -83
- package/secp256k1.js.map +1 -1
- package/src/abstract/bls.ts +197 -344
- package/src/abstract/curve.ts +10 -83
- package/src/abstract/edwards.ts +96 -223
- package/src/abstract/hash-to-curve.ts +32 -45
- package/src/abstract/modular.ts +144 -130
- package/src/abstract/montgomery.ts +21 -22
- package/src/abstract/oprf.ts +600 -0
- package/src/abstract/tower.ts +627 -382
- package/src/abstract/weierstrass.ts +101 -482
- package/src/bls12-381.ts +148 -176
- package/src/bn254.ts +67 -122
- package/src/ed25519.ts +65 -118
- package/src/ed448.ts +63 -113
- package/src/index.ts +1 -1
- package/src/misc.ts +66 -49
- package/src/nist.ts +48 -57
- package/src/secp256k1.ts +56 -88
- package/src/utils.ts +41 -61
- package/src/webcrypto.ts +362 -0
- package/utils.d.ts +28 -19
- package/utils.d.ts.map +1 -1
- package/utils.js +45 -121
- package/utils.js.map +1 -1
- package/webcrypto.d.ts +47 -0
- package/webcrypto.d.ts.map +1 -0
- package/webcrypto.js +231 -0
- package/webcrypto.js.map +1 -0
- package/esm/_shortw_utils.d.ts +0 -19
- package/esm/_shortw_utils.d.ts.map +0 -1
- package/esm/_shortw_utils.js +0 -16
- package/esm/_shortw_utils.js.map +0 -1
- package/esm/abstract/bls.d.ts +0 -190
- package/esm/abstract/bls.d.ts.map +0 -1
- package/esm/abstract/bls.js +0 -408
- package/esm/abstract/bls.js.map +0 -1
- package/esm/abstract/curve.d.ts +0 -231
- package/esm/abstract/curve.d.ts.map +0 -1
- package/esm/abstract/curve.js +0 -465
- package/esm/abstract/curve.js.map +0 -1
- package/esm/abstract/edwards.d.ts +0 -237
- package/esm/abstract/edwards.d.ts.map +0 -1
- package/esm/abstract/edwards.js +0 -632
- package/esm/abstract/edwards.js.map +0 -1
- package/esm/abstract/fft.d.ts +0 -122
- package/esm/abstract/fft.d.ts.map +0 -1
- package/esm/abstract/fft.js +0 -425
- package/esm/abstract/fft.js.map +0 -1
- package/esm/abstract/hash-to-curve.d.ts +0 -102
- package/esm/abstract/hash-to-curve.d.ts.map +0 -1
- package/esm/abstract/hash-to-curve.js +0 -203
- package/esm/abstract/hash-to-curve.js.map +0 -1
- package/esm/abstract/modular.d.ts +0 -171
- package/esm/abstract/modular.d.ts.map +0 -1
- package/esm/abstract/modular.js +0 -530
- package/esm/abstract/modular.js.map +0 -1
- package/esm/abstract/montgomery.d.ts +0 -30
- package/esm/abstract/montgomery.d.ts.map +0 -1
- package/esm/abstract/montgomery.js +0 -157
- package/esm/abstract/montgomery.js.map +0 -1
- package/esm/abstract/poseidon.d.ts +0 -68
- package/esm/abstract/poseidon.d.ts.map +0 -1
- package/esm/abstract/poseidon.js +0 -296
- package/esm/abstract/poseidon.js.map +0 -1
- package/esm/abstract/tower.d.ts +0 -93
- package/esm/abstract/tower.d.ts.map +0 -1
- package/esm/abstract/tower.js +0 -502
- package/esm/abstract/tower.js.map +0 -1
- package/esm/abstract/utils.d.ts +0 -5
- package/esm/abstract/utils.d.ts.map +0 -1
- package/esm/abstract/utils.js +0 -7
- package/esm/abstract/utils.js.map +0 -1
- package/esm/abstract/weierstrass.d.ts +0 -412
- package/esm/abstract/weierstrass.d.ts.map +0 -1
- package/esm/abstract/weierstrass.js +0 -1428
- package/esm/abstract/weierstrass.js.map +0 -1
- package/esm/bls12-381.d.ts +0 -16
- package/esm/bls12-381.d.ts.map +0 -1
- package/esm/bls12-381.js +0 -738
- package/esm/bls12-381.js.map +0 -1
- package/esm/bn254.d.ts +0 -18
- package/esm/bn254.d.ts.map +0 -1
- package/esm/bn254.js +0 -246
- package/esm/bn254.js.map +0 -1
- package/esm/ed25519.d.ts +0 -106
- package/esm/ed25519.d.ts.map +0 -1
- package/esm/ed25519.js +0 -467
- package/esm/ed25519.js.map +0 -1
- package/esm/ed448.d.ts +0 -101
- package/esm/ed448.d.ts.map +0 -1
- package/esm/ed448.js +0 -448
- package/esm/ed448.js.map +0 -1
- package/esm/index.d.ts +0 -2
- package/esm/index.d.ts.map +0 -1
- package/esm/index.js +0 -17
- package/esm/index.js.map +0 -1
- package/esm/jubjub.d.ts +0 -12
- package/esm/jubjub.d.ts.map +0 -1
- package/esm/jubjub.js +0 -12
- package/esm/jubjub.js.map +0 -1
- package/esm/misc.d.ts +0 -19
- package/esm/misc.d.ts.map +0 -1
- package/esm/misc.js +0 -109
- package/esm/misc.js.map +0 -1
- package/esm/nist.d.ts +0 -21
- package/esm/nist.d.ts.map +0 -1
- package/esm/nist.js +0 -132
- package/esm/nist.js.map +0 -1
- package/esm/p256.d.ts +0 -16
- package/esm/p256.d.ts.map +0 -1
- package/esm/p256.js +0 -16
- package/esm/p256.js.map +0 -1
- package/esm/p384.d.ts +0 -16
- package/esm/p384.d.ts.map +0 -1
- package/esm/p384.js +0 -16
- package/esm/p384.js.map +0 -1
- package/esm/p521.d.ts +0 -16
- package/esm/p521.d.ts.map +0 -1
- package/esm/p521.js +0 -16
- package/esm/p521.js.map +0 -1
- package/esm/package.json +0 -4
- package/esm/pasta.d.ts +0 -10
- package/esm/pasta.d.ts.map +0 -1
- package/esm/pasta.js +0 -10
- package/esm/pasta.js.map +0 -1
- package/esm/secp256k1.d.ts +0 -89
- package/esm/secp256k1.d.ts.map +0 -1
- package/esm/secp256k1.js +0 -292
- package/esm/secp256k1.js.map +0 -1
- package/esm/utils.d.ts +0 -110
- package/esm/utils.d.ts.map +0 -1
- package/esm/utils.js +0 -322
- package/esm/utils.js.map +0 -1
- package/src/_shortw_utils.ts +0 -21
- package/src/abstract/utils.ts +0 -7
- package/src/jubjub.ts +0 -12
- package/src/p256.ts +0 -15
- package/src/p384.ts +0 -15
- package/src/p521.ts +0 -15
- package/src/package.json +0 -3
- package/src/pasta.ts +0 -9
package/index.js
CHANGED
|
@@ -10,7 +10,7 @@ import { ed448, ed448ph, ed448ctx, x448 } from '@noble/curves/ed448.js';
|
|
|
10
10
|
import { p256, p384, p521 } from '@noble/curves/nist.js';
|
|
11
11
|
import { bls12_381 } from '@noble/curves/bls12-381.js';
|
|
12
12
|
import { bn254 } from '@noble/curves/bn254.js';
|
|
13
|
-
import { bytesToHex, hexToBytes, concatBytes, utf8ToBytes } from '@noble/curves/
|
|
13
|
+
import { bytesToHex, hexToBytes, concatBytes, utf8ToBytes } from '@noble/curves/utils.js';
|
|
14
14
|
```
|
|
15
15
|
*/
|
|
16
16
|
throw new Error('root module cannot be imported: import submodules instead. Check out README');
|
package/misc.d.ts
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import { type
|
|
1
|
+
import { type EdDSA, type EdwardsPoint } from './abstract/edwards.ts';
|
|
2
|
+
import { type ECDSA } from './abstract/weierstrass.ts';
|
|
3
3
|
/** Curve over scalar field of bls12-381. jubjub Fp = bls n */
|
|
4
|
-
export declare const jubjub:
|
|
4
|
+
export declare const jubjub: EdDSA;
|
|
5
5
|
/** Curve over scalar field of bn254. babyjubjub Fp = bn254 n */
|
|
6
|
-
export declare const babyjubjub:
|
|
6
|
+
export declare const babyjubjub: EdDSA;
|
|
7
7
|
export declare function jubjub_groupHash(tag: Uint8Array, personalization: Uint8Array): EdwardsPoint;
|
|
8
8
|
export declare function jubjub_findGroupHash(m: Uint8Array, personalization: Uint8Array): EdwardsPoint;
|
|
9
|
-
|
|
10
|
-
export declare const
|
|
11
|
-
/**
|
|
12
|
-
|
|
13
|
-
*/
|
|
14
|
-
export declare const
|
|
15
|
-
/**
|
|
16
|
-
* @deprecated
|
|
17
|
-
*/
|
|
18
|
-
export declare const vesta: WCurveFn;
|
|
9
|
+
/** Brainpool P256r1 with sha256, from RFC 5639. */
|
|
10
|
+
export declare const brainpoolP256r1: ECDSA;
|
|
11
|
+
/** Brainpool P384r1 with sha384, from RFC 5639. */
|
|
12
|
+
export declare const brainpoolP384r1: ECDSA;
|
|
13
|
+
/** Brainpool P521r1 with sha512, from RFC 5639. */
|
|
14
|
+
export declare const brainpoolP512r1: ECDSA;
|
|
19
15
|
//# sourceMappingURL=misc.d.ts.map
|
package/misc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["src/misc.ts"],"names":[],"mappings":"AAUA,OAAO,
|
|
1
|
+
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["src/misc.ts"],"names":[],"mappings":"AAUA,OAAO,EAGL,KAAK,KAAK,EAEV,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAsB,KAAK,KAAK,EAAwB,MAAM,2BAA2B,CAAC;AAiBjG,8DAA8D;AAC9D,eAAO,MAAM,MAAM,EAAE,KAA4D,CAAC;AAWlF,gEAAgE;AAChE,eAAO,MAAM,UAAU,EAAE,KAAkE,CAAC;AAO5F,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,GAAG,YAAY,CAU3F;AAKD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,GAAG,YAAY,CAW7F;AAWD,mDAAmD;AACnD,eAAO,MAAM,eAAe,EAAE,KAAyD,CAAC;AAuBxF,mDAAmD;AACnD,eAAO,MAAM,eAAe,EAAE,KAAyD,CAAC;AAuBxF,mDAAmD;AACnD,eAAO,MAAM,eAAe,EAAE,KAAyD,CAAC"}
|
package/misc.js
CHANGED
|
@@ -1,28 +1,23 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.vesta = exports.pallas = exports.pasta_q = exports.pasta_p = exports.babyjubjub = exports.jubjub = void 0;
|
|
4
|
-
exports.jubjub_groupHash = jubjub_groupHash;
|
|
5
|
-
exports.jubjub_findGroupHash = jubjub_findGroupHash;
|
|
6
1
|
/**
|
|
7
2
|
* Miscellaneous, rarely used curves.
|
|
8
3
|
* jubjub, babyjubjub, pallas, vesta.
|
|
9
4
|
* @module
|
|
10
5
|
*/
|
|
11
6
|
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
7
|
+
import { blake256 } from '@noble/hashes/blake1.js';
|
|
8
|
+
import { blake2s } from '@noble/hashes/blake2.js';
|
|
9
|
+
import { sha256, sha384, sha512 } from '@noble/hashes/sha2.js';
|
|
10
|
+
import { concatBytes } from '@noble/hashes/utils.js';
|
|
11
|
+
import { eddsa, edwards, } from "./abstract/edwards.js";
|
|
12
|
+
import { ecdsa, weierstrass } from "./abstract/weierstrass.js";
|
|
13
|
+
import { bls12_381_Fr } from "./bls12-381.js";
|
|
14
|
+
import { bn254_Fr } from "./bn254.js";
|
|
15
|
+
import { asciiToBytes } from "./utils.js";
|
|
21
16
|
// Jubjub curves have 𝔽p over scalar fields of other curves. They are friendly to ZK proofs.
|
|
22
17
|
// jubjub Fp = bls n. babyjubjub Fp = bn254 n.
|
|
23
18
|
// verify manually, check bls12-381.ts and bn254.ts.
|
|
24
19
|
const jubjub_CURVE = {
|
|
25
|
-
p:
|
|
20
|
+
p: bls12_381_Fr.ORDER,
|
|
26
21
|
n: BigInt('0xe7db4ea6533afa906673b0101343b00a6682093ccc81082d0970e5ed6f72cb7'),
|
|
27
22
|
h: BigInt(8),
|
|
28
23
|
a: BigInt('0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000'),
|
|
@@ -31,13 +26,9 @@ const jubjub_CURVE = {
|
|
|
31
26
|
Gy: BigInt('0x1d523cf1ddab1a1793132e78c866c0c33e26ba5cc220fed7cc3f870e59d292aa'),
|
|
32
27
|
};
|
|
33
28
|
/** Curve over scalar field of bls12-381. jubjub Fp = bls n */
|
|
34
|
-
|
|
35
|
-
...jubjub_CURVE,
|
|
36
|
-
Fp: bls12_381_ts_1.bls12_381_Fr,
|
|
37
|
-
hash: sha2_js_1.sha512,
|
|
38
|
-
});
|
|
29
|
+
export const jubjub = /* @__PURE__ */ eddsa(edwards(jubjub_CURVE), sha512);
|
|
39
30
|
const babyjubjub_CURVE = {
|
|
40
|
-
p:
|
|
31
|
+
p: bn254_Fr.ORDER,
|
|
41
32
|
n: BigInt('0x30644e72e131a029b85045b68181585d59f76dc1c90770533b94bee1c9093788'),
|
|
42
33
|
h: BigInt(8),
|
|
43
34
|
a: BigInt('168700'),
|
|
@@ -46,30 +37,26 @@ const babyjubjub_CURVE = {
|
|
|
46
37
|
Gy: BigInt('0xc19139cb84c680a6e14116da06056174a0cfa121e6e5c2450f87d64fc000001'),
|
|
47
38
|
};
|
|
48
39
|
/** Curve over scalar field of bn254. babyjubjub Fp = bn254 n */
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
Fp: bn254_ts_1.bn254_Fr,
|
|
52
|
-
hash: blake1_js_1.blake256,
|
|
53
|
-
});
|
|
54
|
-
const jubjub_gh_first_block = (0, utils_js_1.utf8ToBytes)('096b36a5804bfacef1691e173c366a47ff5ba84a44f26ddd7e8d9f79d5b42df0');
|
|
40
|
+
export const babyjubjub = /* @__PURE__ */ eddsa(edwards(babyjubjub_CURVE), blake256);
|
|
41
|
+
const jubjub_gh_first_block = asciiToBytes('096b36a5804bfacef1691e173c366a47ff5ba84a44f26ddd7e8d9f79d5b42df0');
|
|
55
42
|
// Returns point at JubJub curve which is prime order and not zero
|
|
56
|
-
function jubjub_groupHash(tag, personalization) {
|
|
57
|
-
const h =
|
|
43
|
+
export function jubjub_groupHash(tag, personalization) {
|
|
44
|
+
const h = blake2s.create({ personalization, dkLen: 32 });
|
|
58
45
|
h.update(jubjub_gh_first_block);
|
|
59
46
|
h.update(tag);
|
|
60
47
|
// NOTE: returns ExtendedPoint, in case it will be multiplied later
|
|
61
|
-
let p =
|
|
48
|
+
let p = jubjub.Point.fromBytes(h.digest());
|
|
62
49
|
// NOTE: cannot replace with isSmallOrder, returns Point*8
|
|
63
50
|
p = p.multiply(jubjub_CURVE.h);
|
|
64
|
-
if (p.equals(
|
|
51
|
+
if (p.equals(jubjub.Point.ZERO))
|
|
65
52
|
throw new Error('Point has small order');
|
|
66
53
|
return p;
|
|
67
54
|
}
|
|
68
55
|
// No secret data is leaked here at all.
|
|
69
56
|
// It operates over public data:
|
|
70
57
|
// const G_SPEND = jubjub.findGroupHash(Uint8Array.of(), utf8ToBytes('Item_G_'));
|
|
71
|
-
function jubjub_findGroupHash(m, personalization) {
|
|
72
|
-
const tag =
|
|
58
|
+
export function jubjub_findGroupHash(m, personalization) {
|
|
59
|
+
const tag = concatBytes(m, Uint8Array.of(0));
|
|
73
60
|
const hashes = [];
|
|
74
61
|
for (let i = 0; i < 256; i++) {
|
|
75
62
|
tag[tag.length - 1] = i;
|
|
@@ -82,33 +69,37 @@ function jubjub_findGroupHash(m, personalization) {
|
|
|
82
69
|
throw new Error('findGroupHash tag overflow');
|
|
83
70
|
return hashes[0];
|
|
84
71
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
a: BigInt(0),
|
|
93
|
-
b: BigInt(5),
|
|
94
|
-
Fp: (0, modular_ts_1.Field)(exports.pasta_p),
|
|
95
|
-
n: exports.pasta_q,
|
|
96
|
-
Gx: (0, modular_ts_1.mod)(BigInt(-1), exports.pasta_p),
|
|
97
|
-
Gy: BigInt(2),
|
|
72
|
+
const brainpoolP256r1_CURVE = {
|
|
73
|
+
p: BigInt('0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377'),
|
|
74
|
+
a: BigInt('0x7d5a0975fc2c3057eef67530417affe7fb8055c126dc5c6ce94a4b44f330b5d9'),
|
|
75
|
+
b: BigInt('0x26dc5c6ce94a4b44f330b5d9bbd77cbf958416295cf7e1ce6bccdc18ff8c07b6'),
|
|
76
|
+
n: BigInt('0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7'),
|
|
77
|
+
Gx: BigInt('0x8bd2aeb9cb7e57cb2c4b482ffc81b7afb9de27e1e3bd23c23a4453bd9ace3262'),
|
|
78
|
+
Gy: BigInt('0x547ef835c3dac4fd97f8461a14611dc9c27745132ded8e545c1d54c72f046997'),
|
|
98
79
|
h: BigInt(1),
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
80
|
+
};
|
|
81
|
+
/** Brainpool P256r1 with sha256, from RFC 5639. */
|
|
82
|
+
export const brainpoolP256r1 = ecdsa(weierstrass(brainpoolP256r1_CURVE), sha256);
|
|
83
|
+
const brainpoolP384r1_CURVE = {
|
|
84
|
+
p: BigInt('0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53'),
|
|
85
|
+
a: BigInt('0x7bc382c63d8c150c3c72080ace05afa0c2bea28e4fb22787139165efba91f90f8aa5814a503ad4eb04a8c7dd22ce2826'),
|
|
86
|
+
b: BigInt('0x04a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d57cb4390295dbc9943ab78696fa504c11'),
|
|
87
|
+
n: BigInt('0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565'),
|
|
88
|
+
Gx: BigInt('0x1d1c64f068cf45ffa2a63a81b7c13f6b8847a3e77ef14fe3db7fcafe0cbd10e8e826e03436d646aaef87b2e247d4af1e'),
|
|
89
|
+
Gy: BigInt('0x8abe1d7520f9c2a45cb1eb8e95cfd55262b70b29feec5864e19c054ff99129280e4646217791811142820341263c5315'),
|
|
90
|
+
h: BigInt(1),
|
|
91
|
+
};
|
|
92
|
+
/** Brainpool P384r1 with sha384, from RFC 5639. */
|
|
93
|
+
export const brainpoolP384r1 = ecdsa(weierstrass(brainpoolP384r1_CURVE), sha384);
|
|
94
|
+
const brainpoolP512r1_CURVE = {
|
|
95
|
+
p: BigInt('0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3'),
|
|
96
|
+
a: BigInt('0x7830a3318b603b89e2327145ac234cc594cbdd8d3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94ca'),
|
|
97
|
+
b: BigInt('0x3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94cadc083e67984050b75ebae5dd2809bd638016f723'),
|
|
98
|
+
n: BigInt('0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069'),
|
|
99
|
+
Gx: BigInt('0x81aee4bdd82ed9645a21322e9c4c6a9385ed9f70b5d916c1b43b62eef4d0098eff3b1f78e2d0d48d50d1687b93b97d5f7c6d5047406a5e688b352209bcb9f822'),
|
|
100
|
+
Gy: BigInt('0x7dde385d566332ecc0eabfa9cf7822fdf209f70024a57b1aa000c55b881f8111b2dcde494a5f485e5bca4bd88a2763aed1ca2b2fa8f0540678cd1e0f3ad80892'),
|
|
111
101
|
h: BigInt(1),
|
|
112
|
-
|
|
113
|
-
|
|
102
|
+
};
|
|
103
|
+
/** Brainpool P521r1 with sha512, from RFC 5639. */
|
|
104
|
+
export const brainpoolP512r1 = ecdsa(weierstrass(brainpoolP512r1_CURVE), sha512);
|
|
114
105
|
//# sourceMappingURL=misc.js.map
|
package/misc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.js","sourceRoot":"","sources":["src/misc.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"misc.js","sourceRoot":"","sources":["src/misc.ts"],"names":[],"mappings":"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"}
|
package/nist.d.ts
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
import { type CurveFnWithCreate } from './_shortw_utils.ts';
|
|
2
1
|
import { type H2CHasher } from './abstract/hash-to-curve.ts';
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import { type OPRF } from './abstract/oprf.ts';
|
|
3
|
+
import { type ECDSA, type WeierstrassPointCons } from './abstract/weierstrass.ts';
|
|
4
|
+
export declare const p256: ECDSA;
|
|
5
5
|
/** Hashing / encoding to p256 points / field. RFC 9380 methods. */
|
|
6
|
-
export declare const p256_hasher: H2CHasher<bigint
|
|
6
|
+
export declare const p256_hasher: H2CHasher<WeierstrassPointCons<bigint>>;
|
|
7
|
+
export declare const p256_oprf: OPRF;
|
|
7
8
|
/** NIST P384 (aka secp384r1) curve, ECDSA and ECDH methods. */
|
|
8
|
-
export declare const p384:
|
|
9
|
+
export declare const p384: ECDSA;
|
|
9
10
|
/** Hashing / encoding to p384 points / field. RFC 9380 methods. */
|
|
10
|
-
export declare const p384_hasher: H2CHasher<bigint
|
|
11
|
+
export declare const p384_hasher: H2CHasher<WeierstrassPointCons<bigint>>;
|
|
12
|
+
export declare const p384_oprf: OPRF;
|
|
11
13
|
/** NIST P521 (aka secp521r1) curve, ECDSA and ECDH methods. */
|
|
12
|
-
export declare const p521:
|
|
13
|
-
/** @deprecated use `p256` for consistency with `p256_hasher` */
|
|
14
|
-
export declare const secp256r1: typeof p256;
|
|
15
|
-
/** @deprecated use `p384` for consistency with `p384_hasher` */
|
|
16
|
-
export declare const secp384r1: typeof p384;
|
|
17
|
-
/** @deprecated use `p521` for consistency with `p521_hasher` */
|
|
18
|
-
export declare const secp521r1: typeof p521;
|
|
14
|
+
export declare const p521: ECDSA;
|
|
19
15
|
/** Hashing / encoding to p521 points / field. RFC 9380 methods. */
|
|
20
|
-
export declare const p521_hasher: H2CHasher<bigint
|
|
16
|
+
export declare const p521_hasher: H2CHasher<WeierstrassPointCons<bigint>>;
|
|
17
|
+
export declare const p521_oprf: OPRF;
|
|
21
18
|
//# sourceMappingURL=nist.d.ts.map
|
package/nist.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nist.d.ts","sourceRoot":"","sources":["src/nist.ts"],"names":[],"mappings":"AAOA,OAAO,
|
|
1
|
+
{"version":3,"file":"nist.d.ts","sourceRoot":"","sources":["src/nist.ts"],"names":[],"mappings":"AAOA,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE3E,OAAO,EAAc,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAIL,KAAK,KAAK,EAEV,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AAyEnC,eAAO,MAAM,IAAI,EAAE,KAAiD,CAAC;AACrE,mEAAmE;AACnE,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAkB5D,CAAC;AAEL,eAAO,MAAM,SAAS,EAAE,IAOjB,CAAC;AAGR,+DAA+D;AAC/D,eAAO,MAAM,IAAI,EAAE,KAAiD,CAAC;AACrE,mEAAmE;AACnE,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAkB5D,CAAC;AAEL,eAAO,MAAM,SAAS,EAAE,IAOjB,CAAC;AAIR,+DAA+D;AAC/D,eAAO,MAAM,IAAI,EAAE,KAAiD,CAAC;AAErE,mEAAmE;AACnE,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAkB5D,CAAC;AAEL,eAAO,MAAM,SAAS,EAAE,IAOjB,CAAC"}
|
package/nist.js
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.p521_hasher = exports.secp521r1 = exports.secp384r1 = exports.secp256r1 = exports.p521 = exports.p384_hasher = exports.p384 = exports.p256_hasher = exports.p256 = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Internal module for NIST P256, P384, P521 curves.
|
|
6
3
|
* Do not use for now.
|
|
7
4
|
* @module
|
|
8
5
|
*/
|
|
9
6
|
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
import { sha256, sha384, sha512 } from '@noble/hashes/sha2.js';
|
|
8
|
+
import { createHasher } from "./abstract/hash-to-curve.js";
|
|
9
|
+
import { Field } from "./abstract/modular.js";
|
|
10
|
+
import { createORPF } from "./abstract/oprf.js";
|
|
11
|
+
import { ecdsa, mapToCurveSimpleSWU, weierstrass, } from "./abstract/weierstrass.js";
|
|
15
12
|
// p = 2n**224n * (2n**32n-1n) + 2n**192n + 2n**96n - 1n
|
|
16
13
|
// a = Fp256.create(BigInt('-3'));
|
|
17
14
|
const p256_CURVE = {
|
|
@@ -43,21 +40,19 @@ const p521_CURVE = {
|
|
|
43
40
|
Gx: BigInt('0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66'),
|
|
44
41
|
Gy: BigInt('0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650'),
|
|
45
42
|
};
|
|
46
|
-
const Fp256 = (0, modular_ts_1.Field)(p256_CURVE.p);
|
|
47
|
-
const Fp384 = (0, modular_ts_1.Field)(p384_CURVE.p);
|
|
48
|
-
const Fp521 = (0, modular_ts_1.Field)(p521_CURVE.p);
|
|
49
43
|
function createSWU(Point, opts) {
|
|
50
|
-
const map =
|
|
44
|
+
const map = mapToCurveSimpleSWU(Point.Fp, opts);
|
|
51
45
|
return (scalars) => map(scalars[0]);
|
|
52
46
|
}
|
|
53
47
|
/** NIST P256 (aka secp256r1, prime256v1) curve, ECDSA and ECDH methods. */
|
|
54
|
-
|
|
48
|
+
const p256_Point = /* @__PURE__ */ weierstrass(p256_CURVE);
|
|
49
|
+
export const p256 = /* @__PURE__ */ ecdsa(p256_Point, sha256);
|
|
55
50
|
/** Hashing / encoding to p256 points / field. RFC 9380 methods. */
|
|
56
|
-
|
|
57
|
-
return
|
|
51
|
+
export const p256_hasher = /* @__PURE__ */ (() => {
|
|
52
|
+
return createHasher(p256_Point, createSWU(p256_Point, {
|
|
58
53
|
A: p256_CURVE.a,
|
|
59
54
|
B: p256_CURVE.b,
|
|
60
|
-
Z:
|
|
55
|
+
Z: p256_Point.Fp.create(BigInt('-10')),
|
|
61
56
|
}), {
|
|
62
57
|
DST: 'P256_XMD:SHA-256_SSWU_RO_',
|
|
63
58
|
encodeDST: 'P256_XMD:SHA-256_SSWU_NU_',
|
|
@@ -65,24 +60,25 @@ exports.p256_hasher = (() => {
|
|
|
65
60
|
m: 1,
|
|
66
61
|
k: 128,
|
|
67
62
|
expand: 'xmd',
|
|
68
|
-
hash:
|
|
63
|
+
hash: sha256,
|
|
69
64
|
});
|
|
70
65
|
})();
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
66
|
+
export const p256_oprf = /* @__PURE__ */ (() => createORPF({
|
|
67
|
+
name: 'P256-SHA256',
|
|
68
|
+
Point: p256_Point,
|
|
69
|
+
hash: sha256,
|
|
70
|
+
hashToGroup: p256_hasher.hashToCurve,
|
|
71
|
+
hashToScalar: p256_hasher.hashToScalar,
|
|
72
|
+
}))();
|
|
73
|
+
const p384_Point = /* @__PURE__ */ weierstrass(p384_CURVE);
|
|
78
74
|
/** NIST P384 (aka secp384r1) curve, ECDSA and ECDH methods. */
|
|
79
|
-
|
|
75
|
+
export const p384 = /* @__PURE__ */ ecdsa(p384_Point, sha384);
|
|
80
76
|
/** Hashing / encoding to p384 points / field. RFC 9380 methods. */
|
|
81
|
-
|
|
82
|
-
return
|
|
77
|
+
export const p384_hasher = /* @__PURE__ */ (() => {
|
|
78
|
+
return createHasher(p384_Point, createSWU(p384_Point, {
|
|
83
79
|
A: p384_CURVE.a,
|
|
84
80
|
B: p384_CURVE.b,
|
|
85
|
-
Z:
|
|
81
|
+
Z: p384_Point.Fp.create(BigInt('-12')),
|
|
86
82
|
}), {
|
|
87
83
|
DST: 'P384_XMD:SHA-384_SSWU_RO_',
|
|
88
84
|
encodeDST: 'P384_XMD:SHA-384_SSWU_NU_',
|
|
@@ -90,31 +86,26 @@ exports.p384_hasher = (() => {
|
|
|
90
86
|
m: 1,
|
|
91
87
|
k: 192,
|
|
92
88
|
expand: 'xmd',
|
|
93
|
-
hash:
|
|
89
|
+
hash: sha384,
|
|
94
90
|
});
|
|
95
91
|
})();
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
92
|
+
export const p384_oprf = /* @__PURE__ */ (() => createORPF({
|
|
93
|
+
name: 'P384-SHA384',
|
|
94
|
+
Point: p384_Point,
|
|
95
|
+
hash: sha384,
|
|
96
|
+
hashToGroup: p384_hasher.hashToCurve,
|
|
97
|
+
hashToScalar: p384_hasher.hashToScalar,
|
|
98
|
+
}))();
|
|
99
|
+
const Fn521 = /* @__PURE__ */ Field(p521_CURVE.n, { allowedLengths: [65, 66] });
|
|
100
|
+
const p521_Point = /* @__PURE__ */ weierstrass(p521_CURVE, { Fn: Fn521 });
|
|
104
101
|
/** NIST P521 (aka secp521r1) curve, ECDSA and ECDH methods. */
|
|
105
|
-
|
|
106
|
-
/** @deprecated use `p256` for consistency with `p256_hasher` */
|
|
107
|
-
exports.secp256r1 = exports.p256;
|
|
108
|
-
/** @deprecated use `p384` for consistency with `p384_hasher` */
|
|
109
|
-
exports.secp384r1 = exports.p384;
|
|
110
|
-
/** @deprecated use `p521` for consistency with `p521_hasher` */
|
|
111
|
-
exports.secp521r1 = exports.p521;
|
|
102
|
+
export const p521 = /* @__PURE__ */ ecdsa(p521_Point, sha512);
|
|
112
103
|
/** Hashing / encoding to p521 points / field. RFC 9380 methods. */
|
|
113
|
-
|
|
114
|
-
return
|
|
104
|
+
export const p521_hasher = /* @__PURE__ */ (() => {
|
|
105
|
+
return createHasher(p521_Point, createSWU(p521_Point, {
|
|
115
106
|
A: p521_CURVE.a,
|
|
116
107
|
B: p521_CURVE.b,
|
|
117
|
-
Z:
|
|
108
|
+
Z: p521_Point.Fp.create(BigInt('-4')),
|
|
118
109
|
}), {
|
|
119
110
|
DST: 'P521_XMD:SHA-512_SSWU_RO_',
|
|
120
111
|
encodeDST: 'P521_XMD:SHA-512_SSWU_NU_',
|
|
@@ -122,14 +113,14 @@ exports.p521_hasher = (() => {
|
|
|
122
113
|
m: 1,
|
|
123
114
|
k: 256,
|
|
124
115
|
expand: 'xmd',
|
|
125
|
-
hash:
|
|
116
|
+
hash: sha512,
|
|
126
117
|
});
|
|
127
118
|
})();
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
119
|
+
export const p521_oprf = /* @__PURE__ */ (() => createORPF({
|
|
120
|
+
name: 'P521-SHA512',
|
|
121
|
+
Point: p521_Point,
|
|
122
|
+
hash: sha512,
|
|
123
|
+
hashToGroup: p521_hasher.hashToCurve,
|
|
124
|
+
hashToScalar: p521_hasher.hashToScalar, // produces L=98 just like in RFC
|
|
125
|
+
}))();
|
|
135
126
|
//# sourceMappingURL=nist.js.map
|
package/nist.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nist.js","sourceRoot":"","sources":["src/nist.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nist.js","sourceRoot":"","sources":["src/nist.ts"],"names":[],"mappings":"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"}
|