@bitgo-beta/sdk-core 8.2.1-beta.13 → 8.2.1-beta.131

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 (162) hide show
  1. package/CHANGELOG.md +432 -0
  2. package/dist/src/account-lib/baseCoin/enum.d.ts +6 -1
  3. package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
  4. package/dist/src/account-lib/baseCoin/enum.js +11 -1
  5. package/dist/src/account-lib/mpc/curves/ed25519.d.ts +4 -18
  6. package/dist/src/account-lib/mpc/curves/ed25519.d.ts.map +1 -1
  7. package/dist/src/account-lib/mpc/curves/ed25519.js +6 -60
  8. package/dist/src/account-lib/mpc/index.d.ts +4 -4
  9. package/dist/src/account-lib/mpc/index.d.ts.map +1 -1
  10. package/dist/src/account-lib/mpc/index.js +6 -6
  11. package/dist/src/account-lib/mpc/shamir.d.ts +5 -37
  12. package/dist/src/account-lib/mpc/shamir.d.ts.map +1 -1
  13. package/dist/src/account-lib/mpc/shamir.js +6 -130
  14. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +57 -9
  15. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -1
  16. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +581 -57
  17. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts +97 -55
  18. package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts.map +1 -1
  19. package/dist/src/account-lib/mpc/tss/ecdsa/types.js +1 -1
  20. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts +1 -1
  21. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts.map +1 -1
  22. package/dist/src/account-lib/mpc/tss/eddsa/eddsa.js +1 -1
  23. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts +0 -3
  24. package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts.map +1 -1
  25. package/dist/src/account-lib/mpc/tss/eddsa/types.js +1 -1
  26. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +16 -0
  27. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
  28. package/dist/src/bitgo/baseCoin/baseCoin.js +15 -1
  29. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +20 -4
  30. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  31. package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
  32. package/dist/src/bitgo/bitgoBase.d.ts +2 -1
  33. package/dist/src/bitgo/bitgoBase.d.ts.map +1 -1
  34. package/dist/src/bitgo/bitgoBase.js +1 -1
  35. package/dist/src/bitgo/enterprise/enterprise.d.ts +13 -1
  36. package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -1
  37. package/dist/src/bitgo/enterprise/enterprise.js +29 -1
  38. package/dist/src/bitgo/enterprise/enterprises.d.ts +6 -0
  39. package/dist/src/bitgo/enterprise/enterprises.d.ts.map +1 -1
  40. package/dist/src/bitgo/enterprise/enterprises.js +26 -1
  41. package/dist/src/bitgo/enterprise/iEnterprise.d.ts +4 -1
  42. package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -1
  43. package/dist/src/bitgo/enterprise/iEnterprise.js +1 -1
  44. package/dist/src/bitgo/enterprise/iEnterprises.d.ts +2 -0
  45. package/dist/src/bitgo/enterprise/iEnterprises.d.ts.map +1 -1
  46. package/dist/src/bitgo/enterprise/iEnterprises.js +1 -1
  47. package/dist/src/bitgo/environments.d.ts +7 -0
  48. package/dist/src/bitgo/environments.d.ts.map +1 -1
  49. package/dist/src/bitgo/environments.js +17 -3
  50. package/dist/src/bitgo/keychain/iKeychains.d.ts +6 -0
  51. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  52. package/dist/src/bitgo/keychain/iKeychains.js +1 -1
  53. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  54. package/dist/src/bitgo/keychain/keychains.js +30 -24
  55. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts +124 -89
  56. package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts.map +1 -1
  57. package/dist/src/bitgo/keychain/ovcJsonCodec.js +31 -24
  58. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts +2 -0
  59. package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts.map +1 -1
  60. package/dist/src/bitgo/pendingApproval/iPendingApproval.js +1 -1
  61. package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -1
  62. package/dist/src/bitgo/pendingApproval/pendingApproval.js +13 -1
  63. package/dist/src/bitgo/recovery/initiate.d.ts +7 -1
  64. package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -1
  65. package/dist/src/bitgo/recovery/initiate.js +1 -1
  66. package/dist/src/bitgo/staking/iStakingWallet.d.ts +11 -1
  67. package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -1
  68. package/dist/src/bitgo/staking/iStakingWallet.js +1 -1
  69. package/dist/src/bitgo/staking/stakingWallet.d.ts +7 -1
  70. package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -1
  71. package/dist/src/bitgo/staking/stakingWallet.js +9 -1
  72. package/dist/src/bitgo/tss/common.d.ts +15 -4
  73. package/dist/src/bitgo/tss/common.d.ts.map +1 -1
  74. package/dist/src/bitgo/tss/common.js +26 -11
  75. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +11 -8
  76. package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -1
  77. package/dist/src/bitgo/tss/ecdsa/ecdsa.js +36 -33
  78. package/dist/src/bitgo/tss/ecdsa/types.d.ts +2 -2
  79. package/dist/src/bitgo/tss/ecdsa/types.d.ts.map +1 -1
  80. package/dist/src/bitgo/tss/ecdsa/types.js +1 -1
  81. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts +6 -5
  82. package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -1
  83. package/dist/src/bitgo/tss/eddsa/eddsa.js +20 -9
  84. package/dist/src/bitgo/tss/types.d.ts +19 -0
  85. package/dist/src/bitgo/tss/types.d.ts.map +1 -1
  86. package/dist/src/bitgo/tss/types.js +1 -1
  87. package/dist/src/bitgo/utils/codecProps.d.ts +7 -0
  88. package/dist/src/bitgo/utils/codecProps.d.ts.map +1 -0
  89. package/dist/src/bitgo/utils/codecProps.js +41 -0
  90. package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -1
  91. package/dist/src/bitgo/utils/opengpgUtils.js +7 -10
  92. package/dist/src/bitgo/utils/postWithCodec.d.ts +18 -0
  93. package/dist/src/bitgo/utils/postWithCodec.d.ts.map +1 -0
  94. package/dist/src/bitgo/utils/postWithCodec.js +59 -0
  95. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +59 -12
  96. package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
  97. package/dist/src/bitgo/utils/tss/baseTSSUtils.js +71 -9
  98. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +174 -9
  99. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
  100. package/dist/src/bitgo/utils/tss/baseTypes.js +27 -2
  101. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts +47 -7
  102. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
  103. package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +247 -119
  104. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts +9 -0
  105. package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts.map +1 -1
  106. package/dist/src/bitgo/utils/tss/ecdsa/types.js +1 -1
  107. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +18 -5
  108. package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
  109. package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +79 -25
  110. package/dist/src/bitgo/wallet/BuildParams.d.ts +112 -0
  111. package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -0
  112. package/dist/src/bitgo/wallet/BuildParams.js +121 -0
  113. package/dist/src/bitgo/wallet/SendTransactionRequest.d.ts +93 -0
  114. package/dist/src/bitgo/wallet/SendTransactionRequest.d.ts.map +1 -0
  115. package/dist/src/bitgo/wallet/SendTransactionRequest.js +41 -0
  116. package/dist/src/bitgo/wallet/iWallet.d.ts +14 -1
  117. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  118. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  119. package/dist/src/bitgo/wallet/wallet.d.ts +11 -2
  120. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  121. package/dist/src/bitgo/wallet/wallet.js +140 -82
  122. package/dist/src/index.d.ts +4 -0
  123. package/dist/src/index.d.ts.map +1 -1
  124. package/dist/src/index.js +4 -2
  125. package/dist/src/openssl/index.d.ts +4 -1
  126. package/dist/src/openssl/index.d.ts.map +1 -1
  127. package/dist/src/openssl/index.js +7 -12
  128. package/dist/test/node.utils.d.ts +2 -0
  129. package/dist/test/node.utils.d.ts.map +1 -0
  130. package/dist/test/node.utils.js +5 -0
  131. package/dist/test/unit/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +2 -0
  132. package/dist/test/unit/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -0
  133. package/dist/test/unit/account-lib/mpc/tss/ecdsa/ecdsa.js +185 -0
  134. package/dist/test/unit/account-lib/mpc/tss/ecdsa/fixtures.d.ts +3 -0
  135. package/dist/test/unit/account-lib/mpc/tss/ecdsa/fixtures.d.ts.map +1 -0
  136. package/dist/test/unit/account-lib/mpc/tss/ecdsa/fixtures.js +24 -0
  137. package/dist/test/unit/bitgo/utils/postWithCodec.d.ts +2 -0
  138. package/dist/test/unit/bitgo/utils/postWithCodec.d.ts.map +1 -0
  139. package/dist/test/unit/bitgo/utils/postWithCodec.js +79 -0
  140. package/dist/test/unit/bitgo/wallet/SendTransactionRequest.d.ts +2 -0
  141. package/dist/test/unit/bitgo/wallet/SendTransactionRequest.d.ts.map +1 -0
  142. package/dist/test/unit/bitgo/wallet/SendTransactionRequest.js +49 -0
  143. package/dist/test/unit/openssl.d.ts +2 -0
  144. package/dist/test/unit/openssl.d.ts.map +1 -0
  145. package/dist/test/unit/openssl.js +39 -0
  146. package/dist/test/unit/units.d.ts +2 -0
  147. package/dist/test/unit/units.d.ts.map +1 -0
  148. package/dist/test/unit/units.js +98 -0
  149. package/dist/tsconfig.tsbuildinfo +1 -8279
  150. package/package.json +14 -13
  151. package/dist/src/account-lib/mpc/hdTree.d.ts +0 -31
  152. package/dist/src/account-lib/mpc/hdTree.d.ts.map +0 -1
  153. package/dist/src/account-lib/mpc/hdTree.js +0 -141
  154. package/dist/src/account-lib/mpc/types.d.ts +0 -5
  155. package/dist/src/account-lib/mpc/types.d.ts.map +0 -1
  156. package/dist/src/account-lib/mpc/types.js +0 -3
  157. package/dist/src/openssl/openssl.d.ts +0 -12
  158. package/dist/src/openssl/openssl.d.ts.map +0 -1
  159. package/dist/src/openssl/openssl.js +0 -48
  160. package/dist/src/openssl/opensslbytes.d.ts +0 -4
  161. package/dist/src/openssl/opensslbytes.d.ts.map +0 -1
  162. package/dist/src/openssl/opensslbytes.js +0 -20
