30 lines
1.0 KiB
TypeScript
30 lines
1.0 KiB
TypeScript
import type { CurveLengths } from './curve.ts';
|
|
type Hex = string | Uint8Array;
|
|
export type CurveType = {
|
|
P: bigint;
|
|
type: 'x25519' | 'x448';
|
|
adjustScalarBytes: (bytes: Uint8Array) => Uint8Array;
|
|
powPminus2: (x: bigint) => bigint;
|
|
randomBytes?: (bytesLength?: number) => Uint8Array;
|
|
};
|
|
export type MontgomeryECDH = {
|
|
scalarMult: (scalar: Hex, u: Hex) => Uint8Array;
|
|
scalarMultBase: (scalar: Hex) => Uint8Array;
|
|
getSharedSecret: (secretKeyA: Hex, publicKeyB: Hex) => Uint8Array;
|
|
getPublicKey: (secretKey: Hex) => Uint8Array;
|
|
utils: {
|
|
randomSecretKey: () => Uint8Array;
|
|
/** @deprecated use `randomSecretKey` */
|
|
randomPrivateKey: () => Uint8Array;
|
|
};
|
|
GuBytes: Uint8Array;
|
|
lengths: CurveLengths;
|
|
keygen: (seed?: Uint8Array) => {
|
|
secretKey: Uint8Array;
|
|
publicKey: Uint8Array;
|
|
};
|
|
};
|
|
export type CurveFn = MontgomeryECDH;
|
|
export declare function montgomery(curveDef: CurveType): MontgomeryECDH;
|
|
export {};
|
|
//# sourceMappingURL=montgomery.d.ts.map
|