@noble/curves 2.0.1 → 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.
Files changed (110) hide show
  1. package/README.md +214 -122
  2. package/abstract/bls.d.ts +299 -16
  3. package/abstract/bls.d.ts.map +1 -1
  4. package/abstract/bls.js +82 -22
  5. package/abstract/bls.js.map +1 -1
  6. package/abstract/curve.d.ts +274 -27
  7. package/abstract/curve.d.ts.map +1 -1
  8. package/abstract/curve.js +177 -23
  9. package/abstract/curve.js.map +1 -1
  10. package/abstract/edwards.d.ts +166 -30
  11. package/abstract/edwards.d.ts.map +1 -1
  12. package/abstract/edwards.js +221 -86
  13. package/abstract/edwards.js.map +1 -1
  14. package/abstract/fft.d.ts +322 -10
  15. package/abstract/fft.d.ts.map +1 -1
  16. package/abstract/fft.js +154 -12
  17. package/abstract/fft.js.map +1 -1
  18. package/abstract/frost.d.ts +293 -0
  19. package/abstract/frost.d.ts.map +1 -0
  20. package/abstract/frost.js +704 -0
  21. package/abstract/frost.js.map +1 -0
  22. package/abstract/hash-to-curve.d.ts +173 -24
  23. package/abstract/hash-to-curve.d.ts.map +1 -1
  24. package/abstract/hash-to-curve.js +170 -31
  25. package/abstract/hash-to-curve.js.map +1 -1
  26. package/abstract/modular.d.ts +429 -37
  27. package/abstract/modular.d.ts.map +1 -1
  28. package/abstract/modular.js +414 -119
  29. package/abstract/modular.js.map +1 -1
  30. package/abstract/montgomery.d.ts +83 -12
  31. package/abstract/montgomery.d.ts.map +1 -1
  32. package/abstract/montgomery.js +32 -7
  33. package/abstract/montgomery.js.map +1 -1
  34. package/abstract/oprf.d.ts +164 -91
  35. package/abstract/oprf.d.ts.map +1 -1
  36. package/abstract/oprf.js +88 -29
  37. package/abstract/oprf.js.map +1 -1
  38. package/abstract/poseidon.d.ts +138 -7
  39. package/abstract/poseidon.d.ts.map +1 -1
  40. package/abstract/poseidon.js +178 -15
  41. package/abstract/poseidon.js.map +1 -1
  42. package/abstract/tower.d.ts +122 -3
  43. package/abstract/tower.d.ts.map +1 -1
  44. package/abstract/tower.js +323 -139
  45. package/abstract/tower.js.map +1 -1
  46. package/abstract/weierstrass.d.ts +339 -76
  47. package/abstract/weierstrass.d.ts.map +1 -1
  48. package/abstract/weierstrass.js +395 -205
  49. package/abstract/weierstrass.js.map +1 -1
  50. package/bls12-381.d.ts +16 -2
  51. package/bls12-381.d.ts.map +1 -1
  52. package/bls12-381.js +199 -209
  53. package/bls12-381.js.map +1 -1
  54. package/bn254.d.ts +11 -2
  55. package/bn254.d.ts.map +1 -1
  56. package/bn254.js +93 -38
  57. package/bn254.js.map +1 -1
  58. package/ed25519.d.ts +125 -14
  59. package/ed25519.d.ts.map +1 -1
  60. package/ed25519.js +202 -40
  61. package/ed25519.js.map +1 -1
  62. package/ed448.d.ts +108 -14
  63. package/ed448.d.ts.map +1 -1
  64. package/ed448.js +194 -42
  65. package/ed448.js.map +1 -1
  66. package/index.js +7 -1
  67. package/index.js.map +1 -1
  68. package/misc.d.ts +106 -7
  69. package/misc.d.ts.map +1 -1
  70. package/misc.js +141 -32
  71. package/misc.js.map +1 -1
  72. package/nist.d.ts +112 -11
  73. package/nist.d.ts.map +1 -1
  74. package/nist.js +139 -17
  75. package/nist.js.map +1 -1
  76. package/package.json +11 -6
  77. package/secp256k1.d.ts +92 -15
  78. package/secp256k1.d.ts.map +1 -1
  79. package/secp256k1.js +211 -28
  80. package/secp256k1.js.map +1 -1
  81. package/src/abstract/bls.ts +350 -67
  82. package/src/abstract/curve.ts +327 -44
  83. package/src/abstract/edwards.ts +367 -143
  84. package/src/abstract/fft.ts +369 -36
  85. package/src/abstract/frost.ts +1092 -0
  86. package/src/abstract/hash-to-curve.ts +255 -56
  87. package/src/abstract/modular.ts +591 -144
  88. package/src/abstract/montgomery.ts +114 -30
  89. package/src/abstract/oprf.ts +383 -194
  90. package/src/abstract/poseidon.ts +235 -35
  91. package/src/abstract/tower.ts +428 -159
  92. package/src/abstract/weierstrass.ts +710 -312
  93. package/src/bls12-381.ts +239 -236
  94. package/src/bn254.ts +107 -46
  95. package/src/ed25519.ts +227 -55
  96. package/src/ed448.ts +227 -57
  97. package/src/index.ts +7 -1
  98. package/src/misc.ts +154 -35
  99. package/src/nist.ts +143 -20
  100. package/src/secp256k1.ts +284 -41
  101. package/src/utils.ts +583 -81
  102. package/src/webcrypto.ts +302 -73
  103. package/utils.d.ts +457 -24
  104. package/utils.d.ts.map +1 -1
  105. package/utils.js +410 -53
  106. package/utils.js.map +1 -1
  107. package/webcrypto.d.ts +167 -25
  108. package/webcrypto.d.ts.map +1 -1
  109. package/webcrypto.js +165 -58
  110. 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