@@ -1,63 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Ed25519Curve = void 0;
4
- const sodium = require('libsodium-wrappers-sumo');
5
- const crypto_1 = require("crypto");
6
- const util_1 = require("../util");
7
- class Ed25519Curve {
8
- static async initialize() {
9
- if (!Ed25519Curve.initialized) {
10
- await sodium.ready;
11
- Ed25519Curve.initialized = true;
12
- }
13
- return new Ed25519Curve();
14
- }
15
- scalarRandom() {
16
- return util_1.bigIntFromBufferLE(Buffer.from(sodium.crypto_core_ed25519_scalar_reduce(util_1.bigIntFromBufferLE(crypto_1.randomBytes(64)))));
17
- }
18
- scalarReduce(s) {
19
- return util_1.bigIntFromBufferLE(Buffer.from(sodium.crypto_core_ed25519_scalar_reduce(util_1.bigIntToBufferLE(s, 64))));
20
- }
21
- scalarNegate(s) {
22
- return util_1.bigIntFromBufferLE(Buffer.from(sodium.crypto_core_ed25519_scalar_negate(util_1.bigIntToBufferLE(s, 32))));
23
- }
24
- scalarInvert(s) {
25
- return util_1.bigIntFromBufferLE(Buffer.from(sodium.crypto_core_ed25519_scalar_invert(util_1.bigIntToBufferLE(s, 32))));
26
- }
27
- scalarAdd(x, y) {
28
- return util_1.bigIntFromBufferLE(Buffer.from(sodium.crypto_core_ed25519_scalar_add(util_1.bigIntToBufferLE(x, 32), util_1.bigIntToBufferLE(y, 32))));
29
- }
30
- scalarSub(x, y) {
31
- return util_1.bigIntFromBufferLE(Buffer.from(sodium.crypto_core_ed25519_scalar_sub(util_1.bigIntToBufferLE(x, 32), util_1.bigIntToBufferLE(y, 32))));
32
- }
33
- scalarMult(x, y) {
34
- return util_1.bigIntFromBufferLE(Buffer.from(sodium.crypto_core_ed25519_scalar_mul(util_1.bigIntToBufferLE(x, 32), util_1.bigIntToBufferLE(y, 32))));
35
- }
36
- basePointMult(n) {
37
- return util_1.bigIntFromBufferLE(Buffer.from(sodium.crypto_scalarmult_ed25519_base_noclamp(util_1.bigIntToBufferLE(n, 32))));
38
- }
39
- pointAdd(p, q) {
40
- return util_1.bigIntFromBufferLE(Buffer.from(sodium.crypto_core_ed25519_add(util_1.bigIntToBufferLE(p, 32), util_1.bigIntToBufferLE(q, 32))));
41
- }
42
- pointMultiply(p, s) {
43
- return util_1.bigIntFromBufferLE(Buffer.from(sodium.crypto_scalarmult_ed25519_noclamp(util_1.bigIntToBufferLE(s, 32), util_1.bigIntToBufferLE(p, 32))));
44
- }
45
- verify(message, signature, publicKey) {
46
- const signedMessage = Buffer.concat([signature, message]);
47
- try {
48
- // Returns the message which was signed if the signature is valid
49
- const result = Buffer.from(sodium.crypto_sign_open(signedMessage, util_1.bigIntToBufferLE(publicKey, 32)));
50
- return Buffer.compare(message, result) === 0;
51
- }
52
- catch (error) {
53
- // Invalid signature causes an exception
54
- return false;
55
- }
56
- }
57
- order() {
58
- return BigInt('0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed') * BigInt('0x08');
59
- }
60
- }
61
- exports.Ed25519Curve = Ed25519Curve;
62
- Ed25519Curve.initialized = false;
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWQyNTUxOS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hY2NvdW50LWxpYi9tcGMvY3VydmVzL2VkMjU1MTkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFDbEQsbUNBQXFDO0FBQ3JDLGtDQUErRDtBQUcvRCxNQUFhLFlBQVk7SUFHdkIsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVO1FBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFO1lBQzdCLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQztZQUNuQixZQUFZLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztTQUNqQztRQUVELE9BQU8sSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8seUJBQWtCLENBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLHlCQUFrQixDQUFDLG9CQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzNGLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWSxDQUFDLENBQVM7UUFDcEIsT0FBTyx5QkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyx1QkFBZ0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVELFlBQVksQ0FBQyxDQUFTO1FBQ3BCLE9BQU8seUJBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsaUNBQWlDLENBQUMsdUJBQWdCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFFRCxZQUFZLENBQUMsQ0FBUztRQUNwQixPQUFPLHlCQUFrQixDQUFDLE1BQU0s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c29kaXVtLXdyYXBwZXJzLXN1bW8nKTtcbmltcG9ydCB7IHJhbmRvbUJ5dGVzIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IGJpZ0ludEZyb21CdWZmZXJMRSwgYmlnSW50VG9CdWZmZXJMRSB9IGZyb20gJy4uL3V0aWwnO1xuaW1wb3J0IEJhc2VDdXJ2ZSBmcm9tICcuL2Jhc2VDdXJ2ZSc7XG5cbmV4cG9ydCBjbGFzcyBFZDI1NTE5Q3VydmUgaW1wbGVtZW50cyBCYXNlQ3VydmUge1xuICBzdGF0aWMgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICBzdGF0aWMgYXN5bmMgaW5pdGlhbGl6ZSgpOiBQcm9taXNlPEVkMjU1MTlDdXJ2ZT4ge1xuICAgIGlmICghRWQyNTUxOUN1cnZlLmluaXRpYWxpemVkKSB7XG4gICAgICBhd2FpdCBzb2RpdW0ucmVhZHk7XG4gICAgICBFZDI1NTE5Q3VydmUuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRWQyNTUxOUN1cnZlKCk7XG4gIH1cblxuICBzY2FsYXJSYW5kb20oKTogYmlnaW50IHtcbiAgICByZXR1cm4gYmlnSW50RnJvbUJ1ZmZlckxFKFxuICAgICAgQnVmZmVyLmZyb20oc29kaXVtLmNyeXB0b19jb3JlX2VkMjU1MTlfc2NhbGFyX3JlZHVjZShiaWdJbnRGcm9tQnVmZmVyTEUocmFuZG9tQnl0ZXMoNjQpKSkpXG4gICAgKTtcbiAgfVxuXG4gIHNjYWxhclJlZHVjZShzOiBiaWdpbnQpOiBiaWdpbnQge1xuICAgIHJldHVybiBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oc29kaXVtLmNyeXB0b19jb3JlX2VkMjU1MTlfc2NhbGFyX3JlZHVjZShiaWdJbnRUb0J1ZmZlckxFKHMsIDY0KSkpKTtcbiAgfVxuXG4gIHNjYWxhck5lZ2F0ZShzOiBiaWdpbnQpOiBiaWdpbnQge1xuICAgIHJldHVybiBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oc29kaXVtLmNyeXB0b19jb3JlX2VkMjU1MTlfc2NhbGFyX25lZ2F0ZShiaWdJbnRUb0J1ZmZlckxFKHMsIDMyKSkpKTtcbiAgfVxuXG4gIHNjYWxhckludmVydChzOiBiaWdpbnQpOiBiaWdpbnQge1xuICAgIHJldHVybiBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oc29kaXVtLmNyeXB0b19jb3JlX2VkMjU1MTlfc2NhbGFyX2ludmVydChiaWdJbnRUb0J1ZmZlckxFKHMsIDMyKSkpKTtcbiAgfVxuXG4gIHNjYWxhckFkZCh4OiBiaWdpbnQsIHk6IGJpZ2ludCk6IGJpZ2ludCB7XG4gICAgcmV0dXJuIGJpZ0ludEZyb21CdWZmZXJMRShcbiAgICAgIEJ1ZmZlci5mcm9tKHNvZGl1bS5jcnlwdG9fY29yZV9lZDI1NTE5X3NjYWxhcl9hZGQoYmlnSW50VG9CdWZmZXJMRSh4LCAzMiksIGJpZ0ludFRvQnVmZmVyTEUoeSwgMzIpKSlcbiAgICApO1xuICB9XG5cbiAgc2NhbGFyU3ViKHg6IGJpZ2ludCwgeTogYmlnaW50KTogYmlnaW50IHtcbiAgICByZXR1cm4gYmlnSW50RnJvbUJ1ZmZlckxFKFxuICAgICAgQnVmZmVyLmZyb20oc29kaXVtLmNyeXB0b19jb3JlX2VkMjU1MTlfc2NhbGFyX3N1YihiaWdJbnRUb0J1ZmZlckxFKHgsIDMyKSwgYmlnSW50VG9CdWZmZXJMRSh5LCAzMikpKVxuICAgICk7XG4gIH1cblxuICBzY2FsYXJNdWx0KHg6IGJpZ2ludCwgeTogYmlnaW50KTogYmlnaW50IHtcbiAgICByZXR1cm4gYmlnSW50RnJvbUJ1ZmZlckxFKFxuICAgICAgQnVmZmVyLmZyb20oc29kaXVtLmNyeXB0b19jb3JlX2VkMjU1MTlfc2NhbGFyX211bChiaWdJbnRUb0J1ZmZlckxFKHgsIDMyKSwgYmlnSW50VG9CdWZmZXJMRSh5LCAzMikpKVxuICAgICk7XG4gIH1cblxuICBiYXNlUG9pbnRNdWx0KG46IGJpZ2ludCk6IGJpZ2ludCB7XG4gICAgcmV0dXJuIGJpZ0ludEZyb21CdWZmZXJMRShCdWZmZXIuZnJvbShzb2RpdW0uY3J5cHRvX3NjYWxhcm11bHRfZWQyNTUxOV9iYXNlX25vY2xhbXAoYmlnSW50VG9CdWZmZXJMRShuLCAzMikpKSk7XG4gIH1cblxuICBwb2ludEFkZChwOiBiaWdpbnQsIHE6IGJpZ2ludCk6IGJpZ2ludCB7XG4gICAgcmV0dXJuIGJpZ0ludEZyb21CdWZmZXJMRShcbiAgICAgIEJ1ZmZlci5mcm9tKHNvZGl1bS5jcnlwdG9fY29yZV9lZDI1NTE5X2FkZChiaWdJbnRUb0J1ZmZlckxFKHAsIDMyKSwgYmlnSW50VG9CdWZmZXJMRShxLCAzMikpKVxuICAgICk7XG4gIH1cblxuICBwb2ludE11bHRpcGx5KHA6IGJpZ2ludCwgczogYmlnaW50KTogYmlnaW50IHtcbiAgICByZXR1cm4gYmlnSW50RnJvbUJ1ZmZlckxFKFxuICAgICAgQnVmZmVyLmZyb20oc29kaXVtLmNyeXB0b19zY2FsYXJtdWx0X2VkMjU1MTlfbm9jbGFtcChiaWdJbnRUb0J1ZmZlckxFKHMsIDMyKSwgYmlnSW50VG9CdWZmZXJMRShwLCAzMikpKVxuICAgICk7XG4gIH1cblxuICB2ZXJpZnkobWVzc2FnZTogQnVmZmVyLCBzaWduYXR1cmU6IEJ1ZmZlciwgcHVibGljS2V5OiBiaWdpbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBzaWduZWRNZXNzYWdlID0gQnVmZmVyLmNvbmNhdChbc2lnbmF0dXJlLCBtZXNzYWdlXSk7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFJldHVybnMgdGhlIG1lc3NhZ2Ugd2hpY2ggd2FzIHNpZ25lZCBpZiB0aGUgc2lnbmF0dXJlIGlzIHZhbGlkXG4gICAgICBjb25zdCByZXN1bHQgPSBCdWZmZXIuZnJvbShzb2RpdW0uY3J5cHRvX3NpZ25fb3BlbihzaWduZWRNZXNzYWdlLCBiaWdJbnRUb0J1ZmZlckxFKHB1YmxpY0tleSwgMzIpKSk7XG4gICAgICByZXR1cm4gQnVmZmVyLmNvbXBhcmUobWVzc2FnZSwgcmVzdWx0KSA9PT0gMDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gSW52YWxpZCBzaWduYXR1cmUgY2F1c2VzIGFuIGV4Y2VwdGlvblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9yZGVyKCk6IGJpZ2ludCB7XG4gICAgcmV0dXJuIEJpZ0ludCgnMHgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0ZGVmOWRlYTJmNzljZDY1ODEyNjMxYTVjZjVkM2VkJykgKiBCaWdJbnQoJzB4MDgnKTtcbiAgfVxufVxuIl19
4
+ /**
5
+ * @deprecated use Ed25519Curve from sdk-lib-mpc instead
6
+ */
7
+ var sdk_lib_mpc_1 = require("@bitgo-beta/sdk-lib-mpc");
8
+ Object.defineProperty(exports, "Ed25519Curve", { enumerable: true, get: function () { return sdk_lib_mpc_1.Ed25519Curve; } });
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWQyNTUxOS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hY2NvdW50LWxpYi9tcGMvY3VydmVzL2VkMjU1MTkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCx1REFBdUQ7QUFBOUMsMkdBQUEsWUFBWSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgRWQyNTUxOUN1cnZlIGZyb20gc2RrLWxpYi1tcGMgaW5zdGVhZFxuICovXG5leHBvcnQgeyBFZDI1NTE5Q3VydmUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstbGliLW1wYyc7XG4iXX0=
@@ -1,9 +1,9 @@
1
- import HDTree, { Ed25519BIP32, BIP32 } from './hdTree';
1
+ import { HDTree, Ed25519Bip32HdTree, Secp256k1Bip32HdTree } from '@bitgo-beta/sdk-lib-mpc';
2
2
  import { EDDSA } from './tss';
