4.0.3 • Published 4 months ago

@asoltys/bip38 v4.0.3

Weekly downloads
-
License
-
Repository
github
Last release
4 months ago

bip38

build status Coverage Status Version

js-standard-style

A JavaScript component that adheres to the BIP38 standard to secure your crypto currency private keys. Fully compliant with Node.js and the browser (via Browserify).

Why?

BIP38 is a standard process to encrypt Bitcoin and crypto currency private keys that is impervious to brute force attacks thus protecting the user.

Package Info

Usage

Installation

npm install --save bip38

Async methods

Async methods are available. Using them will be slower but will free up the event loop. You can set asyncTickInterval in the scryptParams to control the maximum amount of time the function can block.

N is cpu/mem work factor (power of 2 e.g. 218) r is block size (8 is common), fine-tunes sequential memory read size and performance p is parallelization factor (1 is common) dkLen is output key length in bytes e.g. 32. asyncTick - (default: 10) max time in ms for which async function can block execution maxmem - (default: `1024 3 + 1024aka 1GB+1KB). A limit that the app could use for scryptonProgress` - callback function that would be executed for progress report

API

encrypt(buffer, compressed, passphrase, progressCallback, scryptParams)

import { encrypt } from "bip38"
import wif from "wif"

const myWifString = '5KN7MzqK5wt2TP1fQCYyHBtDrXdJuXbUzm4A9rKAteGu3Qi5CVR'
const decoded = wif.decode(myWifString)

const encryptedKey = encrypt(decoded.privateKey, decoded.compressed, 'TestingOneTwoThree')
console.log(encryptedKey)
// => '6PRVWUbkzzsbcVac2qwfssoUJAN1Xhrg6bNk8J7Nzm5H7kxEbn2Nh2ZoGg'

decrypt(encryptedKey, passphrase, progressCallback, scryptParams)

import { decrypt } from "bip38"
import wif from "wif"

var encryptedKey = '6PRVWUbkzzsbcVac2qwfssoUJAN1Xhrg6bNk8J7Nzm5H7kxEbn2Nh2ZoGg'
var decryptedKey = decrypt(encryptedKey, 'TestingOneTwoThree', function (percent) {
  console.log(percent) // will print the percent every time current increases by 1000
})

console.log(wif.encode(0x80, decryptedKey.privateKey, decryptedKey.compressed))
// => '5KN7MzqK5wt2TP1fQCYyHBtDrXdJuXbUzm4A9rKAteGu3Qi5CVR'

References

4.0.3

4 months ago

4.0.2

4 months ago

4.0.1

4 months ago

4.0.0

4 months ago