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.
cardano-crypto.js
Advanced tools
input-output-hk/cardano-crypto compiled to pure javascript using Emscripten
compiled to pure javascript using Emscripten. This is a collection of cryptolibraries and functions useful for working with Cardano cryptocurrency, eliminating the need for many dependencies.
var lib = require('cardano-crypto.js')
var mnemonic = 'logic easily waste eager injury oval sentence wine bomb embrace gossip supreme'
var walletSecret = await lib.mnemonicToRootKeypair(mnemonic, 1)
var msg = new Buffer('hello there')
var sig = lib.sign(msg, walletSecret)
var lib = require('cardano-crypto.js')
var mnemonic = 'logic easily waste eager injury oval sentence wine bomb embrace gossip supreme'
var parentWalletSecret = lib.mnemonicToRootKeypair(mnemonic, 1)
var childWalletSecret = lib.derivePrivate(parentWalletSecret, 0x80000001, 1)
var lib = require('cardano-crypto.js')
var mnemonic = 'logic easily waste eager injury oval sentence wine bomb embrace gossip supreme'
var parentWalletSecret = lib.mnemonicToRootKeypair(mnemonic, 1)
var parentWalletPublicKey = parentWalletSecret.slice(64, 128)
var childWalletSecret = lib.derivePublic(parentWalletPublicKey, 1, 1)
Buffer sign(Buffer msg, Buffer walletSecret)
Bool verify(Buffer msg, Buffer publicKey, Buffer sig)
async Buffer mnemonicToRootKeypair(String mnemonic, int derivationScheme)
Buffer derivePrivate(Buffer parentKey, int index, int derivationScheme)
Buffer derivePublic(Buffer parentExtPubKey, int index, int derivationScheme)
Buffer toPublic(Buffer privateKey)
Buffer decodePaperWalletMnemonic(string paperWalletMnemonic)
Buffer xpubToHdPassphrase(Buffer xpub)
string packAddress(Array[int] derivationPath, Buffer xpub, Buffer hdPassphrase, int derivationScheme)
string unpackAddress(string address, Buffer hdPassphrase)
Bool isValidAddress(string address)
Buffer blake2b(Buffer input, outputLen)
Buffer cardanoMemoryCombine(Buffer input, String password)
[base58](https://www.npmjs.com/package/base58)
[scrypt](https://www.npmjs.com/package/scrypt-async)
We encourage you to take a look at test/index.js
to see how the functions above should be used.
npm install
npm run build
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install sdk-1.38.8-64bit
./emsdk activate sdk-1.38.8-64bit
source ./emsdk_env.sh
cd ../
git clone https://github.com/vacuumlabs/cardano-crypto.js
cd cardano-crypto.js
npm install
npm run build
shasum lib.js # should match shasum of published version of lib.js
When trying to compile the library with emscripten 1.38.41, the cardanoMemoryCombine
function slows down significantly. With the 1.38.8 version it runs significantly faster.
npm run test
Browserify/Webpack bundles can get very large if you include all the wordlists, so you can now exclude wordlists to make your bundle lighter.
For example, if we want to exclude all wordlists besides chinese_simplified, you could build using the browserify command below.
$ browserify -r bip39 -s bip39 \
--exclude=./wordlists/english.json \
--exclude=./wordlists/japanese.json \
--exclude=./wordlists/spanish.json \
--exclude=./wordlists/italian.json \
--exclude=./wordlists/french.json \
--exclude=./wordlists/korean.json \
--exclude=./wordlists/chinese_traditional.json \
> bip39.browser.js
This will create a bundle that only contains the chinese_simplified wordlist, and it will be the default wordlist for all calls without explicit wordlists.
You can also do this in Webpack using the IgnorePlugin
. Here is an example of excluding all non-English wordlists
...
plugins: [
new webpack.IgnorePlugin(/^\.\/wordlists\/(?!english)/, /bip39\/src$/),
],
...
FAQs
input-output-hk/cardano-crypto compiled to pure javascript using Emscripten
The npm package cardano-crypto.js receives a total of 1,074 weekly downloads. As such, cardano-crypto.js popularity was classified as popular.
We found that cardano-crypto.js demonstrated a not healthy version release cadence and project activity because the last version was released 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.