Socket
Socket
Sign inDemoInstall

@iov/crypto

Package Overview
Dependencies
Maintainers
3
Versions
83
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@iov/crypto - npm Package Compare versions

Comparing version 0.6.1 to 0.7.0-alpha.0

8

build/bip39.js

@@ -25,4 +25,5 @@ "use strict";

const words = mnemonic.split(" ");
if (words.length !== 12 && words.length !== 18 && words.length !== 24) {
throw new Error(`Invalid word count in mnemonic (allowed: 12, 18, 24 got: ${words.length})`);
const allowedWordsLengths = [12, 15, 18, 21, 24];
if (allowedWordsLengths.indexOf(words.length) === -1) {
throw new Error(`Invalid word count in mnemonic (allowed: ${allowedWordsLengths} got: ${words.length})`);
}

@@ -48,3 +49,4 @@ for (const word of words) {

static encode(entropy) {
if (entropy.length !== 16 && entropy.length !== 24 && entropy.length !== 32) {
const allowedEntropyLengths = [16, 20, 24, 28, 32];
if (allowedEntropyLengths.indexOf(entropy.length) === -1) {
throw new Error("invalid input length");

@@ -51,0 +53,0 @@ }

@@ -26,2 +26,6 @@ "use strict";

expect(bip39_1.Bip39.encode(fromHex("ffffffffffffffffffffffffffffffff")).asString()).toEqual("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong");
expect(bip39_1.Bip39.encode(fromHex("0000000000000000000000000000000000000000")).asString()).toEqual("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon address");
expect(bip39_1.Bip39.encode(fromHex("7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f")).asString()).toEqual("legal winner thank year wave sausage worth useful legal winner thank year wave sausage wise");
expect(bip39_1.Bip39.encode(fromHex("8080808080808080808080808080808080808080")).asString()).toEqual("letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor accident");
expect(bip39_1.Bip39.encode(fromHex("ffffffffffffffffffffffffffffffffffffffff")).asString()).toEqual("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrist");
expect(bip39_1.Bip39.encode(fromHex("000000000000000000000000000000000000000000000000")).asString()).toEqual("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon agent");

@@ -31,2 +35,6 @@ expect(bip39_1.Bip39.encode(fromHex("7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f")).asString()).toEqual("legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal will");

expect(bip39_1.Bip39.encode(fromHex("ffffffffffffffffffffffffffffffffffffffffffffffff")).asString()).toEqual("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo when");
expect(bip39_1.Bip39.encode(fromHex("00000000000000000000000000000000000000000000000000000000")).asString()).toEqual("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon admit");
expect(bip39_1.Bip39.encode(fromHex("7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f")).asString()).toEqual("legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal winner thank year viable");
expect(bip39_1.Bip39.encode(fromHex("80808080808080808080808080808080808080808080808080808080")).asString()).toEqual("letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd apart");
expect(bip39_1.Bip39.encode(fromHex("ffffffffffffffffffffffffffffffffffffffffffffffffffffffff")).asString()).toEqual("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo veteran");
expect(bip39_1.Bip39.encode(fromHex("0000000000000000000000000000000000000000000000000000000000000000")).asString()).toEqual("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art");

@@ -37,12 +45,20 @@ expect(bip39_1.Bip39.encode(fromHex("7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f")).asString()).toEqual("legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth title");

expect(bip39_1.Bip39.encode(fromHex("9e885d952ad362caeb4efe34a8e91bd2")).asString()).toEqual("ozone drill grab fiber curtain grace pudding thank cruise elder eight picnic");
expect(bip39_1.Bip39.encode(fromHex("610b25967cdcca9d59875f5cb50b0ea754333118")).asString()).toEqual("genre float grain whale smile exchange gravity typical frequent portion senior exchange drip obtain glow");
expect(bip39_1.Bip39.encode(fromHex("6610b25967cdcca9d59875f5cb50b0ea75433311869e930b")).asString()).toEqual("gravity machine north sort system female filter attitude volume fold club stay feature office ecology stable narrow fog");
expect(bip39_1.Bip39.encode(fromHex("8a79eaca2324873eacc50cb9c6eca8cc68ea5d936f98787c60c7ebc7")).asString()).toEqual("media soon raw edge embody palm reason pave right danger clay occur modify conduct ethics vessel journey toast cradle stuff laundry");
expect(bip39_1.Bip39.encode(fromHex("68a79eaca2324873eacc50cb9c6eca8cc68ea5d936f98787c60c7ebc74e6ce7c")).asString()).toEqual("hamster diagram private dutch cause delay private meat slide toddler razor book happy fancy gospel tennis maple dilemma loan word shrug inflict delay length");
expect(bip39_1.Bip39.encode(fromHex("c0ba5a8e914111210f2bd131f3d5e08d")).asString()).toEqual("scheme spot photo card baby mountain device kick cradle pact join borrow");
expect(bip39_1.Bip39.encode(fromHex("232c38b9a99e10d2253fa1aa2739a8e9c3b112d0")).asString()).toEqual("case gift common farm three harbor neutral vintage pretty degree health squeeze deposit maximum donor");
expect(bip39_1.Bip39.encode(fromHex("6d9be1ee6ebd27a258115aad99b7317b9c8d28b6d76431c3")).asString()).toEqual("horn tenant knee talent sponsor spell gate clip pulse soap slush warm silver nephew swap uncle crack brave");
expect(bip39_1.Bip39.encode(fromHex("49208c3112119c4770d44d1a9726b44135748bda464954338f3c1d91")).asString()).toEqual("empty afford arrange category border casual select meadow box rice public list firm echo harbor since feature organ someone depth bitter");
expect(bip39_1.Bip39.encode(fromHex("9f6a2878b2520799a44ef18bc7df394e7061a224d2c33cd015b157d746869863")).asString()).toEqual("panda eyebrow bullet gorilla call smoke muffin taste mesh discover soft ostrich alcohol speed nation flash devote level hobby quick inner drive ghost inside");
expect(bip39_1.Bip39.encode(fromHex("23db8160a31d3e0dca3688ed941adbf3")).asString()).toEqual("cat swing flag economy stadium alone churn speed unique patch report train");
expect(bip39_1.Bip39.encode(fromHex("c9a0ed1374180cd8f8c5cc0bc9c719dfb67add59")).asString()).toEqual("situate alter dynamic trial liar hockey toast ridge armed evolve shoe satoshi guilt huge grass");
expect(bip39_1.Bip39.encode(fromHex("8197a4a47f0425faeaa69deebc05ca29c0a5b5cc76ceacc0")).asString()).toEqual("light rule cinnamon wrap drastic word pride squirrel upgrade then income fatal apart sustain crack supply proud access");
expect(bip39_1.Bip39.encode(fromHex("dc8a247c5379f57c24dbfbd6a0699a8282875dd0a3f0f39b8fc020a4")).asString()).toEqual("symptom eye business plunge palm safe nature legal stove addict grit agree chronic puzzle dream lawn vicious symbol useless donor eagle");
expect(bip39_1.Bip39.encode(fromHex("066dca1a2bb7e8a1db2832148ce9933eea0f3ac9548d793112d9a95c9407efad")).asString()).toEqual("all hour make first leader extend hole alien behind guard gospel lava path output census museum junior mass reopen famous sing advance salt reform");
expect(bip39_1.Bip39.encode(fromHex("f30f8c1da665478f49b001d94c5fc452")).asString()).toEqual("vessel ladder alter error federal sibling chat ability sun glass valve picture");
expect(bip39_1.Bip39.encode(fromHex("ef38bbc81a5fa1756dfd654b0cc1a1759ce1ed94")).asString()).toEqual("upset shift velvet cruise wheel rival retire protect enrich gravity hair twenty sock walnut fat");
expect(bip39_1.Bip39.encode(fromHex("c10ec20dc3cd9f652c7fac2f1230f7a3c828389a14392f05")).asString()).toEqual("scissors invite lock maple supreme raw rapid void congress muscle digital elegant little brisk hair mango congress clump");
expect(bip39_1.Bip39.encode(fromHex("a66afdf103bf42b5858cd1c23a20f7e5114edb111880d634b53454bf")).asString()).toEqual("please fitness labor alter vintage food bike olive season speed digital sketch belt horn dutch avoid stomach pizza escape practice walnut");
expect(bip39_1.Bip39.encode(fromHex("f585c11aec520db57dd353c69554b21a89b20fb0650966fa0a9d6f74fd989d8f")).asString()).toEqual("void come effort suffer camp survey warrior heavy shoot primary clutch crush open amazing screen patrol group space point ten exist slush involve unfold");

@@ -80,3 +96,5 @@ // invalid input length

new bip39_1.EnglishMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about");
new bip39_1.EnglishMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon address");
new bip39_1.EnglishMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon agent");
new bip39_1.EnglishMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon admit");
new bip39_1.EnglishMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art");

@@ -125,3 +143,3 @@ }).not.toThrow();

});
it("word counts other than 12, 18, 24", () => {
it("word counts other than 12, 15, 18, 21, 24", () => {
// too few and too many words (11, 13, 17, 19, 23, 25)

@@ -148,3 +166,3 @@ expect(() => {

it("rejects invalid checksums", () => {
// 12x, 18x, 24x "zoo"
// 12x, 15x, 18x, 21x, 24x "zoo"
expect(() => {

@@ -154,5 +172,11 @@ new bip39_1.EnglishMnemonic("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo");

expect(() => {
new bip39_1.EnglishMnemonic("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo");
}).toThrowError(/invalid mnemonic checksum/i);
expect(() => {
new bip39_1.EnglishMnemonic("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo");
}).toThrowError(/invalid mnemonic checksum/i);
expect(() => {
new bip39_1.EnglishMnemonic("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo");
}).toThrowError(/invalid mnemonic checksum/i);
expect(() => {
new bip39_1.EnglishMnemonic("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo");

@@ -189,2 +213,6 @@ }).toThrowError(/invalid mnemonic checksum/i);

expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong"))).toEqual(fromHex("ffffffffffffffffffffffffffffffff"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon address"))).toEqual(fromHex("0000000000000000000000000000000000000000"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("legal winner thank year wave sausage worth useful legal winner thank year wave sausage wise"))).toEqual(fromHex("7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor accident"))).toEqual(fromHex("8080808080808080808080808080808080808080"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrist"))).toEqual(fromHex("ffffffffffffffffffffffffffffffffffffffff"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon agent"))).toEqual(fromHex("000000000000000000000000000000000000000000000000"));

@@ -194,2 +222,6 @@ expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal will"))).toEqual(fromHex("7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f"));

expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo when"))).toEqual(fromHex("ffffffffffffffffffffffffffffffffffffffffffffffff"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon admit"))).toEqual(fromHex("00000000000000000000000000000000000000000000000000000000"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal winner thank year viable"))).toEqual(fromHex("7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd apart"))).toEqual(fromHex("80808080808080808080808080808080808080808080808080808080"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo veteran"))).toEqual(fromHex("ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art"))).toEqual(fromHex("0000000000000000000000000000000000000000000000000000000000000000"));

