@airgap/crypto 0.13.45-beta.2 → 0.13.45-beta.3

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,3 +1,2 @@
1
- /// <reference types="node" />
2
1
  import { CryptoConfiguration, CryptoDerivative } from '@airgap/module-kit';
3
2
  export declare function derive(crypto: CryptoConfiguration, seed: Buffer, derivationPath?: string): Promise<CryptoDerivative>;
package/derive.js CHANGED
@@ -1,80 +1,29 @@
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
- };
38
2
  Object.defineProperty(exports, "__esModule", { value: true });
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
- });
58
- }
59
3
  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
- });
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);
13
+ }
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
+ }
79
28
  }
80
29
  //# sourceMappingURL=derive.js.map
package/derive.js.map CHANGED
@@ -1 +1 @@
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
+ {"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,3 +1,2 @@
1
- /// <reference types="node" />
2
1
  import { DerivationNode } from '../types/derivation';
3
2
  export declare function deriveEd25519(seed: Buffer, derivationPath?: string, key?: string): DerivationNode;
package/ed25519/derive.js CHANGED
@@ -1,56 +1,54 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
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);
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);
13
12
  return derivationPath !== undefined ? derive(masterNode, derivationPath) : masterNode;
14
13
  }
15
- exports.deriveEd25519 = deriveEd25519;
16
14
  function masterNodeFromSeed(seed, key) {
17
- var _a = getKey(seed, Buffer.from(key, 'utf-8')), secretKey = _a.key, chainCode = _a.chainCode;
15
+ const { key: secretKey, chainCode } = getKey(seed, Buffer.from(key, 'utf-8'));
18
16
  return {
19
17
  depth: 0,
20
18
  parentFingerprint: 0x00000000,
21
19
  index: 0,
22
- chainCode: chainCode,
23
- secretKey: secretKey,
20
+ chainCode,
21
+ secretKey,
24
22
  publicKey: getPublicKey(secretKey)
25
23
  };
26
24
  }
27
25
  function derive(masterNode, derivationPath) {
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);
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);
33
31
  indexBuffer.writeUInt32BE(index);
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;
32
+ const data = Buffer.concat([Buffer.alloc(1, 0), derivedNode.secretKey, indexBuffer]);
33
+ const { key: secretKey, chainCode } = getKey(data, derivedNode.chainCode);
36
34
  return {
37
35
  depth: derivedNode.depth + 1,
38
- parentFingerprint: parentFingerprint,
39
- index: index,
40
- chainCode: chainCode,
41
- secretKey: secretKey,
36
+ parentFingerprint,
37
+ index,
38
+ chainCode,
39
+ secretKey,
42
40
  publicKey: getPublicKey(secretKey)
43
41
  };
44
42
  }, masterNode);
45
43
  }
46
44
  function getKey(data, key) {
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);
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);
50
48
  return { key: IL, chainCode: IR };
51
49
  }
52
50
  function getPublicKey(privateKey) {
53
- var publicKey = (0, ed25519_1.generateKeyPairFromSeed)(privateKey).publicKey;
51
+ const { publicKey } = (0, ed25519_1.generateKeyPairFromSeed)(privateKey);
54
52
  return Buffer.from(publicKey);
55
53
  }
56
54
  //# sourceMappingURL=derive.js.map
@@ -1 +1 @@
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"}
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"}
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
- declare type EncodedNode = BytesNode | HexNode | Bip32Node | Zip32Node;
6
+ 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.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");
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");
10
11
  function encodeDerivative(type, derivative, bip39VersionOrUndefined) {
11
- var node = (0, factory_1.newDerivationNodeFromDerivative)(derivative);
12
+ const node = (0, factory_1.newDerivationNodeFromDerivative)(derivative);
12
13
  return encodeNode(type, node, bip39VersionOrUndefined);
13
14
  }