- hashToCurve(msg: Uint8Array, options?: H2CDSTOpts): PC_P<PC>;
38
- hashToScalar(msg: Uint8Array, options?: H2CDSTOpts): bigint;
39
- deriveToCurve?(msg: Uint8Array, options?: H2CDSTOpts): PC_P<PC>;
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
- encodeToCurve(msg: Uint8Array, options?: H2CDSTOpts): PC_P<PC>;
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
- defaults: H2COpts & {
53
- encodeDST?: AsciiOrBytes;
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 function H that outputs b bits.
58
- * [RFC 9380 5.3.1](https://www.rfc-editor.org/rfc/rfc9380#section-5.3.1).
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, DST: AsciiOrBytes, lenInBytes: number, H: CHash): 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
- * [RFC 9380 5.3.2](https://www.rfc-editor.org/rfc/rfc9380#section-5.3.2).
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, DST: AsciiOrBytes, lenInBytes: number, k: number, H: CHash): 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
- * [RFC 9380 5.2](https://www.rfc-editor.org/rfc/rfc9380#section-5.2).
72
- * @param msg a byte string containing the message to hash
73
- * @param count the number of elements of F to output
74
- * @param options `{DST: string, p: bigint, m: number, k: number, expand: 'xmd' | 'xof', hash: H}`, see above
75
- * @returns [u_0, ..., u_(count - 1)], a list of field elements.
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, count: number, options: H2COpts): bigint[][];
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: Uint8Array;
85
- /** Creates hash-to-curve methods from EC Point and mapToCurve function. See {@link H2CHasher}. */
86
- export declare function createHasher<PC extends PC_ANY>(Point: PC, mapToCurve: MapToCurve<PC_F<PC>>, defaults: H2COpts & {
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":"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"}
1
+ {"version":3,"file":"hash-to-curve.d.ts","sourceRoot":"","sources":["../src/abstract/hash-to-curve.ts"],"names":[],"mappings":"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"}