@dashevo/bls
Version:
The most advanced BLS library for JavaScript
108 lines (98 loc) • 4.09 kB
TypeScript
export declare class AugSchemeMPL {
static skToG1(sk: PrivateKey): G1Element;
static keyGen(msg: Uint8Array): PrivateKey;
static sign(sk: PrivateKey, msg: Uint8Array): G2Element;
static signPrepend(sk: PrivateKey, msg: Uint8Array, prependPk: G1Element): G2Element;
static verify(pk: G1Element, msg: Uint8Array, sig: G2Element): boolean;
static aggregate(g2Elements: G2Element[]): G2Element;
static aggregateVerify(pks: G1Element[], msgs: Uint8Array[], sig: G2Element): boolean;
static deriveChildSk(sk: PrivateKey, index: number): PrivateKey;
static deriveChildSkUnhardened(sk: PrivateKey, index: number): PrivateKey;
static deriveChildPkUnhardened(pk: G1Element, index: number): G1Element;
}
export declare class BasicSchemeMPL {
static skToG1(sk: PrivateKey): G1Element;
static keyGen(msg: Uint8Array): PrivateKey;
static sign(sk: PrivateKey, msg: Uint8Array): G2Element;
static verify(pk: G1Element, msg: Uint8Array, sig: G2Element): boolean;
static aggregate(g2Elements: G2Element[]): G2Element;
static aggregateVerify(pks: G1Element[], msgs: Uint8Array[], sig: G2Element): boolean;
static deriveChildSk(sk: PrivateKey, index: number): PrivateKey;
static deriveChildSkUnhardened(sk: PrivateKey, index: number): PrivateKey;
static deriveChildPkUnhardened(pk: G1Element, index: number): G1Element;
static verifySecure(pk: G1Element, sig: G2Element, msg: Uint8Array): boolean;
}
export declare class PopSchemeMPL {
static skToG1(sk: PrivateKey): G1Element;
static keyGen(msg: Uint8Array): PrivateKey;
static sign(sk: PrivateKey, msg: Uint8Array): G2Element;
static verify(pk: G1Element, msg: Uint8Array, sig: G2Element): boolean;
static aggregate(g2Elements: G2Element[]): G2Element;
static aggregateVerify(pks: G1Element[], msgs: Uint8Array[], sig: G2Element): boolean;
static deriveChildSk(sk: PrivateKey, index: number): PrivateKey;
static deriveChildSkUnhardened(sk: PrivateKey, index: number): PrivateKey;
static deriveChildPkUnhardened(pk: G1Element, index: number): G1Element;
static popProve(sk: PrivateKey): G2Element;
static popVerify(pk: G1Element, signatureProof: G2Element): boolean;
static fastAggregateVerify(pks: G1Element[], msg: Uint8Array, sig: G2Element): boolean;
}
export declare class G1Element {
static SIZE: number;
static fromBytes(bytes: Uint8Array): G1Element;
static generator(): G2Element;
serialize(): Uint8Array;
negate(): G1Element;
deepcopy(): G1Element;
getFingerprint(): number;
add(el: G1Element): G1Element;
mul(bn: Bignum): G1Element;
equalTo(el: G1Element): boolean;
delete(): void;
}
export declare class G2Element {
static SIZE: number;
static fromBytes(bytes: Uint8Array): G2Element;
static fromG2(sk: G2Element): G2Element;
static aggregateSigs(sigs: G2Element[]): G2Element;
static generator(): G2Element;
serialize(): Uint8Array;
negate(): G2Element;
deepcopy(): G2Element;
add(el: G2Element): G2Element;
mul(bn: Bignum): G2Element;
equalTo(el: G2Element): boolean;
delete(): void;
}
export declare class PrivateKey {
static PRIVATE_KEY_SIZE: number;
static fromBytes(bytes: Uint8Array, modOrder: boolean): PrivateKey;
static aggregate(pks: PrivateKey[]): PrivateKey;
deepcopy(): PrivateKey;
serialize(): Uint8Array;
getG1(): G1Element;
getG2(): G2Element;
mulG1(el: G1Element): G1Element;
mulG2(el: G2Element): G2Element;
equalTo(key: PrivateKey): boolean;
delete(): void;
}
export declare class Bignum {
static fromString(s: string, radix: number): Bignum;
toString(radix: number): string;
delete(): void;
}
export declare class Util {
static hash256(msg: Uint8Array): Uint8Array;
static hexStr(msg: Uint8Array): string;
}
export interface ModuleInstance {
AugSchemeMPL: typeof AugSchemeMPL;
BasicSchemeMPL: typeof BasicSchemeMPL;
PopSchemeMPL: typeof PopSchemeMPL;
G1Element: typeof G1Element;
G2Element: typeof G2Element;
PrivateKey: typeof PrivateKey;
Bignum: typeof Bignum;
Util: typeof Util;
}
export default function createModule(options?: {}): Promise<ModuleInstance>;