29 lines
969 B
TypeScript
29 lines
969 B
TypeScript
|
import {expose} from "threads/worker";
|
||
|
import {bls, init, CoordType, Implementation} from "../../../../src";
|
||
|
|
||
|
export type WorkerApi = typeof workerApi;
|
||
|
|
||
|
const workerApi = {
|
||
|
async verify(impl: Implementation, publicKey: Uint8Array, message: Uint8Array, signature: Uint8Array) {
|
||
|
await init(impl);
|
||
|
const pk = bls.PublicKey.fromBytes(publicKey, CoordType.affine);
|
||
|
const sig = bls.Signature.fromBytes(signature, CoordType.affine, true);
|
||
|
return sig.verify(pk, message);
|
||
|
},
|
||
|
async verifyMultipleAggregateSignatures(
|
||
|
impl: Implementation,
|
||
|
sets: {publicKey: Uint8Array; message: Uint8Array; signature: Uint8Array}[]
|
||
|
) {
|
||
|
await init(impl);
|
||
|
return bls.Signature.verifyMultipleSignatures(
|
||
|
sets.map((s) => ({
|
||
|
publicKey: bls.PublicKey.fromBytes(s.publicKey, CoordType.affine),
|
||
|
message: s.message,
|
||
|
signature: bls.Signature.fromBytes(s.signature, CoordType.affine, true),
|
||
|
}))
|
||
|
);
|
||
|
},
|
||
|
};
|
||
|
|
||
|
expose(workerApi);
|