@noble/curves 2.0.0 → 2.2.0
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 +214 -122
- package/abstract/bls.d.ts +299 -16
- package/abstract/bls.d.ts.map +1 -1
- package/abstract/bls.js +89 -24
- package/abstract/bls.js.map +1 -1
- package/abstract/curve.d.ts +274 -27
- package/abstract/curve.d.ts.map +1 -1
- package/abstract/curve.js +177 -23
- package/abstract/curve.js.map +1 -1
- package/abstract/edwards.d.ts +166 -30
- package/abstract/edwards.d.ts.map +1 -1
- package/abstract/edwards.js +221 -86
- package/abstract/edwards.js.map +1 -1
- package/abstract/fft.d.ts +327 -10
- package/abstract/fft.d.ts.map +1 -1
- package/abstract/fft.js +155 -12
- package/abstract/fft.js.map +1 -1
- package/abstract/frost.d.ts +293 -0
- package/abstract/frost.d.ts.map +1 -0
- package/abstract/frost.js +704 -0
- package/abstract/frost.js.map +1 -0
- package/abstract/hash-to-curve.d.ts +173 -24
- package/abstract/hash-to-curve.d.ts.map +1 -1
- package/abstract/hash-to-curve.js +170 -31
- package/abstract/hash-to-curve.js.map +1 -1
- package/abstract/modular.d.ts +429 -37
- package/abstract/modular.d.ts.map +1 -1
- package/abstract/modular.js +414 -119
- package/abstract/modular.js.map +1 -1
- package/abstract/montgomery.d.ts +83 -12
- package/abstract/montgomery.d.ts.map +1 -1
- package/abstract/montgomery.js +32 -7
- package/abstract/montgomery.js.map +1 -1
- package/abstract/oprf.d.ts +164 -91
- package/abstract/oprf.d.ts.map +1 -1
- package/abstract/oprf.js +88 -29
- package/abstract/oprf.js.map +1 -1
- package/abstract/poseidon.d.ts +138 -7
- package/abstract/poseidon.d.ts.map +1 -1
- package/abstract/poseidon.js +178 -15
- package/abstract/poseidon.js.map +1 -1
- package/abstract/tower.d.ts +122 -3
- package/abstract/tower.d.ts.map +1 -1
- package/abstract/tower.js +323 -139
- package/abstract/tower.js.map +1 -1
- package/abstract/weierstrass.d.ts +339 -76
- package/abstract/weierstrass.d.ts.map +1 -1
- package/abstract/weierstrass.js +395 -205
- package/abstract/weierstrass.js.map +1 -1
- package/bls12-381.d.ts +16 -2
- package/bls12-381.d.ts.map +1 -1
- package/bls12-381.js +199 -209
- package/bls12-381.js.map +1 -1
- package/bn254.d.ts +11 -2
- package/bn254.d.ts.map +1 -1
- package/bn254.js +93 -38
- package/bn254.js.map +1 -1
- package/ed25519.d.ts +135 -14
- package/ed25519.d.ts.map +1 -1
- package/ed25519.js +207 -41
- package/ed25519.js.map +1 -1
- package/ed448.d.ts +108 -14
- package/ed448.d.ts.map +1 -1
- package/ed448.js +194 -42
- package/ed448.js.map +1 -1
- package/index.js +7 -1
- package/index.js.map +1 -1
- package/misc.d.ts +106 -7
- package/misc.d.ts.map +1 -1
- package/misc.js +141 -32
- package/misc.js.map +1 -1
- package/nist.d.ts +112 -11
- package/nist.d.ts.map +1 -1
- package/nist.js +139 -17
- package/nist.js.map +1 -1
- package/package.json +34 -6
- package/secp256k1.d.ts +92 -15
- package/secp256k1.d.ts.map +1 -1
- package/secp256k1.js +211 -28
- package/secp256k1.js.map +1 -1
- package/src/abstract/bls.ts +356 -69
- package/src/abstract/curve.ts +327 -44
- package/src/abstract/edwards.ts +367 -143
- package/src/abstract/fft.ts +371 -36
- package/src/abstract/frost.ts +1092 -0
- package/src/abstract/hash-to-curve.ts +255 -56
- package/src/abstract/modular.ts +591 -144
- package/src/abstract/montgomery.ts +114 -30
- package/src/abstract/oprf.ts +383 -194
- package/src/abstract/poseidon.ts +235 -35
- package/src/abstract/tower.ts +428 -159
- package/src/abstract/weierstrass.ts +710 -312
- package/src/bls12-381.ts +239 -236
- package/src/bn254.ts +107 -46
- package/src/ed25519.ts +234 -56
- package/src/ed448.ts +227 -57
- package/src/index.ts +7 -1
- package/src/misc.ts +154 -35
- package/src/nist.ts +143 -20
- package/src/secp256k1.ts +284 -41
- package/src/utils.ts +583 -81
- package/src/webcrypto.ts +302 -73
- package/utils.d.ts +457 -24
- package/utils.d.ts.map +1 -1
- package/utils.js +410 -53
- package/utils.js.map +1 -1
- package/webcrypto.d.ts +167 -25
- package/webcrypto.d.ts.map +1 -1
- package/webcrypto.js +165 -58
- package/webcrypto.js.map +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frost.js","sourceRoot":"","sources":["../src/abstract/frost.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,20 @@
|
|
|
5
5
|
* @module
|
|
6
6
|
*/
|
|
7
7
|
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
8
|
-
import type { CHash } from '../utils.ts';
|
|
8
|
+
import type { CHash, TArg, TRet } from '../utils.ts';
|
|
9
9
|
import type { AffinePoint, PC_ANY, PC_F, PC_P } from './curve.ts';
|
|
10
10
|
import { type IField } from './modular.ts';
|
|
11
|
+
/** ASCII domain-separation tag or raw bytes. */
|
|
11
12
|
export type AsciiOrBytes = string | Uint8Array;
|
|
13
|
+
type H2CDefaults = {
|
|
14
|
+
DST: AsciiOrBytes;
|
|
15
|
+
expand: 'xmd' | 'xof';
|
|
16
|
+
hash: CHash;
|
|
17
|
+
p: bigint;
|
|
18
|
+
m: number;
|
|
19
|
+
k: number;
|
|
20
|
+
encodeDST?: AsciiOrBytes;
|
|
21
|
+
};
|
|
12
22
|
/**
|
|
13
23
|
* * `DST` is a domain separation tag, defined in section 2.2.5
|
|
14
24
|
* * `p` characteristic of F, where F is a finite field of characteristic p and order q = p^m
|
|
@@ -18,73 +28,212 @@ export type AsciiOrBytes = string | Uint8Array;
|
|
|
18
28
|
* * `hash` conforming to `utils.CHash` interface, with `outputLen` / `blockLen` props
|
|
19
29
|
*/
|
|
20
30
|
export type H2COpts = {
|
|
31
|
+
/** Domain separation tag. */
|
|
21
32
|
DST: AsciiOrBytes;
|
|
33
|
+
/** Expander family used by RFC 9380. */
|
|
22
34
|
expand: 'xmd' | 'xof';
|
|
35
|
+
/** Hash or XOF implementation used by the expander. */
|
|
23
36
|
hash: CHash;
|
|
37
|
+
/** Base-field characteristic. */
|
|
24
38
|
p: bigint;
|
|
39
|
+
/** Extension degree (`1` for prime fields). */
|
|
25
40
|
m: number;
|
|
41
|
+
/** Target security level in bits. */
|
|
26
42
|
k: number;
|
|
27
43
|
};
|
|
44
|
+
/** Hash-only subset of RFC 9380 options used by per-call overrides. */
|
|
28
45
|
export type H2CHashOpts = {
|
|
46
|
+
/** Expander family used by RFC 9380. */
|
|
29
47
|
expand: 'xmd' | 'xof';
|
|
48
|
+
/** Hash or XOF implementation used by the expander. */
|
|
30
49
|
hash: CHash;
|
|
31
50
|
};
|
|
51
|
+
/**
|
|
52
|
+
* Map one hash-to-field output tuple onto affine curve coordinates.
|
|
53
|
+
* Implementations receive the validated scalar tuple by reference for performance and MUST treat it
|
|
54
|
+
* as read-only. Callers that need scratch space should copy before mutating.
|
|
55
|
+
* @param scalar - Field-element tuple produced by `hash_to_field`.
|
|
56
|
+
* @returns Affine point before subgroup clearing.
|
|
57
|
+
*/
|
|
32
58
|
export type MapToCurve<T> = (scalar: bigint[]) => AffinePoint<T>;
|
|
59
|
+
/** Per-call override for the domain-separation tag. */
|
|
33
60
|
export type H2CDSTOpts = {
|
|
61
|
+
/** Domain-separation tag override. */
|
|
34
62
|
DST: AsciiOrBytes;
|
|
35
63
|
};
|
|
64
|
+
/** Base hash-to-curve helpers shared by `hashToCurve` and `encodeToCurve`. */
|
|
36
65
|
export type H2CHasherBase<PC extends PC_ANY> = {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
66
|
+
/**
|
|
67
|
+
* Hash arbitrary bytes to one curve point.
|
|
68
|
+
* @param msg - Input message bytes.
|
|
69
|
+
* @param options - Optional domain-separation override. See {@link H2CDSTOpts}.
|
|
70
|
+
* @returns Curve point after hash-to-curve.
|
|
71
|
+
*/
|
|
72
|
+
hashToCurve(msg: TArg<Uint8Array>, options?: TArg<H2CDSTOpts>): PC_P<PC>;
|
|
73
|
+
/**
|
|
74
|
+
* Hash arbitrary bytes to one scalar.
|
|
75
|
+
* @param msg - Input message bytes.
|
|
76
|
+
* @param options - Optional domain-separation override. See {@link H2CDSTOpts}.
|
|
77
|
+
* @returns Scalar reduced into the target field.
|
|
78
|
+
*/
|
|
79
|
+
hashToScalar(msg: TArg<Uint8Array>, options?: TArg<H2CDSTOpts>): bigint;
|
|
80
|
+
/**
|
|
81
|
+
* Derive one curve point from non-uniform bytes without the random-oracle
|
|
82
|
+
* guarantees of `hashToCurve`.
|
|
83
|
+
* Accepts the same arguments as `hashToCurve`, but runs the encode-to-curve
|
|
84
|
+
* path instead of the random-oracle construction.
|
|
85
|
+
*/
|
|
86
|
+
deriveToCurve?(msg: TArg<Uint8Array>, options?: TArg<H2CDSTOpts>): PC_P<PC>;
|
|
87
|
+
/** Point constructor for the target curve. */
|
|
40
88
|
Point: PC;
|
|
41
89
|
};
|
|
42
90
|
/**
|
|
43
|
-
* RFC 9380 methods, with cofactor clearing. See https://www.rfc-editor.org/rfc/rfc9380#section-3.
|
|
91
|
+
* RFC 9380 methods, with cofactor clearing. See {@link https://www.rfc-editor.org/rfc/rfc9380#section-3 | RFC 9380 section 3}.
|
|
44
92
|
*
|
|
45
93
|
* * hashToCurve: `map(hash(input))`, encodes RANDOM bytes to curve (WITH hashing)
|
|
46
94
|
* * encodeToCurve: `map(hash(input))`, encodes NON-UNIFORM bytes to curve (WITH hashing)
|
|
47
95
|
* * mapToCurve: `map(scalars)`, encodes NON-UNIFORM scalars to curve (NO hashing)
|
|
48
96
|
*/
|
|
49
97
|
export type H2CHasher<PC extends PC_ANY> = H2CHasherBase<PC> & {
|
|
50
|
-
|
|
98
|
+
/**
|
|
99
|
+
* Encode non-uniform bytes to one curve point.
|
|
100
|
+
* @param msg - Input message bytes.
|
|
101
|
+
* @param options - Optional domain-separation override. See {@link H2CDSTOpts}.
|
|
102
|
+
* @returns Curve point after encode-to-curve.
|
|
103
|
+
*/
|
|
104
|
+
encodeToCurve(msg: TArg<Uint8Array>, options?: TArg<H2CDSTOpts>): PC_P<PC>;
|
|
105
|
+
/** Deterministic map from `hash_to_field` tuples into affine coordinates. */
|
|
51
106
|
mapToCurve: MapToCurve<PC_F<PC>>;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
};
|
|
107
|
+
/** Default RFC 9380 options captured by this hasher bundle. */
|
|
108
|
+
defaults: H2CDefaults;
|
|
55
109
|
};
|
|
56
110
|
/**
|
|
57
|
-
* Produces a uniformly random byte string using a cryptographic hash
|
|
58
|
-
*
|
|
111
|
+
* Produces a uniformly random byte string using a cryptographic hash
|
|
112
|
+
* function H that outputs b bits.
|
|
113
|
+
* See {@link https://www.rfc-editor.org/rfc/rfc9380#section-5.3.1 | RFC 9380 section 5.3.1}.
|
|
114
|
+
* @param msg - Input message.
|
|
115
|
+
* @param DST - Domain separation tag. This helper normalizes DST, rejects empty DSTs, and
|
|
116
|
+
* oversize-hashes DST when needed.
|
|
117
|
+
* @param lenInBytes - Output length.
|
|
118
|
+
* @param H - Hash function.
|
|
119
|
+
* @returns Uniform byte string.
|
|
120
|
+
* @throws If the message, DST, hash, or output length is invalid. {@link Error}
|
|
121
|
+
* @example
|
|
122
|
+
* Expand one message into uniform bytes with the XMD construction.
|
|
123
|
+
*
|
|
124
|
+
* ```ts
|
|
125
|
+
* import { expand_message_xmd } from '@noble/curves/abstract/hash-to-curve.js';
|
|
126
|
+
* import { sha256 } from '@noble/hashes/sha2.js';
|
|
127
|
+
* const uniform = expand_message_xmd(new TextEncoder().encode('hello noble'), 'DST', 32, sha256);
|
|
128
|
+
* ```
|
|
59
129
|
*/
|
|
60
|
-
export declare function expand_message_xmd(msg: Uint8Array
|
|
130
|
+
export declare function expand_message_xmd(msg: TArg<Uint8Array>, DST: TArg<AsciiOrBytes>, lenInBytes: number, H: TArg<CHash>): TRet<Uint8Array>;
|
|
61
131
|
/**
|
|
62
132
|
* Produces a uniformly random byte string using an extendable-output function (XOF) H.
|
|
63
133
|
* 1. The collision resistance of H MUST be at least k bits.
|
|
64
134
|
* 2. H MUST be an XOF that has been proved indifferentiable from
|
|
65
135
|
* a random oracle under a reasonable cryptographic assumption.
|
|
66
|
-
*
|
|
136
|
+
* See {@link https://www.rfc-editor.org/rfc/rfc9380#section-5.3.2 | RFC 9380 section 5.3.2}.
|
|
137
|
+
* @param msg - Input message.
|
|
138
|
+
* @param DST - Domain separation tag. This helper normalizes DST, rejects empty DSTs, and
|
|
139
|
+
* oversize-hashes DST when needed.
|
|
140
|
+
* @param lenInBytes - Output length.
|
|
141
|
+
* @param k - Target security level.
|
|
142
|
+
* @param H - XOF hash function.
|
|
143
|
+
* @returns Uniform byte string.
|
|
144
|
+
* @throws If the message, DST, XOF, or output length is invalid. {@link Error}
|
|
145
|
+
* @example
|
|
146
|
+
* Expand one message into uniform bytes with the XOF construction.
|
|
147
|
+
*
|
|
148
|
+
* ```ts
|
|
149
|
+
* import { expand_message_xof } from '@noble/curves/abstract/hash-to-curve.js';
|
|
150
|
+
* import { shake256 } from '@noble/hashes/sha3.js';
|
|
151
|
+
* const uniform = expand_message_xof(
|
|
152
|
+
* new TextEncoder().encode('hello noble'),
|
|
153
|
+
* 'DST',
|
|
154
|
+
* 32,
|
|
155
|
+
* 128,
|
|
156
|
+
* shake256
|
|
157
|
+
* );
|
|
158
|
+
* ```
|
|
67
159
|
*/
|
|
68
|
-
export declare function expand_message_xof(msg: Uint8Array
|
|
160
|
+
export declare function expand_message_xof(msg: TArg<Uint8Array>, DST: TArg<AsciiOrBytes>, lenInBytes: number, k: number, H: TArg<CHash>): TRet<Uint8Array>;
|
|
69
161
|
/**
|
|
70
162
|
* Hashes arbitrary-length byte strings to a list of one or more elements of a finite field F.
|
|
71
|
-
*
|
|
72
|
-
* @param msg
|
|
73
|
-
* @param count
|
|
74
|
-
* @param options
|
|
75
|
-
* @returns [u_0, ..., u_(count - 1)]
|
|
163
|
+
* See {@link https://www.rfc-editor.org/rfc/rfc9380#section-5.2 | RFC 9380 section 5.2}.
|
|
164
|
+
* @param msg - Input message bytes.
|
|
165
|
+
* @param count - Number of field elements to derive. Must be `>= 1`.
|
|
166
|
+
* @param options - RFC 9380 options. See {@link H2COpts}. `m` must be `>= 1`.
|
|
167
|
+
* @returns `[u_0, ..., u_(count - 1)]`, a list of field elements.
|
|
168
|
+
* @throws If the expander choice or RFC 9380 options are invalid. {@link Error}
|
|
169
|
+
* @example
|
|
170
|
+
* Hash one message into field elements before mapping it onto a curve.
|
|
171
|
+
*
|
|
172
|
+
* ```ts
|
|
173
|
+
* import { hash_to_field } from '@noble/curves/abstract/hash-to-curve.js';
|
|
174
|
+
* import { sha256 } from '@noble/hashes/sha2.js';
|
|
175
|
+
* const scalars = hash_to_field(new TextEncoder().encode('hello noble'), 2, {
|
|
176
|
+
* DST: 'DST',
|
|
177
|
+
* p: 17n,
|
|
178
|
+
* m: 1,
|
|
179
|
+
* k: 128,
|
|
180
|
+
* expand: 'xmd',
|
|
181
|
+
* hash: sha256,
|
|
182
|
+
* });
|
|
183
|
+
* ```
|
|
76
184
|
*/
|
|
77
|
-
export declare function hash_to_field(msg: Uint8Array
|
|
185
|
+
export declare function hash_to_field(msg: TArg<Uint8Array>, count: number, options: TArg<H2COpts>): bigint[][];
|
|
78
186
|
type XY<T> = (x: T, y: T) => {
|
|
79
187
|
x: T;
|
|
80
188
|
y: T;
|
|
81
189
|
};
|
|
82
190
|
type XYRatio<T> = [T[], T[], T[], T[]];
|
|
191
|
+
/**
|
|
192
|
+
* @param field - Field implementation.
|
|
193
|
+
* @param map - Isogeny coefficients.
|
|
194
|
+
* @returns Isogeny mapping helper.
|
|
195
|
+
* @example
|
|
196
|
+
* Build one rational isogeny map, then apply it to affine x/y coordinates.
|
|
197
|
+
*
|
|
198
|
+
* ```ts
|
|
199
|
+
* import { isogenyMap } from '@noble/curves/abstract/hash-to-curve.js';
|
|
200
|
+
* import { Field } from '@noble/curves/abstract/modular.js';
|
|
201
|
+
* const Fp = Field(17n);
|
|
202
|
+
* const iso = isogenyMap(Fp, [[0n, 1n], [1n], [1n], [1n]]);
|
|
203
|
+
* const point = iso(3n, 5n);
|
|
204
|
+
* ```
|
|
205
|
+
*/
|
|
83
206
|
export declare function isogenyMap<T, F extends IField<T>>(field: F, map: XYRatio<T>): XY<T>;
|
|
84
|
-
export declare const _DST_scalar:
|
|
85
|
-
/**
|
|
86
|
-
|
|
207
|
+
export declare const _DST_scalar: "HashToScalar-";
|
|
208
|
+
/**
|
|
209
|
+
* Creates hash-to-curve methods from EC Point and mapToCurve function. See {@link H2CHasher}.
|
|
210
|
+
* @param Point - Point constructor.
|
|
211
|
+
* @param mapToCurve - Map-to-curve function.
|
|
212
|
+
* @param defaults - Default hash-to-curve options. This object is frozen in place and reused as
|
|
213
|
+
* the shared defaults bundle for the returned helpers.
|
|
214
|
+
* @returns Hash-to-curve helper namespace.
|
|
215
|
+
* @throws If the map-to-curve callback or default hash-to-curve options are invalid. {@link Error}
|
|
216
|
+
* @example
|
|
217
|
+
* Bundle hash-to-curve, hash-to-scalar, and encode-to-curve helpers for one curve.
|
|
218
|
+
*
|
|
219
|
+
* ```ts
|
|
220
|
+
* import { createHasher } from '@noble/curves/abstract/hash-to-curve.js';
|
|
221
|
+
* import { p256 } from '@noble/curves/nist.js';
|
|
222
|
+
* import { sha256 } from '@noble/hashes/sha2.js';
|
|
223
|
+
* const hasher = createHasher(p256.Point, () => p256.Point.BASE.toAffine(), {
|
|
224
|
+
* DST: 'P256_XMD:SHA-256_SSWU_RO_',
|
|
225
|
+
* encodeDST: 'P256_XMD:SHA-256_SSWU_NU_',
|
|
226
|
+
* p: p256.Point.Fp.ORDER,
|
|
227
|
+
* m: 1,
|
|
228
|
+
* k: 128,
|
|
229
|
+
* expand: 'xmd',
|
|
230
|
+
* hash: sha256,
|
|
231
|
+
* });
|
|
232
|
+
* const point = hasher.encodeToCurve(new TextEncoder().encode('hello noble'));
|
|
233
|
+
* ```
|
|
234
|
+
*/
|
|
235
|
+
export declare function createHasher<PC extends PC_ANY>(Point: PC, mapToCurve: MapToCurve<PC_F<PC>>, defaults: TArg<H2COpts & {
|
|
87
236
|
encodeDST?: AsciiOrBytes;
|
|
88
|
-
}): H2CHasher<PC>;
|
|
237
|
+
}>): H2CHasher<PC>;
|
|
89
238
|
export {};
|
|
90
239
|
//# sourceMappingURL=hash-to-curve.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash-to-curve.d.ts","sourceRoot":"","sources":["../src/abstract/hash-to-curve.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,sEAAsE;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"hash-to-curve.d.ts","sourceRoot":"","sources":["../src/abstract/hash-to-curve.ts"],"names":[],"mappings":"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"}
|