@@ -200,12 +232,20 @@ expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth title"))).toEqual(fromHex("7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f"));

expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("ozone drill grab fiber curtain grace pudding thank cruise elder eight picnic"))).toEqual(fromHex("9e885d952ad362caeb4efe34a8e91bd2"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("genre float grain whale smile exchange gravity typical frequent portion senior exchange drip obtain glow"))).toEqual(fromHex("610b25967cdcca9d59875f5cb50b0ea754333118"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("gravity machine north sort system female filter attitude volume fold club stay feature office ecology stable narrow fog"))).toEqual(fromHex("6610b25967cdcca9d59875f5cb50b0ea75433311869e930b"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("media soon raw edge embody palm reason pave right danger clay occur modify conduct ethics vessel journey toast cradle stuff laundry"))).toEqual(fromHex("8a79eaca2324873eacc50cb9c6eca8cc68ea5d936f98787c60c7ebc7"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("hamster diagram private dutch cause delay private meat slide toddler razor book happy fancy gospel tennis maple dilemma loan word shrug inflict delay length"))).toEqual(fromHex("68a79eaca2324873eacc50cb9c6eca8cc68ea5d936f98787c60c7ebc74e6ce7c"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("scheme spot photo card baby mountain device kick cradle pact join borrow"))).toEqual(fromHex("c0ba5a8e914111210f2bd131f3d5e08d"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("case gift common farm three harbor neutral vintage pretty degree health squeeze deposit maximum donor"))).toEqual(fromHex("232c38b9a99e10d2253fa1aa2739a8e9c3b112d0"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("horn tenant knee talent sponsor spell gate clip pulse soap slush warm silver nephew swap uncle crack brave"))).toEqual(fromHex("6d9be1ee6ebd27a258115aad99b7317b9c8d28b6d76431c3"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("empty afford arrange category border casual select meadow box rice public list firm echo harbor since feature organ someone depth bitter"))).toEqual(fromHex("49208c3112119c4770d44d1a9726b44135748bda464954338f3c1d91"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("panda eyebrow bullet gorilla call smoke muffin taste mesh discover soft ostrich alcohol speed nation flash devote level hobby quick inner drive ghost inside"))).toEqual(fromHex("9f6a2878b2520799a44ef18bc7df394e7061a224d2c33cd015b157d746869863"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("cat swing flag economy stadium alone churn speed unique patch report train"))).toEqual(fromHex("23db8160a31d3e0dca3688ed941adbf3"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("situate alter dynamic trial liar hockey toast ridge armed evolve shoe satoshi guilt huge grass"))).toEqual(fromHex("c9a0ed1374180cd8f8c5cc0bc9c719dfb67add59"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("light rule cinnamon wrap drastic word pride squirrel upgrade then income fatal apart sustain crack supply proud access"))).toEqual(fromHex("8197a4a47f0425faeaa69deebc05ca29c0a5b5cc76ceacc0"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("symptom eye business plunge palm safe nature legal stove addict grit agree chronic puzzle dream lawn vicious symbol useless donor eagle"))).toEqual(fromHex("dc8a247c5379f57c24dbfbd6a0699a8282875dd0a3f0f39b8fc020a4"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("all hour make first leader extend hole alien behind guard gospel lava path output census museum junior mass reopen famous sing advance salt reform"))).toEqual(fromHex("066dca1a2bb7e8a1db2832148ce9933eea0f3ac9548d793112d9a95c9407efad"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("vessel ladder alter error federal sibling chat ability sun glass valve picture"))).toEqual(fromHex("f30f8c1da665478f49b001d94c5fc452"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("upset shift velvet cruise wheel rival retire protect enrich gravity hair twenty sock walnut fat"))).toEqual(fromHex("ef38bbc81a5fa1756dfd654b0cc1a1759ce1ed94"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("scissors invite lock maple supreme raw rapid void congress muscle digital elegant little brisk hair mango congress clump"))).toEqual(fromHex("c10ec20dc3cd9f652c7fac2f1230f7a3c828389a14392f05"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("please fitness labor alter vintage food bike olive season speed digital sketch belt horn dutch avoid stomach pizza escape practice walnut"))).toEqual(fromHex("a66afdf103bf42b5858cd1c23a20f7e5114edb111880d634b53454bf"));
expect(bip39_1.Bip39.decode(new bip39_1.EnglishMnemonic("void come effort suffer camp survey warrior heavy shoot primary clutch crush open amazing screen patrol group space point ten exist slush involve unfold"))).toEqual(fromHex("f585c11aec520db57dd353c69554b21a89b20fb0650966fa0a9d6f74fd989d8f"));

