@@ -64,7 +64,7 @@ use service_binding::Binding;
6464use ssh_agent_lib:: {
6565 agent:: Session ,
6666 client:: connect,
67- proto:: { Extension , SignRequest } ,
67+ proto:: { CertKeyData , Extension , SignRequest } ,
6868} ;
6969use ssh_key:: public:: KeyData ;
7070use tokio:: runtime:: Runtime ;
@@ -372,7 +372,10 @@ fn main() -> testresult::TestResult {
372372 let mut keyflags = KeyFlags :: default ( ) ;
373373 keyflags. set_encrypt_comms ( true ) ;
374374 keyflags. set_encrypt_storage ( true ) ;
375- let pk = ssh_to_pgp ( decryption_id. pubkey . clone ( ) , KeyRole :: Decryption ) ;
375+ let CertKeyData :: Key ( pubkey) = & decryption_id. pubkey else {
376+ panic ! ( "Only pubkeys are supported." ) ;
377+ } ;
378+ let pk = ssh_to_pgp ( pubkey. clone ( ) , KeyRole :: Decryption ) ;
376379 vec ! [ pgp:: PublicSubkey :: new(
377380 pgp:: packet:: PublicSubkey :: new(
378381 pk. packet_version( ) ,
@@ -388,6 +391,9 @@ fn main() -> testresult::TestResult {
388391 vec ! [ ]
389392 } ;
390393
394+ let CertKeyData :: Key ( pubkey) = pubkey else {
395+ panic ! ( "Only pubkeys are supported." ) ;
396+ } ;
391397 let signer = WrappedKey :: new ( pubkey. clone ( ) , client, KeyRole :: Signing ) ;
392398 let mut keyflags = KeyFlags :: default ( ) ;
393399 keyflags. set_sign ( true ) ;
@@ -411,6 +417,9 @@ fn main() -> testresult::TestResult {
411417 signed_pk. to_writer ( & mut std:: io:: stdout ( ) ) ?;
412418 }
413419 Args :: Sign => {
420+ let CertKeyData :: Key ( pubkey) = pubkey else {
421+ panic ! ( "Only pubkeys are supported." ) ;
422+ } ;
414423 let signer = WrappedKey :: new ( pubkey. clone ( ) , client, KeyRole :: Signing ) ;
415424 let signature = SignatureConfig :: new_v4 (
416425 SignatureVersion :: V4 ,
@@ -445,8 +454,10 @@ fn main() -> testresult::TestResult {
445454 pgp:: packet:: write_packet ( & mut std:: io:: stdout ( ) , & signature) ?;
446455 }
447456 Args :: Decrypt => {
448- let decryptor =
449- WrappedKey :: new ( decrypt_ids[ 0 ] . pubkey . clone ( ) , client, KeyRole :: Decryption ) ;
457+ let CertKeyData :: Key ( pubkey) = decrypt_ids[ 0 ] . pubkey else {
458+ panic ! ( "Only pubkeys are supported" ) ;
459+ } ;
460+ let decryptor = WrappedKey :: new ( pubkey. clone ( ) , client, KeyRole :: Decryption ) ;
450461 let message = Message :: from_bytes ( std:: io:: stdin ( ) ) ?;
451462
452463 let Message :: Encrypted { esk, edata } = message else {
0 commit comments