Skip to content

Commit 7552a79

Browse files
feat(wasm-mps): expose MPS keyshare chaincode
Ticket: HSM-1528
1 parent 66da398 commit 7552a79

2 files changed

Lines changed: 24 additions & 3 deletions

File tree

packages/wasm-mps/src/lib.rs

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ mod mps {
112112
pub struct Share {
113113
pub share: Vec<u8>,
114114
pub pk: [u8; 32],
115+
pub chaincode: [u8; 32],
115116
}
116117

117118
fn internal_dkg_round0_process<G>(
@@ -279,6 +280,7 @@ mod mps {
279280
Ok(Share {
280281
share: bincode::serialize(&share).map_err(|_| MpsError::SerializationError)?,
281282
pk: share.public_key.compress().to_bytes(),
283+
chaincode: share.root_chain_code,
282284
})
283285
}
284286

@@ -525,14 +527,22 @@ mod tests {
525527
)
526528
.unwrap();
527529

528-
// Assert generated public keys are equal
530+
// Assert generated public keychains are equal
529531
assert_eq!(
530532
p2_share.pk, p0_share.pk,
531-
"Party 0 share differs from party 2 share"
533+
"Party 0 public key differs from party 2 public key"
532534
);
533535
assert_eq!(
534536
p2_share.pk, p1_share.pk,
535-
"Party 1 share differs from party 2 share"
537+
"Party 1 public key differs from party 2 public key"
538+
);
539+
assert_eq!(
540+
p2_share.chaincode, p0_share.chaincode,
541+
"Party 0 chaincode differs from party 2 chaincode"
542+
);
543+
assert_eq!(
544+
p2_share.chaincode, p1_share.chaincode,
545+
"Party 1 chaincode differs from party 2 chaincode"
536546
);
537547
}
538548

@@ -697,6 +707,7 @@ impl MsgState {
697707
pub struct Share {
698708
share: Vec<u8>,
699709
pk: Vec<u8>,
710+
chaincode: Vec<u8>,
700711
}
701712

702713
#[wasm_bindgen]
@@ -710,6 +721,11 @@ impl Share {
710721
pub fn pk(&self) -> Vec<u8> {
711722
self.pk.clone()
712723
}
724+
725+
#[wasm_bindgen(getter)]
726+
pub fn chaincode(&self) -> Vec<u8> {
727+
self.chaincode.clone()
728+
}
713729
}
714730

715731
#[wasm_bindgen]
@@ -730,6 +746,7 @@ impl MsgShare {
730746
Share {
731747
share: self.share.share.clone(),
732748
pk: self.share.pk.clone(),
749+
chaincode: self.share.chaincode.clone(),
733750
}
734751
}
735752
}
@@ -796,6 +813,7 @@ pub fn ed25519_dkg_round2_process(round2_messages: Array, state: &[u8]) -> Resul
796813
Ok(Share {
797814
share: result.share,
798815
pk: result.pk.to_vec(),
816+
chaincode: result.chaincode.to_vec(),
799817
})
800818
}
801819

packages/wasm-mps/test/mps.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ describe("mps", function () {
7373
);
7474
for (let i = 0; i < 2; i++) {
7575
assert.ok(results3[i].pk.every((value, index) => value === results3[2].pk[index]));
76+
assert.ok(
77+
results3[i].chaincode.every((value, index) => value === results3[2].chaincode[index]),
78+
);
7679
}
7780
});
7881

0 commit comments

Comments
 (0)