Deprecated: Please use bls-wasm
This libary provides primitives for creating and verifying BLS threshold signatures in Webassembly with a JS API. All the hard work is done by herumi/bls. This wraps the bls C++ code which is compiled to Webassembly for easier use.
npm install bls-lib
const bls = require('bls-lib')
bls.onModuleInit(() => {
bls.init()
const sec = bls.secretKey()
const pub = bls.publicKey()
const sig = bls.signature()
bls.secretKeySetByCSPRNG(sec)
const msg = 'hello world'
bls.sign(sig, sec, msg)
bls.getPublicKey(pub, sec)
const v = bls.verify(sig, pub, msg)
// v === true
bls.free(sec)
bls.free(sig)
bls.free(pub)
})
First install the dependencies emscripten and ninja
git clone --recursive https://github.com/dfinity/js-bls-lib.git
cd js-bls-lib/build
ninja