@@ -212,0 +252,0 @@ });

{
"name": "@iov/crypto",
"version": "0.6.1",
"version": "0.7.0-alpha.0",
"description": "Cryptography resources for IOV projects",

@@ -46,3 +46,3 @@ "author": "IOV SAS <admin@iov.one>",

},
"gitHead": "ffbe666d41aff5d0509defadbf82fb36fa6682c7"
"gitHead": "de4f026f0c41c80dac2fd4ec94b6af653e9a642e"
}

@@ -20,2 +20,6 @@ import { Encoding } from "@iov/encoding";

expect(Bip39.encode(fromHex("ffffffffffffffffffffffffffffffff")).asString()).toEqual("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong");
expect(Bip39.encode(fromHex("0000000000000000000000000000000000000000")).asString()).toEqual("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon address");
expect(Bip39.encode(fromHex("7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f")).asString()).toEqual("legal winner thank year wave sausage worth useful legal winner thank year wave sausage wise");
expect(Bip39.encode(fromHex("8080808080808080808080808080808080808080")).asString()).toEqual("letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor accident");
expect(Bip39.encode(fromHex("ffffffffffffffffffffffffffffffffffffffff")).asString()).toEqual("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrist");
expect(Bip39.encode(fromHex("000000000000000000000000000000000000000000000000")).asString()).toEqual("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon agent");

