@@ -189,8 +189,10 @@ mod mps {
189189 } ;
190190
191191 Ok ( MsgState {
192- msg : bincode:: serialize ( & msg1) . map_err ( |_| MpsError :: SerializationError ) ?,
193- state : bincode:: serialize ( & state) . map_err ( |_| MpsError :: SerializationError ) ?,
192+ msg : bincode:: serde:: encode_to_vec ( msg1, bincode:: config:: standard ( ) )
193+ . map_err ( |_| MpsError :: SerializationError ) ?,
194+ state : bincode:: serde:: encode_to_vec ( & state, bincode:: config:: standard ( ) )
195+ . map_err ( |_| MpsError :: SerializationError ) ?,
194196 } )
195197 }
196198
@@ -227,13 +229,23 @@ mod mps {
227229 {
228230 // Parse state
229231 let state: DkgStateR1 < G > =
230- bincode:: deserialize ( state) . map_err ( |_| MpsError :: DeserializationError ) ?;
232+ bincode:: serde:: decode_from_slice ( state, bincode:: config:: standard ( ) )
233+ . map ( |( v, _) | v)
234+ . map_err ( |_| MpsError :: DeserializationError ) ?;
231235
232236 // Parse messages
233- let i0_msg1: KeygenMsg1 = bincode:: deserialize ( round1_messages[ 0 ] . as_slice ( ) )
234- . map_err ( |_| MpsError :: DeserializationError ) ?;
235- let i1_msg1: KeygenMsg1 = bincode:: deserialize ( round1_messages[ 1 ] . as_slice ( ) )
236- . map_err ( |_| MpsError :: DeserializationError ) ?;
237+ let i0_msg1: KeygenMsg1 = bincode:: serde:: decode_from_slice (
238+ round1_messages[ 0 ] . as_slice ( ) ,
239+ bincode:: config:: standard ( ) ,
240+ )
241+ . map ( |( v, _) | v)
242+ . map_err ( |_| MpsError :: DeserializationError ) ?;
243+ let i1_msg1: KeygenMsg1 = bincode:: serde:: decode_from_slice (
244+ round1_messages[ 1 ] . as_slice ( ) ,
245+ bincode:: config:: standard ( ) ,
246+ )
247+ . map ( |( v, _) | v)
248+ . map_err ( |_| MpsError :: DeserializationError ) ?;
237249 let msgs = vec ! [ i0_msg1, i1_msg1, state. msg] ;
238250
239251 // Process all round0 messages together
@@ -249,8 +261,10 @@ mod mps {
249261 } ;
250262
251263 Ok ( MsgState {
252- msg : bincode:: serialize ( & msg2) . map_err ( |_| MpsError :: SerializationError ) ?,
253- state : bincode:: serialize ( & state) . map_err ( |_| MpsError :: SerializationError ) ?,
264+ msg : bincode:: serde:: encode_to_vec ( & msg2, bincode:: config:: standard ( ) )
265+ . map_err ( |_| MpsError :: SerializationError ) ?,
266+ state : bincode:: serde:: encode_to_vec ( & state, bincode:: config:: standard ( ) )
267+ . map_err ( |_| MpsError :: SerializationError ) ?,
254268 } )
255269 }
256270
@@ -280,14 +294,24 @@ mod mps {
280294 G :: Scalar : ScalarReduce < [ u8 ; 32 ] > + Serializable ,
281295 {
282296 // Deserialize round2 messages from other parties
283- let i0_msg2: KeygenMsg2 < G > = bincode:: deserialize ( round2_messages[ 0 ] . as_slice ( ) )
284- . map_err ( |_| MpsError :: DeserializationError ) ?;
285- let i1_msg2: KeygenMsg2 < G > = bincode:: deserialize ( round2_messages[ 1 ] . as_slice ( ) )
286- . map_err ( |_| MpsError :: DeserializationError ) ?;
297+ let i0_msg2: KeygenMsg2 < G > = bincode:: serde:: decode_from_slice (
298+ round2_messages[ 0 ] . as_slice ( ) ,
299+ bincode:: config:: standard ( ) ,
300+ )
301+ . map ( |( v, _) | v)
302+ . map_err ( |_| MpsError :: DeserializationError ) ?;
303+ let i1_msg2: KeygenMsg2 < G > = bincode:: serde:: decode_from_slice (
304+ round2_messages[ 1 ] . as_slice ( ) ,
305+ bincode:: config:: standard ( ) ,
306+ )
307+ . map ( |( v, _) | v)
308+ . map_err ( |_| MpsError :: DeserializationError ) ?;
287309
288310 // Deserialize state
289311 let state: DkgStateR2 < G > =
290- bincode:: deserialize ( state) . map_err ( |_| MpsError :: DeserializationError ) ?;
312+ bincode:: serde:: decode_from_slice ( state, bincode:: config:: standard ( ) )
313+ . map ( |( v, _) | v)
314+ . map_err ( |_| MpsError :: DeserializationError ) ?;
291315
292316 // Generate share
293317 let share = state
@@ -310,7 +334,8 @@ mod mps {
310334 let state = rem_prefix ( "mps-ed25519-dkg-round2-state$" , & state. to_vec ( ) ) ?;
311335 let share = internal_dkg_round2_process :: < EdwardsPoint > ( & [ i0_msg2, i1_msg2] , & state) ?;
312336 Ok ( Share {
313- share : bincode:: serialize ( & share) . map_err ( |_| MpsError :: SerializationError ) ?,
337+ share : bincode:: serde:: encode_to_vec ( & share, bincode:: config:: standard ( ) )
338+ . map_err ( |_| MpsError :: SerializationError ) ?,
314339 pk : share. public_key . compress ( ) . to_bytes ( ) ,
315340 chaincode : share. root_chain_code ,
316341 } )
@@ -331,8 +356,10 @@ mod mps {
331356 } ;
332357
333358 Ok ( MsgState {
334- msg : bincode:: serialize ( & msg1) . map_err ( |_| MpsError :: SerializationError ) ?,
335- state : bincode:: serialize ( & state) . map_err ( |_| MpsError :: SerializationError ) ?,
359+ msg : bincode:: serde:: encode_to_vec ( & msg1, bincode:: config:: standard ( ) )
360+ . map_err ( |_| MpsError :: SerializationError ) ?,
361+ state : bincode:: serde:: encode_to_vec ( & state, bincode:: config:: standard ( ) )
362+ . map_err ( |_| MpsError :: SerializationError ) ?,
336363 } )
337364 }
338365
@@ -347,7 +374,9 @@ mod mps {
347374 ) -> Result < MsgState , MpsError > {
348375 // Deserialize share
349376 let keyshare: Keyshare < EdwardsPoint > =
350- bincode:: deserialize ( share) . map_err ( |_| MpsError :: DeserializationError ) ?;
377+ bincode:: serde:: decode_from_slice ( share, bincode:: config:: standard ( ) )
378+ . map ( |( v, _) | v)
379+ . map_err ( |_| MpsError :: DeserializationError ) ?;
351380
352381 // Create signer party
353382 let p0 = SignerParty :: < DsgR0 , EdwardsPoint > :: new_with_format :: < _ , Bip32Public > (
@@ -377,11 +406,15 @@ mod mps {
377406 {
378407 // Parse state
379408 let state: DsgStateR1 < G > =
380- bincode:: deserialize ( state) . map_err ( |_| MpsError :: DeserializationError ) ?;
409+ bincode:: serde:: decode_from_slice ( state, bincode:: config:: standard ( ) )
410+ . map ( |( v, _) | v)
411+ . map_err ( |_| MpsError :: DeserializationError ) ?;
381412
382413 // Parse messages
383414 let i0_msg1: SignMsg1 =
384- bincode:: deserialize ( round1_message) . map_err ( |_| MpsError :: DeserializationError ) ?;
415+ bincode:: serde:: decode_from_slice ( round1_message, bincode:: config:: standard ( ) )
416+ . map ( |( v, _) | v)
417+ . map_err ( |_| MpsError :: DeserializationError ) ?;
385418 let msgs = vec ! [ i0_msg1, state. msg] ;
386419
387420 // Process all round1 messages together
@@ -397,8 +430,10 @@ mod mps {
397430 } ;
398431
399432 Ok ( MsgState {
400- msg : bincode:: serialize ( & msg2) . map_err ( |_| MpsError :: SerializationError ) ?,
401- state : bincode:: serialize ( & state) . map_err ( |_| MpsError :: SerializationError ) ?,
433+ msg : bincode:: serde:: encode_to_vec ( & msg2, bincode:: config:: standard ( ) )
434+ . map_err ( |_| MpsError :: SerializationError ) ?,
435+ state : bincode:: serde:: encode_to_vec ( & state, bincode:: config:: standard ( ) )
436+ . map_err ( |_| MpsError :: SerializationError ) ?,
402437 } )
403438 }
404439
@@ -436,11 +471,15 @@ mod mps {
436471
437472 // Parse state
438473 let state: DsgStateR2 < EdwardsPoint > =
439- bincode:: deserialize ( & state) . map_err ( |_| MpsError :: DeserializationError ) ?;
474+ bincode:: serde:: decode_from_slice ( & state, bincode:: config:: standard ( ) )
475+ . map ( |( v, _) | v)
476+ . map_err ( |_| MpsError :: DeserializationError ) ?;
440477
441478 // Parse messages
442479 let i0_msg2: SignMsg2 < EdwardsPoint > =
443- bincode:: deserialize ( & round2_message) . map_err ( |_| MpsError :: DeserializationError ) ?;
480+ bincode:: serde:: decode_from_slice ( & round2_message, bincode:: config:: standard ( ) )
481+ . map ( |( v, _) | v)
482+ . map_err ( |_| MpsError :: DeserializationError ) ?;
444483 let msgs = vec ! [ i0_msg2, state. msg] ;
445484
446485 // Process all round2 messages together
@@ -461,11 +500,13 @@ mod mps {
461500 Ok ( MsgState {
462501 msg : add_prefix (
463502 "mps-ed25519-dsg-round3-message$" ,
464- & bincode:: serialize ( & msg3) . map_err ( |_| MpsError :: SerializationError ) ?,
503+ & bincode:: serde:: encode_to_vec ( & msg3, bincode:: config:: standard ( ) )
504+ . map_err ( |_| MpsError :: SerializationError ) ?,
465505 ) ,
466506 state : add_prefix (
467507 "mps-ed25519-dsg-round3-state$" ,
468- & bincode:: serialize ( & state) . map_err ( |_| MpsError :: SerializationError ) ?,
508+ & bincode:: serde:: encode_to_vec ( & state, bincode:: config:: standard ( ) )
509+ . map_err ( |_| MpsError :: SerializationError ) ?,
469510 ) ,
470511 } )
471512 }
@@ -484,11 +525,15 @@ mod mps {
484525
485526 // Parse state
486527 let state: DsgStateR3 < EdwardsPoint > =
487- bincode:: deserialize ( & state) . map_err ( |_| MpsError :: DeserializationError ) ?;
528+ bincode:: serde:: decode_from_slice ( & state, bincode:: config:: standard ( ) )
529+ . map ( |( v, _) | v)
530+ . map_err ( |_| MpsError :: DeserializationError ) ?;
488531
489532 // Parse messages
490533 let i0_msg3: SignMsg3 < EdwardsPoint > =
491- bincode:: deserialize ( & round3_message) . map_err ( |_| MpsError :: DeserializationError ) ?;
534+ bincode:: serde:: decode_from_slice ( & round3_message, bincode:: config:: standard ( ) )
535+ . map ( |( v, _) | v)
536+ . map_err ( |_| MpsError :: DeserializationError ) ?;
492537 let msgs = vec ! [ i0_msg3, state. msg] ;
493538
494539 // Process all round2 messages together
0 commit comments