123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- import { mod } from './abstract/modular.js';
- import type { Hex, PrivKey } from './abstract/utils.js';
- import { bytesToNumberBE, numberToBytesBE } from './abstract/utils.js';
- import { ProjPointType as PointType } from './abstract/weierstrass.js';
- export declare const secp256k1: Readonly<{
- create: (hash: import("./abstract/utils.js").CHash) => import("./abstract/weierstrass.js").CurveFn;
- CURVE: ReturnType<(curve: import("./abstract/weierstrass.js").CurveType) => Readonly<{
- readonly nBitLength: number;
- readonly nByteLength: number;
- readonly Fp: import("./abstract/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 b: bigint;
- readonly allowedPrivateKeyLengths?: readonly number[];
- readonly wrapPrivateKey?: boolean;
- readonly endo?: {
- beta: bigint;
- splitScalar: (k: bigint) => {
- k1neg: boolean;
- k1: bigint;
- k2neg: boolean;
- k2: bigint;
- };
- };
- readonly isTorsionFree?: ((c: import("./abstract/weierstrass.js").ProjConstructor<bigint>, point: PointType<bigint>) => boolean) | undefined;
- readonly clearCofactor?: ((c: import("./abstract/weierstrass.js").ProjConstructor<bigint>, point: PointType<bigint>) => PointType<bigint>) | undefined;
- readonly hash: import("./abstract/utils.js").CHash;
- readonly hmac: (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array;
- readonly randomBytes: (bytesLength?: number) => Uint8Array;
- lowS: boolean;
- readonly bits2int?: (bytes: Uint8Array) => bigint;
- readonly bits2int_modN?: (bytes: Uint8Array) => bigint;
- readonly p: bigint;
- }>>;
- getPublicKey: (privateKey: PrivKey, isCompressed?: boolean) => Uint8Array;
- getSharedSecret: (privateA: PrivKey, publicB: Hex, isCompressed?: boolean) => Uint8Array;
- sign: (msgHash: Hex, privKey: PrivKey, opts?: import("./abstract/weierstrass.js").SignOpts) => import("./abstract/weierstrass.js").RecoveredSignatureType;
- verify: (signature: Hex | {
- r: bigint;
- s: bigint;
- }, msgHash: Hex, publicKey: Hex, opts?: import("./abstract/weierstrass.js").VerOpts) => boolean;
- ProjectivePoint: import("./abstract/weierstrass.js").ProjConstructor<bigint>;
- Signature: import("./abstract/weierstrass.js").SignatureConstructor;
- utils: {
- normPrivateKeyToScalar: (key: PrivKey) => bigint;
- isValidPrivateKey(privateKey: PrivKey): boolean;
- randomPrivateKey: () => Uint8Array;
- precompute: (windowSize?: number, point?: PointType<bigint>) => PointType<bigint>;
- };
- }>;
- declare function taggedHash(tag: string, ...messages: Uint8Array[]): Uint8Array;
- /**
- * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.
- * @returns valid point checked for being on-curve
- */
- declare function lift_x(x: bigint): PointType<bigint>;
- /**
- * Schnorr public key is just `x` coordinate of Point as per BIP340.
- */
- declare function schnorrGetPublicKey(privateKey: Hex): Uint8Array;
- /**
- * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.
- * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.
- */
- declare function schnorrSign(message: Hex, privateKey: PrivKey, auxRand?: Hex): Uint8Array;
- /**
- * Verifies Schnorr signature.
- * Will swallow errors & return false except for initial type validation of arguments.
- */
- declare function schnorrVerify(signature: Hex, message: Hex, publicKey: Hex): boolean;
- export declare const schnorr: {
- getPublicKey: typeof schnorrGetPublicKey;
- sign: typeof schnorrSign;
- verify: typeof schnorrVerify;
- utils: {
- randomPrivateKey: () => Uint8Array;
- lift_x: typeof lift_x;
- pointToBytes: (point: PointType<bigint>) => Uint8Array;
- numberToBytesBE: typeof numberToBytesBE;
- bytesToNumberBE: typeof bytesToNumberBE;
- taggedHash: typeof taggedHash;
- mod: typeof mod;
- };
- };
- export declare const hashToCurve: (msg: Uint8Array, options?: import("./abstract/hash-to-curve.js").htfBasicOpts) => import("./abstract/hash-to-curve.js").H2CPoint<bigint>;
- export declare const encodeToCurve: (msg: Uint8Array, options?: import("./abstract/hash-to-curve.js").htfBasicOpts) => import("./abstract/hash-to-curve.js").H2CPoint<bigint>;
- export {};
- //# sourceMappingURL=secp256k1.d.ts.map
|