@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.
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 +89 -24
  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 +327 -10
  15. package/abstract/fft.d.ts.map +1 -1
  16. package/abstract/fft.js +155 -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 +135 -14
  59. package/ed25519.d.ts.map +1 -1
  60. package/ed25519.js +207 -41
  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 +34 -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 +356 -69
  82. package/src/abstract/curve.ts +327 -44
  83. package/src/abstract/edwards.ts +367 -143
  84. package/src/abstract/fft.ts +371 -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 +234 -56
  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
@@ -5,10 +5,10 @@
5
5
  * @module
6
6
  */
7
7
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
8
- import { type FHash } from '../utils.ts';
8
+ import { type FHash, type TArg, type TRet } from '../utils.ts';
9
9
  import { type AffinePoint, type CurveLengths, type CurvePoint, type CurvePointCons } from './curve.ts';
10
10
  import { type IField } from './modular.ts';
11
- /** Instance of Extended Point with coordinates in X, Y, Z, T. */
11
+ /** Extended Edwards point with X/Y/Z/T coordinates. */
12
12
  export interface EdwardsPoint extends CurvePoint<bigint, EdwardsPoint> {
13
13
  /** extended X coordinate. Different from affine x. */
14
14
  readonly X: bigint;
@@ -19,11 +19,28 @@ export interface EdwardsPoint extends CurvePoint<bigint, EdwardsPoint> {
19
19
  /** extended T coordinate */
20
20
  readonly T: bigint;
21
21
  }
22
- /** Static methods of Extended Point with coordinates in X, Y, Z, T. */
22
+ /** Constructor and decoding helpers for extended Edwards points. */
23
23
  export interface EdwardsPointCons extends CurvePointCons<EdwardsPoint> {
24
+ /** Create a point from extended X/Y/Z/T coordinates without validation. */
24
25
  new (X: bigint, Y: bigint, Z: bigint, T: bigint): EdwardsPoint;
26
+ /**
27
+ * Return the curve parameters used by this point constructor.
28
+ * @returns Curve parameters.
29
+ */
25
30
  CURVE(): EdwardsOpts;
31
+ /**
32
+ * Decode a point from bytes, optionally using ZIP-215 rules.
33
+ * @param bytes - Encoded point bytes.
34
+ * @param zip215 - Whether to accept ZIP-215 encodings.
35
+ * @returns Decoded Edwards point.
36
+ */
26
37
  fromBytes(bytes: Uint8Array, zip215?: boolean): EdwardsPoint;
38
+ /**
39
+ * Decode a point from hex, optionally using ZIP-215 rules.
40
+ * @param hex - Encoded point hex.
41
+ * @param zip215 - Whether to accept ZIP-215 encodings.
42
+ * @returns Decoded Edwards point.
43
+ */
27
44
  fromHex(hex: string, zip215?: boolean): EdwardsPoint;
28
45
  }
29
46
  /**
@@ -38,12 +55,19 @@ export interface EdwardsPointCons extends CurvePointCons<EdwardsPoint> {
38
55
  * * Gy: y coordinate of generator point
39
56
  */
40
57
  export type EdwardsOpts = Readonly<{
58
+ /** Base-field modulus. */
41
59
  p: bigint;
60
+ /** Prime subgroup order. */
42
61
  n: bigint;
62
+ /** Curve cofactor. */
43
63
  h: bigint;
64
+ /** Edwards curve parameter `a`. */
44
65
  a: bigint;
66
+ /** Edwards curve parameter `d`. */
45
67
  d: bigint;
68
+ /** Generator x coordinate. */
46
69
  Gx: bigint;
70
+ /** Generator y coordinate. */
47
71
  Gy: bigint;
48
72
  }>;
49
73
  /**
@@ -54,9 +78,13 @@ export type EdwardsOpts = Readonly<{
54
78
  * * uvRatio: helper function for decompression, calculating √(u/v)
55
79
  */
56
80
  export type EdwardsExtraOpts = Partial<{
81
+ /** Optional base-field override. */
57
82
  Fp: IField<bigint>;
83
+ /** Optional scalar-field override. */
58
84
  Fn: IField<bigint>;
85
+ /** Whether field encodings are little-endian. */
59
86
  FpFnLE: boolean;
87
+ /** Square-root ratio helper used during point decompression. */
60
88
  uvRatio: (u: bigint, v: bigint) => {
61
89
  isValid: boolean;
62
90
  value: bigint;
@@ -73,35 +101,77 @@ export type EdwardsExtraOpts = Partial<{
73
101
  * * randomBytes: function generating random bytes, used for randomSecretKey
74
102
  */
75
103
  export type EdDSAOpts = Partial<{
76
- adjustScalarBytes: (bytes: Uint8Array) => Uint8Array;
77
- domain: (data: Uint8Array, ctx: Uint8Array, phflag: boolean) => Uint8Array;
104
+ /** Clamp or otherwise normalize secret-scalar bytes before reducing mod `n`. */
105
+ adjustScalarBytes: (bytes: TArg<Uint8Array>) => TRet<Uint8Array>;
106
+ /** Domain-separation helper for contexts and prehash mode. */
107
+ domain: (data: TArg<Uint8Array>, ctx: TArg<Uint8Array>, phflag: boolean) => TRet<Uint8Array>;
108
+ /** Optional hash-to-curve mapper for protocols like Ristretto hash-to-group. */
78
109
  mapToCurve: (scalar: bigint[]) => AffinePoint<bigint>;
110
+ /** Optional prehash function used before signing or verifying messages. */
79
111
  prehash: FHash;
80
- randomBytes: (bytesLength?: number) => Uint8Array;
112
+ /** Default verification decoding policy. ZIP-215 is more permissive than RFC 8032 / NIST. */
113
+ zip215: boolean;
114
+ /** RNG override used by helper constructors. */
115
+ randomBytes: (bytesLength?: number) => TRet<Uint8Array>;
81
116
  }>;
82
117
  /**
83
- * EdDSA (Edwards Digital Signature algorithm) interface.
84
- *
85
- * Allows to create and verify signatures, create public and secret keys.
118
+ * EdDSA (Edwards Digital Signature algorithm) helper namespace.
119
+ * Allows creating and verifying signatures, and deriving public keys.
86
120
  */
87
121
  export interface EdDSA {
88
- keygen: (seed?: Uint8Array) => {
89
- secretKey: Uint8Array;
90
- publicKey: Uint8Array;
122
+ /**
123
+ * Generate a secret/public key pair.
124
+ * @param seed - Optional seed material.
125
+ * @returns Secret/public key pair.
126
+ */
127
+ keygen: (seed?: TArg<Uint8Array>) => {
128
+ secretKey: TRet<Uint8Array>;
129
+ publicKey: TRet<Uint8Array>;
91
130
  };
92
- getPublicKey: (secretKey: Uint8Array) => Uint8Array;
93
- sign: (message: Uint8Array, secretKey: Uint8Array, options?: {
131
+ /**
132
+ * Derive the public key from a secret key.
133
+ * @param secretKey - Secret key bytes.
134
+ * @returns Encoded public key.
135
+ */
136
+ getPublicKey: (secretKey: TArg<Uint8Array>) => TRet<Uint8Array>;
137
+ /**
138
+ * Sign a message with an EdDSA secret key.
139
+ * @param message - Message bytes.
140
+ * @param secretKey - Secret key bytes.
141
+ * @param options - Optional signature tweaks:
142
+ * - `context` (optional): Domain-separation context for Ed25519ctx/Ed448.
143
+ * @returns Encoded signature bytes.
144
+ */
145
+ sign: (message: TArg<Uint8Array>, secretKey: TArg<Uint8Array>, options?: TArg<{
94
146
  context?: Uint8Array;
95
- }) => Uint8Array;
96
- verify: (sig: Uint8Array, message: Uint8Array, publicKey: Uint8Array, options?: {
147
+ }>) => TRet<Uint8Array>;
148
+ /**
149
+ * Verify a signature against a message and public key.
150
+ * @param sig - Encoded signature bytes.
151
+ * @param message - Message bytes.
152
+ * @param publicKey - Encoded public key.
153
+ * @param options - Optional verification tweaks:
154
+ * - `context` (optional): Domain-separation context for Ed25519ctx/Ed448.
155
+ * - `zip215` (optional): Whether to accept ZIP-215 encodings.
156
+ * @returns Whether the signature is valid.
157
+ */
158
+ verify: (sig: TArg<Uint8Array>, message: TArg<Uint8Array>, publicKey: TArg<Uint8Array>, options?: TArg<{
97
159
  context?: Uint8Array;
98
- zip215: boolean;
99
- }) => boolean;
160
+ zip215?: boolean;
161
+ }>) => boolean;
162
+ /** Point constructor used by this signature scheme. */
100
163
  Point: EdwardsPointCons;
164
+ /** Helper utilities for key validation and Montgomery conversion. */
101
165
  utils: {
102
- randomSecretKey: (seed?: Uint8Array) => Uint8Array;
103
- isValidSecretKey: (secretKey: Uint8Array) => boolean;
104
- isValidPublicKey: (publicKey: Uint8Array, zip215?: boolean) => boolean;
166
+ /**
167
+ * Generate a valid random secret key.
168
+ * Optional seed bytes are only length-checked and returned unchanged.
169
+ */
170
+ randomSecretKey: (seed?: TArg<Uint8Array>) => TRet<Uint8Array>;
171
+ /** Check whether a secret key has the expected encoding. */
172
+ isValidSecretKey: (secretKey: TArg<Uint8Array>) => boolean;
173
+ /** Check whether a public key decodes to a valid point. */
174
+ isValidPublicKey: (publicKey: TArg<Uint8Array>, zip215?: boolean) => boolean;
105
175
  /**
106
176
  * Converts ed public key to x public key.
107
177
  *
@@ -111,6 +181,8 @@ export interface EdDSA {
111
181
  * accepts inputs on the quadratic twist, which can't be moved to ed25519
112
182
  *
113
183
  * @example
184
+ * Converts ed public key to x public key.
185
+ *
114
186
  * ```js
115
187
  * const someonesPub_ed = ed25519.getPublicKey(ed25519.utils.randomSecretKey());
116
188
  * const someonesPub = ed25519.utils.toMontgomery(someonesPub);
@@ -118,10 +190,12 @@ export interface EdDSA {
118
190
  * const shared = x25519.getSharedSecret(aPriv, someonesPub)
119
191
  * ```
120
192
  */
121
- toMontgomery: (publicKey: Uint8Array) => Uint8Array;
193
+ toMontgomery: (publicKey: TArg<Uint8Array>) => TRet<Uint8Array>;
122
194
  /**
123
195
  * Converts ed secret key to x secret key.
124
196
  * @example
197
+ * Converts ed secret key to x secret key.
198
+ *
125
199
  * ```js
126
200
  * const someonesPub = x25519.getPublicKey(x25519.utils.randomSecretKey());
127
201
  * const aPriv_ed = ed25519.utils.randomSecretKey();
@@ -129,22 +203,55 @@ export interface EdDSA {
129
203
  * const shared = x25519.getSharedSecret(aPriv, someonesPub)
130
204
  * ```
131
205
  */
132
- toMontgomerySecret: (secretKey: Uint8Array) => Uint8Array;
133
- getExtendedPublicKey: (key: Uint8Array) => {
134
- head: Uint8Array;
135
- prefix: Uint8Array;
206
+ toMontgomerySecret: (secretKey: TArg<Uint8Array>) => TRet<Uint8Array>;
207
+ /** Return the expanded private key components used by RFC8032 signing. */
208
+ getExtendedPublicKey: (key: TArg<Uint8Array>) => {
209
+ head: TRet<Uint8Array>;
210
+ prefix: TRet<Uint8Array>;
136
211
  scalar: bigint;
137
212
  point: EdwardsPoint;
138
- pointBytes: Uint8Array;
213
+ pointBytes: TRet<Uint8Array>;
139
214
  };
140
215
  };
216
+ /** Byte lengths for keys and signatures exposed by this scheme. */
141
217
  lengths: CurveLengths;
142
218
  }
143
- export declare function edwards(params: EdwardsOpts, extraOpts?: EdwardsExtraOpts): EdwardsPointCons;
219
+ /**
220
+ * @param params - Curve parameters. See {@link EdwardsOpts}.
221
+ * @param extraOpts - Optional helpers and overrides. See {@link EdwardsExtraOpts}.
222
+ * @returns Edwards point constructor. Generator validation here only checks
223
+ * that `(Gx, Gy)` satisfies the affine Edwards equation.
224
+ * RFC 8032 base-point constraints like `B != (0,1)` and `[L]B = 0`
225
+ * are left to the caller's chosen parameters, since eager subgroup
226
+ * validation here adds about 10-15ms to heavyweight imports like ed448.
227
+ * The returned constructor also eagerly marks `Point.BASE` for W=8
228
+ * precompute caching. Some code paths still assume
229
+ * `Fp.BYTES === Fn.BYTES`, so mismatched byte lengths are not fully audited here.
230
+ * @throws If the curve parameters or Edwards overrides are invalid. {@link Error}
231
+ * @example
232
+ * ```ts
233
+ * import { edwards } from '@noble/curves/abstract/edwards.js';
234
+ * import { jubjub } from '@noble/curves/misc.js';
235
+ * // Build a point constructor from explicit curve parameters, then use its base point.
236
+ * const Point = edwards(jubjub.Point.CURVE());
237
+ * Point.BASE.toHex();
238
+ * ```
239
+ */
240
+ export declare function edwards(params: TArg<EdwardsOpts>, extraOpts?: TArg<EdwardsExtraOpts>): EdwardsPointCons;
144
241
  /**
145
242
  * Base class for prime-order points like Ristretto255 and Decaf448.
146
243
  * These points eliminate cofactor issues by representing equivalence classes
147
- * of Edwards curve points.
244
+ * of Edwards curve points. Multiple Edwards representatives can describe the
245
+ * same abstract wrapper element, so wrapper validity is not the same thing as
246
+ * the hidden representative being torsion-free.
247
+ * @param ep - Backing Edwards point.
248
+ * @example
249
+ * Base class for prime-order points like Ristretto255 and Decaf448.
250
+ *
251
+ * ```ts
252
+ * import { ristretto255 } from '@noble/curves/ed25519.js';
253
+ * const point = ristretto255.Point.BASE.multiply(2n);
254
+ * ```
148
255
  */
149
256
  export declare abstract class PrimeEdwardsPoint<T extends PrimeEdwardsPoint<T>> implements CurvePoint<bigint, T> {
150
257
  static BASE: PrimeEdwardsPoint<any>;
@@ -152,6 +259,11 @@ export declare abstract class PrimeEdwardsPoint<T extends PrimeEdwardsPoint<T>>
152
259
  static Fp: IField<bigint>;
153
260
  static Fn: IField<bigint>;
154
261
  protected readonly ep: EdwardsPoint;
262
+ /**
263
+ * Wrap one internal Edwards representative directly.
264
+ * This is not a canonical encoding boundary: alternate Edwards
265
+ * representatives may still describe the same abstract wrapper element.
266
+ */
155
267
  constructor(ep: EdwardsPoint);
156
268
  abstract toBytes(): Uint8Array;
157
269
  abstract equals(other: T): boolean;
@@ -161,6 +273,12 @@ export declare abstract class PrimeEdwardsPoint<T extends PrimeEdwardsPoint<T>>
161
273
  get y(): bigint;
162
274
  clearCofactor(): T;
163
275
  assertValidity(): void;
276
+ /**
277
+ * Return affine coordinates of the current internal Edwards representative.
278
+ * This is a convenience helper, not a canonical Ristretto/Decaf encoding.
279
+ * Equal abstract elements may expose different `x` / `y`; use
280
+ * `toBytes()` / `fromBytes()` for canonical roundtrips.
281
+ */
164
282
  toAffine(invertedZ?: bigint): AffinePoint<bigint>;
165
283
  toHex(): string;
166
284
  toString(): string;
@@ -179,6 +297,24 @@ export declare abstract class PrimeEdwardsPoint<T extends PrimeEdwardsPoint<T>>
179
297
  }
180
298
  /**
181
299
  * Initializes EdDSA signatures over given Edwards curve.
300
+ * @param Point - Edwards point constructor.
301
+ * @param cHash - Hash function.
302
+ * @param eddsaOpts - Optional signature helpers. See {@link EdDSAOpts}.
303
+ * @returns EdDSA helper namespace.
304
+ * @throws If the hash function, options, or derived point operations are invalid. {@link Error}
305
+ * @example
306
+ * Initializes EdDSA signatures over given Edwards curve.
307
+ *
308
+ * ```ts
309
+ * import { eddsa } from '@noble/curves/abstract/edwards.js';
310
+ * import { jubjub } from '@noble/curves/misc.js';
311
+ * import { sha512 } from '@noble/hashes/sha2.js';
312
+ * const sigs = eddsa(jubjub.Point, sha512);
313
+ * const { secretKey, publicKey } = sigs.keygen();
314
+ * const msg = new TextEncoder().encode('hello noble');
315
+ * const sig = sigs.sign(msg, secretKey);
316
+ * const isValid = sigs.verify(sig, msg, publicKey);
317
+ * ```
182
318
  */
183
- export declare function eddsa(Point: EdwardsPointCons, cHash: FHash, eddsaOpts?: EdDSAOpts): EdDSA;
319
+ export declare function eddsa(Point: EdwardsPointCons, cHash: TArg<FHash>, eddsaOpts?: TArg<EdDSAOpts>): EdDSA;
184
320
  //# sourceMappingURL=edwards.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"edwards.d.ts","sourceRoot":"","sources":["../src/abstract/edwards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edwards.d.ts","sourceRoot":"","sources":["../src/abstract/edwards.ts"],"names":[],"mappings":"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"}