Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
rustbn-wasm
Advanced tools
Javascript bindings for https://github.com/paritytech/bn (using WASM)
Rust to Javascript/Webassembly compilation of ethereum-bn128.rs.
Derived largely from rustbn.js and recompiled used wasm-pack
Internally it uses the Parity fork of the Zcash bn pairing cryptography library, implementing an efficient bilinear pairing on the Barreto-Naehrig (BN) curve.
It implements helpers to support the functionality defined in EIP-196 and EIP-197.
Clone this repo and build following the [Compilation] instructions below.
Import the module:
import { initRustBN } from 'rustbn'
const bn128 = await initRustBN()
Curve Addition
let inputHexString = ...
let outputHexString = bn128.ec_add(inputHexString)
Curve Multiplication
let inputHexString = ...
let outputHexString = bn128.ec_mul(inputHexString)
Curve Pairing
let inputHexString = ...
let outputHexString = bn128.ec_pairing(inputHexString)
For basic setup:
rust
and wasm-pack
via the wasm-pack
prerequisitesnpm i
npm run build:wasm
to compile the Rust code to WASMnpm run wasm2b64
to convert the WASM bytecode to a base64 string consumable by the Typescript wrappernpm run build
to build the final JS outputsThe build process outputs both CommonJS and ESM builds of the library and specifies entry points based on the main
, module
, and alternatively the exports
fields in package.json
. Both builds start with the wasm build from wasm-bindgen
which is then loaded by a Typescript wrapper of the WASM output. Our Typescript code is slightly different than the original Javascript generated by wasm-bindgen
because the default ESM output would require a bundler.
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.
FAQs
Javascript bindings for https://github.com/paritytech/bn (using WASM)
The npm package rustbn-wasm receives a total of 22,550 weekly downloads. As such, rustbn-wasm popularity was classified as popular.
We found that rustbn-wasm demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
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.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.