/// /** * Provides the interface for an elliptic curve pair to sign and verify hash. * This interface is Promise based to allow async operations, this is required for hardware or network based elliptic * curve operation. Everything must be implemented in little endian because DeFi Blockchain uses LE. * * Signature must be encoded with Distinguished Encoding Rules. * @see https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki */ export interface EllipticPair { /** * @return {Promise} compressed public key */ publicKey: () => Promise; /** * @return {Promise} uncompressed public key */ publicKeyUncompressed: () => Promise; /** * Allowed to fail if EllipticPair does not provide hardware key * @return {Promise} privateKey */ privateKey: () => Promise; /** * @param {Buffer} hash to sign * @return {Buffer} signature in DER format, SIGHASHTYPE not included * @see https://tools.ietf.org/html/rfc6979 * @see https://github.com/bitcoin/bitcoin/pull/13666 */ sign: (hash: Buffer) => Promise; /** * @param {Buffer} hash to verify with signature * @param {Buffer} derSignature of the hash in encoded with DER, SIGHASHTYPE must not be included * @return {boolean} validity of signature of the hash */ verify: (hash: Buffer, derSignature: Buffer) => Promise; } export declare const Elliptic: { /** * @param {Buffer} buffer in little endian * @return {SECP256K1} EllipticPair */ fromPrivKey(buffer: Buffer): EllipticPair; /** * @param {(number) => Buffer} [rng = randomBytes] cryptographically strong random values generator required * @return {SECP256K1} EllipticPair */ random(rng?: (numOfBytes: number) => Buffer): EllipticPair; }; //# sourceMappingURL=elliptic.d.ts.map