@shapeshiftoss/hdwallet-native 1.55.4-alpha.1 → 1.55.5

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.
Files changed (117) hide show
  1. package/dist/adapter.js +61 -22
  2. package/dist/adapter.js.map +1 -1
  3. package/dist/arkeo.js +123 -54
  4. package/dist/arkeo.js.map +1 -1
  5. package/dist/binance.js +194 -123
  6. package/dist/binance.js.map +1 -1
  7. package/dist/bitcoin.js +284 -219
  8. package/dist/bitcoin.js.map +1 -1
  9. package/dist/cosmos.js +123 -54
  10. package/dist/cosmos.js.map +1 -1
  11. package/dist/crypto/CryptoHelper.js +172 -106
  12. package/dist/crypto/CryptoHelper.js.map +1 -1
  13. package/dist/crypto/EncryptedWallet.js +123 -64
  14. package/dist/crypto/EncryptedWallet.js.map +1 -1
  15. package/dist/crypto/classes/cipherString.js +19 -18
  16. package/dist/crypto/classes/cipherString.js.map +1 -1
  17. package/dist/crypto/classes/encryptedObject.js +7 -7
  18. package/dist/crypto/classes/encryptedObject.js.map +1 -1
  19. package/dist/crypto/classes/encryptionType.js +5 -2
  20. package/dist/crypto/classes/encryptionType.js.map +1 -1
  21. package/dist/crypto/classes/index.js +11 -4
  22. package/dist/crypto/classes/index.js.map +1 -1
  23. package/dist/crypto/classes/symmetricCryptoKey.js +11 -13
  24. package/dist/crypto/classes/symmetricCryptoKey.js.map +1 -1
  25. package/dist/crypto/engines/index.js +18 -2
  26. package/dist/crypto/engines/index.js.map +1 -1
  27. package/dist/crypto/engines/types.js +5 -2
  28. package/dist/crypto/engines/types.js.map +1 -1
  29. package/dist/crypto/engines/web-crypto.js +84 -39
  30. package/dist/crypto/engines/web-crypto.js.map +1 -1
  31. package/dist/crypto/index.js +32 -3
  32. package/dist/crypto/index.js.map +1 -1
  33. package/dist/crypto/isolation/adapters/binance.js +51 -12
  34. package/dist/crypto/isolation/adapters/binance.js.map +1 -1
  35. package/dist/crypto/isolation/adapters/bip32.js +108 -65
  36. package/dist/crypto/isolation/adapters/bip32.js.map +1 -1
  37. package/dist/crypto/isolation/adapters/bitcoin.js +84 -41
  38. package/dist/crypto/isolation/adapters/bitcoin.js.map +1 -1
  39. package/dist/crypto/isolation/adapters/cosmos.js +24 -9
  40. package/dist/crypto/isolation/adapters/cosmos.js.map +1 -1
  41. package/dist/crypto/isolation/adapters/cosmosDirect.js +77 -35
  42. package/dist/crypto/isolation/adapters/cosmosDirect.js.map +1 -1
  43. package/dist/crypto/isolation/adapters/ethereum.js +90 -49
  44. package/dist/crypto/isolation/adapters/ethereum.js.map +1 -1
  45. package/dist/crypto/isolation/adapters/fio.js +67 -24
  46. package/dist/crypto/isolation/adapters/fio.js.map +1 -1
  47. package/dist/crypto/isolation/adapters/index.js +20 -7
  48. package/dist/crypto/isolation/adapters/index.js.map +1 -1
  49. package/dist/crypto/isolation/core/bip32/index.js +50 -22
  50. package/dist/crypto/isolation/core/bip32/index.js.map +1 -1
  51. package/dist/crypto/isolation/core/bip32/interfaces.js +28 -2
  52. package/dist/crypto/isolation/core/bip32/interfaces.js.map +1 -1
  53. package/dist/crypto/isolation/core/bip32/types.js +8 -5
  54. package/dist/crypto/isolation/core/bip32/types.js.map +1 -1
  55. package/dist/crypto/isolation/core/bip39/index.js +17 -1
  56. package/dist/crypto/isolation/core/bip39/index.js.map +1 -1
  57. package/dist/crypto/isolation/core/bip39/interfaces.js +2 -1
  58. package/dist/crypto/isolation/core/digest/algorithms.js +32 -23
  59. package/dist/crypto/isolation/core/digest/algorithms.js.map +1 -1
  60. package/dist/crypto/isolation/core/digest/index.js +18 -2
  61. package/dist/crypto/isolation/core/digest/index.js.map +1 -1
  62. package/dist/crypto/isolation/core/digest/types.js +26 -23
  63. package/dist/crypto/isolation/core/digest/types.js.map +1 -1
  64. package/dist/crypto/isolation/core/index.js +32 -5
  65. package/dist/crypto/isolation/core/index.js.map +1 -1
  66. package/dist/crypto/isolation/core/secp256k1/index.js +18 -2
  67. package/dist/crypto/isolation/core/secp256k1/index.js.map +1 -1
  68. package/dist/crypto/isolation/core/secp256k1/interfaces.js +2 -1
  69. package/dist/crypto/isolation/core/secp256k1/types.js +157 -119
  70. package/dist/crypto/isolation/core/secp256k1/types.js.map +1 -1
  71. package/dist/crypto/isolation/engines/default/bip32.js +176 -102
  72. package/dist/crypto/isolation/engines/default/bip32.js.map +1 -1
  73. package/dist/crypto/isolation/engines/default/bip39.js +68 -24
  74. package/dist/crypto/isolation/engines/default/bip39.js.map +1 -1
  75. package/dist/crypto/isolation/engines/default/index.js +32 -3
  76. package/dist/crypto/isolation/engines/default/index.js.map +1 -1
  77. package/dist/crypto/isolation/engines/default/revocable.js +51 -30
  78. package/dist/crypto/isolation/engines/default/revocable.js.map +1 -1
  79. package/dist/crypto/isolation/engines/dummy/bip32.js +121 -63
  80. package/dist/crypto/isolation/engines/dummy/bip32.js.map +1 -1
  81. package/dist/crypto/isolation/engines/dummy/bip39.js +97 -55
  82. package/dist/crypto/isolation/engines/dummy/bip39.js.map +1 -1
  83. package/dist/crypto/isolation/engines/dummy/index.js +30 -3
  84. package/dist/crypto/isolation/engines/dummy/index.js.map +1 -1
  85. package/dist/crypto/isolation/engines/dummy/types.js +5 -1
  86. package/dist/crypto/isolation/engines/dummy/types.js.map +1 -1
  87. package/dist/crypto/isolation/engines/index.js +28 -2
  88. package/dist/crypto/isolation/engines/index.js.map +1 -1
  89. package/dist/crypto/isolation/index.js +29 -3
  90. package/dist/crypto/isolation/index.js.map +1 -1
  91. package/dist/crypto/isolation/types.js +49 -43
  92. package/dist/crypto/isolation/types.js.map +1 -1
  93. package/dist/crypto/utils.js +13 -7
  94. package/dist/crypto/utils.js.map +1 -1
  95. package/dist/ethereum.js +160 -92
  96. package/dist/ethereum.js.map +1 -1
  97. package/dist/fio.js +282 -204
  98. package/dist/fio.js.map +1 -1
  99. package/dist/index.js +32 -3
  100. package/dist/index.js.map +1 -1
  101. package/dist/kava.js +119 -50
  102. package/dist/kava.js.map +1 -1
  103. package/dist/native.js +304 -176
  104. package/dist/native.js.map +1 -1
  105. package/dist/networks.js +33 -16
  106. package/dist/networks.js.map +1 -1
  107. package/dist/osmosis.js +123 -54
  108. package/dist/osmosis.js.map +1 -1
  109. package/dist/secret.js +119 -50
  110. package/dist/secret.js.map +1 -1
  111. package/dist/terra.js +119 -50
  112. package/dist/terra.js.map +1 -1
  113. package/dist/thorchain.js +123 -54
  114. package/dist/thorchain.js.map +1 -1
  115. package/dist/util.js +54 -16
  116. package/dist/util.js.map +1 -1
  117. package/package.json +3 -3