3
3
  import ShamirSecret from './shamir';
4
- export { Ecdsa, ECDSA, Eddsa, EDDSA, rangeProof } from './tss';
4
+ declare type KeyShare = EDDSA.KeyShare;
5
5
  export * from './curves';
6
6
  export * from './util';
7
- declare type KeyShare = EDDSA.KeyShare;
8
- export { Ed25519BIP32, HDTree, KeyShare, ShamirSecret, BIP32 };
7
+ export { Ecdsa, ECDSA, Eddsa, EDDSA, rangeProof } from './tss';
8
+ export { Ed25519Bip32HdTree as Ed25519BIP32, HDTree, KeyShare, ShamirSecret, Secp256k1Bip32HdTree as BIP32 };
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/account-lib/mpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,YAAY,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE/D,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AAEvB,aAAK,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/account-lib/mpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,YAAY,MAAM,UAAU,CAAC;AAEpC,aAAK,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AAE/B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,kBAAkB,IAAI,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,oBAAoB,IAAI,KAAK,EAAE,CAAC"}
@@ -14,17 +14,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  };
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.BIP32 = exports.ShamirSecret = exports.Ed25519BIP32 = exports.rangeProof = exports.EDDSA = exports.Eddsa = exports.ECDSA = exports.Ecdsa = void 0;
17
- const hdTree_1 = require("./hdTree");
18
- Object.defineProperty(exports, "Ed25519BIP32", { enumerable: true, get: function () { return hdTree_1.Ed25519BIP32; } });
19
- Object.defineProperty(exports, "BIP32", { enumerable: true, get: function () { return hdTree_1.BIP32; } });
17
+ const sdk_lib_mpc_1 = require("@bitgo-beta/sdk-lib-mpc");
18
+ Object.defineProperty(exports, "Ed25519BIP32", { enumerable: true, get: function () { return sdk_lib_mpc_1.Ed25519Bip32HdTree; } });
19
+ Object.defineProperty(exports, "BIP32", { enumerable: true, get: function () { return sdk_lib_mpc_1.Secp256k1Bip32HdTree; } });
20
20
  const shamir_1 = __importDefault(require("./shamir"));
21
21
  exports.ShamirSecret = shamir_1.default;
22
+ __exportStar(require("./curves"), exports);
23
+ __exportStar(require("./util"), exports);
22
24
  var tss_1 = require("./tss");
23
25
  Object.defineProperty(exports, "Ecdsa", { enumerable: true, get: function () { return tss_1.Ecdsa; } });
24
26
  Object.defineProperty(exports, "ECDSA", { enumerable: true, get: function () { return tss_1.ECDSA; } });
25
27
  Object.defineProperty(exports, "Eddsa", { enumerable: true, get: function () { return tss_1.Eddsa; } });
26
28
  Object.defineProperty(exports, "EDDSA", { enumerable: true, get: function () { return tss_1.EDDSA; } });
27
29
  Object.defineProperty(exports, "rangeProof", { enumerable: true, get: function () { return tss_1.rangeProof; } });
28
- __exportStar(require("./curves"), exports);
29
- __exportStar(require("./util"), exports);
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvbXBjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxQ0FBdUQ7QUFXOUMsNkZBWFEscUJBQVksT0FXUjtBQUFrQyxzRkFYeEIsY0FBSyxPQVd3QjtBQVQ1RCxzREFBb0M7QUFTSyx1QkFUbEMsZ0JBQVksQ0FTa0M7QUFQckQsNkJBQStEO0FBQXRELDRGQUFBLEtBQUssT0FBQTtBQUFFLDRGQUFBLEtBQUssT0FBQTtBQUFFLDRGQUFBLEtBQUssT0FBQTtBQUFFLDRGQUFBLEtBQUssT0FBQTtBQUFFLGlHQUFBLFVBQVUsT0FBQTtBQUUvQywyQ0FBeUI7QUFDekIseUNBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEhEVHJlZSwgeyBFZDI1NTE5QklQMzIsIEJJUDMyIH0gZnJvbSAnLi9oZFRyZWUnO1xuaW1wb3J0IHsgRUREU0EgfSBmcm9tICcuL3Rzcyc7XG5pbXBvcnQgU2hhbWlyU2VjcmV0IGZyb20gJy4vc2hhbWlyJztcblxuZXhwb3J0IHsgRWNkc2EsIEVDRFNBLCBFZGRzYSwgRUREU0EsIHJhbmdlUHJvb2YgfSBmcm9tICcuL3Rzcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY3VydmVzJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbCc7XG5cbnR5cGUgS2V5U2hhcmUgPSBFRERTQS5LZXlTaGFyZTtcblxuZXhwb3J0IHsgRWQyNTUxOUJJUDMyLCBIRFRyZWUsIEtleVNoYXJlLCBTaGFtaXJTZWNyZXQsIEJJUDMyIH07XG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvbXBjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5REFBMkY7QUFTNUQsNkZBVGQsZ0NBQWtCLE9BU1E7QUFBMEQsc0ZBVGhFLGtDQUFvQixPQVNpRDtBQVAxRyxzREFBb0M7QUFPMkIsdUJBUHhELGdCQUFZLENBT3dEO0FBSDNFLDJDQUF5QjtBQUN6Qix5Q0FBdUI7QUFDdkIsNkJBQStEO0FBQXRELDRGQUFBLEtBQUssT0FBQTtBQUFFLDRGQUFBLEtBQUssT0FBQTtBQUFFLDRGQUFBLEtBQUssT0FBQTtBQUFFLDRGQUFBLEtBQUssT0FBQTtBQUFFLGlHQUFBLFVBQVUsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhEVHJlZSwgRWQyNTUxOUJpcDMySGRUcmVlLCBTZWNwMjU2azFCaXAzMkhkVHJlZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1saWItbXBjJztcbmltcG9ydCB7IEVERFNBIH0gZnJvbSAnLi90c3MnO1xuaW1wb3J0IFNoYW1pclNlY3JldCBmcm9tICcuL3NoYW1pcic7XG5cbnR5cGUgS2V5U2hhcmUgPSBFRERTQS5LZXlTaGFyZTtcblxuZXhwb3J0ICogZnJvbSAnLi9jdXJ2ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsJztcbmV4cG9ydCB7IEVjZHNhLCBFQ0RTQSwgRWRkc2EsIEVERFNBLCByYW5nZVByb29mIH0gZnJvbSAnLi90c3MnO1xuZXhwb3J0IHsgRWQyNTUxOUJpcDMySGRUcmVlIGFzIEVkMjU1MTlCSVAzMiwgSERUcmVlLCBLZXlTaGFyZSwgU2hhbWlyU2VjcmV0LCBTZWNwMjU2azFCaXAzMkhkVHJlZSBhcyBCSVAzMiB9O1xuIl19
@@ -1,38 +1,6 @@
1
- import Curve from './curves';
2
- import { SplitSecret } from './types';
3
- export default class Shamir {
4
- curve: Curve;
5
- constructor(curve: Curve);
6
- /**
7
- * Perform Shamir sharing on the secret `secret` to the degree `threshold - 1` split `numShares`
8
- * ways. The split secret requires `threshold` shares to be reconstructed.
9
- *
10
- * @param secret secret to split
11
- * @param threshold share threshold required to reconstruct secret
12
- * @param numShares total number of shares to split to split secret into
13
- * @param indices optional indices which can be used while generating the shares
14
- * @param salt optional salt which could be used while generating the shares
15
- * @returns Dictionary containing `shares`, a dictionary where each key is an int
16
- * in the range 1<=x<=numShares representing that share's free term, and `v`, an
17
- * array of proofs to be shared with all participants.
18
- */
19
- split(secret: bigint, threshold: number, numShares: number, indices?: Array<number>, salt?: bigint): SplitSecret;
20
- /**
21
- * Verify a VSS share.
22
- *
23
- * @param u Secret share received from other party.
24
- * @param v Verification values received from other party.
25
- * @param index Verifier's index.
26
- * @returns True on success; otherwise throws Error.
27
- */
28
- verify(u: bigint, v: Array<bigint>, index: number): boolean;
29
- /**
30
- * Reconstitute a secret from a dictionary of shares. The number of shares must
31
- * be equal to `t` to reconstitute the original secret.
32
- *
33
- * @param shares dictionary of shares. each key is the free term of the share
34
- * @returns secret
35
- */
36
- combine(shares: Record<number, bigint>): bigint;
37
- }
1
+ import { Shamir } from '@bitgo-beta/sdk-lib-mpc';
2
+ /**
3
+ * @deprecated use Shamir from sdk-lib-mpc instead
4
+ */
5
+ export default Shamir;
38
6
  //# sourceMappingURL=shamir.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shamir.d.ts","sourceRoot":"","sources":["../../../../src/account-lib/mpc/shamir.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,UAAU,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,KAAK,EAAE,KAAK,CAAC;gBAED,KAAK,EAAE,KAAK;IAIxB;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,SAAY,GAAG,WAAW;IA8CnH;;;;;;;OAOG;IACH,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAsB3D;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;CA+BhD"}
