@@ -261,18 +261,16 @@ impl<'a> Fido2Authenticator<'a> {
261261 rp_id : String ,
262262 user_handle : Option < Vec < u8 > > ,
263263 ) -> Result < Vec < Fido2CredentialAutofillView > , SilentlyDiscoverCredentialsError > {
264- let key_store = self . client . internal . get_key_store ( ) ;
265264 let result = self
266265 . credential_store
267266 . find_credentials ( None , rp_id, user_handle)
268267 . await ?;
269268
270- let mut ctx = key_store. context ( ) ;
271269 result
272270 . into_iter ( )
273271 . map (
274272 |cipher| -> Result < Vec < Fido2CredentialAutofillView > , SilentlyDiscoverCredentialsError > {
275- Ok ( Fido2CredentialAutofillView :: from_cipher_view ( & cipher, & mut ctx ) ?)
273+ Ok ( Fido2CredentialAutofillView :: from_cipher_view ( & cipher) ?)
276274 } ,
277275 )
278276 . flatten_ok ( )
@@ -326,16 +324,14 @@ impl<'a> Fido2Authenticator<'a> {
326324 pub ( super ) fn get_selected_credential (
327325 & self ,
328326 ) -> Result < SelectedCredential , GetSelectedCredentialError > {
329- let key_store = self . client . internal . get_key_store ( ) ;
330-
331327 let cipher = self
332328 . selected_cipher
333329 . lock ( )
334330 . expect ( "Mutex is not poisoned" )
335331 . clone ( )
336332 . ok_or ( GetSelectedCredentialError :: NoSelectedCredential ) ?;
337333
338- let creds = cipher. decrypt_fido2_credentials ( & mut key_store . context ( ) ) ? ;
334+ let creds = cipher. decrypt_fido2_credentials ( ) ;
339335
340336 let credential = creds
341337 . first ( )
@@ -400,13 +396,11 @@ impl passkey::authenticator::CredentialStore for CredentialStoreImpl<'_> {
400396 } )
401397 . collect ( ) ;
402398
403- let key_store = this. authenticator . client . internal . get_key_store ( ) ;
404-
405399 // When using the credential for authentication we have to ask the user to pick one.
406400 if this. create_credential {
407401 Ok ( creds
408402 . into_iter ( )
409- . map ( |c| CipherViewContainer :: new ( c , & mut key_store . context ( ) ) )
403+ . map ( CipherViewContainer :: new)
410404 . collect :: < Result < _ , _ > > ( ) ?)
411405 } else {
412406 let picked = this
@@ -422,10 +416,7 @@ impl passkey::authenticator::CredentialStore for CredentialStoreImpl<'_> {
422416 . expect ( "Mutex is not poisoned" )
423417 . replace ( picked. clone ( ) ) ;
424418
425- Ok ( vec ! [ CipherViewContainer :: new(
426- picked,
427- & mut key_store. context( ) ,
428- ) ?] )
419+ Ok ( vec ! [ CipherViewContainer :: new( picked) ?] )
429420 }
430421 }
431422
@@ -480,9 +471,7 @@ impl passkey::authenticator::CredentialStore for CredentialStoreImpl<'_> {
480471 . clone ( )
481472 . ok_or ( InnerError :: NoSelectedCredential ) ?;
482473
483- let key_store = this. authenticator . client . internal . get_key_store ( ) ;
484-
485- selected. set_new_fido2_credentials ( & mut key_store. context ( ) , vec ! [ cred] ) ?;
474+ selected. set_new_fido2_credentials ( vec ! [ cred] ) ?;
486475
487476 // Store the updated credential for later use
488477 this. authenticator
@@ -553,10 +542,8 @@ impl passkey::authenticator::CredentialStore for CredentialStoreImpl<'_> {
553542
554543 let cred = fill_with_credential ( & selected. credential , cred) ?;
555544
556- let key_store = this. authenticator . client . internal . get_key_store ( ) ;
557-
558545 let mut selected = selected. cipher ;
559- selected. set_new_fido2_credentials ( & mut key_store . context ( ) , vec ! [ cred] ) ?;
546+ selected. set_new_fido2_credentials ( vec ! [ cred] ) ?;
560547
561548 // Store the updated credential for later use
562549 this. authenticator
@@ -679,15 +666,12 @@ fn map_ui_hint(hint: UiHint<'_, CipherViewContainer>) -> UiHint<'_, CipherView>
679666#[ cfg( test) ]
680667mod tests {
681668 use async_trait:: async_trait;
682- use bitwarden_core:: {
683- Client ,
684- key_management:: { KeySlotIds , SymmetricKeySlotId } ,
685- } ;
686- use bitwarden_crypto:: { KeyStoreContext , PrimitiveEncryptable , SymmetricCryptoKey } ;
669+ use bitwarden_core:: { Client , key_management:: SymmetricKeySlotId } ;
670+ use bitwarden_crypto:: SymmetricCryptoKey ;
687671 use bitwarden_encoding:: B64Url ;
688672 use bitwarden_vault:: {
689673 CipherListView , CipherRepromptType , CipherType , CipherView , EncryptionContext ,
690- Fido2Credential , Fido2CredentialNewView , LoginView ,
674+ Fido2CredentialFullView , Fido2CredentialNewView , LoginView ,
691675 } ;
692676 use passkey:: authenticator:: UiHint ;
693677
@@ -781,23 +765,22 @@ mod tests {
781765 0x84 , 0x05 , 0x71 ,
782766 ] ;
783767
784- fn create_test_cipher ( ctx : & mut KeyStoreContext < KeySlotIds > ) -> CipherView {
785- let key = SymmetricKeySlotId :: User ;
768+ fn create_test_cipher ( ) -> CipherView {
786769 let key_value = B64Url :: from ( TEST_FIDO_P256_KEY ) . to_string ( ) ;
787770
788- let fido2_credential = Fido2Credential {
789- credential_id : TEST_FIDO_CREDENTIAL_ID . encrypt ( ctx , key ) . unwrap ( ) ,
790- key_type : "public-key" . to_string ( ) . encrypt ( ctx , key ) . unwrap ( ) ,
791- key_algorithm : "ECDSA" . to_string ( ) . encrypt ( ctx , key ) . unwrap ( ) ,
792- key_curve : "P-256" . to_string ( ) . encrypt ( ctx , key ) . unwrap ( ) ,
793- key_value : key_value . encrypt ( ctx , key ) . unwrap ( ) ,
794- rp_id : TEST_FIDO_RP_ID . encrypt ( ctx , key ) . unwrap ( ) ,
795- user_handle : Some ( TEST_FIDO_USER_HANDLE . encrypt ( ctx , key ) . unwrap ( ) ) ,
771+ let fido2_credential = Fido2CredentialFullView {
772+ credential_id : TEST_FIDO_CREDENTIAL_ID . to_string ( ) ,
773+ key_type : "public-key" . to_string ( ) ,
774+ key_algorithm : "ECDSA" . to_string ( ) ,
775+ key_curve : "P-256" . to_string ( ) ,
776+ key_value,
777+ rp_id : TEST_FIDO_RP_ID . to_string ( ) ,
778+ user_handle : Some ( TEST_FIDO_USER_HANDLE . to_string ( ) ) ,
796779 user_name : None ,
797- counter : "0" . to_string ( ) . encrypt ( ctx , key ) . unwrap ( ) ,
780+ counter : "0" . to_string ( ) ,
798781 rp_name : None ,
799782 user_display_name : None ,
800- discoverable : "true" . to_string ( ) . encrypt ( ctx , key ) . unwrap ( ) ,
783+ discoverable : "true" . to_string ( ) ,
801784 creation_date : "2024-06-07T14:12:36.150Z" . parse ( ) . unwrap ( ) ,
802785 } ;
803786
@@ -865,10 +848,7 @@ mod tests {
865848 . set_symmetric_key ( SymmetricKeySlotId :: User , user_key)
866849 . unwrap ( ) ;
867850
868- let cipher = {
869- let mut ctx = client. internal . get_key_store ( ) . context ( ) ;
870- create_test_cipher ( & mut ctx)
871- } ;
851+ let cipher = create_test_cipher ( ) ;
872852
873853 let user_interface = MockUserInterface ;
874854 let credential_store = MockCredentialStore { cipher } ;
0 commit comments