@@ -25,2 +29,6 @@ expect(Bip39.encode(fromHex("7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f")).asString()).toEqual("legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal will");

expect(Bip39.encode(fromHex("ffffffffffffffffffffffffffffffffffffffffffffffff")).asString()).toEqual("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo when");
expect(Bip39.encode(fromHex("00000000000000000000000000000000000000000000000000000000")).asString()).toEqual("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon admit");
expect(Bip39.encode(fromHex("7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f")).asString()).toEqual("legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal winner thank year viable");
expect(Bip39.encode(fromHex("80808080808080808080808080808080808080808080808080808080")).asString()).toEqual("letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd apart");
expect(Bip39.encode(fromHex("ffffffffffffffffffffffffffffffffffffffffffffffffffffffff")).asString()).toEqual("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo veteran");
expect(Bip39.encode(fromHex("0000000000000000000000000000000000000000000000000000000000000000")).asString()).toEqual("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art");

@@ -31,12 +39,20 @@ expect(Bip39.encode(fromHex("7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f")).asString()).toEqual("legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth title");

expect(Bip39.encode(fromHex("9e885d952ad362caeb4efe34a8e91bd2")).asString()).toEqual("ozone drill grab fiber curtain grace pudding thank cruise elder eight picnic");
expect(Bip39.encode(fromHex("610b25967cdcca9d59875f5cb50b0ea754333118")).asString()).toEqual("genre float grain whale smile exchange gravity typical frequent portion senior exchange drip obtain glow");
expect(Bip39.encode(fromHex("6610b25967cdcca9d59875f5cb50b0ea75433311869e930b")).asString()).toEqual("gravity machine north sort system female filter attitude volume fold club stay feature office ecology stable narrow fog");
expect(Bip39.encode(fromHex("8a79eaca2324873eacc50cb9c6eca8cc68ea5d936f98787c60c7ebc7")).asString()).toEqual("media soon raw edge embody palm reason pave right danger clay occur modify conduct ethics vessel journey toast cradle stuff laundry");
expect(Bip39.encode(fromHex("68a79eaca2324873eacc50cb9c6eca8cc68ea5d936f98787c60c7ebc74e6ce7c")).asString()).toEqual("hamster diagram private dutch cause delay private meat slide toddler razor book happy fancy gospel tennis maple dilemma loan word shrug inflict delay length");
expect(Bip39.encode(fromHex("c0ba5a8e914111210f2bd131f3d5e08d")).asString()).toEqual("scheme spot photo card baby mountain device kick cradle pact join borrow");
expect(Bip39.encode(fromHex("232c38b9a99e10d2253fa1aa2739a8e9c3b112d0")).asString()).toEqual("case gift common farm three harbor neutral vintage pretty degree health squeeze deposit maximum donor");
expect(Bip39.encode(fromHex("6d9be1ee6ebd27a258115aad99b7317b9c8d28b6d76431c3")).asString()).toEqual("horn tenant knee talent sponsor spell gate clip pulse soap slush warm silver nephew swap uncle crack brave");
expect(Bip39.encode(fromHex("49208c3112119c4770d44d1a9726b44135748bda464954338f3c1d91")).asString()).toEqual("empty afford arrange category border casual select meadow box rice public list firm echo harbor since feature organ someone depth bitter");
expect(Bip39.encode(fromHex("9f6a2878b2520799a44ef18bc7df394e7061a224d2c33cd015b157d746869863")).asString()).toEqual("panda eyebrow bullet gorilla call smoke muffin taste mesh discover soft ostrich alcohol speed nation flash devote level hobby quick inner drive ghost inside");
expect(Bip39.encode(fromHex("23db8160a31d3e0dca3688ed941adbf3")).asString()).toEqual("cat swing flag economy stadium alone churn speed unique patch report train");
expect(Bip39.encode(fromHex("c9a0ed1374180cd8f8c5cc0bc9c719dfb67add59")).asString()).toEqual("situate alter dynamic trial liar hockey toast ridge armed evolve shoe satoshi guilt huge grass");
expect(Bip39.encode(fromHex("8197a4a47f0425faeaa69deebc05ca29c0a5b5cc76ceacc0")).asString()).toEqual("light rule cinnamon wrap drastic word pride squirrel upgrade then income fatal apart sustain crack supply proud access");
expect(Bip39.encode(fromHex("dc8a247c5379f57c24dbfbd6a0699a8282875dd0a3f0f39b8fc020a4")).asString()).toEqual("symptom eye business plunge palm safe nature legal stove addict grit agree chronic puzzle dream lawn vicious symbol useless donor eagle");
expect(Bip39.encode(fromHex("066dca1a2bb7e8a1db2832148ce9933eea0f3ac9548d793112d9a95c9407efad")).asString()).toEqual("all hour make first leader extend hole alien behind guard gospel lava path output census museum junior mass reopen famous sing advance salt reform");
expect(Bip39.encode(fromHex("f30f8c1da665478f49b001d94c5fc452")).asString()).toEqual("vessel ladder alter error federal sibling chat ability sun glass valve picture");
expect(Bip39.encode(fromHex("ef38bbc81a5fa1756dfd654b0cc1a1759ce1ed94")).asString()).toEqual("upset shift velvet cruise wheel rival retire protect enrich gravity hair twenty sock walnut fat");
expect(Bip39.encode(fromHex("c10ec20dc3cd9f652c7fac2f1230f7a3c828389a14392f05")).asString()).toEqual("scissors invite lock maple supreme raw rapid void congress muscle digital elegant little brisk hair mango congress clump");
expect(Bip39.encode(fromHex("a66afdf103bf42b5858cd1c23a20f7e5114edb111880d634b53454bf")).asString()).toEqual("please fitness labor alter vintage food bike olive season speed digital sketch belt horn dutch avoid stomach pizza escape practice walnut");
expect(Bip39.encode(fromHex("f585c11aec520db57dd353c69554b21a89b20fb0650966fa0a9d6f74fd989d8f")).asString()).toEqual("void come effort suffer camp survey warrior heavy shoot primary clutch crush open amazing screen patrol group space point ten exist slush involve unfold");

