2024-08-29 10:37:02 +03:00
use predicates ::prelude ::* ;
2023-02-21 14:43:43 +03:00
2024-08-29 10:37:02 +03:00
use openpgp ::Result ;
use sequoia_openpgp as openpgp ;
2023-02-21 14:43:43 +03:00
2024-10-09 12:01:29 +03:00
use super ::common ::{ Sq , artifact } ;
2023-02-21 14:43:43 +03:00
2024-08-29 10:37:02 +03:00
#[ test ]
fn session_key_without_prefix ( ) -> Result < ( ) > {
2024-08-29 11:59:20 +03:00
let sq = Sq ::new ( ) ;
sq . command ( )
2023-02-21 14:43:43 +03:00
. arg ( " packet " )
. arg ( " dump " )
. args ( [ " --session-key " , " 1FE820EC21FB5D7E33D83367106D1D3747DCD48E6320C1AEC57EE7D18FC437D4 " ] )
. arg ( artifact ( " messages/rsa.msg.pgp " ) )
. assert ( )
. success ( )
. stdout ( predicate ::str ::contains ( " Decryption failed " ) . not ( ) ) ;
2024-08-29 10:37:02 +03:00
Ok ( ( ) )
}
2023-02-21 14:43:43 +03:00
2024-08-29 10:37:02 +03:00
#[ test ]
fn session_key_with_prefix ( ) -> Result < ( ) > {
2024-08-29 11:59:20 +03:00
let sq = Sq ::new ( ) ;
sq . command ( )
2023-02-21 14:43:43 +03:00
. arg ( " packet " )
. arg ( " dump " )
. args ( [ " --session-key " , " 9:1FE820EC21FB5D7E33D83367106D1D3747DCD48E6320C1AEC57EE7D18FC437D4 " ] )
. arg ( artifact ( " messages/rsa.msg.pgp " ) )
. assert ( )
. success ( )
. stdout ( predicate ::str ::contains ( " Decryption failed " ) . not ( ) ) ;
2024-08-29 10:37:02 +03:00
Ok ( ( ) )
}
2023-02-21 14:43:43 +03:00
2024-08-29 10:37:02 +03:00
#[ test ]
fn session_key_with_bad_prefix ( ) -> Result < ( ) > {
2024-08-29 11:59:20 +03:00
let sq = Sq ::new ( ) ;
sq . command ( )
2023-02-21 14:43:43 +03:00
. arg ( " packet " )
. arg ( " dump " )
. args ( [ " --session-key " , " 1:1FE820EC21FB5D7E33D83367106D1D3747DCD48E6320C1AEC57EE7D18FC437D4 " ] )
. arg ( artifact ( " messages/rsa.msg.pgp " ) )
. assert ( )
. success ( )
. stdout ( predicate ::str ::contains ( " Indicated Symmetric algo: IDEA " ) )
. stdout ( predicate ::str ::contains ( " Decryption failed " ) ) ;
2024-08-29 10:37:02 +03:00
Ok ( ( ) )
}
2023-02-21 14:43:43 +03:00
2024-08-29 10:37:02 +03:00
#[ test ]
fn session_key_wrong_length_without_prefix ( ) -> Result < ( ) > {
// too short
2024-08-29 11:59:20 +03:00
let sq = Sq ::new ( ) ;
sq . command ( )
2023-02-21 14:43:43 +03:00
. arg ( " packet " )
. arg ( " dump " )
. args ( [ " --session-key " , " 1FE820EC21FB5D7E33D83367106D1D3747DCD48E6320C1AEC57EE7D18FC437 " ] )
. arg ( artifact ( " messages/rsa.msg.pgp " ) )
. assert ( )
. success ( )
. stdout ( predicate ::str ::contains ( " Decryption failed " ) ) ;
2024-08-29 10:37:02 +03:00
// too long
2024-08-29 11:59:20 +03:00
let sq = Sq ::new ( ) ;
sq . command ( )
2023-02-21 14:43:43 +03:00
. arg ( " packet " )
. arg ( " dump " )
. args ( [ " --session-key " , " 1FE820EC21FB5D7E33D83367106D1D3747DCD48E6320C1AEC57EE7D18FC437D4AB " ] )
. arg ( artifact ( " messages/rsa.msg.pgp " ) )
. assert ( )
. success ( )
. stdout ( predicate ::str ::contains ( " Decryption failed " ) ) ;
2024-08-29 10:37:02 +03:00
Ok ( ( ) )
}
2023-02-21 14:43:43 +03:00
2024-08-29 10:37:02 +03:00
#[ test ]
fn session_key_wrong_length_with_prefix ( ) -> Result < ( ) > {
// too short
2024-08-29 11:59:20 +03:00
let sq = Sq ::new ( ) ;
sq . command ( )
2023-02-21 14:43:43 +03:00
. arg ( " packet " )
. arg ( " dump " )
. args ( [ " --session-key " , " 1:1FE820EC21FB5D7E33D83367106D1D3747DCD48E6320C1AEC57EE7D18FC437 " ] )
. arg ( artifact ( " messages/rsa.msg.pgp " ) )
. assert ( )
. success ( )
. stdout ( predicate ::str ::contains ( " Decryption failed " ) ) ;
2024-08-29 10:37:02 +03:00
// too long
2024-08-29 11:59:20 +03:00
let sq = Sq ::new ( ) ;
sq . command ( )
2023-02-21 14:43:43 +03:00
. arg ( " packet " )
. arg ( " dump " )
. args ( [ " --session-key " , " 1:1FE820EC21FB5D7E33D83367106D1D3747DCD48E6320C1AEC57EE7D18FC437D4AB " ] )
. arg ( artifact ( " messages/rsa.msg.pgp " ) )
. assert ( )
. success ( )
. stdout ( predicate ::str ::contains ( " Decryption failed " ) ) ;
2024-08-29 10:37:02 +03:00
Ok ( ( ) )
}
2023-02-21 14:43:43 +03:00
2024-08-29 10:37:02 +03:00
#[ test ]
fn session_key_wrong_key_with_prefix ( ) -> Result < ( ) > {
2024-08-29 11:59:20 +03:00
let sq = Sq ::new ( ) ;
sq . command ( )
2023-02-21 14:43:43 +03:00
. arg ( " packet " )
. arg ( " dump " )
. args ( [ " --session-key " , " 9:BB9CCB8EDE22DC222C83BD1C63AEB97335DDC7B696DB171BD16EAA5784CC0478 " ] )
. arg ( artifact ( " messages/rsa.msg.pgp " ) )
. assert ( )
. success ( )
. stdout ( predicate ::str ::contains ( " Decryption failed " ) ) ;
2024-08-29 10:37:02 +03:00
Ok ( ( ) )
2023-02-21 14:43:43 +03:00
}