@@ -24,7 +24,7 @@ pub trait MessageSignature {
2424 fn has_message_signature ( & self ) -> bool ;
2525
2626 /// Extract all key ids for signature bases contained in the request headers
27- fn get_alg_key_ids ( & self ) -> Result < IndexMap < SignatureName , ( AlgorithmName , KeyId ) > , Self :: Error > ;
27+ fn get_alg_key_ids ( & self ) -> Result < IndexMap < SignatureName , ( Option < AlgorithmName > , Option < KeyId > ) > , Self :: Error > ;
2828
2929 /// Extract all signature params used to generate signature bases contained in the request headers
3030 fn get_signature_params ( & self ) -> Result < IndexMap < SignatureName , HttpSignatureParams > , Self :: Error > ;
@@ -243,7 +243,7 @@ where
243243 }
244244
245245 /// Extract all signature bases contained in the request headers
246- fn get_alg_key_ids ( & self ) -> HyperSigResult < IndexMap < SignatureName , ( AlgorithmName , KeyId ) > > {
246+ fn get_alg_key_ids ( & self ) -> HyperSigResult < IndexMap < SignatureName , ( Option < AlgorithmName > , Option < KeyId > ) > > {
247247 let req_or_res = RequestOrResponse :: Request ( self ) ;
248248 get_alg_key_ids_inner ( & req_or_res)
249249 }
@@ -358,7 +358,7 @@ where
358358 }
359359
360360 /// Extract all key ids for signature bases contained in the response headers
361- fn get_alg_key_ids ( & self ) -> Result < IndexMap < SignatureName , ( AlgorithmName , KeyId ) > , Self :: Error > {
361+ fn get_alg_key_ids ( & self ) -> Result < IndexMap < SignatureName , ( Option < AlgorithmName > , Option < KeyId > ) > , Self :: Error > {
362362 let req_or_res = RequestOrResponse :: Response ( self ) ;
363363 get_alg_key_ids_inner ( & req_or_res)
364364 }
@@ -596,7 +596,7 @@ fn has_message_signature_inner(headers: &HeaderMap) -> bool {
596596/// get key ids inner function
597597fn get_alg_key_ids_inner < B > (
598598 req_or_res : & RequestOrResponse < B > ,
599- ) -> HyperSigResult < IndexMap < SignatureName , ( AlgorithmName , KeyId ) > > {
599+ ) -> HyperSigResult < IndexMap < SignatureName , ( Option < AlgorithmName > , Option < KeyId > ) > > {
600600 let signature_headers_map = extract_signature_headers_with_name ( req_or_res) ?;
601601 let res = signature_headers_map
602602 . iter ( )
@@ -610,11 +610,7 @@ fn get_alg_key_ids_inner<B>(
610610 . ok ( )
611611 . flatten ( ) ;
612612 let key_id = headers. signature_params ( ) . keyid . clone ( ) ;
613- if let ( Some ( alg) , Some ( key_id) ) = ( alg, key_id) {
614- Some ( ( name. clone ( ) , ( alg, key_id) ) )
615- } else {
616- None
617- }
613+ Some ( ( name. clone ( ) , ( alg, key_id) ) )
618614 } )
619615 . collect ( ) ;
620616 Ok ( res)
@@ -1185,7 +1181,9 @@ MCowBQYDK2VwAyEA1ixMQcxO46PLlgQfYS46ivFd+n0CcDHSKUnuhm3i1O0=
11851181
11861182 let org_key_id = VerifyingKey :: key_id ( & secret_key) ;
11871183 let ( alg, key_id) = req. get_alg_key_ids ( ) . unwrap ( ) . into_iter ( ) . next ( ) . unwrap ( ) . 1 ;
1188- assert_eq ! ( org_key_id, * key_id) ;
1184+ let alg = alg. unwrap ( ) ;
1185+ let key_id = key_id. unwrap ( ) ;
1186+ assert_eq ! ( org_key_id, key_id) ;
11891187 let verification_key = SharedKey :: from_base64 ( & alg, HMACSHA256_SECRET_KEY ) . unwrap ( ) ;
11901188 let verification_res = req. verify_message_signature ( & verification_key, Some ( & key_id) ) . await ;
11911189 assert ! ( verification_res. is_ok( ) ) ;
@@ -1204,8 +1202,8 @@ MCowBQYDK2VwAyEA1ixMQcxO46PLlgQfYS46ivFd+n0CcDHSKUnuhm3i1O0=
12041202 req. set_message_signature ( & signature_params, & secret_key, None ) . await . unwrap ( ) ;
12051203 let key_ids = req. get_alg_key_ids ( ) . unwrap ( ) ;
12061204 assert_eq ! ( key_ids. len( ) , 1 ) ;
1207- assert_eq ! ( key_ids[ 0 ] . 0 , AlgorithmName :: Ed25519 ) ;
1208- assert_eq ! ( key_ids[ 0 ] . 1 , "gjrE7ACMxgzYfFHgabgf4kLTg1eKIdsJ94AiFTFj1is=" ) ;
1205+ assert_eq ! ( key_ids[ 0 ] . 0 . as_ref ( ) . unwrap ( ) , & AlgorithmName :: Ed25519 ) ;
1206+ assert_eq ! ( key_ids[ 0 ] . 1 . as_ref ( ) . unwrap ( ) , "gjrE7ACMxgzYfFHgabgf4kLTg1eKIdsJ94AiFTFj1is=" ) ;
12091207 }
12101208
12111209 const P256_SECERT_KEY : & str = r##"-----BEGIN PRIVATE KEY-----
0 commit comments