Socket
Book a DemoInstallSign in
Socket

bls-oly-wasm

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bls-oly-wasm

BLS signature for Node.js by WebAssembly for Olympus protocol

1.1.4
latest
Source
npmnpm
Version published
Weekly downloads
0
-100%
Maintainers
1
Weekly downloads
 
Created
Source

Node.js CI

BLS signature for Node.js by WebAssembly

Abstract

This module is built with BLS_ETH=1 for Ethereum 2.0 spec.

News

  • 2020/May/19 : Call bls.setETHmode(bls.ETH_MODE_DRAFT_07) once after bls.init() for BLS_ETH_MODE_DRAFT_07 defined at BLS12381G2_XMD:SHA-256_SSWU_RO_.
  • setETHmode() supports hash-to-curve defined at draft-irtf-cfrg-hash-to-curve at March 2020.

Init as the followings:

bls.init(bls.BLS12_381)
bls.setETHmode(2)

(old) The new eth2.0 functions are supported. This mode will be removed in the future.

Init as the followings:

bls.init(bls.BLS12_381)
bls.setETHmode(1)

then, you can use the following functions.

bls-eth-wasmeth2.0 spec name
SecretKey::signSign
PublicKey::verifyVerify
Sign::aggregateAggregate
Sign::fastAggregateVerifyFastAggregateVerify
Sign::aggregateVerifyNoCheckAggregateVerify

The size of message must be 32 byte.

Check functions:

  • verifySignatureOrder ; make deserialize check the correctness of the order
  • Sign::isValidOrder ; check the correctness of the order
  • verifyPublicKeyOrder ; make deserialize check the correctness of the order
  • PublicKey::isValidOrder ; check the correctness of the order
  • areAllMsgDifferent ; check that all messages are different each other

Old eth2.0 spec

The msg in the following means 40 bytes Uint8Array data.

  • SecretKey.signHashWithDomain(msg)
    • sign msg by secretKey
  • PublicKey.verifyHashWithDomain(sig, msg)
    • verify sig with msg by publickey
  • Signature.verifyAggregatedHashWithDomain(pubVec, msgVec)
    • pubVec[i] = secVec[i].getPublicKey()
    • sigVec[i] = secVec[i].signHashWithDomain(msgVec[i])
    • aggSig = sum of sigVec[i]
    • aggSig.verifyAggregatedHashWithDomain(pubVec, msgVec)
    • see aggTest() in test.js

see bls

For Node.js

node test.js

License

modified new BSD License http://opensource.org/licenses/BSD-3-Clause

Author

MITSUNARI Shigeo(herumi@nifty.com) Julian Meyer julianmeyer2000@gmail.com

Sponsors welcome

GitHub Sponsor

Keywords

BLS signature

FAQs

Package last updated on 24 May 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.