@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
|
@@ -1,412 +0,0 @@
|
|
|
1
|
-
import { type CHash, type Hex, type PrivKey } from '../utils.ts';
|
|
2
|
-
import { type AffinePoint, type BasicCurve, type CurveLengths, type CurvePoint, type CurvePointCons } from './curve.ts';
|
|
3
|
-
import { type IField, type NLength } from './modular.ts';
|
|
4
|
-
export type { AffinePoint };
|
|
5
|
-
export type HmacFnSync = (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array;
|
|
6
|
-
type EndoBasis = [[bigint, bigint], [bigint, bigint]];
|
|
7
|
-
/**
|
|
8
|
-
* When Weierstrass curve has `a=0`, it becomes Koblitz curve.
|
|
9
|
-
* Koblitz curves allow using **efficiently-computable GLV endomorphism ψ**.
|
|
10
|
-
* Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.
|
|
11
|
-
* For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.
|
|
12
|
-
*
|
|
13
|
-
* Endomorphism consists of beta, lambda and splitScalar:
|
|
14
|
-
*
|
|
15
|
-
* 1. GLV endomorphism ψ transforms a point: `P = (x, y) ↦ ψ(P) = (β·x mod p, y)`
|
|
16
|
-
* 2. GLV scalar decomposition transforms a scalar: `k ≡ k₁ + k₂·λ (mod n)`
|
|
17
|
-
* 3. Then these are combined: `k·P = k₁·P + k₂·ψ(P)`
|
|
18
|
-
* 4. Two 128-bit point-by-scalar multiplications + one point addition is faster than
|
|
19
|
-
* one 256-bit multiplication.
|
|
20
|
-
*
|
|
21
|
-
* where
|
|
22
|
-
* * beta: β ∈ Fₚ with β³ = 1, β ≠ 1
|
|
23
|
-
* * lambda: λ ∈ Fₙ with λ³ = 1, λ ≠ 1
|
|
24
|
-
* * splitScalar decomposes k ↦ k₁, k₂, by using reduced basis vectors.
|
|
25
|
-
* Gauss lattice reduction calculates them from initial basis vectors `(n, 0), (-λ, 0)`
|
|
26
|
-
*
|
|
27
|
-
* Check out `test/misc/endomorphism.js` and
|
|
28
|
-
* [gist](https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066).
|
|
29
|
-
*/
|
|
30
|
-
export type EndomorphismOpts = {
|
|
31
|
-
beta: bigint;
|
|
32
|
-
basises?: EndoBasis;
|
|
33
|
-
splitScalar?: (k: bigint) => {
|
|
34
|
-
k1neg: boolean;
|
|
35
|
-
k1: bigint;
|
|
36
|
-
k2neg: boolean;
|
|
37
|
-
k2: bigint;
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
export type ScalarEndoParts = {
|
|
41
|
-
k1neg: boolean;
|
|
42
|
-
k1: bigint;
|
|
43
|
-
k2neg: boolean;
|
|
44
|
-
k2: bigint;
|
|
45
|
-
};
|
|
46
|
-
/**
|
|
47
|
-
* Splits scalar for GLV endomorphism.
|
|
48
|
-
*/
|
|
49
|
-
export declare function _splitEndoScalar(k: bigint, basis: EndoBasis, n: bigint): ScalarEndoParts;
|
|
50
|
-
export type ECDSASigFormat = 'compact' | 'recovered' | 'der';
|
|
51
|
-
export type ECDSARecoverOpts = {
|
|
52
|
-
prehash?: boolean;
|
|
53
|
-
};
|
|
54
|
-
export type ECDSAVerifyOpts = {
|
|
55
|
-
prehash?: boolean;
|
|
56
|
-
lowS?: boolean;
|
|
57
|
-
format?: ECDSASigFormat;
|
|
58
|
-
};
|
|
59
|
-
export type ECDSASignOpts = {
|
|
60
|
-
prehash?: boolean;
|
|
61
|
-
lowS?: boolean;
|
|
62
|
-
format?: ECDSASigFormat;
|
|
63
|
-
extraEntropy?: Uint8Array | boolean;
|
|
64
|
-
};
|
|
65
|
-
/** Instance methods for 3D XYZ projective points. */
|
|
66
|
-
export interface WeierstrassPoint<T> extends CurvePoint<T, WeierstrassPoint<T>> {
|
|
67
|
-
/** projective X coordinate. Different from affine x. */
|
|
68
|
-
readonly X: T;
|
|
69
|
-
/** projective Y coordinate. Different from affine y. */
|
|
70
|
-
readonly Y: T;
|
|
71
|
-
/** projective z coordinate */
|
|
72
|
-
readonly Z: T;
|
|
73
|
-
/** affine x coordinate. Different from projective X. */
|
|
74
|
-
get x(): T;
|
|
75
|
-
/** affine y coordinate. Different from projective Y. */
|
|
76
|
-
get y(): T;
|
|
77
|
-
/** Encodes point using IEEE P1363 (DER) encoding. First byte is 2/3/4. Default = isCompressed. */
|
|
78
|
-
toBytes(isCompressed?: boolean): Uint8Array;
|
|
79
|
-
toHex(isCompressed?: boolean): string;
|
|
80
|
-
/** @deprecated use `.X` */
|
|
81
|
-
readonly px: T;
|
|
82
|
-
/** @deprecated use `.Y` */
|
|
83
|
-
readonly py: T;
|
|
84
|
-
/** @deprecated use `.Z` */
|
|
85
|
-
readonly pz: T;
|
|
86
|
-
/** @deprecated use `toBytes` */
|
|
87
|
-
toRawBytes(isCompressed?: boolean): Uint8Array;
|
|
88
|
-
/** @deprecated use `multiplyUnsafe` */
|
|
89
|
-
multiplyAndAddUnsafe(Q: WeierstrassPoint<T>, a: bigint, b: bigint): WeierstrassPoint<T> | undefined;
|
|
90
|
-
/** @deprecated use `p.y % 2n === 0n` */
|
|
91
|
-
hasEvenY(): boolean;
|
|
92
|
-
/** @deprecated use `p.precompute(windowSize)` */
|
|
93
|
-
_setWindowSize(windowSize: number): void;
|
|
94
|
-
}
|
|
95
|
-
/** Static methods for 3D XYZ projective points. */
|
|
96
|
-
export interface WeierstrassPointCons<T> extends CurvePointCons<WeierstrassPoint<T>> {
|
|
97
|
-
/** Does NOT validate if the point is valid. Use `.assertValidity()`. */
|
|
98
|
-
new (X: T, Y: T, Z: T): WeierstrassPoint<T>;
|
|
99
|
-
CURVE(): WeierstrassOpts<T>;
|
|
100
|
-
/** @deprecated use `Point.BASE.multiply(Point.Fn.fromBytes(privateKey))` */
|
|
101
|
-
fromPrivateKey(privateKey: PrivKey): WeierstrassPoint<T>;
|
|
102
|
-
/** @deprecated use `import { normalizeZ } from '@noble/curves/abstract/curve.js';` */
|
|
103
|
-
normalizeZ(points: WeierstrassPoint<T>[]): WeierstrassPoint<T>[];
|
|
104
|
-
/** @deprecated use `import { pippenger } from '@noble/curves/abstract/curve.js';` */
|
|
105
|
-
msm(points: WeierstrassPoint<T>[], scalars: bigint[]): WeierstrassPoint<T>;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Weierstrass curve options.
|
|
109
|
-
*
|
|
110
|
-
* * p: prime characteristic (order) of finite field, in which arithmetics is done
|
|
111
|
-
* * n: order of prime subgroup a.k.a total amount of valid curve points
|
|
112
|
-
* * h: cofactor, usually 1. h*n is group order; n is subgroup order
|
|
113
|
-
* * a: formula param, must be in field of p
|
|
114
|
-
* * b: formula param, must be in field of p
|
|
115
|
-
* * Gx: x coordinate of generator point a.k.a. base point
|
|
116
|
-
* * Gy: y coordinate of generator point
|
|
117
|
-
*/
|
|
118
|
-
export type WeierstrassOpts<T> = Readonly<{
|
|
119
|
-
p: bigint;
|
|
120
|
-
n: bigint;
|
|
121
|
-
h: bigint;
|
|
122
|
-
a: T;
|
|
123
|
-
b: T;
|
|
124
|
-
Gx: T;
|
|
125
|
-
Gy: T;
|
|
126
|
-
}>;
|
|
127
|
-
export type WeierstrassExtraOpts<T> = Partial<{
|
|
128
|
-
Fp: IField<T>;
|
|
129
|
-
Fn: IField<bigint>;
|
|
130
|
-
allowInfinityPoint: boolean;
|
|
131
|
-
endo: EndomorphismOpts;
|
|
132
|
-
isTorsionFree: (c: WeierstrassPointCons<T>, point: WeierstrassPoint<T>) => boolean;
|
|
133
|
-
clearCofactor: (c: WeierstrassPointCons<T>, point: WeierstrassPoint<T>) => WeierstrassPoint<T>;
|
|
134
|
-
fromBytes: (bytes: Uint8Array) => AffinePoint<T>;
|
|
135
|
-
toBytes: (c: WeierstrassPointCons<T>, point: WeierstrassPoint<T>, isCompressed: boolean) => Uint8Array;
|
|
136
|
-
}>;
|
|
137
|
-
/**
|
|
138
|
-
* Options for ECDSA signatures over a Weierstrass curve.
|
|
139
|
-
*
|
|
140
|
-
* * lowS: (default: true) whether produced / verified signatures occupy low half of ecdsaOpts.p. Prevents malleability.
|
|
141
|
-
* * hmac: (default: noble-hashes hmac) function, would be used to init hmac-drbg for k generation.
|
|
142
|
-
* * randomBytes: (default: webcrypto os-level CSPRNG) custom method for fetching secure randomness.
|
|
143
|
-
* * bits2int, bits2int_modN: used in sigs, sometimes overridden by curves
|
|
144
|
-
*/
|
|
145
|
-
export type ECDSAOpts = Partial<{
|
|
146
|
-
lowS: boolean;
|
|
147
|
-
hmac: HmacFnSync;
|
|
148
|
-
randomBytes: (bytesLength?: number) => Uint8Array;
|
|
149
|
-
bits2int: (bytes: Uint8Array) => bigint;
|
|
150
|
-
bits2int_modN: (bytes: Uint8Array) => bigint;
|
|
151
|
-
}>;
|
|
152
|
-
/**
|
|
153
|
-
* Elliptic Curve Diffie-Hellman interface.
|
|
154
|
-
* Provides keygen, secret-to-public conversion, calculating shared secrets.
|
|
155
|
-
*/
|
|
156
|
-
export interface ECDH {
|
|
157
|
-
keygen: (seed?: Uint8Array) => {
|
|
158
|
-
secretKey: Uint8Array;
|
|
159
|
-
publicKey: Uint8Array;
|
|
160
|
-
};
|
|
161
|
-
getPublicKey: (secretKey: PrivKey, isCompressed?: boolean) => Uint8Array;
|
|
162
|
-
getSharedSecret: (secretKeyA: PrivKey, publicKeyB: Hex, isCompressed?: boolean) => Uint8Array;
|
|
163
|
-
Point: WeierstrassPointCons<bigint>;
|
|
164
|
-
utils: {
|
|
165
|
-
isValidSecretKey: (secretKey: PrivKey) => boolean;
|
|
166
|
-
isValidPublicKey: (publicKey: Uint8Array, isCompressed?: boolean) => boolean;
|
|
167
|
-
randomSecretKey: (seed?: Uint8Array) => Uint8Array;
|
|
168
|
-
/** @deprecated use `randomSecretKey` */
|
|
169
|
-
randomPrivateKey: (seed?: Uint8Array) => Uint8Array;
|
|
170
|
-
/** @deprecated use `isValidSecretKey` */
|
|
171
|
-
isValidPrivateKey: (secretKey: PrivKey) => boolean;
|
|
172
|
-
/** @deprecated use `Point.Fn.fromBytes()` */
|
|
173
|
-
normPrivateKeyToScalar: (key: PrivKey) => bigint;
|
|
174
|
-
/** @deprecated use `point.precompute()` */
|
|
175
|
-
precompute: (windowSize?: number, point?: WeierstrassPoint<bigint>) => WeierstrassPoint<bigint>;
|
|
176
|
-
};
|
|
177
|
-
lengths: CurveLengths;
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* ECDSA interface.
|
|
181
|
-
* Only supported for prime fields, not Fp2 (extension fields).
|
|
182
|
-
*/
|
|
183
|
-
export interface ECDSA extends ECDH {
|
|
184
|
-
sign: (message: Hex, secretKey: PrivKey, opts?: ECDSASignOpts) => ECDSASigRecovered;
|
|
185
|
-
verify: (signature: Uint8Array, message: Uint8Array, publicKey: Uint8Array, opts?: ECDSAVerifyOpts) => boolean;
|
|
186
|
-
recoverPublicKey(signature: Uint8Array, message: Uint8Array, opts?: ECDSARecoverOpts): Uint8Array;
|
|
187
|
-
Signature: ECDSASignatureCons;
|
|
188
|
-
}
|
|
189
|
-
export declare class DERErr extends Error {
|
|
190
|
-
constructor(m?: string);
|
|
191
|
-
}
|
|
192
|
-
export type IDER = {
|
|
193
|
-
Err: typeof DERErr;
|
|
194
|
-
_tlv: {
|
|
195
|
-
encode: (tag: number, data: string) => string;
|
|
196
|
-
decode(tag: number, data: Uint8Array): {
|
|
197
|
-
v: Uint8Array;
|
|
198
|
-
l: Uint8Array;
|
|
199
|
-
};
|
|
200
|
-
};
|
|
201
|
-
_int: {
|
|
202
|
-
encode(num: bigint): string;
|
|
203
|
-
decode(data: Uint8Array): bigint;
|
|
204
|
-
};
|
|
205
|
-
toSig(hex: string | Uint8Array): {
|
|
206
|
-
r: bigint;
|
|
207
|
-
s: bigint;
|
|
208
|
-
};
|
|
209
|
-
hexFromSig(sig: {
|
|
210
|
-
r: bigint;
|
|
211
|
-
s: bigint;
|
|
212
|
-
}): string;
|
|
213
|
-
};
|
|
214
|
-
/**
|
|
215
|
-
* ASN.1 DER encoding utilities. ASN is very complex & fragile. Format:
|
|
216
|
-
*
|
|
217
|
-
* [0x30 (SEQUENCE), bytelength, 0x02 (INTEGER), intLength, R, 0x02 (INTEGER), intLength, S]
|
|
218
|
-
*
|
|
219
|
-
* Docs: https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/, https://luca.ntop.org/Teaching/Appunti/asn1.html
|
|
220
|
-
*/
|
|
221
|
-
export declare const DER: IDER;
|
|
222
|
-
export declare function _normFnElement(Fn: IField<bigint>, key: PrivKey): bigint;
|
|
223
|
-
/**
|
|
224
|
-
* Creates weierstrass Point constructor, based on specified curve options.
|
|
225
|
-
*
|
|
226
|
-
* @example
|
|
227
|
-
```js
|
|
228
|
-
const opts = {
|
|
229
|
-
p: BigInt('0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff'),
|
|
230
|
-
n: BigInt('0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551'),
|
|
231
|
-
h: BigInt(1),
|
|
232
|
-
a: BigInt('0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc'),
|
|
233
|
-
b: BigInt('0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b'),
|
|
234
|
-
Gx: BigInt('0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296'),
|
|
235
|
-
Gy: BigInt('0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5'),
|
|
236
|
-
};
|
|
237
|
-
const p256_Point = weierstrass(opts);
|
|
238
|
-
```
|
|
239
|
-
*/
|
|
240
|
-
export declare function weierstrassN<T>(params: WeierstrassOpts<T>, extraOpts?: WeierstrassExtraOpts<T>): WeierstrassPointCons<T>;
|
|
241
|
-
/** Methods of ECDSA signature instance. */
|
|
242
|
-
export interface ECDSASignature {
|
|
243
|
-
readonly r: bigint;
|
|
244
|
-
readonly s: bigint;
|
|
245
|
-
readonly recovery?: number;
|
|
246
|
-
addRecoveryBit(recovery: number): ECDSASigRecovered;
|
|
247
|
-
hasHighS(): boolean;
|
|
248
|
-
toBytes(format?: string): Uint8Array;
|
|
249
|
-
toHex(format?: string): string;
|
|
250
|
-
/** @deprecated */
|
|
251
|
-
assertValidity(): void;
|
|
252
|
-
/** @deprecated */
|
|
253
|
-
normalizeS(): ECDSASignature;
|
|
254
|
-
/** @deprecated use standalone method `curve.recoverPublicKey(sig.toBytes('recovered'), msg)` */
|
|
255
|
-
recoverPublicKey(msgHash: Hex): WeierstrassPoint<bigint>;
|
|
256
|
-
/** @deprecated use `.toBytes('compact')` */
|
|
257
|
-
toCompactRawBytes(): Uint8Array;
|
|
258
|
-
/** @deprecated use `.toBytes('compact')` */
|
|
259
|
-
toCompactHex(): string;
|
|
260
|
-
/** @deprecated use `.toBytes('der')` */
|
|
261
|
-
toDERRawBytes(): Uint8Array;
|
|
262
|
-
/** @deprecated use `.toBytes('der')` */
|
|
263
|
-
toDERHex(): string;
|
|
264
|
-
}
|
|
265
|
-
export type ECDSASigRecovered = ECDSASignature & {
|
|
266
|
-
readonly recovery: number;
|
|
267
|
-
};
|
|
268
|
-
/** Methods of ECDSA signature constructor. */
|
|
269
|
-
export type ECDSASignatureCons = {
|
|
270
|
-
new (r: bigint, s: bigint, recovery?: number): ECDSASignature;
|
|
271
|
-
fromBytes(bytes: Uint8Array, format?: ECDSASigFormat): ECDSASignature;
|
|
272
|
-
fromHex(hex: string, format?: ECDSASigFormat): ECDSASignature;
|
|
273
|
-
/** @deprecated use `.fromBytes(bytes, 'compact')` */
|
|
274
|
-
fromCompact(hex: Hex): ECDSASignature;
|
|
275
|
-
/** @deprecated use `.fromBytes(bytes, 'der')` */
|
|
276
|
-
fromDER(hex: Hex): ECDSASignature;
|
|
277
|
-
};
|
|
278
|
-
/**
|
|
279
|
-
* Implementation of the Shallue and van de Woestijne method for any weierstrass curve.
|
|
280
|
-
* TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.
|
|
281
|
-
* b = True and y = sqrt(u / v) if (u / v) is square in F, and
|
|
282
|
-
* b = False and y = sqrt(Z * (u / v)) otherwise.
|
|
283
|
-
* @param Fp
|
|
284
|
-
* @param Z
|
|
285
|
-
* @returns
|
|
286
|
-
*/
|
|
287
|
-
export declare function SWUFpSqrtRatio<T>(Fp: IField<T>, Z: T): (u: T, v: T) => {
|
|
288
|
-
isValid: boolean;
|
|
289
|
-
value: T;
|
|
290
|
-
};
|
|
291
|
-
/**
|
|
292
|
-
* Simplified Shallue-van de Woestijne-Ulas Method
|
|
293
|
-
* https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2
|
|
294
|
-
*/
|
|
295
|
-
export declare function mapToCurveSimpleSWU<T>(Fp: IField<T>, opts: {
|
|
296
|
-
A: T;
|
|
297
|
-
B: T;
|
|
298
|
-
Z: T;
|
|
299
|
-
}): (u: T) => {
|
|
300
|
-
x: T;
|
|
301
|
-
y: T;
|
|
302
|
-
};
|
|
303
|
-
/**
|
|
304
|
-
* Sometimes users only need getPublicKey, getSharedSecret, and secret key handling.
|
|
305
|
-
* This helper ensures no signature functionality is present. Less code, smaller bundle size.
|
|
306
|
-
*/
|
|
307
|
-
export declare function ecdh(Point: WeierstrassPointCons<bigint>, ecdhOpts?: {
|
|
308
|
-
randomBytes?: (bytesLength?: number) => Uint8Array;
|
|
309
|
-
}): ECDH;
|
|
310
|
-
/**
|
|
311
|
-
* Creates ECDSA signing interface for given elliptic curve `Point` and `hash` function.
|
|
312
|
-
* We need `hash` for 2 features:
|
|
313
|
-
* 1. Message prehash-ing. NOT used if `sign` / `verify` are called with `prehash: false`
|
|
314
|
-
* 2. k generation in `sign`, using HMAC-drbg(hash)
|
|
315
|
-
*
|
|
316
|
-
* ECDSAOpts are only rarely needed.
|
|
317
|
-
*
|
|
318
|
-
* @example
|
|
319
|
-
* ```js
|
|
320
|
-
* const p256_Point = weierstrass(...);
|
|
321
|
-
* const p256_sha256 = ecdsa(p256_Point, sha256);
|
|
322
|
-
* const p256_sha224 = ecdsa(p256_Point, sha224);
|
|
323
|
-
* ```
|
|
324
|
-
*/
|
|
325
|
-
export declare function ecdsa(Point: WeierstrassPointCons<bigint>, hash: CHash, ecdsaOpts?: ECDSAOpts): ECDSA;
|
|
326
|
-
/** @deprecated */
|
|
327
|
-
export type SignatureType = ECDSASignature;
|
|
328
|
-
/** @deprecated */
|
|
329
|
-
export type RecoveredSignatureType = ECDSASigRecovered;
|
|
330
|
-
/** @deprecated */
|
|
331
|
-
export type SignatureLike = {
|
|
332
|
-
r: bigint;
|
|
333
|
-
s: bigint;
|
|
334
|
-
};
|
|
335
|
-
/** @deprecated use `Uint8Array | boolean` */
|
|
336
|
-
export type Entropy = Hex | boolean;
|
|
337
|
-
export type BasicWCurve<T> = BasicCurve<T> & {
|
|
338
|
-
a: T;
|
|
339
|
-
b: T;
|
|
340
|
-
allowedPrivateKeyLengths?: readonly number[];
|
|
341
|
-
wrapPrivateKey?: boolean;
|
|
342
|
-
endo?: EndomorphismOpts;
|
|
343
|
-
isTorsionFree?: (c: WeierstrassPointCons<T>, point: WeierstrassPoint<T>) => boolean;
|
|
344
|
-
clearCofactor?: (c: WeierstrassPointCons<T>, point: WeierstrassPoint<T>) => WeierstrassPoint<T>;
|
|
345
|
-
};
|
|
346
|
-
/** @deprecated use ECDSASignOpts */
|
|
347
|
-
export type SignOpts = ECDSASignOpts;
|
|
348
|
-
/** @deprecated use ECDSASignOpts */
|
|
349
|
-
export type VerOpts = ECDSAVerifyOpts;
|
|
350
|
-
/** @deprecated use WeierstrassPoint */
|
|
351
|
-
export type ProjPointType<T> = WeierstrassPoint<T>;
|
|
352
|
-
/** @deprecated use WeierstrassPointCons */
|
|
353
|
-
export type ProjConstructor<T> = WeierstrassPointCons<T>;
|
|
354
|
-
export type CurvePointsType<T> = BasicWCurve<T> & {
|
|
355
|
-
fromBytes?: (bytes: Uint8Array) => AffinePoint<T>;
|
|
356
|
-
toBytes?: (c: WeierstrassPointCons<T>, point: WeierstrassPoint<T>, isCompressed: boolean) => Uint8Array;
|
|
357
|
-
};
|
|
358
|
-
export type CurvePointsTypeWithLength<T> = Readonly<CurvePointsType<T> & Partial<NLength>>;
|
|
359
|
-
export type CurvePointsRes<T> = {
|
|
360
|
-
Point: WeierstrassPointCons<T>;
|
|
361
|
-
/** @deprecated use `Point.CURVE()` */
|
|
362
|
-
CURVE: CurvePointsType<T>;
|
|
363
|
-
/** @deprecated use `Point` */
|
|
364
|
-
ProjectivePoint: WeierstrassPointCons<T>;
|
|
365
|
-
/** @deprecated use `Point.Fn.fromBytes(privateKey)` */
|
|
366
|
-
normPrivateKeyToScalar: (key: PrivKey) => bigint;
|
|
367
|
-
/** @deprecated */
|
|
368
|
-
weierstrassEquation: (x: T) => T;
|
|
369
|
-
/** @deprecated use `Point.Fn.isValidNot0(num)` */
|
|
370
|
-
isWithinCurveOrder: (num: bigint) => boolean;
|
|
371
|
-
};
|
|
372
|
-
/** @deprecated use `Uint8Array` */
|
|
373
|
-
export type PubKey = Hex | WeierstrassPoint<bigint>;
|
|
374
|
-
export type CurveType = BasicWCurve<bigint> & {
|
|
375
|
-
hash: CHash;
|
|
376
|
-
hmac?: HmacFnSync;
|
|
377
|
-
randomBytes?: (bytesLength?: number) => Uint8Array;
|
|
378
|
-
lowS?: boolean;
|
|
379
|
-
bits2int?: (bytes: Uint8Array) => bigint;
|
|
380
|
-
bits2int_modN?: (bytes: Uint8Array) => bigint;
|
|
381
|
-
};
|
|
382
|
-
export type CurveFn = {
|
|
383
|
-
/** @deprecated use `Point.CURVE()` */
|
|
384
|
-
CURVE: CurvePointsType<bigint>;
|
|
385
|
-
keygen: ECDSA['keygen'];
|
|
386
|
-
getPublicKey: ECDSA['getPublicKey'];
|
|
387
|
-
getSharedSecret: ECDSA['getSharedSecret'];
|
|
388
|
-
sign: ECDSA['sign'];
|
|
389
|
-
verify: ECDSA['verify'];
|
|
390
|
-
Point: WeierstrassPointCons<bigint>;
|
|
391
|
-
/** @deprecated use `Point` */
|
|
392
|
-
ProjectivePoint: WeierstrassPointCons<bigint>;
|
|
393
|
-
Signature: ECDSASignatureCons;
|
|
394
|
-
utils: ECDSA['utils'];
|
|
395
|
-
lengths: ECDSA['lengths'];
|
|
396
|
-
};
|
|
397
|
-
/** @deprecated use `weierstrass` in newer releases */
|
|
398
|
-
export declare function weierstrassPoints<T>(c: CurvePointsTypeWithLength<T>): CurvePointsRes<T>;
|
|
399
|
-
export type WsPointComposed<T> = {
|
|
400
|
-
CURVE: WeierstrassOpts<T>;
|
|
401
|
-
curveOpts: WeierstrassExtraOpts<T>;
|
|
402
|
-
};
|
|
403
|
-
export type WsComposed = {
|
|
404
|
-
/** @deprecated use `Point.CURVE()` */
|
|
405
|
-
CURVE: WeierstrassOpts<bigint>;
|
|
406
|
-
hash: CHash;
|
|
407
|
-
curveOpts: WeierstrassExtraOpts<bigint>;
|
|
408
|
-
ecdsaOpts: ECDSAOpts;
|
|
409
|
-
};
|
|
410
|
-
export declare function _legacyHelperEquat<T>(Fp: IField<T>, a: T, b: T): (x: T) => T;
|
|
411
|
-
export declare function weierstrass(c: CurveType): CurveFn;
|
|
412
|
-
//# sourceMappingURL=weierstrass.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"weierstrass.d.ts","sourceRoot":"","sources":["../../src/abstract/weierstrass.ts"],"names":[],"mappings":"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"}
|