14
- exports.encodeDerivative = encodeDerivative;
15
15
  function encodeNode(type, node, bip39VersionOrUndefined) {
16
16
  switch (type) {
17
17
  case 'bytes':
@@ -28,10 +28,9 @@ function encodeNode(type, node, bip39VersionOrUndefined) {
28
28
  }
29
29
  }
30
30
  function decodeDerivative(node) {
31
- var decodedNode = decodeNode(node);
31
+ const decodedNode = decodeNode(node);
32
32
  return (0, factory_1.newCryptoDerivativeFromNode)(decodedNode);
33
33
  }
34
- exports.decodeDerivative = decodeDerivative;
35
34
  function decodeNode(node) {
36
35
  switch (node.type) {
37
36
  case 'bytes':
package/encoding.js.map CHANGED
@@ -1 +1 @@
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"}
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"}
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
- var derive_1 = require("./derive");
4
+ const derive_1 = require("./derive");
5
5
  Object.defineProperty(exports, "derive", { enumerable: true, get: function () { return derive_1.derive; } });
6
- var derive_2 = require("./ed25519/derive");
6
+ const derive_2 = require("./ed25519/derive");
7
7
  Object.defineProperty(exports, "deriveEd25519", { enumerable: true, get: function () { return derive_2.deriveEd25519; } });
8
- var encoding_1 = require("./encoding");
8
+ const 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
- var secret_1 = require("./secret");
11
+ const secret_1 = require("./secret");
12
12
  Object.defineProperty(exports, "mnemonicToSeed", { enumerable: true, get: function () { return secret_1.mnemonicToSeed; } });
13
- var derive_3 = require("./sr25519/derive");
13
+ const 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,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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@airgap/crypto",
3
- "version": "0.13.45-beta.2",
3
+ "version": "0.13.45-beta.3",
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.2",
34
- "@airgap/module-kit": "^0.13.45-beta.2",
33
+ "@airgap/coinlib-core": "^0.13.45-beta.3",
34
+ "@airgap/module-kit": "^0.13.45-beta.3",
35
35
  "@airgap/sapling-wasm": "^0.0.9",
36
36
  "@polkadot/wasm-crypto": "0.20.1",
37
37
  "@stablelib/hmac": "^1.0.1"
@@ -1,3 +1,2 @@
1
- /// <reference types="node" />
2
1
  import { DerivationNode } from '../types/derivation';
3
2
  export declare function deriveSapling(seed: Buffer, derivationPath?: string): Promise<DerivationNode>;
package/sapling/derive.js CHANGED
@@ -1,63 +1,15 @@
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
- };
38
2
  Object.defineProperty(exports, "__esModule", { value: true });
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
- });
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
60
13
  });
61
14
  }
62
- exports.deriveSapling = deriveSapling;
63
15
  //# sourceMappingURL=derive.js.map
@@ -1 +1 @@
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
+ {"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,3 +1,2 @@
1
- /// <reference types="node" />
2
1
  import { DerivationNode } from '../types/derivation';
3
2
  export declare function deriveSecp256K1(seed: Buffer, derivationPath?: string, key?: string): DerivationNode;
@@ -3,67 +3,65 @@ 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 = void 0;
7
- var sha512_1 = require("@airgap/coinlib-core/dependencies/src/@stablelib/sha512-1.0.1/packages/sha512/sha512");
6
+ exports.deriveSecp256K1 = deriveSecp256K1;
7
+ const sha512_1 = require("@airgap/coinlib-core/dependencies/src/@stablelib/sha512-1.0.1/packages/sha512/sha512");
8
8
  // @ts-ignore
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);
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);
17
16
  return derivationPath !== undefined ? derive(masterNode, derivationPath) : masterNode;
18
17
  }
19
- exports.deriveSecp256K1 = deriveSecp256K1;
20
18
  function masterNodeFromSeed(seed, key) {
21
- var _a = getKey(seed, Buffer.from(key, 'utf-8')), secretKey = _a.key, chainCode = _a.chainCode;
19
+ const { key: secretKey, chainCode } = getKey(seed, Buffer.from(key, 'utf-8'));
22
20
  return {
23
21
  depth: 0,
24
22
  parentFingerprint: 0x00000000,
25
23
  index: 0,
26
- chainCode: chainCode,
27
- secretKey: secretKey,
24
+ chainCode,
25
+ secretKey,
28
26
  publicKey: getPublicKey(secretKey)
29
27
  };
30
28
  }
31
29
  function derive(masterNode, derivationPath) {
32
- var derivationIndices = (0, derivation_1.splitDerivationPath)(derivationPath);
30
+ const derivationIndices = (0, derivation_1.splitDerivationPath)(derivationPath);
33
31
  return derivationIndices.reduce(deriveChild, masterNode);
34
32
  }
