bip39
Advanced tools
Comparing version 3.0.4 to 3.1.0
{ | ||
"name": "bip39", | ||
"version": "3.0.4", | ||
"version": "3.1.0", | ||
"description": "Bitcoin BIP39: Mnemonic code for generating deterministic keys", | ||
@@ -10,3 +10,3 @@ "main": "src/index.js", | ||
"clean": "rm -rf src", | ||
"coverage": "nyc --branches 100 --functions 100 --check-coverage npm run unit", | ||
"coverage": "nyc --branches 85 --functions 100 --check-coverage npm run unit", | ||
"format": "npm run prettier -- --write", | ||
@@ -39,12 +39,7 @@ "format:ci": "npm run prettier -- --check", | ||
"dependencies": { | ||
"@types/node": "11.11.6", | ||
"create-hash": "^1.1.0", | ||
"pbkdf2": "^3.0.9", | ||
"randombytes": "^2.0.1" | ||
"@noble/hashes": "^1.2.0" | ||
}, | ||
"devDependencies": { | ||
"@types/create-hash": "1.2.0", | ||
"@types/pbkdf2": "3.0.0", | ||
"@types/randombytes": "2.0.0", | ||
"node-fetch": "^2.6.1", | ||
"@types/node": "11.11.6", | ||
"node-fetch": "2.6.9", | ||
"nyc": "^15.0.0", | ||
@@ -51,0 +46,0 @@ "prettier": "1.16.4", |
@@ -41,3 +41,3 @@ # BIP39 | ||
You can also do this in Webpack using the `IgnorePlugin`. Here is an example of excluding all non-English wordlists | ||
You can also do this in Webpack 5 using the `IgnorePlugin`. Here is an example of excluding all non-English wordlists | ||
@@ -47,3 +47,7 @@ ```javascript | ||
plugins: [ | ||
new webpack.IgnorePlugin(/^\.\/wordlists\/(?!english)/, /bip39\/src$/), | ||
new webpack.IgnorePlugin({ | ||
checkResource(resource) { | ||
return /.*\/wordlists\/(?!english).*\.json/.test(resource) | ||
} | ||
}), | ||
], | ||
@@ -50,0 +54,0 @@ ... |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const createHash = require("create-hash"); | ||
const pbkdf2_1 = require("pbkdf2"); | ||
const randomBytes = require("randombytes"); | ||
const sha256_1 = require("@noble/hashes/sha256"); | ||
const sha512_1 = require("@noble/hashes/sha512"); | ||
const pbkdf2_1 = require("@noble/hashes/pbkdf2"); | ||
const utils_1 = require("@noble/hashes/utils"); | ||
const _wordlists_1 = require("./_wordlists"); | ||
@@ -13,15 +14,2 @@ let DEFAULT_WORDLIST = _wordlists_1._default; | ||
'Please pass a 2048 word array explicitly.'; | ||
function pbkdf2Promise(password, saltMixin, iterations, keylen, digest) { | ||
return Promise.resolve().then(() => new Promise((resolve, reject) => { | ||
const callback = (err, derivedKey) => { | ||
if (err) { | ||
return reject(err); | ||
} | ||
else { | ||
return resolve(derivedKey); | ||
} | ||
}; | ||
pbkdf2_1.pbkdf2(password, saltMixin, iterations, keylen, digest, callback); | ||
})); | ||
} | ||
function normalize(str) { | ||
@@ -45,5 +33,3 @@ return (str || '').normalize('NFKD'); | ||
const CS = ENT / 32; | ||
const hash = createHash('sha256') | ||
.update(entropyBuffer) | ||
.digest(); | ||
const hash = sha256_1.sha256(Uint8Array.from(entropyBuffer)); | ||
return bytesToBinary(Array.from(hash)).slice(0, CS); | ||
@@ -55,13 +41,18 @@ } | ||
function mnemonicToSeedSync(mnemonic, password) { | ||
const mnemonicBuffer = Buffer.from(normalize(mnemonic), 'utf8'); | ||
const saltBuffer = Buffer.from(salt(normalize(password)), 'utf8'); | ||
return pbkdf2_1.pbkdf2Sync(mnemonicBuffer, saltBuffer, 2048, 64, 'sha512'); | ||
const mnemonicBuffer = Uint8Array.from(Buffer.from(normalize(mnemonic), 'utf8')); | ||
const saltBuffer = Uint8Array.from(Buffer.from(salt(normalize(password)), 'utf8')); | ||
const res = pbkdf2_1.pbkdf2(sha512_1.sha512, mnemonicBuffer, saltBuffer, { | ||
c: 2048, | ||
dkLen: 64, | ||
}); | ||
return Buffer.from(res); | ||
} | ||
exports.mnemonicToSeedSync = mnemonicToSeedSync; | ||
function mnemonicToSeed(mnemonic, password) { | ||
return Promise.resolve().then(() => { | ||
const mnemonicBuffer = Buffer.from(normalize(mnemonic), 'utf8'); | ||
const saltBuffer = Buffer.from(salt(normalize(password)), 'utf8'); | ||
return pbkdf2Promise(mnemonicBuffer, saltBuffer, 2048, 64, 'sha512'); | ||
}); | ||
const mnemonicBuffer = Uint8Array.from(Buffer.from(normalize(mnemonic), 'utf8')); | ||
const saltBuffer = Uint8Array.from(Buffer.from(salt(normalize(password)), 'utf8')); | ||
return pbkdf2_1.pbkdf2Async(sha512_1.sha512, mnemonicBuffer, saltBuffer, { | ||
c: 2048, | ||
dkLen: 64, | ||
}).then((res) => Buffer.from(res)); | ||
} | ||
@@ -147,3 +138,3 @@ exports.mnemonicToSeed = mnemonicToSeed; | ||
} | ||
rng = rng || randomBytes; | ||
rng = rng || ((size) => Buffer.from(utils_1.randomBytes(size))); | ||
return entropyToMnemonic(rng(strength / 8), wordlist); | ||
@@ -150,0 +141,0 @@ } |
1
8
143
331447
319471
18
20753
+ Added@noble/hashes@^1.2.0
+ Added@noble/hashes@1.4.0(transitive)
- Removed@types/node@11.11.6
- Removedcreate-hash@^1.1.0
- Removedpbkdf2@^3.0.9
- Removedrandombytes@^2.0.1
- Removed@types/node@11.11.6(transitive)
- Removedcipher-base@1.0.4(transitive)
- Removedcreate-hash@1.2.0(transitive)
- Removedcreate-hmac@1.1.7(transitive)
- Removedhash-base@3.1.0(transitive)
- Removedinherits@2.0.4(transitive)
- Removedmd5.js@1.3.5(transitive)
- Removedpbkdf2@3.1.2(transitive)
- Removedrandombytes@2.1.0(transitive)
- Removedreadable-stream@3.6.2(transitive)
- Removedripemd160@2.0.2(transitive)
- Removedsafe-buffer@5.2.1(transitive)
- Removedsha.js@2.4.11(transitive)
- Removedstring_decoder@1.3.0(transitive)
- Removedutil-deprecate@1.0.2(transitive)