@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.
Files changed (211) hide show
  1. package/README.md +267 -421
  2. package/abstract/bls.d.ts +49 -111
  3. package/abstract/bls.d.ts.map +1 -1
  4. package/abstract/bls.js +108 -152
  5. package/abstract/bls.js.map +1 -1
  6. package/abstract/curve.d.ts +7 -48
  7. package/abstract/curve.d.ts.map +1 -1
  8. package/abstract/curve.js +22 -47
  9. package/abstract/curve.js.map +1 -1
  10. package/abstract/edwards.d.ts +17 -68
  11. package/abstract/edwards.d.ts.map +1 -1
  12. package/abstract/edwards.js +98 -175
  13. package/abstract/edwards.js.map +1 -1
  14. package/abstract/fft.js +14 -27
  15. package/abstract/fft.js.map +1 -1
  16. package/abstract/hash-to-curve.d.ts +11 -24
  17. package/abstract/hash-to-curve.d.ts.map +1 -1
  18. package/abstract/hash-to-curve.js +30 -35
  19. package/abstract/hash-to-curve.js.map +1 -1
  20. package/abstract/modular.d.ts +5 -17
  21. package/abstract/modular.d.ts.map +1 -1
  22. package/abstract/modular.js +166 -167
  23. package/abstract/modular.js.map +1 -1
  24. package/abstract/montgomery.d.ts +4 -9
  25. package/abstract/montgomery.d.ts.map +1 -1
  26. package/abstract/montgomery.js +17 -20
  27. package/abstract/montgomery.js.map +1 -1
  28. package/abstract/oprf.d.ts +282 -0
  29. package/abstract/oprf.d.ts.map +1 -0
  30. package/abstract/oprf.js +297 -0
  31. package/abstract/oprf.js.map +1 -0
  32. package/abstract/poseidon.js +20 -24
  33. package/abstract/poseidon.js.map +1 -1
  34. package/abstract/tower.d.ts +9 -7
  35. package/abstract/tower.d.ts.map +1 -1
  36. package/abstract/tower.js +600 -364
  37. package/abstract/tower.js.map +1 -1
  38. package/abstract/weierstrass.d.ts +12 -145
  39. package/abstract/weierstrass.d.ts.map +1 -1
  40. package/abstract/weierstrass.js +153 -377
  41. package/abstract/weierstrass.js.map +1 -1
  42. package/bls12-381.d.ts +2 -2
  43. package/bls12-381.d.ts.map +1 -1
  44. package/bls12-381.js +174 -216
  45. package/bls12-381.js.map +1 -1
  46. package/bn254.d.ts +58 -10
  47. package/bn254.d.ts.map +1 -1
  48. package/bn254.js +70 -130
  49. package/bn254.js.map +1 -1
  50. package/ed25519.d.ts +12 -31
  51. package/ed25519.d.ts.map +1 -1
  52. package/ed25519.js +104 -146
  53. package/ed25519.js.map +1 -1
  54. package/ed448.d.ts +14 -33
  55. package/ed448.d.ts.map +1 -1
  56. package/ed448.js +105 -132
  57. package/ed448.js.map +1 -1
  58. package/index.js +1 -1
  59. package/misc.d.ts +10 -14
  60. package/misc.d.ts.map +1 -1
  61. package/misc.js +51 -60
  62. package/misc.js.map +1 -1
  63. package/nist.d.ts +11 -14
  64. package/nist.d.ts.map +1 -1
  65. package/nist.js +46 -55
  66. package/nist.js.map +1 -1
  67. package/package.json +9 -224
  68. package/secp256k1.d.ts +7 -23
  69. package/secp256k1.d.ts.map +1 -1
  70. package/secp256k1.js +72 -83
  71. package/secp256k1.js.map +1 -1
  72. package/src/abstract/bls.ts +197 -344
  73. package/src/abstract/curve.ts +10 -83
  74. package/src/abstract/edwards.ts +96 -223
  75. package/src/abstract/hash-to-curve.ts +32 -45
  76. package/src/abstract/modular.ts +144 -130
  77. package/src/abstract/montgomery.ts +21 -22
  78. package/src/abstract/oprf.ts +600 -0
  79. package/src/abstract/tower.ts +627 -382
  80. package/src/abstract/weierstrass.ts +101 -482
  81. package/src/bls12-381.ts +148 -176
  82. package/src/bn254.ts +67 -122
  83. package/src/ed25519.ts +65 -118
  84. package/src/ed448.ts +63 -113
  85. package/src/index.ts +1 -1
  86. package/src/misc.ts +66 -49
  87. package/src/nist.ts +48 -57
  88. package/src/secp256k1.ts +56 -88
  89. package/src/utils.ts +41 -61
  90. package/src/webcrypto.ts +362 -0
  91. package/utils.d.ts +28 -19
  92. package/utils.d.ts.map +1 -1
  93. package/utils.js +45 -121
  94. package/utils.js.map +1 -1
  95. package/webcrypto.d.ts +47 -0
  96. package/webcrypto.d.ts.map +1 -0
  97. package/webcrypto.js +231 -0
  98. package/webcrypto.js.map +1 -0
  99. package/esm/_shortw_utils.d.ts +0 -19
  100. package/esm/_shortw_utils.d.ts.map +0 -1
  101. package/esm/_shortw_utils.js +0 -16
  102. package/esm/_shortw_utils.js.map +0 -1
  103. package/esm/abstract/bls.d.ts +0 -190
  104. package/esm/abstract/bls.d.ts.map +0 -1
  105. package/esm/abstract/bls.js +0 -408
  106. package/esm/abstract/bls.js.map +0 -1
  107. package/esm/abstract/curve.d.ts +0 -231
  108. package/esm/abstract/curve.d.ts.map +0 -1
  109. package/esm/abstract/curve.js +0 -465
  110. package/esm/abstract/curve.js.map +0 -1
  111. package/esm/abstract/edwards.d.ts +0 -237
  112. package/esm/abstract/edwards.d.ts.map +0 -1
  113. package/esm/abstract/edwards.js +0 -632
  114. package/esm/abstract/edwards.js.map +0 -1
  115. package/esm/abstract/fft.d.ts +0 -122
  116. package/esm/abstract/fft.d.ts.map +0 -1
  117. package/esm/abstract/fft.js +0 -425
  118. package/esm/abstract/fft.js.map +0 -1
  119. package/esm/abstract/hash-to-curve.d.ts +0 -102
  120. package/esm/abstract/hash-to-curve.d.ts.map +0 -1
  121. package/esm/abstract/hash-to-curve.js +0 -203
  122. package/esm/abstract/hash-to-curve.js.map +0 -1
  123. package/esm/abstract/modular.d.ts +0 -171
  124. package/esm/abstract/modular.d.ts.map +0 -1
  125. package/esm/abstract/modular.js +0 -530
  126. package/esm/abstract/modular.js.map +0 -1
  127. package/esm/abstract/montgomery.d.ts +0 -30
  128. package/esm/abstract/montgomery.d.ts.map +0 -1
  129. package/esm/abstract/montgomery.js +0 -157
  130. package/esm/abstract/montgomery.js.map +0 -1
  131. package/esm/abstract/poseidon.d.ts +0 -68
  132. package/esm/abstract/poseidon.d.ts.map +0 -1
  133. package/esm/abstract/poseidon.js +0 -296
  134. package/esm/abstract/poseidon.js.map +0 -1
  135. package/esm/abstract/tower.d.ts +0 -93
  136. package/esm/abstract/tower.d.ts.map +0 -1
  137. package/esm/abstract/tower.js +0 -502
  138. package/esm/abstract/tower.js.map +0 -1
  139. package/esm/abstract/utils.d.ts +0 -5
  140. package/esm/abstract/utils.d.ts.map +0 -1
  141. package/esm/abstract/utils.js +0 -7
  142. package/esm/abstract/utils.js.map +0 -1
  143. package/esm/abstract/weierstrass.d.ts +0 -412
  144. package/esm/abstract/weierstrass.d.ts.map +0 -1
  145. package/esm/abstract/weierstrass.js +0 -1428
  146. package/esm/abstract/weierstrass.js.map +0 -1
  147. package/esm/bls12-381.d.ts +0 -16
  148. package/esm/bls12-381.d.ts.map +0 -1
  149. package/esm/bls12-381.js +0 -738
  150. package/esm/bls12-381.js.map +0 -1
  151. package/esm/bn254.d.ts +0 -18
  152. package/esm/bn254.d.ts.map +0 -1
  153. package/esm/bn254.js +0 -246
  154. package/esm/bn254.js.map +0 -1
  155. package/esm/ed25519.d.ts +0 -106
  156. package/esm/ed25519.d.ts.map +0 -1
  157. package/esm/ed25519.js +0 -467
  158. package/esm/ed25519.js.map +0 -1
  159. package/esm/ed448.d.ts +0 -101
  160. package/esm/ed448.d.ts.map +0 -1
  161. package/esm/ed448.js +0 -448
  162. package/esm/ed448.js.map +0 -1
  163. package/esm/index.d.ts +0 -2
  164. package/esm/index.d.ts.map +0 -1
  165. package/esm/index.js +0 -17
  166. package/esm/index.js.map +0 -1
  167. package/esm/jubjub.d.ts +0 -12
  168. package/esm/jubjub.d.ts.map +0 -1
  169. package/esm/jubjub.js +0 -12
  170. package/esm/jubjub.js.map +0 -1
  171. package/esm/misc.d.ts +0 -19
  172. package/esm/misc.d.ts.map +0 -1
  173. package/esm/misc.js +0 -109
  174. package/esm/misc.js.map +0 -1
  175. package/esm/nist.d.ts +0 -21
  176. package/esm/nist.d.ts.map +0 -1
  177. package/esm/nist.js +0 -132
  178. package/esm/nist.js.map +0 -1
  179. package/esm/p256.d.ts +0 -16
  180. package/esm/p256.d.ts.map +0 -1
  181. package/esm/p256.js +0 -16
  182. package/esm/p256.js.map +0 -1
  183. package/esm/p384.d.ts +0 -16
  184. package/esm/p384.d.ts.map +0 -1
  185. package/esm/p384.js +0 -16
  186. package/esm/p384.js.map +0 -1
  187. package/esm/p521.d.ts +0 -16
  188. package/esm/p521.d.ts.map +0 -1
  189. package/esm/p521.js +0 -16
  190. package/esm/p521.js.map +0 -1
  191. package/esm/package.json +0 -4
  192. package/esm/pasta.d.ts +0 -10
  193. package/esm/pasta.d.ts.map +0 -1
  194. package/esm/pasta.js +0 -10
  195. package/esm/pasta.js.map +0 -1
  196. package/esm/secp256k1.d.ts +0 -89
  197. package/esm/secp256k1.d.ts.map +0 -1
  198. package/esm/secp256k1.js +0 -292
  199. package/esm/secp256k1.js.map +0 -1
  200. package/esm/utils.d.ts +0 -110
  201. package/esm/utils.d.ts.map +0 -1
  202. package/esm/utils.js +0 -322
  203. package/esm/utils.js.map +0 -1
  204. package/src/_shortw_utils.ts +0 -21
  205. package/src/abstract/utils.ts +0 -7
  206. package/src/jubjub.ts +0 -12
  207. package/src/p256.ts +0 -15
  208. package/src/p384.ts +0 -15
  209. package/src/p521.ts +0 -15
  210. package/src/package.json +0 -3
  211. package/src/pasta.ts +0 -9
