Skip to content

Commit

Permalink
fix(sdk-core): ecdsa send signing bitgo's n share u
Browse files Browse the repository at this point in the history
Ticket: BG-58334
  • Loading branch information
olibeyene committed Oct 15, 2022
1 parent e9ad941 commit 1cb1e93
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 43 deletions.
1 change: 1 addition & 0 deletions modules/account-lib/test/unit/mpc/tss/fixtures/ecdsa.ts
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ export const mockPShare = {
n: 'db9befbfbb99c1166c558de80c2ea4b44a78ef7717caaf6a1b10f9b4d1b82cb7e4fb83d64effed3c1ad7b13dedc3560da7f3603498d363f512cd14f71ad94c09c858d8025c96a1470680a3070be195365dc74bfea1b15fef0ad545838cc10ca29c21c0412988a8cc76633dfb65d97603c32627f21bebb0bc32dbe8361591be06d55f9838b55ee989a660fec51ec26947005cb998278dfdc6b3d0c19ab4e3ee410c91e5d32cb2a4a2d8a5a3261505a87825da2561f411a4594b71178de93dce9c962c7cc8e9e6bdc65d3934b93dee036b9849244ab4f248d4265c6c3b6b11415aae00dd6ce96133dfd18104f3825415ee282ae86c1a49701f9ab17a94eebef7f0a910529d274efa3548f630ce38f764770a47733727e73469c90a4052f092005421916adb8a910a3a06e23702e83b6bb5c18369304e8c176e7c2bbfdfe9b872467b337b4892252cf83222dbd192b3623a0757ca00d15961e9355fba850df4b038ce14838534740d3747ecd01f1f427924512cbdcdb61e751866c04737318ba9e9',
y: '0341c1edd582ddaf0494133ebdbc254b73caa95d761cb8d80a195e5dc4c249cfb6',
u: '0ed11c9c929bb7c66165b56bce60ad601bc0c5d297dd1a85f371c47517f72bb6',
uu: '',
chaincode: '01',
};

Expand Down
91 changes: 49 additions & 42 deletions modules/bitgo/test/v2/fixtures/tss/ecdsaFixtures.ts

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions modules/sdk-coin-bsc/test/fixtures/ecdsa.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ export const keyShares = {
n: 'e65cbd8defc738ffd27c15b65cee4762aefcbf3273a95998c5cadaa11442ebc3b12ba69dad1d17c60de45fc40771547343f609689cb8b6b359f6eb7eee09786dd25d06ec3be3a4c83173e2e127655224094f93ee26f533708cfd0c4fe2714afcc9bdc8b9aa1ba2ae4a63387a85a75bd823aa3b49c1ecb35676d8f3a166f9070ee88e297dfa0c6ce6f32b4b7a945c9e299d5e9211ae5e378edbcb02cdafd39913acf132af878133f22bcbc9954a68562380e9df269190eeadf65227d7073a36359f590605471edd0bf4bae0ec7e019ff4680827c94fa5a9b066801d3b910c879bfa5e94e9dadc5d6066a8f46268f9d966b65db666c28bdc32da60b63ef14c67609194c8356762a7e99f0d4039e97e58fa6e77483a01e2714975dabc2d2fd3843e849d3f8e9914c931dee0fc8c5c99ec7b3427f809c7f5fb5c297bcd8c46e7c7e317930efe7fac4b80e0308b7cca32cc0365c3b5e8ad9507d6cf3be3904231ea06e920083532c4ab04f58dab2f81eaef4da77a269ccfb8ea58a8d46bbb7e8ca4c7',
y: '03dadfcde88f0aae3ab252e509913ee9efb7d97e04e60851a12a18209debd06fb4',
u: '1efeddd6219a691991dca5d2ef30a7846c55f5939f6a253668c4b7835a840bbb',
uu: '',
chaincode: '91c2381160c232e5f22a0611eed78a1e3b2452ec331cd908fba48cb82c69cbbd',
},
nShares: {
Expand Down Expand Up @@ -37,6 +38,7 @@ export const keyShares = {
n: 'd2d8d2d69836fa45ea00a7ea63bd643a6039e816cf25b133a60f5a20159c24e22719c61d58d172c7c0e8bf68f0b167bc9c19ea10d419aee24fad529980f505d96c8cc330dd53c45ccb7ed1ef3ae1af051c8e7009ada67d0c47685dc261a20332d43e9f89f4c07934b14f08b337fa778df93d23b57f815f2ddc1d0b65d18d0010df94c2c5bcfca689ca73610a4369d7e966c688678e5198833ca963253109401c91f74405b46856f956ee679d4c436792e4e7af90ec441804ce4462a3dd59f4ec0a049432d5db6ded2972e701d54828eb159e7f5d71bc8923d89c642c83627ee205b8b49409aec78d958a4564139c90651e90ef79063cd52609c90c0a7f2f44762a6bc8fa85d720dd9d7a33beb7f18e42e1c6b9e3cda0406627af36c1d81252a2812e71b69ae433aacd885967112415029b78b0654eeeddfb9ebdad792644f7d6dad699af7cb3914f4368fcb2ef9d6daa6db7e09eeb60fb2c99ae81143ee2126f1de5d4523938d0501dea4d69c2f8845b06cd63358f49cdfdb6da6c2b55305ac1',
y: '021eb992544750383bb64f5d95ddb5d3df49d63e4d8352fc8c892de494095b776b',
u: '54659d9820ac3df605d0a75bd3615c86ad6fbd716018d33570f15df028ae9042',
uu: '',
chaincode: 'bfbb8924f120d09984ff045b7790d176c805d465b0cb31a6bd738b356070beca',
},
nShares: {
Expand Down Expand Up @@ -67,6 +69,7 @@ export const keyShares = {
n: 'a8f1829543147680f3f01e6f46891437ce418c8d9c260cf236e46bb6e8c9842511fa2a4ed186e76d8d828aa08a39425a58160b067e5e591c2a05c804d97d27ef3d764de5c9fba393f6529f77406b6c93e5e26ff6dece414ba0ba6b57577988823ab0d146d8ba76efe5826616f71fa4b853eb900a7913bdb7191f3ca1aa123e73aafe9428d4513b88c389129e5f154d9aad1da5662e95a4f9fbc5905b174fb9b19c26da4f5b435801231520546ea52e40fd188219801e4835c8126c7afea9bc07b109ea5ea63981e15c2c38d022ed608cf24e53553f368020f47b1b21e368c1fa3c8fbdd7ce284bcb1ad9dd01cba7c2ee0a5d73b3d068e50f36ea74da58a6f67e030fa70f99c5a5c8d602cbe787a56b3753eed205842d675ac7799245642549e0f1a0097e1377275011d96826f1b0463712f36f21e770b7d16704f43cc4a660890c9214bc13eb8b1cd099d7d6d2cef4bb91940c239259e49a2ad7d9942fa193da56c6dbc87c225fc1adc62de3fc6ab71ac851fcbedf3b58b4298735cce4114afb',
y: '02406c4eeee2d3ae661f9a3a5dcd13bb4be68974aa1e8b471b28376f7d25a8859f',
u: 'ae7a83e594e843dad5ab653edcf01314fb899c8a9785a9b61870c23711248223',
uu: '',
chaincode: 'cd678be1f1bef0a458cdce1f1e36251f9d78bcb46af3ff2ab97ea888c688314e',
},
nShares: {
Expand Down
1 change: 1 addition & 0 deletions modules/sdk-core/src/account-lib/mpc/tss/ecdsa/ecdsa.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ export default class Ecdsa {
n: publicKey.n.toString(16),
y: bigIntToBufferBE(y, 33).toString('hex'),
u: bigIntToBufferBE(uShares[index], 32).toString('hex'),
uu: u.toString(),
chaincode: chaincode.toString('hex'),
};
const keyShare: KeyShare = {
Expand Down
1 change: 1 addition & 0 deletions modules/sdk-core/src/account-lib/mpc/tss/ecdsa/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ export interface PShare {
l: string; // lambda value for paillier secret key
m: string; // mu value for paillier secret key
u: string; // shamir share of secret
uu: string; // unsplit shamir share of secret
n: string; // n => (p . q) where p and q are the two random prime numbers chosen for paillier encryption
y: string;
chaincode: string;
Expand Down
7 changes: 6 additions & 1 deletion modules/sdk-core/src/bitgo/utils/tss/ecdsa/ecdsa.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import * as bs58 from 'bs58';
import { ECDSA, Ecdsa } from '../../../../account-lib/mpc/tss';
import { bigIntToBufferBE } from '../../../../account-lib/mpc/util';
import * as openpgp from 'openpgp';
import { SerializedKeyPair } from 'openpgp';
import { AddKeychainOptions, Keychain, KeyType } from '../../../keychain';
Expand Down Expand Up @@ -291,8 +292,12 @@ export class EcdsaUtils extends baseTSSUtils<KeyShare> {
userSigningMaterial.backupNShare,
]);

const threshold = 2;
const numShares = 3;
const uShares = Ecdsa.shamir.split(BigInt(userSigningMaterial.pShare.uu), threshold, numShares);
const userSignShare = await ECDSAMethods.createUserSignShare(signingKey.xShare, signingKey.yShares[3]);
let u = userSigningMaterial.bitgoNShare.u;

let u = bigIntToBufferBE(uShares[3], 32).toString('hex');
while (u.length < 64) {
u = '0' + u;
}
Expand Down

0 comments on commit 1cb1e93

Please sign in to comment.