Skip to content

Commit ecdc1db

Browse files
Weston SiegenthalerWeston Siegenthaler
Weston Siegenthaler
authored and
Weston Siegenthaler
committed
adding tests for new bip38 funtionality (only non-ec-multiplied keys)
1 parent 25dd8aa commit ecdc1db

File tree

2 files changed

+83
-13
lines changed

2 files changed

+83
-13
lines changed

test/index.html

+27-13
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,25 @@
11
<!DOCTYPE html>
22
<html>
33
<head>
4-
<title>BitcoinJS-lib Test Suite</title>
5-
<link rel="stylesheet" href="../vendor/qunit/qunit.css" type="text/css" media="screen">
6-
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
7-
<script type="text/javascript" src="../vendor/qunit/qunit.js"></script>
8-
<script type="text/javascript" src="../src/crypto-js/crypto.js"></script>
9-
<script type="text/javascript" src="../src/crypto-js/sha256.js"></script>
4+
<title>BitcoinJS-lib Test Suite</title>
5+
<link rel="stylesheet" href="../vendor/qunit/qunit.css" type="text/css" media="screen">
6+
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
7+
<script type="text/javascript" src="../vendor/qunit/qunit.js"></script>
8+
9+
<script type="text/javascript" src="../src/crypto-js/src/Crypto.js"></script>
10+
<script type="text/javascript" src="../src/crypto-js/src/CryptoMath.js"></script>
11+
<script type="text/javascript" src="../src/crypto-js/src/BlockModes.js"></script>
12+
<script type="text/javascript" src="../src/crypto-js/src/SHA256.js"></script>
13+
<script type="text/javascript" src="../src/crypto-js/src/SHA1.js"></script>
14+
<script type="text/javascript" src="../src/crypto-js/src/MD5.js"></script>
15+
<script type="text/javascript" src="../src/crypto-js/src/AES.js"></script>
16+
<script type="text/javascript" src="../src/crypto-js/src/PBKDF2.js"></script>
17+
<script type="text/javascript" src="../src/crypto-js/src/HMAC.js"></script>
18+
19+
<script type="text/javascript" src="../src/crypto-js-etc/ripemd160.js"></script>
20+
21+
<script type="text/javascript" src="../src/node-scrypt-js/scrypt.js"></script>
22+
1023
<script type="text/javascript" src="../src/jsbn/prng4.js"></script>
1124
<script type="text/javascript" src="../src/jsbn/rng.js"></script>
1225
<script type="text/javascript" src="../src/jsbn/jsbn.js"></script>
@@ -23,14 +36,15 @@
2336
<script type="text/javascript" src="../src/ecdsa.js"></script>
2437
<script type="text/javascript" src="../src/eckey.js"></script>
2538
<script type="text/javascript" src="../src/paillier.js"></script>
26-
<script type="text/javascript" src="test.js"></script>
39+
<script type="text/javascript" src="../src/bip38.js"></script>
40+
<script type="text/javascript" src="test.js"></script>
2741
</head>
2842
<body>
29-
<h1 id="qunit-header">BitcoinJS-lib Test Suite</h1>
30-
<h2 id="qunit-banner"></h2>
31-
<div id="qunit-testrunner-toolbar"></div>
32-
<h2 id="qunit-userAgent"></h2>
33-
<ol id="qunit-tests"></ol>
34-
<div id="qunit-fixture"></div>
43+
<h1 id="qunit-header">BitcoinJS-lib Test Suite</h1>
44+
<h2 id="qunit-banner"></h2>
45+
<div id="qunit-testrunner-toolbar"></div>
46+
<h2 id="qunit-userAgent"></h2>
47+
<ol id="qunit-tests"></ol>
48+
<div id="qunit-fixture"></div>
3549
</body>
3650
</html>

test/test.js

+56
Original file line numberDiff line numberDiff line change
@@ -110,3 +110,59 @@ test("Classes", function () {
110110
ok(Bitcoin.Paillier.PublicKey, "Bitcoin.Paillier.PublicKey");
111111
ok(Bitcoin.Paillier.PrivateKey, "Bitcoin.Paillier.PrivateKey");
112112
});
113+
114+
//
115+
// Testing BIP38 Key Encryption/Decryption
116+
// -----------------------------------------------------------------------------
117+
module("bip38");
118+
119+
test("Classes", function () {
120+
expect(1);
121+
ok(Bitcoin.BIP38, "Bitcoin.BIP38");
122+
});
123+
124+
test("No compression, no EC multiply #1", function () {
125+
expect(2);
126+
127+
var wif = "5KN7MzqK5wt2TP1fQCYyHBtDrXdJuXbUzm4A9rKAteGu3Qi5CVR";
128+
var pw = "TestingOneTwoThree";
129+
var encrypted = "6PRVWUbkzzsbcVac2qwfssoUJAN1Xhrg6bNk8J7Nzm5H7kxEbn2Nh2ZoGg";
130+
131+
equal(new Bitcoin.ECKey(wif).getEncryptedFormat(pw), encrypted, "Key encrypted successfully.");
132+
equal(Bitcoin.ECKey.decodeEncryptedFormat(encrypted, pw).getWalletImportFormat(), wif, "Key decrypted successfully.");
133+
});
134+
135+
test("No compression, no EC multiply #2", function () {
136+
expect(2);
137+
138+
var wif = "5HtasZ6ofTHP6HCwTqTkLDuLQisYPah7aUnSKfC7h4hMUVw2gi5";
139+
var pw = "Satoshi";
140+
var encrypted = "6PRNFFkZc2NZ6dJqFfhRoFNMR9Lnyj7dYGrzdgXXVMXcxoKTePPX1dWByq";
141+
142+
equal(new Bitcoin.ECKey(wif).getEncryptedFormat(pw), encrypted, "Key encrypted successfully.");
143+
equal(Bitcoin.ECKey.decodeEncryptedFormat(encrypted, pw).getWalletImportFormat(), wif, "Key decrypted successfully.");
144+
});
145+
146+
147+
test("Compression, no EC multiply #1", function () {
148+
expect(2);
149+
150+
var wif = "L44B5gGEpqEDRS9vVPz7QT35jcBG2r3CZwSwQ4fCewXAhAhqGVpP";
151+
var pw = "TestingOneTwoThree";
152+
var encrypted = "6PYNKZ1EAgYgmQfmNVamxyXVWHzK5s6DGhwP4J5o44cvXdoY7sRzhtpUeo";
153+
154+
equal(new Bitcoin.ECKey(wif).getEncryptedFormat(pw), encrypted, "Key encrypted successfully.");
155+
equal(Bitcoin.ECKey.decodeEncryptedFormat(encrypted, pw).getWalletImportFormat(), wif, "Key decrypted successfully.");
156+
});
157+
158+
test("Compression, no EC multiply #2", function () {
159+
expect(2);
160+
161+
var wif = "KwYgW8gcxj1JWJXhPSu4Fqwzfhp5Yfi42mdYmMa4XqK7NJxXUSK7";
162+
var pw = "Satoshi";
163+
var encrypted = "6PYLtMnXvfG3oJde97zRyLYFZCYizPU5T3LwgdYJz1fRhh16bU7u6PPmY7";
164+
165+
equal(new Bitcoin.ECKey(wif).getEncryptedFormat(pw), encrypted, "Key encrypted successfully.");
166+
equal(Bitcoin.ECKey.decodeEncryptedFormat(encrypted, pw).getWalletImportFormat(), wif, "Key decrypted successfully.");
167+
});
168+

0 commit comments

Comments
 (0)