@@ -1,237 +0,0 @@
1
- /**
2
- * Twisted Edwards curve. The formula is: ax² + y² = 1 + dx²y².
3
- * For design rationale of types / exports, see weierstrass module documentation.
4
- * Untwisted Edwards curves exist, but they aren't used in real-world protocols.
5
- * @module
6
- */
7
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
8
- import { type FHash, type Hex } from '../utils.ts';
9
- import { type AffinePoint, type BasicCurve, type CurveLengths, type CurvePoint, type CurvePointCons } from './curve.ts';
10
- import { type IField, type NLength } from './modular.ts';
11
- export type UVRatio = (u: bigint, v: bigint) => {
12
- isValid: boolean;
13
- value: bigint;
14
- };
15
- /** Instance of Extended Point with coordinates in X, Y, Z, T. */
16
- export interface EdwardsPoint extends CurvePoint<bigint, EdwardsPoint> {
17
- /** extended X coordinate. Different from affine x. */
18
- readonly X: bigint;
19
- /** extended Y coordinate. Different from affine y. */
20
- readonly Y: bigint;
21
- /** extended Z coordinate */
22
- readonly Z: bigint;
23
- /** extended T coordinate */
24
- readonly T: bigint;
25
- /** @deprecated use `toBytes` */
26
- toRawBytes(): Uint8Array;
27
- /** @deprecated use `p.precompute(windowSize)` */
28
- _setWindowSize(windowSize: number): void;
29
- /** @deprecated use .X */
30
- readonly ex: bigint;
31
- /** @deprecated use .Y */
32
- readonly ey: bigint;
33
- /** @deprecated use .Z */
34
- readonly ez: bigint;
35
- /** @deprecated use .T */
36
- readonly et: bigint;
37
- }
38
- /** Static methods of Extended Point with coordinates in X, Y, Z, T. */
39
- export interface EdwardsPointCons extends CurvePointCons<EdwardsPoint> {
40
- new (X: bigint, Y: bigint, Z: bigint, T: bigint): EdwardsPoint;
41
- CURVE(): EdwardsOpts;
42
- fromBytes(bytes: Uint8Array, zip215?: boolean): EdwardsPoint;
43
- fromHex(hex: Hex, zip215?: boolean): EdwardsPoint;
44
- /** @deprecated use `import { pippenger } from '@noble/curves/abstract/curve.js';` */
45
- msm(points: EdwardsPoint[], scalars: bigint[]): EdwardsPoint;
46
- }
47
- /** @deprecated use EdwardsPoint */
48
- export type ExtPointType = EdwardsPoint;
49
- /** @deprecated use EdwardsPointCons */
50
- export type ExtPointConstructor = EdwardsPointCons;
51
- /**
52
- * Twisted Edwards curve options.
53
- *
54
- * * a: formula param
55
- * * d: formula param
56
- * * p: prime characteristic (order) of finite field, in which arithmetics is done
57
- * * n: order of prime subgroup a.k.a total amount of valid curve points
58
- * * h: cofactor. h*n is group order; n is subgroup order
59
- * * Gx: x coordinate of generator point a.k.a. base point
60
- * * Gy: y coordinate of generator point
61
- */
62
- export type EdwardsOpts = Readonly<{
63
- p: bigint;
64
- n: bigint;
65
- h: bigint;
66
- a: bigint;
67
- d: bigint;
68
- Gx: bigint;
69
- Gy: bigint;
70
- }>;
71
- /**
72
- * Extra curve options for Twisted Edwards.
73
- *
74
- * * Fp: redefined Field over curve.p
75
- * * Fn: redefined Field over curve.n
76
- * * uvRatio: helper function for decompression, calculating √(u/v)
77
- */
78
- export type EdwardsExtraOpts = Partial<{
79
- Fp: IField<bigint>;
80
- Fn: IField<bigint>;
81
- FpFnLE: boolean;
82
- uvRatio: (u: bigint, v: bigint) => {
83
- isValid: boolean;
84
- value: bigint;
85
- };
86
- }>;
87
- /**
88
- * EdDSA (Edwards Digital Signature algorithm) options.
89
- *
90
- * * hash: hash function used to hash secret keys and messages
91
- * * adjustScalarBytes: clears bits to get valid field element
92
- * * domain: Used for hashing
93
- * * mapToCurve: for hash-to-curve standard
94
- * * prehash: RFC 8032 pre-hashing of messages to sign() / verify()
95
- * * randomBytes: function generating random bytes, used for randomSecretKey
96
- */
97
- export type EdDSAOpts = Partial<{
98
- adjustScalarBytes: (bytes: Uint8Array) => Uint8Array;
99
- domain: (data: Uint8Array, ctx: Uint8Array, phflag: boolean) => Uint8Array;
100
- mapToCurve: (scalar: bigint[]) => AffinePoint<bigint>;
101
- prehash: FHash;
102
- randomBytes: (bytesLength?: number) => Uint8Array;
103
- }>;
104
- /**
105
- * EdDSA (Edwards Digital Signature algorithm) interface.
106
- *
107
- * Allows to create and verify signatures, create public and secret keys.
108
- */
109
- export interface EdDSA {
110
- keygen: (seed?: Uint8Array) => {
111
- secretKey: Uint8Array;
112
- publicKey: Uint8Array;
113
- };
114
- getPublicKey: (secretKey: Hex) => Uint8Array;
115
- sign: (message: Hex, secretKey: Hex, options?: {
116
- context?: Hex;
117
- }) => Uint8Array;
118
- verify: (sig: Hex, message: Hex, publicKey: Hex, options?: {
119
- context?: Hex;
120
- zip215: boolean;
121
- }) => boolean;
122
- Point: EdwardsPointCons;
123
- utils: {
124
- randomSecretKey: (seed?: Uint8Array) => Uint8Array;
125
- isValidSecretKey: (secretKey: Uint8Array) => boolean;
126
- isValidPublicKey: (publicKey: Uint8Array, zip215?: boolean) => boolean;
127
- /**
128
- * Converts ed public key to x public key.
129
- * @example
130
- * ```js
131
- * const someonesPub = ed25519.getPublicKey(ed25519.utils.randomSecretKey());
132
- * const aPriv = x25519.utils.randomSecretKey();
133
- * x25519.getSharedSecret(aPriv, ed25519.utils.toMontgomery(someonesPub))
134
- * ```
135
- */
136
- toMontgomery: (publicKey: Uint8Array) => Uint8Array;
137
- /**
138
- * Converts ed secret key to x secret key.
139
- * @example
140
- * ```js
141
- * const someonesPub = x25519.getPublicKey(x25519.utils.randomSecretKey());
142
- * const aPriv = ed25519.utils.randomSecretKey();
143
- * x25519.getSharedSecret(ed25519.utils.toMontgomeryPriv(aPriv), someonesPub)
144
- * ```
145
- */
146
- toMontgomeryPriv: (privateKey: Uint8Array) => Uint8Array;
147
- getExtendedPublicKey: (key: Hex) => {
148
- head: Uint8Array;
149
- prefix: Uint8Array;
150
- scalar: bigint;
151
- point: EdwardsPoint;
152
- pointBytes: Uint8Array;
153
- };
154
- /** @deprecated use `randomSecretKey` */
155
- randomPrivateKey: (seed?: Uint8Array) => Uint8Array;
156
- /** @deprecated use `point.precompute()` */
157
- precompute: (windowSize?: number, point?: EdwardsPoint) => EdwardsPoint;
158
- };
159
- lengths: CurveLengths;
160
- }
161
- export declare function edwards(params: EdwardsOpts, extraOpts?: EdwardsExtraOpts): EdwardsPointCons;
162
- /**
163
- * Base class for prime-order points like Ristretto255 and Decaf448.
164
- * These points eliminate cofactor issues by representing equivalence classes
165
- * of Edwards curve points.
166
- */
167
- export declare abstract class PrimeEdwardsPoint<T extends PrimeEdwardsPoint<T>> implements CurvePoint<bigint, T> {
168
- static BASE: PrimeEdwardsPoint<any>;
169
- static ZERO: PrimeEdwardsPoint<any>;
170
- static Fp: IField<bigint>;
171
- static Fn: IField<bigint>;
172
- protected readonly ep: EdwardsPoint;
173
- constructor(ep: EdwardsPoint);
174
- abstract toBytes(): Uint8Array;
175
- abstract equals(other: T): boolean;
176
- static fromBytes(_bytes: Uint8Array): any;
177
- static fromHex(_hex: Hex): any;
178
- get x(): bigint;
179
- get y(): bigint;
180
- clearCofactor(): T;
181
- assertValidity(): void;
182
- toAffine(invertedZ?: bigint): AffinePoint<bigint>;
183
- /** @deprecated use `toBytes` */
184
- toRawBytes(): Uint8Array;
185
- toHex(): string;
186
- toString(): string;
187
- isTorsionFree(): boolean;
188
- isSmallOrder(): boolean;
189
- add(other: T): T;
190
- subtract(other: T): T;
191
- multiply(scalar: bigint): T;
192
- multiplyUnsafe(scalar: bigint): T;
193
- double(): T;
194
- negate(): T;
195
- precompute(windowSize?: number, isLazy?: boolean): T;
196
- abstract is0(): boolean;
197
- protected abstract assertSame(other: T): void;
198
- protected abstract init(ep: EdwardsPoint): T;
199
- }
200
- /**
201
- * Initializes EdDSA signatures over given Edwards curve.
202
- */
203
- export declare function eddsa(Point: EdwardsPointCons, cHash: FHash, eddsaOpts?: EdDSAOpts): EdDSA;
204
- export type CurveType = BasicCurve<bigint> & {
205
- a: bigint;
206
- d: bigint;
207
- /** @deprecated the property will be removed in next release */
208
- hash: FHash;
209
- randomBytes?: (bytesLength?: number) => Uint8Array;
210
- adjustScalarBytes?: (bytes: Uint8Array) => Uint8Array;
211
- domain?: (data: Uint8Array, ctx: Uint8Array, phflag: boolean) => Uint8Array;
212
- uvRatio?: UVRatio;
213
- prehash?: FHash;
214
- mapToCurve?: (scalar: bigint[]) => AffinePoint<bigint>;
215
- };
216
- export type CurveTypeWithLength = Readonly<CurveType & Partial<NLength>>;
217
- export type CurveFn = {
218
- /** @deprecated the property will be removed in next release */
219
- CURVE: CurveType;
220
- keygen: EdDSA['keygen'];
221
- getPublicKey: EdDSA['getPublicKey'];
222
- sign: EdDSA['sign'];
223
- verify: EdDSA['verify'];
224
- Point: EdwardsPointCons;
225
- /** @deprecated use `Point` */
226
- ExtendedPoint: EdwardsPointCons;
227
- utils: EdDSA['utils'];
228
- lengths: CurveLengths;
229
- };
230
- export type EdComposed = {
231
- CURVE: EdwardsOpts;
232
- curveOpts: EdwardsExtraOpts;
233
- hash: FHash;
234
- eddsaOpts: EdDSAOpts;
235
- };
236
- export declare function twistedEdwards(c: CurveTypeWithLength): CurveFn;
237
- //# sourceMappingURL=edwards.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"edwards.d.ts","sourceRoot":"","sources":["../../src/abstract/edwards.ts"],"names":[],"mappings":"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"}