Newton's Programmatic Measurements

    react-mcl-wasm

    1.1.0 • Public • Published

    Build Status

    A portable and fast pairing-based cryptography library for Node.js by WebAssembly

    Abstract

    see mcl

    News

    • Added support for reactJS
    • add mulVec(xVec, yVec) where xVec is an array of G1 or G2 and yVec is an array of Fr, which returns sum of xVec[i] yVec[i].
    • G1.setHashOf is compatible with hash-to-curve-09 BLS12381G1XMD:SHA-256_SSWU_RO
    • support only BN254, ZKSNARK, BLS12-381 to remove mcl_c512.js
    • add mcl.precomputedMillerLoop2 and mcl.precomputedMillerLoop2mixed

    for Node.js

    node test.js

    browser demo

    ID-based encryption

    usages

    For React

    Please copy and keep the mcl_c384_256.wasm file in the public directory. Will update this later.

    init

    // Ethereum 2.0 spec mode
    mcl.init(mcl.BLS12_381)
      .then(() => {
        mcl.setETHserialization(true) // Ethereum serialization
        mcl.setMapToMode(mcl.IRTF) // for G2.setHashOf(msg)
        ...
      })
    

    string conversion

    a = new mcl.Fr()
    a.setStr('255') // set 255
    a.setStr('0xff') // set 0xff = 255
    a.setStr('ff', 16) // set ff as hex-string
    
    a.getStr() // '255'
    a.getStr(16) // 'ff'
    

    serialization

    // byte array serialization
    b.deserialize(a.serialize()) // b.isEqualTo(a)
    // hex string of serialization()
    b.deserializeHexStr(a.serializeToHexStr())
    
    // serialization like Ethereum 2.0 only for BLS12-381
    mcl.setETHserialization(true)
    

    deserialization

    /*
      it is big cost to to verify the order
      call once after init() if you want to disable it
      cf. sub group problem
    */
    mcl.verifyOrderG1(false)
    mcl.verifyOrderG2(false)
    

    see test.js

    License

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

    History

    2020/Nov/8 add react compatibility 2019/Jan/31 add Fp.mapToG1

    Author

    光成滋生 MITSUNARI Shigeo(herumi@nifty.com) Kautuk Kundan (kautukkundan@gmail.com)

    Install

    npm i react-mcl-wasm

    DownloadsWeekly Downloads

    9

    Version

    1.1.0

    License

    BSD-3-Clause

    Unpacked Size

    492 kB

    Total Files

    8

    Last publish

    Collaborators

    • kkautuk