@@ -29,7 +29,7 @@ secp256kfun::impl_display_debug_serialize! {
2929 }
3030}
3131
32- #[ derive( Clone , Debug , PartialEq ) ]
32+ #[ derive( Clone , Debug , PartialEq , bincode :: Encode , bincode :: Decode ) ]
3333#[ cfg_attr(
3434 feature = "serde" ,
3535 derive( crate :: fun:: serde:: Deserialize , crate :: fun:: serde:: Serialize ) ,
@@ -52,20 +52,19 @@ pub(crate) struct EncryptedSignatureInternal {
5252#[ derive( Clone , PartialEq ) ]
5353pub struct EncryptedSignature ( pub ( crate ) EncryptedSignatureInternal ) ;
5454
55- #[ cfg( feature = "serde" ) ]
5655secp256kfun:: impl_display_debug_serialize! {
5756 fn to_bytes( es: & EncryptedSignature ) -> [ u8 ; 162 ] {
5857 let mut bytes = [ 0u8 ; 162 ] ;
59- bytes. copy_from_slice( bincode:: serialize( & es. 0 ) . unwrap( ) . as_slice( ) ) ;
58+ let size = bincode:: encode_into_slice( & es. 0 , & mut bytes[ ..] , bincode:: config:: legacy( ) ) . expect( "infallible" ) ;
59+ assert_eq!( size, 162 ) ;
6060 bytes
6161 }
6262}
6363
64- #[ cfg( feature = "serde" ) ]
6564secp256kfun:: impl_fromstr_deserialize! {
6665 name => "ECDSA adaptor signature" ,
6766 fn from_bytes( bytes: [ u8 ; 162 ] ) -> Option <EncryptedSignature > {
68- bincode:: deserialize ( & bytes[ ..] ) . ok( ) . map( EncryptedSignature )
67+ bincode:: decode_from_slice ( & bytes[ ..] , bincode :: config :: legacy ( ) ) . ok( ) . map( | ( v , _ ) | EncryptedSignature ( v ) )
6968 }
7069}
7170
@@ -104,10 +103,18 @@ mod test {
104103 & encryption_key,
105104 b"hello world you are beautiful!!!" ,
106105 ) ;
107- let serialized = bincode:: serialize ( & encrypted_signature) . unwrap ( ) ;
106+ let serialized = bincode:: encode_to_vec (
107+ bincode:: serde:: Compat ( & encrypted_signature) ,
108+ bincode:: config:: standard ( ) ,
109+ )
110+ . unwrap ( ) ;
108111 assert_eq ! ( serialized. len( ) , 33 + 33 + 32 + 64 ) ;
109- let deseriazed = bincode:: deserialize :: < EncryptedSignature > ( & serialized[ ..] ) . unwrap ( ) ;
112+ let ( deseriazed, _) = bincode:: decode_from_slice :: <
113+ bincode:: serde:: Compat < EncryptedSignature > ,
114+ _ ,
115+ > ( & serialized[ ..] , bincode:: config:: standard ( ) )
116+ . unwrap ( ) ;
110117
111- assert_eq ! ( deseriazed, encrypted_signature) ;
118+ assert_eq ! ( deseriazed. 0 , encrypted_signature) ;
112119 }
113120}
0 commit comments