Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

rustbn.js

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

rustbn.js

Javascript bindings for https://github.com/paritytech/bn (using asm.js)

  • 0.1.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
86K
decreased by-23.96%
Maintainers
1
Weekly downloads
 
Created
Source

SYNOPSIS

Build Status Gitter or #ethereumjs on freenode

Rust to Javascript compile of the Parity fork of the Zcash bn pairing cryptography library, implementing an efficient bilinear pairing on the Barreto-Naehrig (BN) curve.

Installation

npm install rustbn.js

Usage

Require the module:

const bn128Module = require('rustbn.js')

Curve Addition

const ecAddPrecompile = bn128Module.cwrap('ec_add', 'string', ['string'])
var inputHexStr = '...'
let result = ecAddPrecompile(inputHexStr)

Curve Multiplication

const ecMulPrecompile = bn128Module.cwrap('ec_mul', 'string', ['string'])
var inputHexStr = '...'
let result = ecMulPrecompile(inputHexStr)

Curve Pairing

const ecPairingPrecompile = bn128Module.cwrap('ec_pairing', 'string', ['string'])
var inputHexStr = '...'
let result = ecPairingPrecompile(inputHexStr)

Developer

Compilation

Compilation process is based on this tutorial using Emscripten to compile the original Rust sources to asm.js (Wikipedia). This might be extended in the future to also include a WASM compiled version to choose from.

For basic setup follow the "Installing the Tools" section of the tutorial (make sure to use the incoming branch of emsdk).

For asm.js compilation asmjs-unknown-emscripten target has to be added with rustup:

rustup target add asmjs-unknown-emscripten

Compilation steps can be found in the makefile in the main directory and executed simply by running:

make

WASM (Experimental)

WASM files can be compiled with make wasm to the exp. This is just intended for experimentation working in browser only (not with Node.js) and not ready for production use!

Start a server with python -m SimpleHTTPServer and browse to http://localhost:8000/. You might have to modify the exp/index.html file to get things to work.

Testing

Unit tests can be found in the tests directory. Run the tests with:

npm run test

Additional Resources

License

Licensed under either of

at your option.

Copyright 2016 Zcash Electric Coin Company. The Zcash Company promises to maintain the "bn" crate on crates.io under this MIT/Apache-2.0 dual license.

Keywords

FAQs

Package last updated on 11 Oct 2017

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

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc