You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
1.0 KiB
30 lines
1.0 KiB
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
|