package/dist/cosmos.js CHANGED
@@ -1,20 +1,77 @@
1
- import * as core from "@shapeshiftoss/hdwallet-core";
2
- import * as bech32 from "bech32";
3
- import CryptoJS from "crypto-js";
4
- import PLazy from "p-lazy";
5
- import * as Isolation from "./crypto/isolation";
6
- import * as util from "./util";
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
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);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
35
+ if (kind === "m") throw new TypeError("Private method is not writable");
36
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
37
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
38
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
39
+ };
40
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
41
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
42
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
43
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
44
+ };
45
+ var __importDefault = (this && this.__importDefault) || function (mod) {
46
+ return (mod && mod.__esModule) ? mod : { "default": mod };
47
+ };
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.MixinNativeCosmosWalletInfo = MixinNativeCosmosWalletInfo;
50
+ exports.MixinNativeCosmosWallet = MixinNativeCosmosWallet;
51
+ const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
52
+ const bech32 = __importStar(require("bech32"));
53
+ const crypto_js_1 = __importDefault(require("crypto-js"));
54
+ const p_lazy_1 = __importDefault(require("p-lazy"));
55
+ const Isolation = __importStar(require("./crypto/isolation"));
56
+ const util = __importStar(require("./util"));
7
57
  const ATOM_CHAIN = "cosmoshub-4";