1
+ {"version":3,"file":"shamir.d.ts","sourceRoot":"","sources":["../../../../src/account-lib/mpc/shamir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD;;GAEG;AACH,eAAe,MAAM,CAAC"}
@@ -1,132 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const crypto = require('crypto');
4
- const util_1 = require("./util");
5
- class Shamir {
6
- constructor(curve) {
7
- this.curve = curve;
8
- }
9
- /**
10
- * Perform Shamir sharing on the secret `secret` to the degree `threshold - 1` split `numShares`
11
- * ways. The split secret requires `threshold` shares to be reconstructed.
12
- *
13
- * @param secret secret to split
14
- * @param threshold share threshold required to reconstruct secret
15
- * @param numShares total number of shares to split to split secret into
16
- * @param indices optional indices which can be used while generating the shares
17
- * @param salt optional salt which could be used while generating the shares
18
- * @returns Dictionary containing `shares`, a dictionary where each key is an int
19
- * in the range 1<=x<=numShares representing that share's free term, and `v`, an
20
- * array of proofs to be shared with all participants.
21
- */
22
- split(secret, threshold, numShares, indices, salt = BigInt(0)) {
23
- let bigIndices;
24
- if (indices) {
25
- bigIndices = indices.map((i) => {
26
- if (i < 1) {
27
- throw new Error('Invalid value supplied for indices');
28
- }
29
- return BigInt(i);
30
- });
31
- }
32
- else {
33
- // make range(1, n + 1)
34
- bigIndices = Array(numShares)
35
- .fill(null)
36
- .map((_, i) => BigInt(i + 1));
37
- }
38
- if (threshold < 2) {
39
- throw new Error('Threshold cannot be less than two');
40
- }
41
- if (threshold > numShares) {
42
- throw new Error('Threshold cannot be greater than the total number of shares');
43
- }
44
- const coefs = [];
45
- const v = [];
46
- for (let ind = 0; ind < threshold - 1; ind++) {
47
- const coeff = util_1.clamp(util_1.bigIntFromBufferLE(crypto.createHmac('sha256', ind.toString(10)).update(util_1.bigIntToBufferLE(secret, 32)).digest()));
48
- coefs.push(coeff);
49
- v.unshift(this.curve.basePointMult(coeff));
50
- }
51
- coefs.push(secret);
52
- const shares = {};
53
- for (let ind = 0; ind < bigIndices.length; ind++) {
54
- const x = bigIndices[ind];
55
- let partial = coefs[0];
56
- for (let other = 1; other < coefs.length; other++) {
57
- partial = this.curve.scalarAdd(coefs[other], this.curve.scalarMult(partial, x));
58
- }
59
- shares[parseInt(x.toString(), 10)] = partial;
60
- }
61
- return { shares, v };
62
- }
63
- /**
64
- * Verify a VSS share.
65
- *
66
- * @param u Secret share received from other party.
67
- * @param v Verification values received from other party.
68
- * @param index Verifier's index.
69
- * @returns True on success; otherwise throws Error.
70
- */
71
- verify(u, v, index) {
72
- if (v.length < 2) {
73
- throw new Error('Threshold cannot be less than two');
74
- }
75
- if (index < 1) {
76
- throw new Error('Invalid value supplied for index');
77
- }
78
- const i = BigInt(index);
79
- let x = v[0];
80
- let t = BigInt(1);
81
- for (const vsj of v.slice(1)) {
82
- t = this.curve.scalarMult(t, i);
83
- const vjt = this.curve.pointMultiply(vsj, t);
84
- x = this.curve.pointAdd(x, vjt);
85
- }
86
- const sigmaG = this.curve.basePointMult(u);
87
- if (x !== sigmaG) {
88
- throw new Error('Could not verify share');
89
- }
90
- return true;
91
- }
92
- /**
93
- * Reconstitute a secret from a dictionary of shares. The number of shares must
94
- * be equal to `t` to reconstitute the original secret.
95
- *
96
- * @param shares dictionary of shares. each key is the free term of the share
97
- * @returns secret
98
- */
99
- combine(shares) {
100
- try {
101
- let s = BigInt(0);
102
- for (const i in shares) {
103
- const yi = shares[i];
104
- const xi = BigInt(i);
105
- let num = BigInt(1);
106
- let denum = BigInt(1);
107
- for (const j in shares) {
108
- const xj = BigInt(j);
109
- if (xi !== xj) {
110
- num = this.curve.scalarMult(num, xj);
111
- }
112
- }
113
- for (const j in shares) {
114
- const xj = BigInt(j);
115
- if (xi !== xj) {
116
- denum = this.curve.scalarMult(denum, this.curve.scalarSub(xj, xi));
117
- }
118
- }
119
- const inverted = this.curve.scalarInvert(denum);
120
- const innerMultiplied = this.curve.scalarMult(num, inverted);
121
- const multiplied = this.curve.scalarMult(innerMultiplied, yi);
122
- s = this.curve.scalarAdd(multiplied, s);
123
- }
124
- return s;
125
- }
126
- catch (error) {
127
- throw new Error('Failed to combine Shamir shares , ' + error);
128
- }
129
- }
130
- }
131
- exports.default = Shamir;
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhbWlyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FjY291bnQtbGliL21wYy9zaGFtaXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFakMsaUNBQXFFO0FBR3JFLE1BQXFCLE1BQU07SUFHekIsWUFBWSxLQUFZO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxLQUFLLENBQUMsTUFBYyxFQUFFLFNBQWlCLEVBQUUsU0FBaUIsRUFBRSxPQUF1QixFQUFFLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ25HLElBQUksVUFBeUIsQ0FBQztRQUM5QixJQUFJLE9BQU8sRUFBRTtZQUNYLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDVCxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7aUJBQ3ZEO2dCQUNELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25CLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLHVCQUF1QjtZQUN2QixVQUFVLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztpQkFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDVixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakM7UUFDRCxJQUFJLFNBQVMsR0FBRyxDQUFDLEVBQUU7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsSUFBSSxTQUFTLEdBQUcsU0FBUyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkRBQTZELENBQUMsQ0FBQztTQUNoRjtRQUVELE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQztRQUMzQixNQUFNLENBQUMsR0FBa0IsRUFBRSxDQUFDO1FBQzVCLEtBQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxTQUFTLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQzVDLE1BQU0sS0FBSyxHQUFHLFlBQUssQ0FDakIseUJBQWtCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyx1QkFBZ0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUNoSCxDQUFDO1lBQ0YsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQixDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDNUM7UUFDRCxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRW5CLE1BQU0sTUFBTSxHQUEyQixFQUFFLENBQUM7UUFDMUMsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDaEQsTUFBTSxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDakQsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNqRjtZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO1NBQzlDO1FBQ0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxDQUFTLEVBQUUsQ0FBZ0IsRUFBRSxLQUFhO1FBQy9DLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQixLQUFLLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDNUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDN0MsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNqQztRQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxLQUFLLE1BQU0sRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7U0FDM0M7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxPQUFPLENBQUMsTUFBOEI7UUFDcEMsSUFBSTtZQUNGLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRTtnQkFDdEIsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyQixNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JCLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEIsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUV0QixLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRTtvQkFDdEIsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNyQixJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7d0JBQ2IsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztxQkFDdEM7aUJBQ0Y7Z0JBQ0QsS0FBSyxNQUFNLENBQUMsSUFBSSxNQUFNLEVBQUU7b0JBQ3RCLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDckIsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO3dCQUNiLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7cUJBQ3BFO2lCQUNGO2dCQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzdELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDOUQsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN6QztZQUNELE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLEdBQUcsS0FBSyxDQUFDLENBQUM7U0FDL0Q7SUFDSCxDQUFDO0NBQ0Y7QUF0SUQseUJBc0lDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY3J5cHRvID0gcmVxdWlyZSgnY3J5cHRvJyk7XG5pbXBvcnQgQ3VydmUgZnJvbSAnLi9jdXJ2ZXMnO1xuaW1wb3J0IHsgYmlnSW50RnJvbUJ1ZmZlckxFLCBiaWdJbnRUb0J1ZmZlckxFLCBjbGFtcCB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBTcGxpdFNlY3JldCB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTaGFtaXIge1xuICBjdXJ2ZTogQ3VydmU7XG5cbiAgY29uc3RydWN0b3IoY3VydmU6IEN1cnZlKSB7XG4gICAgdGhpcy5jdXJ2ZSA9IGN1cnZlO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gU2hhbWlyIHNoYXJpbmcgb24gdGhlIHNlY3JldCBgc2VjcmV0YCB0byB0aGUgZGVncmVlIGB0aHJlc2hvbGQgLSAxYCBzcGxpdCBgbnVtU2hhcmVzYFxuICAgKiB3YXlzLiBUaGUgc3BsaXQgc2VjcmV0IHJlcXVpcmVzIGB0aHJlc2hvbGRgIHNoYXJlcyB0byBiZSByZWNvbnN0cnVjdGVkLlxuICAgKlxuICAgKiBAcGFyYW0gc2VjcmV0IHNlY3JldCB0byBzcGxpdFxuICAgKiBAcGFyYW0gdGhyZXNob2xkIHNoYXJlIHRocmVzaG9sZCByZXF1aXJlZCB0byByZWNvbnN0cnVjdCBzZWNyZXRcbiAgICogQHBhcmFtIG51bVNoYXJlcyB0b3RhbCBudW1iZXIgb2Ygc2hhcmVzIHRvIHNwbGl0IHRvIHNwbGl0IHNlY3JldCBpbnRvXG4gICAqIEBwYXJhbSBpbmRpY2VzIG9wdGlvbmFsIGluZGljZXMgd2hpY2ggY2FuIGJlIHVzZWQgd2hpbGUgZ2VuZXJhdGluZyB0aGUgc2hhcmVzXG4gICAqIEBwYXJhbSBzYWx0IG9wdGlvbmFsIHNhbHQgd2hpY2ggY291bGQgYmUgdXNlZCB3aGlsZSBnZW5lcmF0aW5nIHRoZSBzaGFyZXNcbiAgICogQHJldHVybnMgRGljdGlvbmFyeSBjb250YWluaW5nIGBzaGFyZXNgLCBhIGRpY3Rpb25hcnkgd2hlcmUgZWFjaCBrZXkgaXMgYW4gaW50XG4gICAqIGluIHRoZSByYW5nZSAxPD14PD1udW1TaGFyZXMgcmVwcmVzZW50aW5nIHRoYXQgc2hhcmUncyBmcmVlIHRlcm0sIGFuZCBgdmAsIGFuXG4gICAqIGFycmF5IG9mIHByb29mcyB0byBiZSBzaGFyZWQgd2l0aCBhbGwgcGFydGljaXBhbnRzLlxuICAgKi9cbiAgc3BsaXQoc2VjcmV0OiBiaWdpbnQsIHRocmVzaG9sZDogbnVtYmVyLCBudW1TaGFyZXM6IG51bWJlciwgaW5kaWNlcz86IEFycmF5PG51bWJlcj4sIHNhbHQgPSBCaWdJbnQoMCkpOiBTcGxpdFNlY3JldCB7XG4gICAgbGV0IGJpZ0luZGljZXM6IEFycmF5PGJpZ2ludD47XG4gICAgaWYgKGluZGljZXMpIHtcbiAgICAgIGJpZ0luZGljZXMgPSBpbmRpY2VzLm1hcCgoaSkgPT4ge1xuICAgICAgICBpZiAoaSA8IDEpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFsdWUgc3VwcGxpZWQgZm9yIGluZGljZXMnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQmlnSW50KGkpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIG1ha2UgcmFuZ2UoMSwgbiArIDEpXG4gICAgICBiaWdJbmRpY2VzID0gQXJyYXkobnVtU2hhcmVzKVxuICAgICAgICAuZmlsbChudWxsKVxuICAgICAgICAubWFwKChfLCBpKSA9PiBCaWdJbnQoaSArIDEpKTtcbiAgICB9XG4gICAgaWYgKHRocmVzaG9sZCA8IDIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhyZXNob2xkIGNhbm5vdCBiZSBsZXNzIHRoYW4gdHdvJyk7XG4gICAgfVxuXG4gICAgaWYgKHRocmVzaG9sZCA+IG51bVNoYXJlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaHJlc2hvbGQgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiB0aGUgdG90YWwgbnVtYmVyIG9mIHNoYXJlcycpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvZWZzOiBiaWdpbnRbXSA9IFtdO1xuICAgIGNvbnN0IHY6IEFycmF5PGJpZ2ludD4gPSBbXTtcbiAgICBmb3IgKGxldCBpbmQgPSAwOyBpbmQgPCB0aHJlc2hvbGQgLSAxOyBpbmQrKykge1xuICAgICAgY29uc3QgY29lZmYgPSBjbGFtcChcbiAgICAgICAgYmlnSW50RnJvbUJ1ZmZlckxFKGNyeXB0by5jcmVhdGVIbWFjKCdzaGEyNTYnLCBpbmQudG9TdHJpbmcoMTApKS51cGRhdGUoYmlnSW50VG9CdWZmZXJMRShzZWNyZXQsIDMyKSkuZGlnZXN0KCkpXG4gICAgICApO1xuICAgICAgY29lZnMucHVzaChjb2VmZik7XG4gICAgICB2LnVuc2hpZnQodGhpcy5jdXJ2ZS5iYXNlUG9pbnRNdWx0KGNvZWZmKSk7XG4gICAgfVxuICAgIGNvZWZzLnB1c2goc2VjcmV0KTtcblxuICAgIGNvbnN0IHNoYXJlczogUmVjb3JkPG51bWJlciwgYmlnaW50PiA9IHt9O1xuICAgIGZvciAobGV0IGluZCA9IDA7IGluZCA8IGJpZ0luZGljZXMubGVuZ3RoOyBpbmQrKykge1xuICAgICAgY29uc3QgeCA9IGJpZ0luZGljZXNbaW5kXTtcbiAgICAgIGxldCBwYXJ0aWFsID0gY29lZnNbMF07XG4gICAgICBmb3IgKGxldCBvdGhlciA9IDE7IG90aGVyIDwgY29lZnMubGVuZ3RoOyBvdGhlcisrKSB7XG4gICAgICAgIHBhcnRpYWwgPSB0aGlzLmN1cnZlLnNjYWxhckFkZChjb2Vmc1tvdGhlcl0sIHRoaXMuY3VydmUuc2NhbGFyTXVsdChwYXJ0aWFsLCB4KSk7XG4gICAgICB9XG4gICAgICBzaGFyZXNbcGFyc2VJbnQoeC50b1N0cmluZygpLCAxMCldID0gcGFydGlhbDtcbiAgICB9XG4gICAgcmV0dXJuIHsgc2hhcmVzLCB2IH07XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZ5IGEgVlNTIHNoYXJlLlxuICAgKlxuICAgKiBAcGFyYW0gdSBTZWNyZXQgc2hhcmUgcmVjZWl2ZWQgZnJvbSBvdGhlciBwYXJ0eS5cbiAgICogQHBhcmFtIHYgVmVyaWZpY2F0aW9uIHZhbHVlcyByZWNlaXZlZCBmcm9tIG90aGVyIHBhcnR5LlxuICAgKiBAcGFyYW0gaW5kZXggVmVyaWZpZXIncyBpbmRleC5cbiAgICogQHJldHVybnMgVHJ1ZSBvbiBzdWNjZXNzOyBvdGhlcndpc2UgdGhyb3dzIEVycm9yLlxuICAgKi9cbiAgdmVyaWZ5KHU6IGJpZ2ludCwgdjogQXJyYXk8YmlnaW50PiwgaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmICh2Lmxlbmd0aCA8IDIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhyZXNob2xkIGNhbm5vdCBiZSBsZXNzIHRoYW4gdHdvJyk7XG4gICAgfVxuICAgIGlmIChpbmRleCA8IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2YWx1ZSBzdXBwbGllZCBmb3IgaW5kZXgnKTtcbiAgICB9XG4gICAgY29uc3QgaSA9IEJpZ0ludChpbmRleCk7XG4gICAgbGV0IHggPSB2WzBdO1xuICAgIGxldCB0ID0gQmlnSW50KDEpO1xuICAgIGZvciAoY29uc3QgdnNqIG9mIHYuc2xpY2UoMSkpIHtcbiAgICAgIHQgPSB0aGlzLmN1cnZlLnNjYWxhck11bHQodCwgaSk7XG4gICAgICBjb25zdCB2anQgPSB0aGlzLmN1cnZlLnBvaW50TXVsdGlwbHkodnNqLCB0KTtcbiAgICAgIHggPSB0aGlzLmN1cnZlLnBvaW50QWRkKHgsIHZqdCk7XG4gICAgfVxuICAgIGNvbnN0IHNpZ21hRyA9IHRoaXMuY3VydmUuYmFzZVBvaW50TXVsdCh1KTtcbiAgICBpZiAoeCAhPT0gc2lnbWFHKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCB2ZXJpZnkgc2hhcmUnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogUmVjb25zdGl0dXRlIGEgc2VjcmV0IGZyb20gYSBkaWN0aW9uYXJ5IG9mIHNoYXJlcy4gVGhlIG51bWJlciBvZiBzaGFyZXMgbXVzdFxuICAgKiBiZSBlcXVhbCB0byBgdGAgdG8gcmVjb25zdGl0dXRlIHRoZSBvcmlnaW5hbCBzZWNyZXQuXG4gICAqXG4gICAqIEBwYXJhbSBzaGFyZXMgZGljdGlvbmFyeSBvZiBzaGFyZXMuIGVhY2gga2V5IGlzIHRoZSBmcmVlIHRlcm0gb2YgdGhlIHNoYXJlXG4gICAqIEByZXR1cm5zIHNlY3JldFxuICAgKi9cbiAgY29tYmluZShzaGFyZXM6IFJlY29yZDxudW1iZXIsIGJpZ2ludD4pOiBiaWdpbnQge1xuICAgIHRyeSB7XG4gICAgICBsZXQgcyA9IEJpZ0ludCgwKTtcbiAgICAgIGZvciAoY29uc3QgaSBpbiBzaGFyZXMpIHtcbiAgICAgICAgY29uc3QgeWkgPSBzaGFyZXNbaV07XG4gICAgICAgIGNvbnN0IHhpID0gQmlnSW50KGkpO1xuICAgICAgICBsZXQgbnVtID0gQmlnSW50KDEpO1xuICAgICAgICBsZXQgZGVudW0gPSBCaWdJbnQoMSk7XG5cbiAgICAgICAgZm9yIChjb25zdCBqIGluIHNoYXJlcykge1xuICAgICAgICAgIGNvbnN0IHhqID0gQmlnSW50KGopO1xuICAgICAgICAgIGlmICh4aSAhPT0geGopIHtcbiAgICAgICAgICAgIG51bSA9IHRoaXMuY3VydmUuc2NhbGFyTXVsdChudW0sIHhqKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBqIGluIHNoYXJlcykge1xuICAgICAgICAgIGNvbnN0IHhqID0gQmlnSW50KGopO1xuICAgICAgICAgIGlmICh4aSAhPT0geGopIHtcbiAgICAgICAgICAgIGRlbnVtID0gdGhpcy5jdXJ2ZS5zY2FsYXJNdWx0KGRlbnVtLCB0aGlzLmN1cnZlLnNjYWxhclN1Yih4aiwgeGkpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW52ZXJ0ZWQgPSB0aGlzLmN1cnZlLnNjYWxhckludmVydChkZW51bSk7XG4gICAgICAgIGNvbnN0IGlubmVyTXVsdGlwbGllZCA9IHRoaXMuY3VydmUuc2NhbGFyTXVsdChudW0sIGludmVydGVkKTtcbiAgICAgICAgY29uc3QgbXVsdGlwbGllZCA9IHRoaXMuY3VydmUuc2NhbGFyTXVsdChpbm5lck11bHRpcGxpZWQsIHlpKTtcbiAgICAgICAgcyA9IHRoaXMuY3VydmUuc2NhbGFyQWRkKG11bHRpcGxpZWQsIHMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHM7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGNvbWJpbmUgU2hhbWlyIHNoYXJlcyAsICcgKyBlcnJvcik7XG4gICAgfVxuICB9XG59XG4iXX0=
3
+ const sdk_lib_mpc_1 = require("@bitgo-beta/sdk-lib-mpc");
4
+ /**
5
+ * @deprecated use Shamir from sdk-lib-mpc instead
6
+ */
7
+ exports.default = sdk_lib_mpc_1.Shamir;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhbWlyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FjY291bnQtbGliL21wYy9zaGFtaXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5REFBaUQ7QUFDakQ7O0dBRUc7QUFDSCxrQkFBZSxvQkFBTSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2hhbWlyIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWxpYi1tcGMnO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgU2hhbWlyIGZyb20gc2RrLWxpYi1tcGMgaW5zdGVhZFxuICovXG5leHBvcnQgZGVmYXVsdCBTaGFtaXI7XG4iXX0=
@@ -1,10 +1,9 @@
1
1
  /// <reference types="node" />
2
- import HDTree from '../../hdTree';
3
2
  import { Hash } from 'crypto';
4
3
  import { Secp256k1Curve } from '../../curves';
5
4
  import Shamir from '../../shamir';
6
- import { EcdsaTypes } from '@bitgo-beta/sdk-lib-mpc';
7
- import { DShare, KeyCombined, KeyShare, NShare, OShare, PShare, Signature, SignCombine, SignCombineRT, SignConvert, SignConvertRT, SignShareRT, SShare, SubkeyShare, XShare, XShareWithNtilde, YShare, YShareWithNtilde } from './types';
5
+ import { EcdsaTypes, HDTree } from '@bitgo-beta/sdk-lib-mpc';
6
+ import { DShare, KeyCombined, KeyShare, NShare, OShare, PShare, PublicUTShare, Signature, SignCombine, SignCombineRT, SignConvert, SignConvertRT, SignConvertStep1, SignConvertStep1Response, SignConvertStep2, SignConvertStep2Response, SignConvertStep3, SignConvertStep3Response, SignShareRT, SShare, SubkeyShare, UTShare, VAShareWithProofs, VAShare, XShareWithChallenges, YShareWithChallenges, PublicVAShareWithProofs } from './types';
8
7
  /**
9
8
  * ECDSA TSS implementation supporting 2:n Threshold
10
9
  */
@@ -52,10 +51,11 @@ export default class Ecdsa {
52
51
  * Appends a given range proof challenge to the shares previously created
53
52
  * by #keyCombine. Generates a new challenge if not provided.
54
53
  * @param {XShare | YShare} share Private xShare or yShare of the signing operation
55
- * @param {EcdsaTypes.SerializedNtilde} challenge
54
+ * @param rangeProofChallenge - challenge generated via generateNtilde
55
+ * @param paillierProofChallenge
56
56
  * @returns {KeyCombined} The share with amended challenge values
57
57
  */
58
- appendChallenge<T extends XShare | YShare>(share: T, challenge?: EcdsaTypes.SerializedNtilde): Promise<T & EcdsaTypes.SerializedNtilde>;
58
+ appendChallenge<T>(share: T, rangeProofChallenge: EcdsaTypes.SerializedNtilde, paillierProofChallenge: EcdsaTypes.SerializedPaillierChallenge): T & EcdsaTypes.SerializedEcdsaChallenges;
59
59
  /**
60
60
  * Create signing shares.
61
61
  * @param {xShare} xShare Private xShare of current participant signer
@@ -63,11 +63,36 @@ export default class Ecdsa {
63
63
  * @returns {SignShareRT} Returns the participant private w-share
64
64
  * and k-share to be distributed to other participant signer
65
65
  */
66
- signShare(xShare: XShare | XShareWithNtilde, yShare: YShareWithNtilde): Promise<SignShareRT>;
66
+ signShare(xShare: XShareWithChallenges, yShare: YShareWithChallenges): Promise<SignShareRT>;
67
+ /**
68
+ * Perform multiplicitive-to-additive (MtA) share conversion with another signer.
69
+ * Connection 1.2 in https://lucid.app/lucidchart/7061785b-bc5c-4002-b546-3f4a3612fc62/edit?page=IAVmvYO4FvKc#
70
+ * If signer A completed signShare initially (input to this fn), then this step is completed by signer B.
71
+ * @param {SignConvert} shares
72
+ * @returns {SignConvertRT}
73
+ */
74
+ signConvertStep1(shares: SignConvertStep1): Promise<SignConvertStep1Response>;
67
75
  /**
68
76
  * Perform multiplicitive-to-additive (MtA) share conversion with another
69
77
  * signer.
70
- * @param {SignConvert}
78
+ * Connection 2.1 in https://lucid.app/lucidchart/7061785b-bc5c-4002-b546-3f4a3612fc62/edit?page=IAVmvYO4FvKc#
79
+ * If signer B completed signConvertStep1, then this step is completed by signer A.
80
+ * @param {SignConvert} shares
81
+ * @returns {SignConvertRT}
82
+ */
83
+ signConvertStep2(shares: SignConvertStep2): Promise<SignConvertStep2Response>;
84
+ /**
85
+ * Perform multiplicitive-to-additive (MtA) share conversion with another signer.
86
+ * Connection 2.2 in https://lucid.app/lucidchart/7061785b-bc5c-4002-b546-3f4a3612fc62/edit?page=IAVmvYO4FvKc#
87
+ * If signer A completed signConvertStep2, then this step is completed by signer B.
88
+ * @param {SignConvert} shares
89
+ * @returns {SignConvertRT}
90
+ */
91
+ signConvertStep3(shares: SignConvertStep3): Promise<SignConvertStep3Response>;
92
+ /**
93
+ * Perform multiplicitive-to-additive (MtA) share conversion with another signer.
94
+ * @deprecated - use one of [signConvertStep1, signConvertStep2, signConvertStep3] instead
95
+ * @param {SignConvert} shares
71
96
  * @returns {SignConvertRT}
72
97
  */
73
98
  signConvert(shares: SignConvert): Promise<SignConvertRT>;
@@ -84,9 +109,32 @@ export default class Ecdsa {
84
109
  * @param {DShare} dShare delta share received from the other participant
85
110
  * @param {Hash} hash hashing algorithm implementing Node`s standard crypto hash interface
86
111
  * @param {boolean} shouldHash if true, we hash the provided buffer before signing
87
- * @returns {SShare}
112
+ * @returns {VAShare}
113
+ */
114
+ sign(M: Buffer, oShare: OShare, dShare: DShare, hash?: Hash, shouldHash?: boolean): VAShare;
115
+ /**
116
+ * Generate proofs of V_i and A_i values.
117
+ * @param {Buffer} M Message to commit to as part of the context of the proof.
118
+ * This doesn't need to be the same message that was signed in the sign function above.
119
+ * But it should be the same for all participants for the purpose of providing proof context.
120
+ * @param {VAShare} vaShare The VAShare to prove.
121
+ * @returns {VAShareWithProofs}
122
+ */
123
+ generateVAProofs(M: Buffer, vaShare: VAShare): VAShareWithProofs;
124
+ /**
125
+ * Verify V_i and A_i values of all other participants during signing phase 5 steps 5A and 5B.
126
+ * @param {VAShareWithProofs} vaShare V_i, A_i info including SShare values of the currenct participant
127
+ * @param {PublicVAShareWithProofs[]} publicVAShares public V_i, A_i info of all other participants
128
+ * @returns {UTShare} U_i, T_i info of the current participant if all verifications pass
129
+ */
130
+ verifyVAShares(vaShare: VAShareWithProofs, publicVAShares: PublicVAShareWithProofs[]): UTShare;
131
+ /**
132
+ * Verify U_i and V_i values of all other participants during signing phase 5 steps 5C and 5D.
133
+ * @param {UTShare} utShare U_i, T_i info including SShare values of the currenct participant
134
+ * @param {PublicUTShare[]} publicUTShares public U_i, T_i info of all other participants
135
+ * @returns {SShare} SShare of the current participant if all verifications pass
88
136
  */
89
- sign(M: Buffer, oShare: OShare, dShare: DShare, hash?: Hash, shouldHash?: boolean): SShare;
137
+ verifyUTShares(utShare: UTShare, publicUTShares: PublicUTShare[]): SShare;
90
138
  /**
91
139
  * Construct full signature by combining Sign Shares
92
140
  * @param {SShare[]} shares
@@ -1 +1 @@
1
- {"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../../../src/account-lib/mpc/tss/ecdsa/ecdsa.ts"],"names":[],"mappings":";AAGA,OAAO,MAAgC,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAc,IAAI,EAAe,MAAM,QAAQ,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,EAAmB,UAAU,EAAwC,MAAM,yBAAyB,CAAC;AAC5G,OAAO,EAGL,MAAM,EAEN,WAAW,EACX,QAAQ,EAGR,MAAM,EACN,MAAM,EACN,MAAM,EACN,SAAS,EACT,WAAW,EACX,aAAa,EACb,WAAW,EACX,aAAa,EACb,WAAW,EACX,MAAM,EACN,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,MAAM,EACN,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAQjB;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACxB,MAAM,CAAC,KAAK,EAAE,cAAc,CAAwB;IACpD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAe;IACpC,MAAM,CAAC,MAAM,EAAE,MAAM,CAA2B;IAChD;;;;;;;;;OASG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkEnH;;;;;;OAMG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,WAAW;IAiD1D;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW;IAkEvE;;;;;;OAMG;IACH,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAqB9D;;;;;;OAMG;IACG,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAC7C,KAAK,EAAE,CAAC,EACR,SAAS,CAAC,EAAE,UAAU,CAAC,gBAAgB,GACtC,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,gBAAgB,CAAC;IAa3C;;;;;;OAMG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IA8ElG;;;;;OAKG;IACG,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAoS9D;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa;IAiC/C;;;;;;;;OAQG;IACH,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,UAAO,GAAG,MAAM;IAwBvF;;;;OAIG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS;IAqB/C;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,UAAO,GAAG,OAAO;IAatF;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,gBAAgB,GAAG,UAAU,CAAC,kBAAkB;IAI/F;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,kBAAkB,GAAG,UAAU,CAAC,gBAAgB;CAG9F"}
1
+ {"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../../../src/account-lib/mpc/tss/ecdsa/ecdsa.ts"],"names":[],"mappings":"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"}