@shapeshiftoss/hdwallet-native-vault 1.50.8 → 1.50.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/argonBenchmark.js +1 -1
- package/dist/argonBenchmark.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/mapVault.js +13 -9
- package/dist/mapVault.js.map +1 -1
- package/dist/rawVault.js +43 -39
- package/dist/rawVault.js.map +1 -1
- package/dist/test/mockVault.skip.d.ts +1 -1
- package/dist/test/mockVault.skip.d.ts.map +1 -1
- package/dist/test/mockVault.skip.js +19 -15
- package/dist/test/mockVault.skip.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/util.d.ts +1 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +5 -1
- package/dist/util.js.map +1 -1
- package/dist/vault.d.ts +2 -2
- package/dist/vault.d.ts.map +1 -1
- package/dist/vault.js +41 -37
- package/dist/vault.js.map +1 -1
- package/package.json +5 -9
- package/dist/argonBenchmark.test.d.ts +0 -2
- package/dist/argonBenchmark.test.d.ts.map +0 -1
- package/dist/argonBenchmark.test.js +0 -62
- package/dist/argonBenchmark.test.js.map +0 -1
- package/dist/deterministicGetRandomValues.test.d.ts +0 -3
- package/dist/deterministicGetRandomValues.test.d.ts.map +0 -1
- package/dist/deterministicGetRandomValues.test.js +0 -53
- package/dist/deterministicGetRandomValues.test.js.map +0 -1
- package/dist/index.test.d.ts +0 -2
- package/dist/index.test.d.ts.map +0 -1
- package/dist/index.test.js +0 -216
- package/dist/index.test.js.map +0 -1
package/dist/vault.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -49,23 +53,6 @@ const rawVault_1 = require("./rawVault");
|
|
|
49
53
|
const util_1 = require("./util");
|
|
50
54
|
ta.assert();
|
|
51
55
|
class Vault extends mapVault_1.MapVault {
|
|
52
|
-
constructor(rawVault) {
|
|
53
|
-
super(rawVault);
|
|
54
|
-
_Vault_instances.add(this);
|
|
55
|
-
//#endregion
|
|
56
|
-
_Vault_shieldingKey.set(this, (() => __awaiter(this, void 0, void 0, function* () {
|
|
57
|
-
const out = (yield util_1.crypto).subtle.generateKey({
|
|
58
|
-
name: "AES-KW",
|
|
59
|
-
length: 256,
|
|
60
|
-
}, false, ["wrapKey", "unwrapKey"]);
|
|
61
|
-
return util_1.revocable(out, this.addRevoker.bind(this));
|
|
62
|
-
}))());
|
|
63
|
-
_Vault_privateContents.set(this, void 0);
|
|
64
|
-
_Vault_wrapperRevokers.set(this, new Map());
|
|
65
|
-
_Vault_sealed.set(this, false);
|
|
66
|
-
__classPrivateFieldSet(this, _Vault_privateContents, util_1.revocable(new Map(), (x) => this.addRevoker(x)), "f");
|
|
67
|
-
this.addRevoker(() => this.clear());
|
|
68
|
-
}
|
|
69
56
|
//#region static
|
|
70
57
|
static prepare(params) {
|
|
71
58
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -74,13 +61,13 @@ class Vault extends mapVault_1.MapVault {
|
|
|
74
61
|
}
|
|
75
62
|
static create(password, sealed = true) {
|
|
76
63
|
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
-
return yield
|
|
64
|
+
return yield _a.open(undefined, password, sealed);
|
|
78
65
|
});
|
|
79
66
|
}
|
|
80
67
|
static open(id, password, sealed = true) {
|
|
81
68
|
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
-
yield
|
|
83
|
-
const out = new
|
|
69
|
+
yield _a.prepare();
|
|
70
|
+
const out = new _a(yield rawVault_1.RawVault.open(id, password));
|
|
84
71
|
if (sealed)
|
|
85
72
|
out.seal();
|
|
86
73
|
if (id !== undefined && password !== undefined)
|
|
@@ -89,25 +76,42 @@ class Vault extends mapVault_1.MapVault {
|
|
|
89
76
|
});
|
|
90
77
|
}
|
|
91
78
|
static extensionRegistrationComplete() {
|
|
92
|
-
__classPrivateFieldSet(
|
|
79
|
+
__classPrivateFieldSet(_a, _a, true, "f", _Vault_extensionRegistrationComplete);
|
|
93
80
|
}
|
|
94
81
|
static registerValueWrapper(key, valueWrapper) {
|
|
95
|
-
if (__classPrivateFieldGet(
|
|
82
|
+
if (__classPrivateFieldGet(_a, _a, "f", _Vault_extensionRegistrationComplete))
|
|
96
83
|
throw new Error(`can't register value wrapper after registration is complete`);
|
|
97
|
-
if (!__classPrivateFieldGet(
|
|
84
|
+
if (!__classPrivateFieldGet(_a, _a, "m", _Vault_isPrivateKey).call(_a, key))
|
|
98
85
|
throw new TypeError(`can't set value wrapper for non-private key '${key}'`);
|
|
99
|
-
if (__classPrivateFieldGet(
|
|
86
|
+
if (__classPrivateFieldGet(_a, _a, "f", _Vault_valueWrappers).has(key))
|
|
100
87
|
throw new Error(`can't overwrite previously-set value wrapper for key '${key}'`);
|
|
101
|
-
__classPrivateFieldGet(
|
|
88
|
+
__classPrivateFieldGet(_a, _a, "f", _Vault_valueWrappers).set(key, valueWrapper);
|
|
102
89
|
}
|
|
103
90
|
static registerValueTransformer(key, valueTransformer) {
|
|
104
|
-
if (__classPrivateFieldGet(
|
|
91
|
+
if (__classPrivateFieldGet(_a, _a, "f", _Vault_extensionRegistrationComplete))
|
|
105
92
|
throw new Error(`can't register value transformer after registration is complete`);
|
|
106
|
-
if (!__classPrivateFieldGet(
|
|
93
|
+
if (!__classPrivateFieldGet(_a, _a, "m", _Vault_isPrivateKey).call(_a, key))
|
|
107
94
|
throw new TypeError(`can't set value transformer for non-private key '${key}'`);
|
|
108
|
-
if (__classPrivateFieldGet(
|
|
95
|
+
if (__classPrivateFieldGet(_a, _a, "f", _Vault_valueTransformers).has(key))
|
|
109
96
|
throw new Error(`can't overwrite previously-set value transformer for key '${key}'`);
|
|
110
|
-
__classPrivateFieldGet(
|
|
97
|
+
__classPrivateFieldGet(_a, _a, "f", _Vault_valueTransformers).set(key, valueTransformer);
|
|
98
|
+
}
|
|
99
|
+
constructor(rawVault) {
|
|
100
|
+
super(rawVault);
|
|
101
|
+
_Vault_instances.add(this);
|
|
102
|
+
//#endregion
|
|
103
|
+
_Vault_shieldingKey.set(this, (() => __awaiter(this, void 0, void 0, function* () {
|
|
104
|
+
const out = (yield util_1.crypto).subtle.generateKey({
|
|
105
|
+
name: "AES-KW",
|
|
106
|
+
length: 256,
|
|
107
|
+
}, false, ["wrapKey", "unwrapKey"]);
|
|
108
|
+
return (0, util_1.revocable)(out, this.addRevoker.bind(this));
|
|
109
|
+
}))());
|
|
110
|
+
_Vault_privateContents.set(this, void 0);
|
|
111
|
+
_Vault_wrapperRevokers.set(this, new Map());
|
|
112
|
+
_Vault_sealed.set(this, false);
|
|
113
|
+
__classPrivateFieldSet(this, _Vault_privateContents, (0, util_1.revocable)(new Map(), (x) => this.addRevoker(x)), "f");
|
|
114
|
+
this.addRevoker(() => this.clear());
|
|
111
115
|
}
|
|
112
116
|
clear() {
|
|
113
117
|
__classPrivateFieldGet(this, _Vault_privateContents, "f").forEach((x) => __classPrivateFieldGet(this, _Vault_instances, "m", _Vault_revokeWrapperForValue).call(this, x));
|
|
@@ -121,8 +125,8 @@ class Vault extends mapVault_1.MapVault {
|
|
|
121
125
|
return super.delete(key);
|
|
122
126
|
}
|
|
123
127
|
set(key, value) {
|
|
124
|
-
value = __classPrivateFieldGet(
|
|
125
|
-
if (!__classPrivateFieldGet(
|
|
128
|
+
value = __classPrivateFieldGet(_a, _a, "m", _Vault_transformValue).call(_a, key, value, this.addRevoker.bind(this));
|
|
129
|
+
if (!__classPrivateFieldGet(_a, _a, "m", _Vault_isPrivateKey).call(_a, key))
|
|
126
130
|
return super.set(key, value);
|
|
127
131
|
__classPrivateFieldGet(this, _Vault_instances, "m", _Vault_revokeWrapperForKey).call(this, key);
|
|
128
132
|
__classPrivateFieldGet(this, _Vault_privateContents, "f").set(key, (() => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -134,9 +138,9 @@ class Vault extends mapVault_1.MapVault {
|
|
|
134
138
|
})
|
|
135
139
|
.encrypt(yield __classPrivateFieldGet(this, _Vault_shieldingKey, "f"));
|
|
136
140
|
}))());
|
|
137
|
-
const wrapperRevoker = new (util_1.Revocable(class {
|
|
141
|
+
const wrapperRevoker = new ((0, util_1.Revocable)(class {
|
|
138
142
|
}))();
|
|
139
|
-
const wrapper = __classPrivateFieldGet(
|
|
143
|
+
const wrapper = __classPrivateFieldGet(_a, _a, "m", _Vault_wrapPrivateValue).call(_a, key, value, (x) => wrapperRevoker.addRevoker(x));
|
|
140
144
|
__classPrivateFieldGet(this, _Vault_wrapperRevokers, "f").set(key, () => wrapperRevoker.revoke());
|
|
141
145
|
return super.set(key, wrapper);
|
|
142
146
|
}
|
|
@@ -171,7 +175,7 @@ class Vault extends mapVault_1.MapVault {
|
|
|
171
175
|
save: { get: () => super.save }
|
|
172
176
|
});
|
|
173
177
|
return __awaiter(this, void 0, void 0, function* () {
|
|
174
|
-
const unwrappedRevoker = new (util_1.Revocable(class {
|
|
178
|
+
const unwrappedRevoker = new ((0, util_1.Revocable)(class {
|
|
175
179
|
}))();
|
|
176
180
|
const unwrapped = __classPrivateFieldGet(this, _Vault_instances, "m", _Vault_unwrap).call(this, (x) => unwrappedRevoker.addRevoker(x));
|
|
177
181
|
yield _super.save.call(this, () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -205,7 +209,7 @@ _a = Vault, _Vault_shieldingKey = new WeakMap(), _Vault_privateContents = new We
|
|
|
205
209
|
}, _Vault_revokeWrapperForKey = function _Vault_revokeWrapperForKey(key) {
|
|
206
210
|
__classPrivateFieldGet(this, _Vault_instances, "m", _Vault_revokeWrapperForValue).call(this, __classPrivateFieldGet(this, _Vault_privateContents, "f").get(key));
|
|
207
211
|
}, _Vault_getUnwrapped = function _Vault_getUnwrapped(key) {
|
|
208
|
-
if (!__classPrivateFieldGet(
|
|
212
|
+
if (!__classPrivateFieldGet(_a, _a, "m", _Vault_isPrivateKey).call(_a, key))
|
|
209
213
|
return this.get(key);
|
|
210
214
|
const jwe = __classPrivateFieldGet(this, _Vault_privateContents, "f").get(key);
|
|
211
215
|
if (!jwe)
|
|
@@ -219,7 +223,7 @@ _a = Vault, _Vault_shieldingKey = new WeakMap(), _Vault_privateContents = new We
|
|
|
219
223
|
return out;
|
|
220
224
|
}))();
|
|
221
225
|
}, _Vault_unwrap = function _Vault_unwrap(addRevoker = (x) => this.addRevoker(x)) {
|
|
222
|
-
return util_1.shadowedMap(this, (x) => __classPrivateFieldGet(this, _Vault_instances, "m", _Vault_getUnwrapped).call(this, x), addRevoker);
|
|
226
|
+
return (0, util_1.shadowedMap)(this, (x) => __classPrivateFieldGet(this, _Vault_instances, "m", _Vault_getUnwrapped).call(this, x), addRevoker);
|
|
223
227
|
};
|
|
224
228
|
_Vault_extensionRegistrationComplete = { value: false };
|
|
225
229
|
_Vault_valueWrappers = { value: new Map() };
|
package/dist/vault.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../src/vault.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../src/vault.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapeshiftoss/hdwallet-native-vault",
|
|
3
|
-
"version": "1.50.
|
|
3
|
+
"version": "1.50.9",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
"types": "dist/index.d.ts",
|
|
11
11
|
"scripts": {
|
|
12
12
|
"build": "tsc --build",
|
|
13
|
-
"clean": "rm -rf dist tsconfig.tsbuildinfo",
|
|
13
|
+
"clean": "rm -rf dist node_modules tsconfig.tsbuildinfo",
|
|
14
14
|
"prepublishOnly": "yarn clean && yarn build"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@shapeshiftoss/hdwallet-native": "^1.50.
|
|
17
|
+
"@shapeshiftoss/hdwallet-native": "^1.50.9",
|
|
18
18
|
"bip39": "^3.0.4",
|
|
19
19
|
"hash-wasm": "^4.9.0",
|
|
20
20
|
"idb-keyval": "^6.0.3",
|
|
@@ -26,11 +26,7 @@
|
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/tiny-secp256k1": "^1.0.0",
|
|
29
|
-
"fake-indexeddb": "^3.1.7"
|
|
30
|
-
"jest": "^26.6.3",
|
|
31
|
-
"jest-environment-jsdom": "^25.5.0",
|
|
32
|
-
"ts-jest": "^26.5.5",
|
|
33
|
-
"typescript": "^4.3.2"
|
|
29
|
+
"fake-indexeddb": "^3.1.7"
|
|
34
30
|
},
|
|
35
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "a7390af4dea957596394910f6b85112311868dbd"
|
|
36
32
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"argonBenchmark.test.d.ts","sourceRoot":"","sources":["../src/argonBenchmark.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const argonBenchmark_1 = require("./argonBenchmark");
|
|
13
|
-
const deterministicGetRandomValues_test_1 = require("./deterministicGetRandomValues.test");
|
|
14
|
-
const util_1 = require("./util");
|
|
15
|
-
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
16
|
-
const performance = require("perf_hooks").performance;
|
|
17
|
-
jest.setTimeout(30 * 1000);
|
|
18
|
-
describe("argonBenchmark", () => {
|
|
19
|
-
beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
-
const realCrypto = require("crypto").webcrypto;
|
|
21
|
-
util_1.setCrypto({
|
|
22
|
-
subtle: realCrypto.subtle,
|
|
23
|
-
getRandomValues: yield deterministicGetRandomValues_test_1.deterministicGetRandomValues(realCrypto),
|
|
24
|
-
});
|
|
25
|
-
util_1.setPerformance(performance);
|
|
26
|
-
}));
|
|
27
|
-
describe("customNow", () => {
|
|
28
|
-
it("should work", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
29
|
-
const now = argonBenchmark_1.customNow(performance.now.bind(performance), 10, 0.05);
|
|
30
|
-
const start = now();
|
|
31
|
-
yield delay(100);
|
|
32
|
-
const duration = now() - start;
|
|
33
|
-
expect(duration).toBeGreaterThan(50);
|
|
34
|
-
// This is performance-dependent
|
|
35
|
-
// expect(duration).toBeLessThan(200)
|
|
36
|
-
}));
|
|
37
|
-
});
|
|
38
|
-
describe("argonBenchmark", () => {
|
|
39
|
-
it("should run correctly", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
40
|
-
const results = yield argonBenchmark_1.argonBenchmark(32 * 1024, 1000, {
|
|
41
|
-
measureError: true,
|
|
42
|
-
// jitter: 0.10,
|
|
43
|
-
// roundMs: 100,
|
|
44
|
-
now: performance.now.bind(performance),
|
|
45
|
-
});
|
|
46
|
-
console.info(results);
|
|
47
|
-
expect(results).toBeTruthy();
|
|
48
|
-
expect(Number.isSafeInteger(results.iterations)).toBeTruthy();
|
|
49
|
-
expect(results.iterations).toBeGreaterThanOrEqual(1);
|
|
50
|
-
expect(results.error).toBeGreaterThanOrEqual(0);
|
|
51
|
-
expect(results.bits).toBeGreaterThanOrEqual(0);
|
|
52
|
-
// These are performance-dependent
|
|
53
|
-
// expect(results.bits).toBeGreaterThan(5)
|
|
54
|
-
// expect(results.bits).toBeLessThan(15)
|
|
55
|
-
expect(results.durations.overall).toBeGreaterThanOrEqual(0);
|
|
56
|
-
expect(results.durations.setup).toBeGreaterThanOrEqual(0);
|
|
57
|
-
expect(results.durations.warmup).toBeGreaterThanOrEqual(0);
|
|
58
|
-
expect(results.durations.msPerIteration).toBeGreaterThan(0);
|
|
59
|
-
}));
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
//# sourceMappingURL=argonBenchmark.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"argonBenchmark.test.js","sourceRoot":"","sources":["../src/argonBenchmark.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deterministicGetRandomValues.test.d.ts","sourceRoot":"","sources":["../src/deterministicGetRandomValues.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAItC,wBAAsB,4BAA4B,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,GAAE,UAA+B,yEAgC5G"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.deterministicGetRandomValues = void 0;
|
|
13
|
-
// (This is also used in index.test.ts)
|
|
14
|
-
// eslint-disable-next-line jest/no-export
|
|
15
|
-
function deterministicGetRandomValues(crypto, seed = new Uint8Array(32)) {
|
|
16
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
17
|
-
const rngSeed = yield crypto.subtle.importKey("raw", seed, {
|
|
18
|
-
name: "HKDF",
|
|
19
|
-
}, false, ["deriveBits"]);
|
|
20
|
-
const rngCounter = new Uint32Array(1);
|
|
21
|
-
return function getRandomValues(array) {
|
|
22
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
rngCounter[0]++;
|
|
24
|
-
if (array === null)
|
|
25
|
-
return array;
|
|
26
|
-
const arrayBuf = Buffer.from(array.buffer, array.byteOffset, array.byteLength);
|
|
27
|
-
const randomBuf = Buffer.from(yield crypto.subtle.deriveBits({
|
|
28
|
-
name: "HKDF",
|
|
29
|
-
hash: "SHA-256",
|
|
30
|
-
salt: new Uint8Array(),
|
|
31
|
-
info: rngCounter,
|
|
32
|
-
}, rngSeed, array.byteLength * 8));
|
|
33
|
-
if (arrayBuf.byteLength !== randomBuf.byteLength)
|
|
34
|
-
throw new Error("rng length mismatch");
|
|
35
|
-
arrayBuf.fill(randomBuf);
|
|
36
|
-
return array;
|
|
37
|
-
});
|
|
38
|
-
};
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
exports.deterministicGetRandomValues = deterministicGetRandomValues;
|
|
42
|
-
describe("deterministicGetRandomValues", () => {
|
|
43
|
-
it("should return deterministic values", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
44
|
-
const getRandomValues = yield deterministicGetRandomValues(require("crypto").webcrypto);
|
|
45
|
-
expect(yield (yield getRandomValues(Buffer.alloc(16))).toString("hex")).toMatchInlineSnapshot(`"8f9c0a54715732f707f1361325aaf80a"`);
|
|
46
|
-
expect(yield (yield getRandomValues(Buffer.alloc(16))).toString("hex")).toMatchInlineSnapshot(`"6e62a809bbbbb97532704ba8e607fa4f"`);
|
|
47
|
-
expect(yield (yield getRandomValues(Buffer.alloc(16))).toString("hex")).toMatchInlineSnapshot(`"5f22ec6a1e7d693101db8dfcc6333434"`);
|
|
48
|
-
expect(yield (yield getRandomValues(Buffer.alloc(32))).toString("hex")).toMatchInlineSnapshot(`"2e9a42cbe2c0e8922623c9d54617df2a7632fa893092a8c2f9c2ed0ac6254500"`);
|
|
49
|
-
expect(yield (yield getRandomValues(Buffer.alloc(32))).toString("hex")).toMatchInlineSnapshot(`"d074ce162d9fc9b98881ec2367381056ecaac7a2445c9c981b3a3500175460b6"`);
|
|
50
|
-
expect(yield (yield getRandomValues(Buffer.alloc(32))).toString("hex")).toMatchInlineSnapshot(`"42db59172fe5e5dda7afaebc3f1cd8e41bf38a40c77fa45e3aa1cc11f83e0335"`);
|
|
51
|
-
}));
|
|
52
|
-
});
|
|
53
|
-
//# sourceMappingURL=deterministicGetRandomValues.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deterministicGetRandomValues.test.js","sourceRoot":"","sources":["../src/deterministicGetRandomValues.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.test.d.ts
DELETED
package/dist/index.test.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
|
package/dist/index.test.js
DELETED
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
22
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
23
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
24
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
25
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
26
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
27
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
-
const native = __importStar(require("@shapeshiftoss/hdwallet-native"));
|
|
32
|
-
const idb = __importStar(require("idb-keyval"));
|
|
33
|
-
// import * as jose from "jose";
|
|
34
|
-
const uuid = __importStar(require("uuid"));
|
|
35
|
-
const _1 = require(".");
|
|
36
|
-
const deterministicGetRandomValues_test_1 = require("./deterministicGetRandomValues.test");
|
|
37
|
-
const rawVault_1 = require("./rawVault");
|
|
38
|
-
const mockVault_skip_1 = require("./test/mockVault.skip");
|
|
39
|
-
const util_1 = require("./util");
|
|
40
|
-
const keyStore = idb.createStore(util_1.keyStoreUUID, "keyval");
|
|
41
|
-
const vaultStore = idb.createStore(util_1.vaultStoreUUID, "keyval");
|
|
42
|
-
jest.setTimeout(30 * 1000);
|
|
43
|
-
const realCrypto = require("crypto").webcrypto;
|
|
44
|
-
let mockGetRandomValues;
|
|
45
|
-
function resetGetRandomValues() {
|
|
46
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
-
mockGetRandomValues = yield deterministicGetRandomValues_test_1.deterministicGetRandomValues(realCrypto);
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
function thereCanBeOnlyOne(factory, ...args) {
|
|
51
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
-
const ids = yield factory.list();
|
|
53
|
-
if (ids.length === 0)
|
|
54
|
-
throw new Error("can't find a vault");
|
|
55
|
-
if (ids.length > 1)
|
|
56
|
-
throw new Error(`expected a single vault; found ${ids.length}: ${ids}`);
|
|
57
|
-
return yield factory.open(ids[0], ...args);
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
let prepareOnce;
|
|
61
|
-
const preparedOnce = new Promise((resolve) => (prepareOnce = resolve)).then(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
62
|
-
yield resetGetRandomValues();
|
|
63
|
-
yield rawVault_1.RawVault.prepare({
|
|
64
|
-
crypto: {
|
|
65
|
-
subtle: realCrypto.subtle,
|
|
66
|
-
getRandomValues(array) {
|
|
67
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
68
|
-
return yield mockGetRandomValues(array);
|
|
69
|
-
});
|
|
70
|
-
},
|
|
71
|
-
},
|
|
72
|
-
performance: require("perf_hooks").performance,
|
|
73
|
-
});
|
|
74
|
-
yield rawVault_1.RawVault.defaultArgonParams;
|
|
75
|
-
}));
|
|
76
|
-
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
77
|
-
function testVaultImpl(name, Vault) {
|
|
78
|
-
// eslint-disable-next-line jest/valid-title
|
|
79
|
-
describe(name, () => {
|
|
80
|
-
beforeAll(() => __awaiter(this, void 0, void 0, function* () {
|
|
81
|
-
prepareOnce();
|
|
82
|
-
yield preparedOnce;
|
|
83
|
-
yield Vault.prepare();
|
|
84
|
-
for (const id of yield Vault.list())
|
|
85
|
-
yield Vault.delete(id);
|
|
86
|
-
}));
|
|
87
|
-
beforeEach(() => __awaiter(this, void 0, void 0, function* () {
|
|
88
|
-
yield resetGetRandomValues();
|
|
89
|
-
}));
|
|
90
|
-
it("should allow repeated calls to prepare() with no options", () => __awaiter(this, void 0, void 0, function* () {
|
|
91
|
-
yield expect(Vault.prepare()).resolves.not.toThrow();
|
|
92
|
-
yield expect(Vault.prepare()).resolves.not.toThrow();
|
|
93
|
-
}));
|
|
94
|
-
it("should create a new vault", () => __awaiter(this, void 0, void 0, function* () {
|
|
95
|
-
expect((yield Vault.list()).length).toBe(0);
|
|
96
|
-
const vault = yield Vault.create();
|
|
97
|
-
yield vault.setPassword("foobar");
|
|
98
|
-
vault.set("foo", Promise.resolve("bar"));
|
|
99
|
-
vault.meta.set("name", "default");
|
|
100
|
-
expect(vault.meta.get("name")).toBe("default");
|
|
101
|
-
yield vault.save();
|
|
102
|
-
expect((yield Vault.list()).length).toBe(1);
|
|
103
|
-
expect(vault.meta.get("name")).toBe("default");
|
|
104
|
-
console.debug("keyStore", yield idb.entries(keyStore));
|
|
105
|
-
console.debug("vaultStore", yield idb.entries(vaultStore));
|
|
106
|
-
}));
|
|
107
|
-
it("should open a vault", () => __awaiter(this, void 0, void 0, function* () {
|
|
108
|
-
const vaultIDs = yield Vault.list();
|
|
109
|
-
expect(vaultIDs.length).toBe(1);
|
|
110
|
-
const vault = yield Vault.open(vaultIDs[0], "foobar");
|
|
111
|
-
// console.debug(jose.decodeProtectedHeader((await idb.get(vaultIDs[0], vaultStore))!));
|
|
112
|
-
// console.debug("entries", vault.entries());
|
|
113
|
-
expect(yield vault.get("foo")).toBe("bar");
|
|
114
|
-
expect(uuid.validate(vault.id)).toBe(true);
|
|
115
|
-
expect(vault.meta.size).toBe(1);
|
|
116
|
-
expect(vault.meta.get("name")).toBe("default");
|
|
117
|
-
}));
|
|
118
|
-
it("should store a mnemonic", () => __awaiter(this, void 0, void 0, function* () {
|
|
119
|
-
const vault = yield thereCanBeOnlyOne(Vault, "foobar");
|
|
120
|
-
vault.set("#mnemonic", Promise.resolve("all all all all all all all all all all all all"));
|
|
121
|
-
yield vault.save();
|
|
122
|
-
const mnemonic = (yield vault.get("#mnemonic"));
|
|
123
|
-
expect(mnemonic).toBeInstanceOf(native.crypto.Isolation.Engines.Default.BIP39.Mnemonic);
|
|
124
|
-
expect(yield mnemonic
|
|
125
|
-
.toSeed()
|
|
126
|
-
.then((x) => x.toMasterKey())
|
|
127
|
-
.then((x) => x.getPublicKey())
|
|
128
|
-
.then((x) => Buffer.from(x).toString("hex"))).toMatchInlineSnapshot(`"03e3b30e8c21923752a408242e069941fedbaef7db7161f7e2c5f3fdafe7e25ddc"`);
|
|
129
|
-
}));
|
|
130
|
-
it("should retrieve the mnemonic", () => __awaiter(this, void 0, void 0, function* () {
|
|
131
|
-
const vaultIDs = yield Vault.list();
|
|
132
|
-
expect(vaultIDs.length).toBe(1);
|
|
133
|
-
const vault = yield Vault.open(vaultIDs[0], "foobar");
|
|
134
|
-
const mnemonic = (yield vault.get("#mnemonic"));
|
|
135
|
-
expect(mnemonic).toBeInstanceOf(native.crypto.Isolation.Engines.Default.BIP39.Mnemonic);
|
|
136
|
-
expect(yield mnemonic
|
|
137
|
-
.toSeed()
|
|
138
|
-
.then((x) => x.toMasterKey())
|
|
139
|
-
.then((x) => x.getPublicKey())
|
|
140
|
-
.then((x) => Buffer.from(x).toString("hex"))).toMatchInlineSnapshot(`"03e3b30e8c21923752a408242e069941fedbaef7db7161f7e2c5f3fdafe7e25ddc"`);
|
|
141
|
-
}));
|
|
142
|
-
it("should store metadata", () => __awaiter(this, void 0, void 0, function* () {
|
|
143
|
-
const vault = yield thereCanBeOnlyOne(Vault, "foobar");
|
|
144
|
-
vault.meta.set("bar", "baz");
|
|
145
|
-
expect(vault.meta.get("bar")).toBe("baz");
|
|
146
|
-
yield vault.save();
|
|
147
|
-
}));
|
|
148
|
-
it("should retreive metadata from the vault instance", () => __awaiter(this, void 0, void 0, function* () {
|
|
149
|
-
const vault = yield thereCanBeOnlyOne(Vault, "foobar");
|
|
150
|
-
expect(vault.meta.get("bar")).toBe("baz");
|
|
151
|
-
}));
|
|
152
|
-
it("should retreive metadata with the static method", () => __awaiter(this, void 0, void 0, function* () {
|
|
153
|
-
var _a;
|
|
154
|
-
const id = (yield thereCanBeOnlyOne(Vault)).id;
|
|
155
|
-
expect((_a = (yield Vault.meta(id))) === null || _a === void 0 ? void 0 : _a.get("bar")).toBe("baz");
|
|
156
|
-
}));
|
|
157
|
-
describe("ISealable", () => {
|
|
158
|
-
it("should be unwrappable before being sealed", () => __awaiter(this, void 0, void 0, function* () {
|
|
159
|
-
const vault = yield thereCanBeOnlyOne(Vault, "foobar", false);
|
|
160
|
-
expect(vault.sealed).toBe(false);
|
|
161
|
-
const unwrapped = vault.unwrap();
|
|
162
|
-
expect(yield unwrapped.get("#mnemonic")).toBe("all all all all all all all all all all all all");
|
|
163
|
-
}));
|
|
164
|
-
describe("the unwrapped vault", () => {
|
|
165
|
-
it("should expose the mnemonic via entries()", () => __awaiter(this, void 0, void 0, function* () {
|
|
166
|
-
const vault = yield thereCanBeOnlyOne(Vault, "foobar", false);
|
|
167
|
-
const unwrapped = vault.unwrap();
|
|
168
|
-
const entries = yield Promise.all(Array.from(unwrapped.entries()).map(([k, v]) => __awaiter(this, void 0, void 0, function* () { return [k, yield v]; })));
|
|
169
|
-
expect(entries).toContainEqual(["#mnemonic", "all all all all all all all all all all all all"]);
|
|
170
|
-
}));
|
|
171
|
-
it("should expose the mnemonic via values()", () => __awaiter(this, void 0, void 0, function* () {
|
|
172
|
-
const vault = yield thereCanBeOnlyOne(Vault, "foobar", false);
|
|
173
|
-
const unwrapped = vault.unwrap();
|
|
174
|
-
const values = yield Promise.all(Array.from(unwrapped.values()));
|
|
175
|
-
expect(values).toContain("all all all all all all all all all all all all");
|
|
176
|
-
}));
|
|
177
|
-
});
|
|
178
|
-
it("should not be unwrappable after being sealed", () => __awaiter(this, void 0, void 0, function* () {
|
|
179
|
-
const vault = yield thereCanBeOnlyOne(Vault, "foobar", false);
|
|
180
|
-
expect(vault.sealed).toBe(false);
|
|
181
|
-
vault.seal();
|
|
182
|
-
expect(vault.sealed).toBe(true);
|
|
183
|
-
expect(() => vault.unwrap()).toThrowErrorMatchingInlineSnapshot(`"can't unwrap a sealed vault"`);
|
|
184
|
-
}));
|
|
185
|
-
});
|
|
186
|
-
it("should generate a fresh, random mnemonic when provided with the GENERATE_MNEMONIC magic", () => __awaiter(this, void 0, void 0, function* () {
|
|
187
|
-
const vault = yield Vault.create("foobar", false);
|
|
188
|
-
expect(vault.id).toMatchInlineSnapshot(`"8f9c0a54-7157-42f7-87f1-361325aaf80a"`);
|
|
189
|
-
vault.set("#mnemonic", Promise.resolve(_1.GENERATE_MNEMONIC));
|
|
190
|
-
yield vault.save();
|
|
191
|
-
const mnemonic = (yield vault.get("#mnemonic"));
|
|
192
|
-
expect(mnemonic).toBeInstanceOf(native.crypto.Isolation.Engines.Default.BIP39.Mnemonic);
|
|
193
|
-
expect(yield mnemonic
|
|
194
|
-
.toSeed()
|
|
195
|
-
.then((x) => x.toMasterKey())
|
|
196
|
-
.then((x) => x.getPublicKey())
|
|
197
|
-
.then((x) => Buffer.from(x).toString("hex"))).toMatchInlineSnapshot(`"02576bde4c55b05886e56eeeeff304006352f935b6dfc1c409f7eae521dbc5558e"`);
|
|
198
|
-
const unwrappedMnemonic = (yield vault.unwrap().get("#mnemonic"));
|
|
199
|
-
expect(unwrappedMnemonic).toMatchInlineSnapshot(`"hover best act jazz romance ritual six annual pottery coral write paddle"`);
|
|
200
|
-
}));
|
|
201
|
-
it("should retrieve the random mnemonic generated by the GENERATE_MNEMONIC magic", () => __awaiter(this, void 0, void 0, function* () {
|
|
202
|
-
const vault = yield Vault.open("8f9c0a54-7157-42f7-87f1-361325aaf80a", "foobar", false);
|
|
203
|
-
const mnemonic = (yield vault.get("#mnemonic"));
|
|
204
|
-
expect(mnemonic).toBeInstanceOf(native.crypto.Isolation.Engines.Default.BIP39.Mnemonic);
|
|
205
|
-
expect(yield mnemonic
|
|
206
|
-
.toSeed()
|
|
207
|
-
.then((x) => x.toMasterKey())
|
|
208
|
-
.then((x) => x.getPublicKey())
|
|
209
|
-
.then((x) => Buffer.from(x).toString("hex"))).toMatchInlineSnapshot(`"02576bde4c55b05886e56eeeeff304006352f935b6dfc1c409f7eae521dbc5558e"`);
|
|
210
|
-
expect(yield vault.unwrap().get("#mnemonic")).toMatchInlineSnapshot(`"hover best act jazz romance ritual six annual pottery coral write paddle"`);
|
|
211
|
-
}));
|
|
212
|
-
});
|
|
213
|
-
}
|
|
214
|
-
testVaultImpl("Vault", _1.Vault);
|
|
215
|
-
testVaultImpl("MockVault", mockVault_skip_1.MockVault);
|
|
216
|
-
//# sourceMappingURL=index.test.js.map
|
package/dist/index.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
|