35
33
  function deriveChild(node, derivationIndex) {
36
- var parentFingerprint = (0, hash_1.hash160)(node.publicKey).readUInt32BE(0);
37
- var index = derivationIndex.masked;
38
- var indexBuffer = Buffer.alloc(4);
34
+ const parentFingerprint = (0, hash_1.hash160)(node.publicKey).readUInt32BE(0);
35
+ const index = derivationIndex.masked;
36
+ const indexBuffer = Buffer.alloc(4);
39
37
  indexBuffer.writeUInt32BE(index);
40
- var data = derivationIndex.isHardened
38
+ const data = derivationIndex.isHardened
41
39
  ? Buffer.concat([Buffer.alloc(1, 0), node.secretKey, indexBuffer])
42
40
  : Buffer.concat([node.publicKey, indexBuffer]);
43
- var _a = getKey(data, node.chainCode), key = _a.key, chainCode = _a.chainCode;
41
+ const { key, chainCode } = getKey(data, node.chainCode);
44
42
  try {
45
- var ki = Buffer.from(elliptic_1.default.privateKeyTweakAdd(Buffer.from(node.secretKey), key));
43
+ const ki = Buffer.from(elliptic_1.default.privateKeyTweakAdd(Buffer.from(node.secretKey), key));
46
44
  return {
47
45
  depth: node.depth + 1,
48
- parentFingerprint: parentFingerprint,
49
- index: index,
50
- chainCode: chainCode,
46
+ parentFingerprint,
47
+ index,
48
+ chainCode,
51
49
  secretKey: ki,
52
50
  publicKey: getPublicKey(ki)
53
51
  };
54
52
  }
55
- catch (_b) {
53
+ catch {
56
54
  return deriveChild(node, (0, derivation_1.incIndex)(derivationIndex));
57
55
  }
58
56
  }
59
57
  function getKey(data, key) {
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);
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);
63
61
  return { key: IL, chainCode: IR };
64
62
  }
65
63
  function getPublicKey(privateKey) {
66
- var publicKey = elliptic_1.default.publicKeyCreate(privateKey, true);
64
+ const publicKey = elliptic_1.default.publicKeyCreate(privateKey, true);
67
65
  return Buffer.from(publicKey);
68
66
  }
69
67
  //# sourceMappingURL=derive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/secp256k1/derive.ts"],"names":[],"mappings":";;;;;;AAAA,+GAA6G;AAC7G,aAAa;AACb,4GAAsF;AACtF,wCAAsC;AAGtC,kDAAmE;AACnE,sCAAuC;AAEvC,IAAM,WAAW,GAAW,cAAc,CAAA;AAE1C,SAAgB,eAAe,CAAC,IAAY,EAAE,cAAuB,EAAE,GAAyB;IAAzB,oBAAA,EAAA,iBAAyB;IAC9F,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,0CAIC;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,WAAW,EAAE,UAAU,CAAC,CAAA;AAC1D,CAAC;AAED,SAAS,WAAW,CAAC,IAAoB,EAAE,eAAgC;IACzE,IAAM,iBAAiB,GAAW,IAAA,cAAO,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAEzE,IAAM,KAAK,GAAW,eAAe,CAAC,MAAM,CAAA;IAC5C,IAAM,WAAW,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC3C,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAEhC,IAAM,IAAI,GAAW,eAAe,CAAC,UAAU;QAC7C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAClE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAA;IAE1C,IAAA,KAAqB,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAA/C,GAAG,SAAA,EAAE,SAAS,eAAiC,CAAA;IAEvD,IAAI;QACF,IAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAEtF,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC;YACrB,iBAAiB,mBAAA;YACjB,KAAK,OAAA;YACL,SAAS,WAAA;YACT,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC;SAC5B,CAAA;KACF;IAAC,WAAM;QACN,OAAO,WAAW,CAAC,IAAI,EAAE,IAAA,qBAAQ,EAAC,eAAe,CAAC,CAAC,CAAA;KACpD;AACH,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;IACtC,IAAM,SAAS,GAAG,kBAAS,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IAE7D,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC/B,CAAC"}
1
+ {"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/secp256k1/derive.ts"],"names":[],"mappings":"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"}
package/secret.d.ts CHANGED
@@ -1,3 +1,2 @@
1
- /// <reference types="node" />
2
1
  import { CryptoConfiguration } from '@airgap/module-kit';
3
2
  export declare function mnemonicToSeed(crypto: CryptoConfiguration, mnemonic: string, password?: string): Promise<Buffer>;