26 lines
900 B
TypeScript
26 lines
900 B
TypeScript
type Hex = string | Uint8Array;
|
|
export type CurveType = {
|
|
P: bigint;
|
|
nByteLength: number;
|
|
adjustScalarBytes?: (bytes: Uint8Array) => Uint8Array;
|
|
domain?: (data: Uint8Array, ctx: Uint8Array, phflag: boolean) => Uint8Array;
|
|
a: bigint;
|
|
montgomeryBits: number;
|
|
powPminus2?: (x: bigint) => bigint;
|
|
xyToU?: (x: bigint, y: bigint) => bigint;
|
|
Gu: bigint;
|
|
randomBytes?: (bytesLength?: number) => Uint8Array;
|
|
};
|
|
export type CurveFn = {
|
|
scalarMult: (scalar: Hex, u: Hex) => Uint8Array;
|
|
scalarMultBase: (scalar: Hex) => Uint8Array;
|
|
getSharedSecret: (privateKeyA: Hex, publicKeyB: Hex) => Uint8Array;
|
|
getPublicKey: (privateKey: Hex) => Uint8Array;
|
|
utils: {
|
|
randomPrivateKey: () => Uint8Array;
|
|
};
|
|
GuBytes: Uint8Array;
|
|
};
|
|
export declare function montgomery(curveDef: CurveType): CurveFn;
|
|
export {};
|
|
//# sourceMappingURL=montgomery.d.ts.map
|