8
- const protoTxBuilder = PLazy.from(() => import("@shapeshiftoss/proto-tx-builder"));
9
- export function MixinNativeCosmosWalletInfo(Base) {
58
+ const protoTxBuilder = p_lazy_1.default.from(() => Promise.resolve().then(() => __importStar(require("@shapeshiftoss/proto-tx-builder"))));
59
+ function MixinNativeCosmosWalletInfo(Base) {
10
60
  // eslint-disable-next-line @typescript-eslint/no-shadow
11
61
  return class MixinNativeCosmosWalletInfo extends Base {
12
- _supportsCosmosInfo = true;
13
- async cosmosSupportsNetwork() {
14
- return true;
62
+ constructor() {
63
+ super(...arguments);
64
+ this._supportsCosmosInfo = true;
15
65
  }
16
- async cosmosSupportsSecureTransfer() {
17
- return false;
66
+ cosmosSupportsNetwork() {
67
+ return __awaiter(this, void 0, void 0, function* () {
68
+ return true;
69
+ });
70
+ }
71
+ cosmosSupportsSecureTransfer() {
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ return false;
74
+ });
18
75
  }
19
76
  cosmosSupportsNativeShapeShift() {
20
77
  return false;
@@ -34,47 +91,59 @@ export function MixinNativeCosmosWalletInfo(Base) {
34
91
  }
35
92
  };
36
93
  }
37
- export function MixinNativeCosmosWallet(Base) {
94
+ function MixinNativeCosmosWallet(Base) {
95
+ var _MixinNativeCosmosWallet_masterKey, _a;
38
96
  // eslint-disable-next-line @typescript-eslint/no-shadow
39
- return class MixinNativeCosmosWallet extends Base {
40
- _supportsCosmos = true;
41
- #masterKey;
42
- async cosmosInitializeWallet(masterKey) {
43
- this.#masterKey = masterKey;
44
- }
45
- cosmosWipe() {
46
- this.#masterKey = undefined;
47
- }
48
- cosmosBech32ify(address, prefix) {
49
- const words = bech32.toWords(address);
50
- return bech32.encode(prefix, words);
51
- }
52
- createCosmosAddress(publicKey) {
53
- const message = CryptoJS.SHA256(CryptoJS.enc.Hex.parse(publicKey));
54
- const hash = CryptoJS.RIPEMD160(message).toString();
55
- const address = Buffer.from(hash, `hex`);
56
- return this.cosmosBech32ify(address, `cosmos`);
57
- }
58
- async cosmosGetAddress(msg) {
59
- return this.needsMnemonic(!!this.#masterKey, async () => {
60
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
61
- const keyPair = await util.getKeyPair(this.#masterKey, msg.addressNList, "cosmos");
62
- return this.createCosmosAddress(keyPair.publicKey.toString("hex"));
63
- });
64
- }
65
- async cosmosSignTx(msg) {
66
- return this.needsMnemonic(!!this.#masterKey, async () => {
67
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
68
- const keyPair = await util.getKeyPair(this.#masterKey, msg.addressNList, "cosmos");
69
- const adapter = await Isolation.Adapters.CosmosDirect.create(keyPair.node, "cosmos");
70
- const signerData = {
71
- sequence: Number(msg.sequence),
72
- accountNumber: Number(msg.account_number),
73
- chainId: ATOM_CHAIN,
74
- };
75
- return (await protoTxBuilder).sign(adapter.address, msg.tx, adapter, signerData);
76
- });
77
- }
78
- };
97
+ return _a = class MixinNativeCosmosWallet extends Base {
98
+ constructor() {
99
+ super(...arguments);
100
+ this._supportsCosmos = true;
101
+ _MixinNativeCosmosWallet_masterKey.set(this, void 0);
102
+ }
103
+ cosmosInitializeWallet(masterKey) {
104
+ return __awaiter(this, void 0, void 0, function* () {
105
+ __classPrivateFieldSet(this, _MixinNativeCosmosWallet_masterKey, masterKey, "f");
106
+ });
107
+ }
108
+ cosmosWipe() {
109
+ __classPrivateFieldSet(this, _MixinNativeCosmosWallet_masterKey, undefined, "f");
110
+ }
111
+ cosmosBech32ify(address, prefix) {
112
+ const words = bech32.toWords(address);
113
+ return bech32.encode(prefix, words);
114
+ }
115
+ createCosmosAddress(publicKey) {
116
+ const message = crypto_js_1.default.SHA256(crypto_js_1.default.enc.Hex.parse(publicKey));
117
+ const hash = crypto_js_1.default.RIPEMD160(message).toString();
118
+ const address = Buffer.from(hash, `hex`);
119
+ return this.cosmosBech32ify(address, `cosmos`);
120
+ }
121
+ cosmosGetAddress(msg) {
122
+ return __awaiter(this, void 0, void 0, function* () {
123
+ return this.needsMnemonic(!!__classPrivateFieldGet(this, _MixinNativeCosmosWallet_masterKey, "f"), () => __awaiter(this, void 0, void 0, function* () {
124
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
125
+ const keyPair = yield util.getKeyPair(__classPrivateFieldGet(this, _MixinNativeCosmosWallet_masterKey, "f"), msg.addressNList, "cosmos");
126
+ return this.createCosmosAddress(keyPair.publicKey.toString("hex"));
127
+ }));
128
+ });
129
+ }
130
+ cosmosSignTx(msg) {
131
+ return __awaiter(this, void 0, void 0, function* () {
132
+ return this.needsMnemonic(!!__classPrivateFieldGet(this, _MixinNativeCosmosWallet_masterKey, "f"), () => __awaiter(this, void 0, void 0, function* () {
133
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
134
+ const keyPair = yield util.getKeyPair(__classPrivateFieldGet(this, _MixinNativeCosmosWallet_masterKey, "f"), msg.addressNList, "cosmos");
135
+ const adapter = yield Isolation.Adapters.CosmosDirect.create(keyPair.node, "cosmos");
136
+ const signerData = {
137
+ sequence: Number(msg.sequence),
138
+ accountNumber: Number(msg.account_number),
139
+ chainId: ATOM_CHAIN,
140
+ };
141
+ return (yield protoTxBuilder).sign(adapter.address, msg.tx, adapter, signerData);
142
+ }));
143
+ });
144
+ }
145
+ },
146
+ _MixinNativeCosmosWallet_masterKey = new WeakMap(),
147
+ _a;
79
148
  }
80
149
  //# sourceMappingURL=cosmos.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../src/cosmos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../src/cosmos.ts"],"names":[],"mappings":"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"}
@@ -1,137 +1,203 @@
1
- import * as core from "@shapeshiftoss/hdwallet-core";
2
- import * as bip39 from "bip39";
3
- import { EncryptedObject, SymmetricCryptoKey } from "./classes";
4
- import { DigestAlgorithm } from "./engines";
5
- import * as utils from "./utils";
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
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);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
35
+ if (kind === "m") throw new TypeError("Private method is not writable");
36
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
37
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
38
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
39
+ };
40
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
41
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
42
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
43
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
44
+ };
45
+ var _CryptoHelper_engine;
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
48
+ const bip39 = __importStar(require("bip39"));
49
+ const classes_1 = require("./classes");
50
+ const engines_1 = require("./engines");
51
+ const utils = __importStar(require("./utils"));
6
52
  /**
7
53
  * This class is only intended to be used by the EncryptedWallet class
8
54
  */
