@airgap/crypto 0.13.45-beta.3 → 0.13.45-beta.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.
package/derive.d.ts CHANGED
@@ -1,2 +1,3 @@
1
+ /// <reference types="node" />
1
2
  import { CryptoConfiguration, CryptoDerivative } from '@airgap/module-kit';
2
3
  export declare function derive(crypto: CryptoConfiguration, seed: Buffer, derivationPath?: string): Promise<CryptoDerivative>;
package/derive.js CHANGED
@@ -1,29 +1,80 @@
1
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
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.derive = derive;
4
- const coinlib_core_1 = require("@airgap/coinlib-core");
5
- const derive_1 = require("./ed25519/derive");
6
- const derive_2 = require("./sapling/derive");
7
- const derive_3 = require("./secp256k1/derive");
8
- const derive_4 = require("./sr25519/derive");
9
- const factory_1 = require("./utils/factory");
10
- async function derive(crypto, seed, derivationPath) {
11
- const node = await deriveNode(crypto, seed, derivationPath);
12
- return (0, factory_1.newCryptoDerivativeFromNode)(node);
39
+ exports.derive = void 0;
40
+ var coinlib_core_1 = require("@airgap/coinlib-core");
41
+ var derive_1 = require("./ed25519/derive");
42
+ var derive_2 = require("./sapling/derive");
43
+ var derive_3 = require("./secp256k1/derive");
44
+ var derive_4 = require("./sr25519/derive");
45
+ var factory_1 = require("./utils/factory");
46
+ function derive(crypto, seed, derivationPath) {
47
+ return __awaiter(this, void 0, void 0, function () {
48
+ var node;
49
+ return __generator(this, function (_a) {
50
+ switch (_a.label) {
51
+ case 0: return [4 /*yield*/, deriveNode(crypto, seed, derivationPath)];
52
+ case 1:
53
+ node = _a.sent();
54
+ return [2 /*return*/, (0, factory_1.newCryptoDerivativeFromNode)(node)];
55
+ }
56
+ });
57
+ });
13
58
  }
14
- async function deriveNode(crypto, seed, derivationPath) {
15
- switch (crypto.algorithm) {
16
- case 'ed25519':
17
- return (0, derive_1.deriveEd25519)(seed, derivationPath, crypto.key);
18
- case 'sr25519':
19
- return (0, derive_4.deriveSr25519)(crypto.compatibility, seed, derivationPath);
20
- case 'secp256k1':
21
- return (0, derive_3.deriveSecp256K1)(seed, derivationPath, crypto.key);
22
- case 'sapling':
23
- return (0, derive_2.deriveSapling)(seed, derivationPath);
24
- default:
25
- (0, coinlib_core_1.assertNever)(crypto);
26
- throw new Error('Crypto algorithm not supported');
27
- }
59
+ exports.derive = derive;
60
+ function deriveNode(crypto, seed, derivationPath) {
61
+ return __awaiter(this, void 0, void 0, function () {
62
+ return __generator(this, function (_a) {
63
+ switch (crypto.algorithm) {
64
+ case 'ed25519':
65
+ return [2 /*return*/, (0, derive_1.deriveEd25519)(seed, derivationPath, crypto.key)];
66
+ case 'sr25519':
67
+ return [2 /*return*/, (0, derive_4.deriveSr25519)(crypto.compatibility, seed, derivationPath)];
68
+ case 'secp256k1':
69
+ return [2 /*return*/, (0, derive_3.deriveSecp256K1)(seed, derivationPath, crypto.key)];
70
+ case 'sapling':
71
+ return [2 /*return*/, (0, derive_2.deriveSapling)(seed, derivationPath)];
72
+ default:
73
+ (0, coinlib_core_1.assertNever)(crypto);
74
+ throw new Error('Crypto algorithm not supported');
75
+ }
76
+ return [2 /*return*/];
77
+ });
78
+ });
28
79
  }
29
80
  //# sourceMappingURL=derive.js.map
package/derive.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"derive.js","sourceRoot":"","sources":["../src/derive.ts"],"names":[],"mappings":";;AAUA,wBAIC;AAdD,uDAAkD;AAGlD,6CAAgD;AAChD,6CAAgD;AAChD,+CAAoD;AACpD,6CAAgD;AAEhD,6CAA6D;AAEtD,KAAK,UAAU,MAAM,CAAC,MAA2B,EAAE,IAAY,EAAE,cAAuB;IAC7F,MAAM,IAAI,GAAmB,MAAM,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;IAE3E,OAAO,IAAA,qCAA2B,EAAC,IAAI,CAAC,CAAA;AAC1C,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,MAA2B,EAAE,IAAY,EAAE,cAAuB;IAC1F,QAAQ,MAAM,CAAC,SAAS,EAAE,CAAC;QACzB,KAAK,SAAS;YACZ,OAAO,IAAA,sBAAa,EAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;QACxD,KAAK,SAAS;YACZ,OAAO,IAAA,sBAAa,EAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;QAClE,KAAK,WAAW;YACd,OAAO,IAAA,wBAAe,EAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;QAC1D,KAAK,SAAS;YACZ,OAAO,IAAA,sBAAa,EAAC,IAAI,EAAE,cAAc,CAAC,CAAA;QAC5C;YACE,IAAA,0BAAW,EAAC,MAAM,CAAC,CAAA;YACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACrD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"derive.js","sourceRoot":"","sources":["../src/derive.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAkD;AAGlD,2CAAgD;AAChD,2CAAgD;AAChD,6CAAoD;AACpD,2CAAgD;AAEhD,2CAA6D;AAE7D,SAAsB,MAAM,CAAC,MAA2B,EAAE,IAAY,EAAE,cAAuB;;;;;wBAChE,qBAAM,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,EAAA;;oBAArE,IAAI,GAAmB,SAA8C;oBAE3E,sBAAO,IAAA,qCAA2B,EAAC,IAAI,CAAC,EAAA;;;;CACzC;AAJD,wBAIC;AAED,SAAe,UAAU,CAAC,MAA2B,EAAE,IAAY,EAAE,cAAuB;;;YAC1F,QAAQ,MAAM,CAAC,SAAS,EAAE;gBACxB,KAAK,SAAS;oBACZ,sBAAO,IAAA,sBAAa,EAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,EAAA;gBACxD,KAAK,SAAS;oBACZ,sBAAO,IAAA,sBAAa,EAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,cAAc,CAAC,EAAA;gBAClE,KAAK,WAAW;oBACd,sBAAO,IAAA,wBAAe,EAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,EAAA;gBAC1D,KAAK,SAAS;oBACZ,sBAAO,IAAA,sBAAa,EAAC,IAAI,EAAE,cAAc,CAAC,EAAA;gBAC5C;oBACE,IAAA,0BAAW,EAAC,MAAM,CAAC,CAAA;oBACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;aACpD;;;;CACF"}
@@ -1,2 +1,3 @@
1
+ /// <reference types="node" />
1
2
  import { DerivationNode } from '../types/derivation';
2
3
  export declare function deriveEd25519(seed: Buffer, derivationPath?: string, key?: string): DerivationNode;
package/ed25519/derive.js CHANGED
@@ -1,54 +1,56 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deriveEd25519 = deriveEd25519;
4
- const ed25519_1 = require("@airgap/coinlib-core/dependencies/src/@stablelib/ed25519-1.0.3/packages/ed25519/ed25519");
5
- const sha512_1 = require("@airgap/coinlib-core/dependencies/src/@stablelib/sha512-1.0.1/packages/sha512/sha512");
6
- const hmac_1 = require("@stablelib/hmac");
7
- const derivation_1 = require("../utils/derivation");
8
- const hash_1 = require("../utils/hash");
9
- const ED25519_KEY = 'ed25519 seed';
10
- function deriveEd25519(seed, derivationPath, key = ED25519_KEY) {
11
- const masterNode = masterNodeFromSeed(seed, key);
3
+ exports.deriveEd25519 = void 0;
4
+ var ed25519_1 = require("@airgap/coinlib-core/dependencies/src/@stablelib/ed25519-1.0.3/packages/ed25519/ed25519");
5
+ var sha512_1 = require("@airgap/coinlib-core/dependencies/src/@stablelib/sha512-1.0.1/packages/sha512/sha512");
6
+ var hmac_1 = require("@stablelib/hmac");
7
+ var derivation_1 = require("../utils/derivation");
8
+ var hash_1 = require("../utils/hash");
9
+ var ED25519_KEY = 'ed25519 seed';
10
+ function deriveEd25519(seed, derivationPath, key) {
11
+ if (key === void 0) { key = ED25519_KEY; }
12
+ var masterNode = masterNodeFromSeed(seed, key);
12
13
  return derivationPath !== undefined ? derive(masterNode, derivationPath) : masterNode;
13
14
  }
15
+ exports.deriveEd25519 = deriveEd25519;
14
16
  function masterNodeFromSeed(seed, key) {
15
- const { key: secretKey, chainCode } = getKey(seed, Buffer.from(key, 'utf-8'));
17
+ var _a = getKey(seed, Buffer.from(key, 'utf-8')), secretKey = _a.key, chainCode = _a.chainCode;
16
18
  return {
17
19
  depth: 0,
18
20
  parentFingerprint: 0x00000000,
19
21
  index: 0,
20
- chainCode,
21
- secretKey,
22
+ chainCode: chainCode,
23
+ secretKey: secretKey,
22
24
  publicKey: getPublicKey(secretKey)
23
25
  };
24
26
  }
25
27
  function derive(masterNode, derivationPath) {
26
- const derivationIndices = (0, derivation_1.splitDerivationPath)(derivationPath);
27
- return derivationIndices.reduce((derivedNode, next) => {
28
- const parentFingerprint = (0, hash_1.hash160)(derivedNode.publicKey).readUInt32BE(0);
29
- const index = next.masked;
30
- const indexBuffer = Buffer.alloc(4);
28
+ var derivationIndices = (0, derivation_1.splitDerivationPath)(derivationPath);
29
+ return derivationIndices.reduce(function (derivedNode, next) {
30
+ var parentFingerprint = (0, hash_1.hash160)(derivedNode.publicKey).readUInt32BE(0);
31
+ var index = next.masked;
32
+ var indexBuffer = Buffer.alloc(4);
31
33
  indexBuffer.writeUInt32BE(index);
32
- const data = Buffer.concat([Buffer.alloc(1, 0), derivedNode.secretKey, indexBuffer]);
33
- const { key: secretKey, chainCode } = getKey(data, derivedNode.chainCode);
34
+ var data = Buffer.concat([Buffer.alloc(1, 0), derivedNode.secretKey, indexBuffer]);
35
+ var _a = getKey(data, derivedNode.chainCode), secretKey = _a.key, chainCode = _a.chainCode;
34
36
  return {
35
37
  depth: derivedNode.depth + 1,
36
- parentFingerprint,
37
- index,
38
- chainCode,
39
- secretKey,
38
+ parentFingerprint: parentFingerprint,
39
+ index: index,
40
+ chainCode: chainCode,
41
+ secretKey: secretKey,
40
42
  publicKey: getPublicKey(secretKey)
41
43
  };
42
44
  }, masterNode);
43
45
  }
44
46
  function getKey(data, key) {
45
- const I = Buffer.from((0, hmac_1.hmac)(sha512_1.SHA512, key, data));
46
- const IL = I.slice(0, 32);
47
- const IR = I.slice(32);
47
+ var I = Buffer.from((0, hmac_1.hmac)(sha512_1.SHA512, key, data));
48
+ var IL = I.slice(0, 32);
49
+ var IR = I.slice(32);
48
50
  return { key: IL, chainCode: IR };
49
51
  }
50
52
  function getPublicKey(privateKey) {
51
- const { publicKey } = (0, ed25519_1.generateKeyPairFromSeed)(privateKey);
53
+ var publicKey = (0, ed25519_1.generateKeyPairFromSeed)(privateKey).publicKey;
52
54
  return Buffer.from(publicKey);
53
55
  }
54
56
  //# sourceMappingURL=derive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/ed25519/derive.ts"],"names":[],"mappings":";;AAUA,sCAIC;AAdD,qHAAiI;AACjI,iHAA6G;AAC7G,0CAAsC;AAGtC,oDAAyD;AACzD,wCAAuC;AAEvC,MAAM,WAAW,GAAW,cAAc,CAAA;AAE1C,SAAgB,aAAa,CAAC,IAAY,EAAE,cAAuB,EAAE,MAAc,WAAW;IAC5F,MAAM,UAAU,GAAmB,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAEhE,OAAO,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;AACvF,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,GAAW;IACnD,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;IAE7E,OAAO;QACL,KAAK,EAAE,CAAC;QACR,iBAAiB,EAAE,UAAU;QAC7B,KAAK,EAAE,CAAC;QACR,SAAS;QACT,SAAS;QACT,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC;KACnC,CAAA;AACH,CAAC;AAED,SAAS,MAAM,CAAC,UAA0B,EAAE,cAAsB;IAChE,MAAM,iBAAiB,GAAsB,IAAA,gCAAmB,EAAC,cAAc,CAAC,CAAA;IAEhF,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,WAA2B,EAAE,IAAqB,EAAE,EAAE;QACrF,MAAM,iBAAiB,GAAW,IAAA,cAAO,EAAC,WAAW,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAEhF,MAAM,KAAK,GAAW,IAAI,CAAC,MAAM,CAAA;QACjC,MAAM,WAAW,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC3C,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAEhC,MAAM,IAAI,GAAW,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAA;QAE5F,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;QAEzE,OAAO;YACL,KAAK,EAAE,WAAW,CAAC,KAAK,GAAG,CAAC;YAC5B,iBAAiB;YACjB,KAAK;YACL,SAAS;YACT,SAAS;YACT,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC;SACnC,CAAA;IACH,CAAC,EAAE,UAAU,CAAC,CAAA;AAChB,CAAC;AAED,SAAS,MAAM,CAAC,IAAY,EAAE,GAAW;IACvC,MAAM,CAAC,GAAW,MAAM,CAAC,IAAI,CAAC,IAAA,WAAI,EAAC,eAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;IACtD,MAAM,EAAE,GAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACjC,MAAM,EAAE,GAAW,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAE9B,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;AACnC,CAAC;AAED,SAAS,YAAY,CAAC,UAAkB;IACtC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,iCAAuB,EAAC,UAAU,CAAC,CAAA;IAEzD,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC/B,CAAC"}
1
+ {"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/ed25519/derive.ts"],"names":[],"mappings":";;;AAAA,mHAAiI;AACjI,+GAA6G;AAC7G,wCAAsC;AAGtC,kDAAyD;AACzD,sCAAuC;AAEvC,IAAM,WAAW,GAAW,cAAc,CAAA;AAE1C,SAAgB,aAAa,CAAC,IAAY,EAAE,cAAuB,EAAE,GAAyB;IAAzB,oBAAA,EAAA,iBAAyB;IAC5F,IAAM,UAAU,GAAmB,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAEhE,OAAO,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;AACvF,CAAC;AAJD,sCAIC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,GAAW;IAC7C,IAAA,KAAgC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,EAAhE,SAAS,SAAA,EAAE,SAAS,eAA4C,CAAA;IAE7E,OAAO;QACL,KAAK,EAAE,CAAC;QACR,iBAAiB,EAAE,UAAU;QAC7B,KAAK,EAAE,CAAC;QACR,SAAS,WAAA;QACT,SAAS,WAAA;QACT,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC;KACnC,CAAA;AACH,CAAC;AAED,SAAS,MAAM,CAAC,UAA0B,EAAE,cAAsB;IAChE,IAAM,iBAAiB,GAAsB,IAAA,gCAAmB,EAAC,cAAc,CAAC,CAAA;IAEhF,OAAO,iBAAiB,CAAC,MAAM,CAAC,UAAC,WAA2B,EAAE,IAAqB;QACjF,IAAM,iBAAiB,GAAW,IAAA,cAAO,EAAC,WAAW,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAEhF,IAAM,KAAK,GAAW,IAAI,CAAC,MAAM,CAAA;QACjC,IAAM,WAAW,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC3C,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAEhC,IAAM,IAAI,GAAW,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAA;QAEtF,IAAA,KAAgC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,EAA5D,SAAS,SAAA,EAAE,SAAS,eAAwC,CAAA;QAEzE,OAAO;YACL,KAAK,EAAE,WAAW,CAAC,KAAK,GAAG,CAAC;YAC5B,iBAAiB,mBAAA;YACjB,KAAK,OAAA;YACL,SAAS,WAAA;YACT,SAAS,WAAA;YACT,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC;SACnC,CAAA;IACH,CAAC,EAAE,UAAU,CAAC,CAAA;AAChB,CAAC;AAED,SAAS,MAAM,CAAC,IAAY,EAAE,GAAW;IACvC,IAAM,CAAC,GAAW,MAAM,CAAC,IAAI,CAAC,IAAA,WAAI,EAAC,eAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;IACtD,IAAM,EAAE,GAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACjC,IAAM,EAAE,GAAW,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAE9B,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;AACnC,CAAC;AAED,SAAS,YAAY,CAAC,UAAkB;IAC9B,IAAA,SAAS,GAAK,IAAA,iCAAuB,EAAC,UAAU,CAAC,UAAxC,CAAwC;IAEzD,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC/B,CAAC"}
package/encoding.d.ts CHANGED
@@ -3,7 +3,7 @@ import { Bip32Node, Version } from './utils/bip32';
3
3
  import { BytesNode } from './utils/bytes';
4
4
  import { HexNode } from './utils/hex';
5
5
  import { Zip32Node } from './utils/zip32';
6
- type EncodedNode = BytesNode | HexNode | Bip32Node | Zip32Node;
6
+ declare type EncodedNode = BytesNode | HexNode | Bip32Node | Zip32Node;
7
7
  export declare function encodeDerivative(type: BytesNode['type'], derivative: CryptoDerivative): BytesNode;
8
8
  export declare function encodeDerivative(type: HexNode['type'], derivative: CryptoDerivative): HexNode;
9
9
  export declare function encodeDerivative(type: Bip32Node['type'], derivative: CryptoDerivative, version?: Version): Bip32Node;
package/encoding.js CHANGED
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.encodeDerivative = encodeDerivative;
4
- exports.decodeDerivative = decodeDerivative;
5
- const coinlib_core_1 = require("@airgap/coinlib-core");
6
- const bip32_1 = require("./utils/bip32");
7
- const bytes_1 = require("./utils/bytes");
8
- const factory_1 = require("./utils/factory");
9
- const hex_1 = require("./utils/hex");
10
- const zip32_1 = require("./utils/zip32");
3
+ exports.decodeDerivative = exports.encodeDerivative = void 0;
4
+ var coinlib_core_1 = require("@airgap/coinlib-core");
5
+ var bip32_1 = require("./utils/bip32");
6
+ var bytes_1 = require("./utils/bytes");
7
+ var factory_1 = require("./utils/factory");
8
+ var hex_1 = require("./utils/hex");
9
+ var zip32_1 = require("./utils/zip32");
11
10
  function encodeDerivative(type, derivative, bip39VersionOrUndefined) {
12
- const node = (0, factory_1.newDerivationNodeFromDerivative)(derivative);
11
+ var node = (0, factory_1.newDerivationNodeFromDerivative)(derivative);
13
12
  return encodeNode(type, node, bip39VersionOrUndefined);
14
13
  }
14
+ exports.encodeDerivative = encodeDerivative;
15
15
  function encodeNode(type, node, bip39VersionOrUndefined) {
16
16
  switch (type) {
17
17
  case 'bytes':
@@ -28,9 +28,10 @@ function encodeNode(type, node, bip39VersionOrUndefined) {
28
28
  }
29
29
  }
30
30
  function decodeDerivative(node) {
31
- const decodedNode = decodeNode(node);
31
+ var decodedNode = decodeNode(node);
32
32
  return (0, factory_1.newCryptoDerivativeFromNode)(decodedNode);
33
33
  }
34
+ exports.decodeDerivative = decodeDerivative;
34
35
  function decodeNode(node) {
35
36
  switch (node.type) {
36
37
  case 'bytes':
package/encoding.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"encoding.js","sourceRoot":"","sources":["../src/encoding.ts"],"names":[],"mappings":";;AAiBA,4CAIC;AAkBD,4CAIC;AA3CD,uDAAkD;AAIlD,yCAAoF;AACpF,yCAA2E;AAC3E,6CAA8F;AAC9F,qCAAmE;AACnE,yCAA2E;AAS3E,SAAgB,gBAAgB,CAAC,IAAkB,EAAE,UAA4B,EAAE,uBAAiC;IAClH,MAAM,IAAI,GAAmB,IAAA,yCAA+B,EAAC,UAAU,CAAC,CAAA;IAExE,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAA;AACxD,CAAC;AAED,SAAS,UAAU,CAAC,IAAkB,EAAE,IAAoB,EAAE,uBAAiC;IAC7F,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAA;QAC9B,KAAK,KAAK;YACR,OAAO,IAAA,mBAAa,EAAC,IAAI,CAAC,CAAA;QAC5B,KAAK,OAAO;YACV,OAAO,IAAA,uBAAe,EAAC,IAAI,EAAE,uBAAuB,CAAC,CAAA;QACvD,KAAK,OAAO;YACV,OAAO,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAA;QAC9B;YACE,IAAA,0BAAW,EAAC,IAAI,CAAC,CAAA;YACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAChD,CAAC;AACH,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAiB;IAChD,MAAM,WAAW,GAAmB,UAAU,CAAC,IAAI,CAAC,CAAA;IAEpD,OAAO,IAAA,qCAA2B,EAAC,WAAW,CAAC,CAAA;AACjD,CAAC;AAED,SAAS,UAAU,CAAC,IAAiB;IACnC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,OAAO;YACV,OAAO,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAA;QAC9B,KAAK,KAAK;YACR,OAAO,IAAA,mBAAa,EAAC,IAAI,CAAC,CAAA;QAC5B,KAAK,OAAO;YACV,OAAO,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAA;QAC9B,KAAK,OAAO;YACV,OAAO,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAA;QAC9B;YACE,IAAA,0BAAW,EAAC,IAAI,CAAC,CAAA;YACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IACpD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"encoding.js","sourceRoot":"","sources":["../src/encoding.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAIlD,uCAAoF;AACpF,uCAA2E;AAC3E,2CAA8F;AAC9F,mCAAmE;AACnE,uCAA2E;AAS3E,SAAgB,gBAAgB,CAAC,IAAkB,EAAE,UAA4B,EAAE,uBAAiC;IAClH,IAAM,IAAI,GAAmB,IAAA,yCAA+B,EAAC,UAAU,CAAC,CAAA;IAExE,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAA;AACxD,CAAC;AAJD,4CAIC;AAED,SAAS,UAAU,CAAC,IAAkB,EAAE,IAAoB,EAAE,uBAAiC;IAC7F,QAAQ,IAAI,EAAE;QACZ,KAAK,OAAO;YACV,OAAO,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAA;QAC9B,KAAK,KAAK;YACR,OAAO,IAAA,mBAAa,EAAC,IAAI,CAAC,CAAA;QAC5B,KAAK,OAAO;YACV,OAAO,IAAA,uBAAe,EAAC,IAAI,EAAE,uBAAuB,CAAC,CAAA;QACvD,KAAK,OAAO;YACV,OAAO,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAA;QAC9B;YACE,IAAA,0BAAW,EAAC,IAAI,CAAC,CAAA;YACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;KAC/C;AACH,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAiB;IAChD,IAAM,WAAW,GAAmB,UAAU,CAAC,IAAI,CAAC,CAAA;IAEpD,OAAO,IAAA,qCAA2B,EAAC,WAAW,CAAC,CAAA;AACjD,CAAC;AAJD,4CAIC;AAED,SAAS,UAAU,CAAC,IAAiB;IACnC,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,OAAO;YACV,OAAO,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAA;QAC9B,KAAK,KAAK;YACR,OAAO,IAAA,mBAAa,EAAC,IAAI,CAAC,CAAA;QAC5B,KAAK,OAAO;YACV,OAAO,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAA;QAC9B,KAAK,OAAO;YACV,OAAO,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAA;QAC9B;YACE,IAAA,0BAAW,EAAC,IAAI,CAAC,CAAA;YACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;KACnD;AACH,CAAC"}
package/index.js CHANGED
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.decodeDerivative = exports.encodeDerivative = exports.mnemonicToSeed = exports.deriveSr25519 = exports.deriveEd25519 = exports.derive = void 0;
4
- const derive_1 = require("./derive");
4
+ var derive_1 = require("./derive");
5
5
  Object.defineProperty(exports, "derive", { enumerable: true, get: function () { return derive_1.derive; } });
6
- const derive_2 = require("./ed25519/derive");
6
+ var derive_2 = require("./ed25519/derive");
7
7
  Object.defineProperty(exports, "deriveEd25519", { enumerable: true, get: function () { return derive_2.deriveEd25519; } });
8
- const encoding_1 = require("./encoding");
8
+ var encoding_1 = require("./encoding");
9
9
  Object.defineProperty(exports, "decodeDerivative", { enumerable: true, get: function () { return encoding_1.decodeDerivative; } });
10
10
  Object.defineProperty(exports, "encodeDerivative", { enumerable: true, get: function () { return encoding_1.encodeDerivative; } });
11
- const secret_1 = require("./secret");
11
+ var secret_1 = require("./secret");
12
12
  Object.defineProperty(exports, "mnemonicToSeed", { enumerable: true, get: function () { return secret_1.mnemonicToSeed; } });
13
- const derive_3 = require("./sr25519/derive");
13
+ var derive_3 = require("./sr25519/derive");
14
14
  Object.defineProperty(exports, "deriveSr25519", { enumerable: true, get: function () { return derive_3.deriveSr25519; } });
15
15
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AAQxB,uFARA,eAAM,OAQA;AAPf,6CAAgD;AAO/B,8FAPR,sBAAa,OAOQ;AAN9B,yCAA+D;AAcpC,iGAdlB,2BAAgB,OAckB;AAAlC,iGAdkB,2BAAgB,OAclB;AAbzB,qCAAyC;AAShC,+FATA,uBAAc,OASA;AARvB,6CAAgD;AAIhB,8FAJvB,sBAAa,OAIuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAiC;AAQxB,uFARA,eAAM,OAQA;AAPf,2CAAgD;AAO/B,8FAPR,sBAAa,OAOQ;AAN9B,uCAA+D;AAcpC,iGAdlB,2BAAgB,OAckB;AAAlC,iGAdkB,2BAAgB,OAclB;AAbzB,mCAAyC;AAShC,+FATA,uBAAc,OASA;AARvB,2CAAgD;AAIhB,8FAJvB,sBAAa,OAIuB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@airgap/crypto",
3
- "version": "0.13.45-beta.3",
3
+ "version": "0.13.45-beta.5",
4
4
  "description": "The @airgap/crypto packages provides common crypto functionalities.",
5
5
  "keywords": [
6
6
  "airgap",
@@ -30,8 +30,8 @@
30
30
  },
31
31
  "author": "Papers AG <contact@papers.ch> (https://papers.ch)",
32
32
  "dependencies": {
33
- "@airgap/coinlib-core": "^0.13.45-beta.3",
34
- "@airgap/module-kit": "^0.13.45-beta.3",
33
+ "@airgap/coinlib-core": "^0.13.45-beta.5",
34
+ "@airgap/module-kit": "^0.13.45-beta.5",
35
35
  "@airgap/sapling-wasm": "^0.0.9",
36
36
  "@polkadot/wasm-crypto": "0.20.1",
37
37
  "@stablelib/hmac": "^1.0.1"
@@ -1,2 +1,3 @@
1
+ /// <reference types="node" />
1
2
  import { DerivationNode } from '../types/derivation';
2
3
  export declare function deriveSapling(seed: Buffer, derivationPath?: string): Promise<DerivationNode>;
package/sapling/derive.js CHANGED
@@ -1,15 +1,63 @@
1
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
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deriveSapling = deriveSapling;
4
- const sapling_wasm_1 = require("@airgap/sapling-wasm");
5
- const zip32_1 = require("../utils/zip32");
6
- async function deriveSapling(seed, derivationPath) {
7
- const xsk = await (0, sapling_wasm_1.getExtendedSpendingKey)(seed, derivationPath ?? 'm/');
8
- const xfvk = await (0, sapling_wasm_1.getExtendedFullViewingKeyFromSpendingKey)(xsk);
9
- return (0, zip32_1.zip32DecodeNode)({
10
- type: 'zip32bytes',
11
- secretKey: xsk,
12
- publicKey: xfvk
39
+ exports.deriveSapling = void 0;
40
+ var sapling_wasm_1 = require("@airgap/sapling-wasm");
41
+ var zip32_1 = require("../utils/zip32");
42
+ function deriveSapling(seed, derivationPath) {
43
+ return __awaiter(this, void 0, void 0, function () {
44
+ var xsk, xfvk;
45
+ return __generator(this, function (_a) {
46
+ switch (_a.label) {
47
+ case 0: return [4 /*yield*/, (0, sapling_wasm_1.getExtendedSpendingKey)(seed, derivationPath !== null && derivationPath !== void 0 ? derivationPath : 'm/')];
48
+ case 1:
49
+ xsk = _a.sent();
50
+ return [4 /*yield*/, (0, sapling_wasm_1.getExtendedFullViewingKeyFromSpendingKey)(xsk)];
51
+ case 2:
52
+ xfvk = _a.sent();
53
+ return [2 /*return*/, (0, zip32_1.zip32DecodeNode)({
54
+ type: 'zip32bytes',
55
+ secretKey: xsk,
56
+ publicKey: xfvk
57
+ })];
58
+ }
59
+ });
13
60
  });
14
61
  }
62
+ exports.deriveSapling = deriveSapling;
15
63
  //# sourceMappingURL=derive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/sapling/derive.ts"],"names":[],"mappings":";;AAKA,sCASC;AAdD,uDAAuG;AAGvG,0CAAgD;AAEzC,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,cAAuB;IACvE,MAAM,GAAG,GAAW,MAAM,IAAA,qCAAsB,EAAC,IAAI,EAAE,cAAc,IAAI,IAAI,CAAC,CAAA;IAC9E,MAAM,IAAI,GAAW,MAAM,IAAA,uDAAwC,EAAC,GAAG,CAAC,CAAA;IAExE,OAAO,IAAA,uBAAe,EAAC;QACrB,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/sapling/derive.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAuG;AAGvG,wCAAgD;AAEhD,SAAsB,aAAa,CAAC,IAAY,EAAE,cAAuB;;;;;wBACnD,qBAAM,IAAA,qCAAsB,EAAC,IAAI,EAAE,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,IAAI,CAAC,EAAA;;oBAAxE,GAAG,GAAW,SAA0D;oBACzD,qBAAM,IAAA,uDAAwC,EAAC,GAAG,CAAC,EAAA;;oBAAlE,IAAI,GAAW,SAAmD;oBAExE,sBAAO,IAAA,uBAAe,EAAC;4BACrB,IAAI,EAAE,YAAY;4BAClB,SAAS,EAAE,GAAG;4BACd,SAAS,EAAE,IAAI;yBAChB,CAAC,EAAA;;;;CACH;AATD,sCASC"}
@@ -1,2 +1,3 @@
1
+ /// <reference types="node" />
1
2
  import { DerivationNode } from '../types/derivation';
2
3
  export declare function deriveSecp256K1(seed: Buffer, derivationPath?: string, key?: string): DerivationNode;
@@ -3,65 +3,67 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.deriveSecp256K1 = deriveSecp256K1;
7
- const sha512_1 = require("@airgap/coinlib-core/dependencies/src/@stablelib/sha512-1.0.1/packages/sha512/sha512");
6
+ exports.deriveSecp256K1 = void 0;
7
+ var sha512_1 = require("@airgap/coinlib-core/dependencies/src/@stablelib/sha512-1.0.1/packages/sha512/sha512");
8
8
  // @ts-ignore
9
- const elliptic_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/secp256k1-4.0.2/elliptic"));
10
- const hmac_1 = require("@stablelib/hmac");
11
- const derivation_1 = require("../utils/derivation");
12
- const hash_1 = require("../utils/hash");
13
- const BITCOIN_KEY = 'Bitcoin seed';
14
- function deriveSecp256K1(seed, derivationPath, key = BITCOIN_KEY) {
15
- const masterNode = masterNodeFromSeed(seed, key);
9
+ var elliptic_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/secp256k1-4.0.2/elliptic"));
10
+ var hmac_1 = require("@stablelib/hmac");
11
+ var derivation_1 = require("../utils/derivation");
12
+ var hash_1 = require("../utils/hash");
13
+ var BITCOIN_KEY = 'Bitcoin seed';
14
+ function deriveSecp256K1(seed, derivationPath, key) {
15
+ if (key === void 0) { key = BITCOIN_KEY; }
16
+ var masterNode = masterNodeFromSeed(seed, key);
16
17
  return derivationPath !== undefined ? derive(masterNode, derivationPath) : masterNode;
17
18
  }
19
+ exports.deriveSecp256K1 = deriveSecp256K1;
18
20
  function masterNodeFromSeed(seed, key) {
19
- const { key: secretKey, chainCode } = getKey(seed, Buffer.from(key, 'utf-8'));
21
+ var _a = getKey(seed, Buffer.from(key, 'utf-8')), secretKey = _a.key, chainCode = _a.chainCode;
20
22
  return {
21
23
  depth: 0,
22
24
  parentFingerprint: 0x00000000,
23
25
  index: 0,
24
- chainCode,
25
- secretKey,
26
+ chainCode: chainCode,
27
+ secretKey: secretKey,
26
28
  publicKey: getPublicKey(secretKey)
27
29
  };
28
30
  }
29
31
  function derive(masterNode, derivationPath) {
30
- const derivationIndices = (0, derivation_1.splitDerivationPath)(derivationPath);
32
+ var derivationIndices = (0, derivation_1.splitDerivationPath)(derivationPath);
31
33
  return derivationIndices.reduce(deriveChild, masterNode);
32
34
  }
33
35
  function deriveChild(node, derivationIndex) {
34
- const parentFingerprint = (0, hash_1.hash160)(node.publicKey).readUInt32BE(0);
35
- const index = derivationIndex.masked;
36
- const indexBuffer = Buffer.alloc(4);
36
+ var parentFingerprint = (0, hash_1.hash160)(node.publicKey).readUInt32BE(0);
37
+ var index = derivationIndex.masked;
38
+ var indexBuffer = Buffer.alloc(4);
37
39
  indexBuffer.writeUInt32BE(index);
38
- const data = derivationIndex.isHardened
40
+ var data = derivationIndex.isHardened
39
41
  ? Buffer.concat([Buffer.alloc(1, 0), node.secretKey, indexBuffer])
40
42
  : Buffer.concat([node.publicKey, indexBuffer]);
41
- const { key, chainCode } = getKey(data, node.chainCode);
43
+ var _a = getKey(data, node.chainCode), key = _a.key, chainCode = _a.chainCode;
42
44
  try {
43
- const ki = Buffer.from(elliptic_1.default.privateKeyTweakAdd(Buffer.from(node.secretKey), key));
45
+ var ki = Buffer.from(elliptic_1.default.privateKeyTweakAdd(Buffer.from(node.secretKey), key));
44
46
  return {
45
47
  depth: node.depth + 1,
46
- parentFingerprint,
47
- index,
48
- chainCode,
48
+ parentFingerprint: parentFingerprint,
49
+ index: index,
50
+ chainCode: chainCode,
49
51
  secretKey: ki,
50
52
  publicKey: getPublicKey(ki)
51
53
  };
52
54
  }
53
- catch {
55
+ catch (_b) {
54
56
  return deriveChild(node, (0, derivation_1.incIndex)(derivationIndex));
55
57
  }
56
58
  }
57
59
  function getKey(data, key) {
58
- const I = Buffer.from((0, hmac_1.hmac)(sha512_1.SHA512, key, data));
59
- const IL = I.slice(0, 32);
60
- const IR = I.slice(32);
60
+ var I = Buffer.from((0, hmac_1.hmac)(sha512_1.SHA512, key, data));
61
+ var IL = I.slice(0, 32);
62
+ var IR = I.slice(32);
61
63
  return { key: IL, chainCode: IR };
62
64
  }
63
65
  function getPublicKey(privateKey) {
64
- const publicKey = elliptic_1.default.publicKeyCreate(privateKey, true);
66
+ var publicKey = elliptic_1.default.publicKeyCreate(privateKey, true);
65
67
  return Buffer.from(publicKey);
66
68
  }
67
69
  //# sourceMappingURL=derive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/secp256k1/derive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/secp256k1/derive.ts"],"names":[],"mappings":"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"}
package/secret.d.ts CHANGED
@@ -1,2 +1,3 @@
1
+ /// <reference types="node" />
1
2
  import { CryptoConfiguration } from '@airgap/module-kit';
2
3
  export declare function mnemonicToSeed(crypto: CryptoConfiguration, mnemonic: string, password?: string): Promise<Buffer>;