This package has been deprecated

Author message:

nocomment

@beeleelee/bls
TypeScript icon, indicating that this package has built-in type declarations

0.2.3 • Public • Published

for using in browser

const bls = require('@beeleelee/bls-sigs');
const Buffer = require('buffer').Buffer;
const assert = require('assert');
 
const publicKey = bls.private_key_public_key([96, 22, 38, 253, 217, 60, 69, 82, 30, 224, 23, 191, 234, 232, 137, 66, 212, 234, 75, 215, 186, 214, 73, 164, 142, 248, 56, 233, 74, 243, 32, 9])
assert.deepEqual([...publicKey], [135, 153, 163, 131, 230, 153, 43, 69, 249, 162, 113, 220, 249, 84, 175, 182, 80, 151, 250, 248, 236, 57, 52, 91, 185, 92, 113, 148, 23, 135, 71, 77, 60, 35, 39, 27, 176, 240, 202, 176, 243, 53, 113, 141, 19, 38, 64, 99])
 
// generate private keys
let fooPrivateKey = bls.private_key_generate()
let barPrivateKey = bls.private_key_generate()
console.log(fooPrivateKey, barPrivateKey)
assert.notDeepEqual(fooPrivateKey, barPrivateKey);
 
// get the public keys for the private keys
let fooPublicKey = bls.private_key_public_key(fooPrivateKey)
let barPublicKey = bls.private_key_public_key(barPrivateKey)
 
//console.log(fooPrivateKey, fooPublicKey)
console.log(Buffer.from(fooPrivateKey).toString('hex'))
console.log(Buffer.from(fooPublicKey).toString('hex'))
// make messages to sign with the keys
let fooMessage = Buffer.from("hello foo")
let barMessage = Buffer.from("hello bar!")
 
// calculate the digests of the messages
let fooDigest = bls.hash(fooMessage)
let barDigest = bls.hash(barMessage)
 
let fooSignature = bls.sign(fooPrivateKey, fooMessage)
let barSignature = bls.sign(barPrivateKey, barMessage)
console.log("signature ===========")
let aggsign = bls.aggregate([...fooSignature, ...barSignature])
console.log(aggsign)
 
// assert the foo message was signed with the foo key
assert.ok(bls.verify(fooSignature, fooDigest, fooPublicKey))
assert.ok(bls.verify(aggsign, [...fooDigest, ...barDigest], [...fooPublicKey, ...barPublicKey]))
 
assert.ok(bls.verify(barSignature, barDigest, barPublicKey))
console.log('veryfying ==========')
 
// assert the foo message was not signed by the bar key
bls.verify(fooSignature, fooDigest, barPublicKey) === true && assert.fail("should be false")
 
// assert the bar/foo message was not signed by the foo/bar key
bls.verify(barSignature, barDigest, fooPublicKey) === true && assert.fail("should be false")
bls.verify(barSignature, fooDigest, barPublicKey) === true && assert.fail("should be false")
bls.verify(fooSignature, barDigest, fooPublicKey) === true && assert.fail("should be false")

Readme

Keywords

none

Package Sidebar

Install

npm i @beeleelee/bls

Weekly Downloads

1

Version

0.2.3

License

none

Unpacked Size

1.12 MB

Total Files

5

Last publish

Collaborators

  • beeleelee