@@ -77,3 +93,5 @@

new EnglishMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about");
new EnglishMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon address");
new EnglishMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon agent");
new EnglishMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon admit");
new EnglishMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art");

@@ -126,3 +144,3 @@ }).not.toThrow();

it("word counts other than 12, 18, 24", () => {
it("word counts other than 12, 15, 18, 21, 24", () => {
// too few and too many words (11, 13, 17, 19, 23, 25)

@@ -150,3 +168,3 @@ expect(() => {

it("rejects invalid checksums", () => {
// 12x, 18x, 24x "zoo"
// 12x, 15x, 18x, 21x, 24x "zoo"
expect(() => {

@@ -156,5 +174,11 @@ new EnglishMnemonic("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo");

expect(() => {
new EnglishMnemonic("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo");
}).toThrowError(/invalid mnemonic checksum/i);
expect(() => {
new EnglishMnemonic("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo");
}).toThrowError(/invalid mnemonic checksum/i);
expect(() => {
new EnglishMnemonic("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo");
}).toThrowError(/invalid mnemonic checksum/i);
expect(() => {
new EnglishMnemonic("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo");

@@ -194,2 +218,6 @@ }).toThrowError(/invalid mnemonic checksum/i);

expect(Bip39.decode(new EnglishMnemonic("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong"))).toEqual(fromHex("ffffffffffffffffffffffffffffffff"));
expect(Bip39.decode(new EnglishMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon address"))).toEqual(fromHex("0000000000000000000000000000000000000000"));
expect(Bip39.decode(new EnglishMnemonic("legal winner thank year wave sausage worth useful legal winner thank year wave sausage wise"))).toEqual(fromHex("7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f"));
expect(Bip39.decode(new EnglishMnemonic("letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor accident"))).toEqual(fromHex("8080808080808080808080808080808080808080"));
expect(Bip39.decode(new EnglishMnemonic("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrist"))).toEqual(fromHex("ffffffffffffffffffffffffffffffffffffffff"));
expect(Bip39.decode(new EnglishMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon agent"))).toEqual(fromHex("000000000000000000000000000000000000000000000000"));

@@ -199,2 +227,8 @@ expect(Bip39.decode(new EnglishMnemonic("legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal will"))).toEqual(fromHex("7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f"));

expect(Bip39.decode(new EnglishMnemonic("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo when"))).toEqual(fromHex("ffffffffffffffffffffffffffffffffffffffffffffffff"));
expect(Bip39.decode(new EnglishMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon admit"))).toEqual(fromHex("00000000000000000000000000000000000000000000000000000000"));
expect(Bip39.decode(new EnglishMnemonic("legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal winner thank year viable"))).toEqual(fromHex("7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f"));
expect(Bip39.decode(new EnglishMnemonic("letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd apart"))).toEqual(fromHex("80808080808080808080808080808080808080808080808080808080"));
expect(Bip39.decode(new EnglishMnemonic("zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo veteran"))).toEqual(fromHex("ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"));
expect(Bip39.decode(new EnglishMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art"))).toEqual(fromHex("0000000000000000000000000000000000000000000000000000000000000000"));

@@ -205,12 +239,20 @@ expect(Bip39.decode(new EnglishMnemonic("legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth title"))).toEqual(fromHex("7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f"));

expect(Bip39.decode(new EnglishMnemonic("ozone drill grab fiber curtain grace pudding thank cruise elder eight picnic"))).toEqual(fromHex("9e885d952ad362caeb4efe34a8e91bd2"));
expect(Bip39.decode(new EnglishMnemonic("genre float grain whale smile exchange gravity typical frequent portion senior exchange drip obtain glow"))).toEqual(fromHex("610b25967cdcca9d59875f5cb50b0ea754333118"));
expect(Bip39.decode(new EnglishMnemonic("gravity machine north sort system female filter attitude volume fold club stay feature office ecology stable narrow fog"))).toEqual(fromHex("6610b25967cdcca9d59875f5cb50b0ea75433311869e930b"));
expect(Bip39.decode(new EnglishMnemonic("media soon raw edge embody palm reason pave right danger clay occur modify conduct ethics vessel journey toast cradle stuff laundry"))).toEqual(fromHex("8a79eaca2324873eacc50cb9c6eca8cc68ea5d936f98787c60c7ebc7"));
expect(Bip39.decode(new EnglishMnemonic("hamster diagram private dutch cause delay private meat slide toddler razor book happy fancy gospel tennis maple dilemma loan word shrug inflict delay length"))).toEqual(fromHex("68a79eaca2324873eacc50cb9c6eca8cc68ea5d936f98787c60c7ebc74e6ce7c"));
expect(Bip39.decode(new EnglishMnemonic("scheme spot photo card baby mountain device kick cradle pact join borrow"))).toEqual(fromHex("c0ba5a8e914111210f2bd131f3d5e08d"));
expect(Bip39.decode(new EnglishMnemonic("case gift common farm three harbor neutral vintage pretty degree health squeeze deposit maximum donor"))).toEqual(fromHex("232c38b9a99e10d2253fa1aa2739a8e9c3b112d0"));
expect(Bip39.decode(new EnglishMnemonic("horn tenant knee talent sponsor spell gate clip pulse soap slush warm silver nephew swap uncle crack brave"))).toEqual(fromHex("6d9be1ee6ebd27a258115aad99b7317b9c8d28b6d76431c3"));
expect(Bip39.decode(new EnglishMnemonic("empty afford arrange category border casual select meadow box rice public list firm echo harbor since feature organ someone depth bitter"))).toEqual(fromHex("49208c3112119c4770d44d1a9726b44135748bda464954338f3c1d91"));
expect(Bip39.decode(new EnglishMnemonic("panda eyebrow bullet gorilla call smoke muffin taste mesh discover soft ostrich alcohol speed nation flash devote level hobby quick inner drive ghost inside"))).toEqual(fromHex("9f6a2878b2520799a44ef18bc7df394e7061a224d2c33cd015b157d746869863"));
expect(Bip39.decode(new EnglishMnemonic("cat swing flag economy stadium alone churn speed unique patch report train"))).toEqual(fromHex("23db8160a31d3e0dca3688ed941adbf3"));
expect(Bip39.decode(new EnglishMnemonic("situate alter dynamic trial liar hockey toast ridge armed evolve shoe satoshi guilt huge grass"))).toEqual(fromHex("c9a0ed1374180cd8f8c5cc0bc9c719dfb67add59"));
expect(Bip39.decode(new EnglishMnemonic("light rule cinnamon wrap drastic word pride squirrel upgrade then income fatal apart sustain crack supply proud access"))).toEqual(fromHex("8197a4a47f0425faeaa69deebc05ca29c0a5b5cc76ceacc0"));
expect(Bip39.decode(new EnglishMnemonic("symptom eye business plunge palm safe nature legal stove addict grit agree chronic puzzle dream lawn vicious symbol useless donor eagle"))).toEqual(fromHex("dc8a247c5379f57c24dbfbd6a0699a8282875dd0a3f0f39b8fc020a4"));
expect(Bip39.decode(new EnglishMnemonic("all hour make first leader extend hole alien behind guard gospel lava path output census museum junior mass reopen famous sing advance salt reform"))).toEqual(fromHex("066dca1a2bb7e8a1db2832148ce9933eea0f3ac9548d793112d9a95c9407efad"));
expect(Bip39.decode(new EnglishMnemonic("vessel ladder alter error federal sibling chat ability sun glass valve picture"))).toEqual(fromHex("f30f8c1da665478f49b001d94c5fc452"));
expect(Bip39.decode(new EnglishMnemonic("upset shift velvet cruise wheel rival retire protect enrich gravity hair twenty sock walnut fat"))).toEqual(fromHex("ef38bbc81a5fa1756dfd654b0cc1a1759ce1ed94"));
expect(Bip39.decode(new EnglishMnemonic("scissors invite lock maple supreme raw rapid void congress muscle digital elegant little brisk hair mango congress clump"))).toEqual(fromHex("c10ec20dc3cd9f652c7fac2f1230f7a3c828389a14392f05"));
expect(Bip39.decode(new EnglishMnemonic("please fitness labor alter vintage food bike olive season speed digital sketch belt horn dutch avoid stomach pizza escape practice walnut"))).toEqual(fromHex("a66afdf103bf42b5858cd1c23a20f7e5114edb111880d634b53454bf"));
expect(Bip39.decode(new EnglishMnemonic("void come effort suffer camp survey warrior heavy shoot primary clutch crush open amazing screen patrol group space point ten exist slush involve unfold"))).toEqual(fromHex("f585c11aec520db57dd353c69554b21a89b20fb0650966fa0a9d6f74fd989d8f"));

@@ -217,0 +259,0 @@ });

@@ -21,4 +21,7 @@ import * as bip39 from "bip39";

const words = mnemonic.split(" ");
if (words.length !== 12 && words.length !== 18 && words.length !== 24) {
throw new Error(`Invalid word count in mnemonic (allowed: 12, 18, 24 got: ${words.length})`);
const allowedWordsLengths: ReadonlyArray<number> = [12, 15, 18, 21, 24];
if (allowedWordsLengths.indexOf(words.length) === -1) {
throw new Error(
`Invalid word count in mnemonic (allowed: ${allowedWordsLengths} got: ${words.length})`,
);
}

@@ -46,3 +49,5 @@

public static encode(entropy: Uint8Array): EnglishMnemonic {
if (entropy.length !== 16 && entropy.length !== 24 && entropy.length !== 32) {
const allowedEntropyLengths: ReadonlyArray<number> = [16, 20, 24, 28, 32];
if (allowedEntropyLengths.indexOf(entropy.length) === -1) {
throw new Error("invalid input length");

@@ -49,0 +54,0 @@ }

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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