1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
- import { AffinePoint, BasicCurve, Group, GroupConstructor } from './curve.js';
- import { FHash, Hex } from './utils.js';
- export type CurveType = BasicCurve<bigint> & {
- a: bigint;
- d: bigint;
- hash: FHash;
- randomBytes: (bytesLength?: number) => Uint8Array;
- adjustScalarBytes?: (bytes: Uint8Array) => Uint8Array;
- domain?: (data: Uint8Array, ctx: Uint8Array, phflag: boolean) => Uint8Array;
- uvRatio?: (u: bigint, v: bigint) => {
- isValid: boolean;
- value: bigint;
- };
- prehash?: FHash;
- mapToCurve?: (scalar: bigint[]) => AffinePoint<bigint>;
- };
- declare function validateOpts(curve: CurveType): Readonly<{
- readonly nBitLength: number;
- readonly nByteLength: number;
- readonly Fp: import("./modular.js").IField<bigint>;
- readonly n: bigint;
- readonly h: bigint;
- readonly hEff?: bigint;
- readonly Gx: bigint;
- readonly Gy: bigint;
- readonly allowInfinityPoint?: boolean;
- readonly a: bigint;
- readonly d: bigint;
- readonly hash: FHash;
- readonly randomBytes: (bytesLength?: number) => Uint8Array;
- readonly adjustScalarBytes?: (bytes: Uint8Array) => Uint8Array;
- readonly domain?: (data: Uint8Array, ctx: Uint8Array, phflag: boolean) => Uint8Array;
- readonly uvRatio?: (u: bigint, v: bigint) => {
- isValid: boolean;
- value: bigint;
- };
- readonly prehash?: FHash;
- readonly mapToCurve?: (scalar: bigint[]) => AffinePoint<bigint>;
- readonly p: bigint;
- }>;
- export interface ExtPointType extends Group<ExtPointType> {
- readonly ex: bigint;
- readonly ey: bigint;
- readonly ez: bigint;
- readonly et: bigint;
- get x(): bigint;
- get y(): bigint;
- assertValidity(): void;
- multiply(scalar: bigint): ExtPointType;
- multiplyUnsafe(scalar: bigint): ExtPointType;
- isSmallOrder(): boolean;
- isTorsionFree(): boolean;
- clearCofactor(): ExtPointType;
- toAffine(iz?: bigint): AffinePoint<bigint>;
- toRawBytes(isCompressed?: boolean): Uint8Array;
- toHex(isCompressed?: boolean): string;
- }
- export interface ExtPointConstructor extends GroupConstructor<ExtPointType> {
- new (x: bigint, y: bigint, z: bigint, t: bigint): ExtPointType;
- fromAffine(p: AffinePoint<bigint>): ExtPointType;
- fromHex(hex: Hex): ExtPointType;
- fromPrivateKey(privateKey: Hex): ExtPointType;
- }
- export type CurveFn = {
- CURVE: ReturnType<typeof validateOpts>;
- getPublicKey: (privateKey: Hex) => Uint8Array;
- sign: (message: Hex, privateKey: Hex, options?: {
- context?: Hex;
- }) => Uint8Array;
- verify: (sig: Hex, message: Hex, publicKey: Hex, options?: {
- context?: Hex;
- zip215: boolean;
- }) => boolean;
- ExtendedPoint: ExtPointConstructor;
- utils: {
- randomPrivateKey: () => Uint8Array;
- getExtendedPublicKey: (key: Hex) => {
- head: Uint8Array;
- prefix: Uint8Array;
- scalar: bigint;
- point: ExtPointType;
- pointBytes: Uint8Array;
- };
- };
- };
- export declare function twistedEdwards(curveDef: CurveType): CurveFn;
- export {};
- //# sourceMappingURL=edwards.d.ts.map
|