@@ -171,7 +171,7 @@ impl<'de> serde::Deserialize<'de> for HpkePublicKey {
171171
172172/// Message A is sent from the sender to the receiver containing an Original PSBT payload
173173pub fn encrypt_message_a (
174- body : Vec < u8 > ,
174+ mut body : Vec < u8 > ,
175175 reply_pk : & HpkePublicKey ,
176176 receiver_pk : & HpkePublicKey ,
177177) -> Result < Vec < u8 > , HpkeError > {
@@ -182,7 +182,6 @@ pub fn encrypt_message_a(
182182 INFO_A ,
183183 & mut OsRng ,
184184 ) ?;
185- let mut body = body;
186185 pad_plaintext ( & mut body, PADDED_PLAINTEXT_A_LENGTH ) ?;
187186 let mut plaintext = compressed_bytes_from_pubkey ( reply_pk) . to_vec ( ) ;
188187 plaintext. extend ( body) ;
@@ -194,7 +193,7 @@ pub fn encrypt_message_a(
194193
195194pub fn decrypt_message_a (
196195 message_a : & [ u8 ] ,
197- receiver_sk : HpkeSecretKey ,
196+ receiver_sk : & HpkeSecretKey ,
198197) -> Result < ( Vec < u8 > , HpkePublicKey ) , HpkeError > {
199198 use std:: io:: { Cursor , Read } ;
200199
@@ -247,7 +246,7 @@ pub fn encrypt_message_b(
247246pub fn decrypt_message_b (
248247 message_b : & [ u8 ] ,
249248 receiver_pk : HpkePublicKey ,
250- sender_sk : HpkeSecretKey ,
249+ sender_sk : & HpkeSecretKey ,
251250) -> Result < Vec < u8 > , HpkeError > {
252251 let enc = message_b. get ( ..ELLSWIFT_ENCODING_SIZE ) . ok_or ( HpkeError :: PayloadTooShort ) ?;
253252 let enc = encapped_key_from_ellswift_bytes ( enc) ?;
@@ -345,7 +344,7 @@ mod test {
345344 . expect ( "encryption should work" ) ;
346345 assert_eq ! ( message_a. len( ) , PADDED_MESSAGE_BYTES ) ;
347346
348- let decrypted = decrypt_message_a ( & message_a, receiver_keypair. secret_key ( ) . clone ( ) )
347+ let decrypted = decrypt_message_a ( & message_a, receiver_keypair. secret_key ( ) )
349348 . expect ( "decryption should work" ) ;
350349
351350 assert_eq ! ( decrypted. 0 . len( ) , PADDED_PLAINTEXT_A_LENGTH ) ;
@@ -363,28 +362,28 @@ mod test {
363362 )
364363 . expect ( "encryption should work" ) ;
365364
366- let decrypted = decrypt_message_a ( & message_a, receiver_keypair. secret_key ( ) . clone ( ) )
365+ let decrypted = decrypt_message_a ( & message_a, receiver_keypair. secret_key ( ) )
367366 . expect ( "decryption should work" ) ;
368367
369368 assert_eq ! ( decrypted. 0 . len( ) , plaintext. len( ) ) ;
370369 assert_eq ! ( decrypted, ( plaintext. to_vec( ) , reply_keypair. public_key( ) . clone( ) ) ) ;
371370
372371 let unrelated_keypair = HpkeKeyPair :: gen_keypair ( ) ;
373372 assert_eq ! (
374- decrypt_message_a( & message_a, unrelated_keypair. secret_key( ) . clone ( ) ) ,
373+ decrypt_message_a( & message_a, unrelated_keypair. secret_key( ) ) ,
375374 Err ( HpkeError :: Hpke ( hpke:: HpkeError :: OpenError ) )
376375 ) ;
377376
378377 let mut corrupted_message_a = message_a. clone ( ) ;
379378 corrupted_message_a[ 3 ] ^= 1 ; // corrupt dhkem
380379 assert_eq ! (
381- decrypt_message_a( & corrupted_message_a, receiver_keypair. secret_key( ) . clone ( ) ) ,
380+ decrypt_message_a( & corrupted_message_a, receiver_keypair. secret_key( ) ) ,
382381 Err ( HpkeError :: Hpke ( hpke:: HpkeError :: OpenError ) )
383382 ) ;
384383 let mut corrupted_message_a = message_a. clone ( ) ;
385384 corrupted_message_a[ PADDED_MESSAGE_BYTES - 3 ] ^= 1 ; // corrupt aead ciphertext
386385 assert_eq ! (
387- decrypt_message_a( & corrupted_message_a, receiver_keypair. secret_key( ) . clone ( ) ) ,
386+ decrypt_message_a( & corrupted_message_a, receiver_keypair. secret_key( ) ) ,
388387 Err ( HpkeError :: Hpke ( hpke:: HpkeError :: OpenError ) )
389388 ) ;
390389
@@ -418,7 +417,7 @@ mod test {
418417 let decrypted = decrypt_message_b (
419418 & message_b,
420419 receiver_keypair. public_key ( ) . clone ( ) ,
421- reply_keypair. secret_key ( ) . clone ( ) ,
420+ reply_keypair. secret_key ( ) ,
422421 )
423422 . expect ( "decryption should work" ) ;
424423
@@ -437,7 +436,7 @@ mod test {
437436 let decrypted = decrypt_message_b (
438437 & message_b,
439438 receiver_keypair. public_key ( ) . clone ( ) ,
440- reply_keypair. secret_key ( ) . clone ( ) ,
439+ reply_keypair. secret_key ( ) ,
441440 )
442441 . expect ( "decryption should work" ) ;
443442 assert_eq ! ( decrypted. len( ) , plaintext. len( ) ) ;
@@ -448,15 +447,15 @@ mod test {
448447 decrypt_message_b(
449448 & message_b,
450449 receiver_keypair. public_key( ) . clone( ) ,
451- unrelated_keypair. secret_key( ) . clone ( ) // wrong decryption key
450+ unrelated_keypair. secret_key( ) // wrong decryption key
452451 ) ,
453452 Err ( HpkeError :: Hpke ( hpke:: HpkeError :: OpenError ) )
454453 ) ;
455454 assert_eq ! (
456455 decrypt_message_b(
457456 & message_b,
458457 unrelated_keypair. public_key( ) . clone( ) , // wrong auth key
459- reply_keypair. secret_key( ) . clone ( )
458+ reply_keypair. secret_key( )
460459 ) ,
461460 Err ( HpkeError :: Hpke ( hpke:: HpkeError :: OpenError ) )
462461 ) ;
@@ -467,7 +466,7 @@ mod test {
467466 decrypt_message_b(
468467 & corrupted_message_b,
469468 receiver_keypair. public_key( ) . clone( ) ,
470- reply_keypair. secret_key( ) . clone ( )
469+ reply_keypair. secret_key( )
471470 ) ,
472471 Err ( HpkeError :: Hpke ( hpke:: HpkeError :: OpenError ) )
473472 ) ;
@@ -477,7 +476,7 @@ mod test {
477476 decrypt_message_b(
478477 & corrupted_message_b,
479478 receiver_keypair. public_key( ) . clone( ) ,
480- reply_keypair. secret_key( ) . clone ( )
479+ reply_keypair. secret_key( )
481480 ) ,
482481 Err ( HpkeError :: Hpke ( hpke:: HpkeError :: OpenError ) )
483482 ) ;
0 commit comments