File tree 2 files changed +21
-5
lines changed
crates/components/key-exchange/src
2 files changed +21
-5
lines changed Original file line number Diff line number Diff line change @@ -44,8 +44,12 @@ pub(crate) fn build_pms_circuit() -> Arc<Circuit> {
44
44
& to_little_endian ( & share_b0) ,
45
45
& to_little_endian ( & modulus) ,
46
46
) ;
47
- for node in pms_0. iter ( ) {
48
- builder. add_output ( * node) ;
47
+
48
+ // return output as big endian
49
+ for node in pms_0. chunks_exact ( 8 ) . rev ( ) {
50
+ for & bit in node. iter ( ) {
51
+ builder. add_output ( bit) ;
52
+ }
49
53
}
50
54
51
55
let pms_1 = add_mod (
@@ -54,8 +58,12 @@ pub(crate) fn build_pms_circuit() -> Arc<Circuit> {
54
58
& to_little_endian ( & share_b1) ,
55
59
& to_little_endian ( & modulus) ,
56
60
) ;
57
- for node in pms_1. iter ( ) {
58
- builder. add_output ( * node) ;
61
+
62
+ // return output as big endian
63
+ for node in pms_1. chunks_exact ( 8 ) . rev ( ) {
64
+ for & bit in node. iter ( ) {
65
+ builder. add_output ( bit) ;
66
+ }
59
67
}
60
68
61
69
for ( a, b) in pms_0. into_iter ( ) . zip ( pms_1) {
Original file line number Diff line number Diff line change @@ -488,7 +488,10 @@ mod tests {
488
488
489
489
let leader_private_key = SecretKey :: random ( & mut rng) ;
490
490
let follower_private_key = SecretKey :: random ( & mut rng) ;
491
- let server_public_key = PublicKey :: from_secret_scalar ( & NonZeroScalar :: random ( & mut rng) ) ;
491
+
492
+ let server_secret_key = & NonZeroScalar :: random ( & mut rng) ;
493
+ let server_public_key = PublicKey :: from_secret_scalar ( server_secret_key) ;
494
+
492
495
let expected_client_public_key = PublicKey :: from_affine (
493
496
( leader_private_key. public_key ( ) . to_projective ( )
494
497
+ follower_private_key. public_key ( ) . to_projective ( ) )
@@ -541,7 +544,12 @@ mod tests {
541
544
}
542
545
) ;
543
546
547
+ let expected_ecdh_x =
548
+ p256:: ecdh:: diffie_hellman ( server_secret_key, client_public_key. as_affine ( ) ) ;
549
+ let expected_ecdh_x = expected_ecdh_x. raw_secret_bytes ( ) . to_vec ( ) ;
550
+
544
551
assert_eq ! ( leader_pms, follower_pms) ;
552
+ assert_eq ! ( leader_pms. to_vec( ) , expected_ecdh_x) ;
545
553
}
546
554
547
555
#[ tokio:: test]
You can’t perform that action at this time.
0 commit comments