shamir-secret-sharing-bn254
Version:

28 lines (27 loc) • 1.27 kB
TypeScript
export type SecretKey = {
sk: Uint8Array;
};
export type PublicKey = {
pk: Uint8Array;
};
export type PublicKeyShare = {
index: bigint;
pk: Uint8Array;
};
export type SecretKeyShare = {
index: bigint;
share: bigint;
};
export declare function createPrivateKey(): SecretKey;
export declare function createPublicKey(secretKey: SecretKey | Uint8Array): PublicKey;
export declare function createPublicKeyShare(secretKeyShare: SecretKeyShare): PublicKeyShare;
export declare function sign(secretKey: SecretKey | Uint8Array, message: Uint8Array): Uint8Array;
export declare function signPartial(secretKeyShare: SecretKeyShare, message: Uint8Array): Uint8Array;
export declare function verify(publicKey: PublicKey | Uint8Array, message: Uint8Array, signature: Uint8Array): boolean;
export declare function verifyPartial(publicKey: PublicKeyShare | Uint8Array, message: Uint8Array, partialSignature: PartialSignature | Uint8Array): boolean;
export type PartialSignature = {
index: bigint;
signature: Uint8Array;
};
export declare function aggregateGroupSignature(partials: Array<PartialSignature>): Uint8Array;
export declare function split(secretKey: SecretKey | Uint8Array, numberOfShares: number, threshold: number): Array<SecretKeyShare>;