9
- export default class CryptoHelper {
10
- #engine;
55
+ class CryptoHelper {
11
56
  constructor(engine) {
57
+ _CryptoHelper_engine.set(this, void 0);
12
58
  if (!engine) {
13
59
  throw new Error("Missing cryptography engine");
14
60
  }
15
- this.#engine = engine;
61
+ __classPrivateFieldSet(this, _CryptoHelper_engine, engine, "f");
16
62
  }
17
63
  // Safely compare two values in a way that protects against timing attacks (Double HMAC Verification).
18
64
  // ref: https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/february/double-hmac-verification/
19
65
  // ref: https://paragonie.com/blog/2015/11/preventing-timing-attacks-on-string-comparison-with-double-hmac-strategy
20
- async compare(a, b) {
21
- const macKey = await this.#engine.randomBytes(32);
22
- const mac1 = await this.#engine.hmac(a, macKey);
23
- const mac2 = await this.#engine.hmac(b, macKey);
24
- if (mac1.byteLength !== mac2.byteLength) {
25
- return false;
26
- }
27
- const arr1 = new Uint8Array(mac1);
28
- const arr2 = new Uint8Array(mac2);
29
- for (let i = 0; i < arr2.length; i++) {
30
- if (arr1[i] !== arr2[i]) {
66
+ compare(a, b) {
67
+ return __awaiter(this, void 0, void 0, function* () {
68
+ const macKey = yield __classPrivateFieldGet(this, _CryptoHelper_engine, "f").randomBytes(32);
69
+ const mac1 = yield __classPrivateFieldGet(this, _CryptoHelper_engine, "f").hmac(a, macKey);
70
+ const mac2 = yield __classPrivateFieldGet(this, _CryptoHelper_engine, "f").hmac(b, macKey);
71
+ if (mac1.byteLength !== mac2.byteLength) {
31
72
  return false;
32
73
  }
33
- }
34
- return true;
74
+ const arr1 = new Uint8Array(mac1);
75
+ const arr2 = new Uint8Array(mac2);
76
+ for (let i = 0; i < arr2.length; i++) {
77
+ if (arr1[i] !== arr2[i]) {
78
+ return false;
79
+ }
80
+ }
81
+ return true;
82
+ });
35
83
  }
36
- async aesEncrypt(data, key) {
37
- if (data == null || !(data instanceof ArrayBuffer || data instanceof Uint8Array))
38
- throw new Error("Required parameter [data] is not of type ArrayBuffer or Uint8Array");
39
- if (data instanceof Uint8Array)
40
- data = core.toArrayBuffer(data);
41
- if (key == null || key.encKey == null || key.macKey == null)
42
- throw new Error("Required parameter [key] is not of type SymmetricCryptoKey");
43
- const iv = await this.#engine.randomBytes(16);
44
- const encData = await this.#engine.encrypt(data, key.encKey, iv);
45
- const macData = new Uint8Array(iv.byteLength + encData.byteLength);
46
- macData.set(new Uint8Array(iv), 0);
47
- macData.set(new Uint8Array(encData), iv.byteLength);
48
- const mac = await this.#engine.hmac(macData.buffer.slice(macData.byteOffset, macData.byteOffset + macData.byteLength), key.macKey);
49
- return new EncryptedObject({ key, iv, data: encData, mac });
84
+ aesEncrypt(data, key) {
85
+ return __awaiter(this, void 0, void 0, function* () {
86
+ if (data == null || !(data instanceof ArrayBuffer || data instanceof Uint8Array))
87
+ throw new Error("Required parameter [data] is not of type ArrayBuffer or Uint8Array");
88
+ if (data instanceof Uint8Array)
89
+ data = core.toArrayBuffer(data);
90
+ if (key == null || key.encKey == null || key.macKey == null)
91
+ throw new Error("Required parameter [key] is not of type SymmetricCryptoKey");
92
+ const iv = yield __classPrivateFieldGet(this, _CryptoHelper_engine, "f").randomBytes(16);
93
+ const encData = yield __classPrivateFieldGet(this, _CryptoHelper_engine, "f").encrypt(data, key.encKey, iv);
94
+ const macData = new Uint8Array(iv.byteLength + encData.byteLength);
95
+ macData.set(new Uint8Array(iv), 0);
96
+ macData.set(new Uint8Array(encData), iv.byteLength);
97
+ const mac = yield __classPrivateFieldGet(this, _CryptoHelper_engine, "f").hmac(macData.buffer.slice(macData.byteOffset, macData.byteOffset + macData.byteLength), key.macKey);
98
+ return new classes_1.EncryptedObject({ key, iv, data: encData, mac });
99
+ });
50
100
  }
51
- async aesDecrypt(data, iv, mac, key) {
52
- if (data == null || !(data instanceof ArrayBuffer || data instanceof Uint8Array))
53
- throw new Error("Required parameter [data] is not of type ArrayBuffer or Uint8Array");
54
- if (data instanceof Uint8Array)
55
- data = core.toArrayBuffer(data);
56
- if (iv == null || !(iv instanceof ArrayBuffer || iv instanceof Uint8Array))
57
- throw new Error("Required parameter [iv] is not of type ArrayBuffer or Uint8Array");
58
- if (iv instanceof Uint8Array)
59
- iv = core.toArrayBuffer(iv);
60
- if (mac == null || !(mac instanceof ArrayBuffer || mac instanceof Uint8Array))
61
- throw new Error("Required parameter [mac] is not of type ArrayBuffer or Uint8Array");
62
- if (mac instanceof Uint8Array)
63
- mac = core.toArrayBuffer(mac);
64
- if (key == null || key.encKey == null || key.macKey == null)
65
- throw new Error("Required parameter [key] is not of type SymmetricCryptoKey");
66
- const macData = new Uint8Array(iv.byteLength + data.byteLength);
67
- macData.set(new Uint8Array(iv), 0);
68
- macData.set(new Uint8Array(data), iv.byteLength);
69
- const computedMac = await this.#engine.hmac(core.toArrayBuffer(macData), key.macKey);
70
- const macsMatch = await this.compare(mac, computedMac);
71
- if (!macsMatch)
72
- throw new Error("HMAC signature is not valid or data has been tampered with");
73
- return this.#engine.decrypt(data, key.encKey, iv);
101
+ aesDecrypt(data, iv, mac, key) {
102
+ return __awaiter(this, void 0, void 0, function* () {
103
+ if (data == null || !(data instanceof ArrayBuffer || data instanceof Uint8Array))
104
+ throw new Error("Required parameter [data] is not of type ArrayBuffer or Uint8Array");
105
+ if (data instanceof Uint8Array)
106
+ data = core.toArrayBuffer(data);
107
+ if (iv == null || !(iv instanceof ArrayBuffer || iv instanceof Uint8Array))
108
+ throw new Error("Required parameter [iv] is not of type ArrayBuffer or Uint8Array");
109
+ if (iv instanceof Uint8Array)
110
+ iv = core.toArrayBuffer(iv);
111
+ if (mac == null || !(mac instanceof ArrayBuffer || mac instanceof Uint8Array))
112
+ throw new Error("Required parameter [mac] is not of type ArrayBuffer or Uint8Array");
113
+ if (mac instanceof Uint8Array)
114
+ mac = core.toArrayBuffer(mac);
115
+ if (key == null || key.encKey == null || key.macKey == null)
116
+ throw new Error("Required parameter [key] is not of type SymmetricCryptoKey");
117
+ const macData = new Uint8Array(iv.byteLength + data.byteLength);
118
+ macData.set(new Uint8Array(iv), 0);
119
+ macData.set(new Uint8Array(data), iv.byteLength);
120
+ const computedMac = yield __classPrivateFieldGet(this, _CryptoHelper_engine, "f").hmac(core.toArrayBuffer(macData), key.macKey);
121
+ const macsMatch = yield this.compare(mac, computedMac);
122
+ if (!macsMatch)
123
+ throw new Error("HMAC signature is not valid or data has been tampered with");
124
+ return __classPrivateFieldGet(this, _CryptoHelper_engine, "f").decrypt(data, key.encKey, iv);
125
+ });
74
126
  }
75
127
  // @see: https://tools.ietf.org/html/rfc5869
76
- async hkdfExpand(prk, info, size) {
77
- const hashLen = 32; // sha256
78
- const okm = new Uint8Array(size);
79
- let previousT = new Uint8Array(0);
80
- const n = Math.ceil(size / hashLen);
81
- for (let i = 0; i < n; i++) {
82
- const t = new Uint8Array(previousT.length + info.length + 1);
83
- t.set(previousT);
84
- t.set(info, previousT.length);
85
- t.set([i + 1], t.length - 1);
86
- previousT = new Uint8Array(await this.#engine.hmac(core.toArrayBuffer(t), prk));
87
- okm.set(previousT, i * hashLen);
88
- }
89
- return okm;
128
+ hkdfExpand(prk, info, size) {
129
+ return __awaiter(this, void 0, void 0, function* () {
130
+ const hashLen = 32; // sha256
131
+ const okm = new Uint8Array(size);
132
+ let previousT = new Uint8Array(0);
133
+ const n = Math.ceil(size / hashLen);
134
+ for (let i = 0; i < n; i++) {
135
+ const t = new Uint8Array(previousT.length + info.length + 1);
136
+ t.set(previousT);
137
+ t.set(info, previousT.length);
138
+ t.set([i + 1], t.length - 1);
139
+ previousT = new Uint8Array(yield __classPrivateFieldGet(this, _CryptoHelper_engine, "f").hmac(core.toArrayBuffer(t), prk));
140
+ okm.set(previousT, i * hashLen);
141
+ }
142
+ return okm;
143
+ });
90
144
  }
91
- async pbkdf2(password, salt, iterations) {
92
- password = typeof password !== "string" ? password : core.toArrayBuffer(utils.fromUtf8ToArray(password));
93
- salt = typeof salt !== "string" ? salt : core.toArrayBuffer(utils.fromUtf8ToArray(salt));
94
- return this.#engine.pbkdf2(password, salt, { iterations, keyLen: 32 });
145
+ pbkdf2(password, salt, iterations) {
146
+ return __awaiter(this, void 0, void 0, function* () {
147
+ password = typeof password !== "string" ? password : core.toArrayBuffer(utils.fromUtf8ToArray(password));
148
+ salt = typeof salt !== "string" ? salt : core.toArrayBuffer(utils.fromUtf8ToArray(salt));
149
+ return __classPrivateFieldGet(this, _CryptoHelper_engine, "f").pbkdf2(password, salt, { iterations, keyLen: 32 });
150
+ });
95
151
  }
96
- async makeKey(password, email) {
97
- if (!(password && email && typeof password === "string" && typeof email === "string")) {
98
- throw new Error("A password and email are required to make a symmetric crypto key.");
99
- }
100
- const salt = core.toArrayBuffer(utils.fromUtf8ToArray(email));
101
- // The same email/password MUST always generate the same encryption key, so
102
- // scrypt parameters are hard-coded to ensure compatibility across implementations
103
- const key = await this.#engine.scrypt(core.toArrayBuffer(utils.fromUtf8ToArray(password)), salt, {
104
- iterations: 16384,
105
- blockSize: 8,
106
- parallelism: 1,
107
- keyLength: 32,
152
+ makeKey(password, email) {
153
+ return __awaiter(this, void 0, void 0, function* () {
154
+ if (!(password && email && typeof password === "string" && typeof email === "string")) {
155
+ throw new Error("A password and email are required to make a symmetric crypto key.");
156
+ }
157
+ const salt = core.toArrayBuffer(utils.fromUtf8ToArray(email));
158
+ // The same email/password MUST always generate the same encryption key, so
159
+ // scrypt parameters are hard-coded to ensure compatibility across implementations
160
+ const key = yield __classPrivateFieldGet(this, _CryptoHelper_engine, "f").scrypt(core.toArrayBuffer(utils.fromUtf8ToArray(password)), salt, {
161
+ iterations: 16384,
162
+ blockSize: 8,
163
+ parallelism: 1,
164
+ keyLength: 32,
165
+ });
166
+ const hashKey = yield this.pbkdf2(key, password, 1);
167
+ const stretchedKey = yield this.hkdfExpand(key, utils.fromUtf8ToArray("enc"), 32);
168
+ const macKey = yield this.hkdfExpand(key, utils.fromUtf8ToArray("mac"), 32);
169
+ return new classes_1.SymmetricCryptoKey(hashKey, stretchedKey, macKey);
108
170
  });
109
- const hashKey = await this.pbkdf2(key, password, 1);
110
- const stretchedKey = await this.hkdfExpand(key, utils.fromUtf8ToArray("enc"), 32);
111
- const macKey = await this.hkdfExpand(key, utils.fromUtf8ToArray("mac"), 32);
112
- return new SymmetricCryptoKey(hashKey, stretchedKey, macKey);
113
171
  }
114
- async decrypt(cipherString, key) {
115
- const data = utils.fromB64ToArray(cipherString.data);
116
- const iv = utils.fromB64ToArray(cipherString.iv);
117
- const mac = utils.fromB64ToArray(cipherString.mac);
118
- const decipher = await this.aesDecrypt(data, iv, mac, key);
119
- return utils.fromBufferToUtf8(decipher);
172
+ decrypt(cipherString, key) {
173
+ return __awaiter(this, void 0, void 0, function* () {
174
+ const data = utils.fromB64ToArray(cipherString.data);
175
+ const iv = utils.fromB64ToArray(cipherString.iv);
176
+ const mac = utils.fromB64ToArray(cipherString.mac);
177
+ const decipher = yield this.aesDecrypt(data, iv, mac, key);
178
+ return utils.fromBufferToUtf8(decipher);
179
+ });
120
180
  }
121
181
  // use entropyToMnemonic to generate mnemonic so we can utilize provided randomBytes function
122
- async generateMnemonic(strength = 128) {
123
- const entropy = await this.#engine.randomBytes(strength / 8);
124
- return bip39.entropyToMnemonic(Buffer.from(entropy));
182
+ generateMnemonic() {
183
+ return __awaiter(this, arguments, void 0, function* (strength = 128) {
184
+ const entropy = yield __classPrivateFieldGet(this, _CryptoHelper_engine, "f").randomBytes(strength / 8);
185
+ return bip39.entropyToMnemonic(Buffer.from(entropy));
186
+ });
125
187
  }
126
188
  /**
127
189
  * Generates a base64 hash based on the provided data
128
190
  * Should be used to calculate a device ID for the wallet based on the mnemonic
129
191
  */
130
- async getDeviceId(data) {
131
- if (!(typeof data === "string" && data.length > 0))
132
- throw new Error("Invalid data to hash");
133
- const digest = await this.#engine.digest(DigestAlgorithm.SHA256, await this.#engine.digest(DigestAlgorithm.SHA512, Buffer.from(data)));
134
- return utils.fromBufferToB64(digest);
192
+ getDeviceId(data) {
193
+ return __awaiter(this, void 0, void 0, function* () {
194
+ if (!(typeof data === "string" && data.length > 0))
195
+ throw new Error("Invalid data to hash");
196
+ const digest = yield __classPrivateFieldGet(this, _CryptoHelper_engine, "f").digest(engines_1.DigestAlgorithm.SHA256, yield __classPrivateFieldGet(this, _CryptoHelper_engine, "f").digest(engines_1.DigestAlgorithm.SHA512, Buffer.from(data)));
197
+ return utils.fromBufferToB64(digest);
198
+ });
135
199
  }
136
200
  }
201
+ _CryptoHelper_engine = new WeakMap();
202
+ exports.default = CryptoHelper;
137
203
  //# sourceMappingURL=CryptoHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoHelper.js","sourceRoot":"","sources":["../../src/crypto/CryptoHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CryptoHelper.js","sourceRoot":"","sources":["../../src/crypto/CryptoHelper.ts"],"names":[],"mappings":"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"}