11use bitwarden_api_api:: models:: {
22 BaseSecretResponseModel , BaseSecretResponseModelListResponseModel , SecretResponseModel ,
33} ;
4- use bitwarden_core:: { client:: encryption_settings:: EncryptionSettings , require} ;
5- use bitwarden_crypto:: { EncString , KeyDecryptable } ;
4+ use bitwarden_core:: {
5+ key_management:: { KeyIds , SymmetricKeyId } ,
6+ require,
7+ } ;
8+ use bitwarden_crypto:: { Decryptable , EncString , KeyStoreContext } ;
69use chrono:: { DateTime , Utc } ;
710use schemars:: JsonSchema ;
811use serde:: { Deserialize , Serialize } ;
@@ -28,7 +31,7 @@ pub struct SecretResponse {
2831impl SecretResponse {
2932 pub ( crate ) fn process_response (
3033 response : SecretResponseModel ,
31- enc : & EncryptionSettings ,
34+ ctx : & mut KeyStoreContext < KeyIds > ,
3235 ) -> Result < SecretResponse , SecretsManagerError > {
3336 let base = BaseSecretResponseModel {
3437 object : response. object ,
@@ -41,24 +44,26 @@ impl SecretResponse {
4144 revision_date : response. revision_date ,
4245 projects : response. projects ,
4346 } ;
44- Self :: process_base_response ( base, enc )
47+ Self :: process_base_response ( base, ctx )
4548 }
4649 pub ( crate ) fn process_base_response (
4750 response : BaseSecretResponseModel ,
48- enc : & EncryptionSettings ,
51+ ctx : & mut KeyStoreContext < KeyIds > ,
4952 ) -> Result < SecretResponse , SecretsManagerError > {
50- let org_id = response. organization_id ;
51- let enc_key = enc . get_key ( & org_id ) ? ;
53+ let organization_id = require ! ( response. organization_id) ;
54+ let enc_key = SymmetricKeyId :: Organization ( organization_id ) ;
5255
5356 let key = require ! ( response. key)
5457 . parse :: < EncString > ( ) ?
55- . decrypt_with_key ( enc_key) ?;
58+ . decrypt ( ctx, enc_key) ?;
59+
5660 let value = require ! ( response. value)
5761 . parse :: < EncString > ( ) ?
58- . decrypt_with_key ( enc_key) ?;
62+ . decrypt ( ctx, enc_key) ?;
63+
5964 let note = require ! ( response. note)
6065 . parse :: < EncString > ( ) ?
61- . decrypt_with_key ( enc_key) ?;
66+ . decrypt ( ctx , enc_key) ?;
6267
6368 let project = response
6469 . projects
@@ -67,7 +72,7 @@ impl SecretResponse {
6772
6873 Ok ( SecretResponse {
6974 id : require ! ( response. id) ,
70- organization_id : require ! ( org_id ) ,
75+ organization_id,
7176 project_id : project,
7277 key,
7378 value,
@@ -88,14 +93,14 @@ pub struct SecretsResponse {
8893impl SecretsResponse {
8994 pub ( crate ) fn process_response (
9095 response : BaseSecretResponseModelListResponseModel ,
91- enc : & EncryptionSettings ,
96+ ctx : & mut KeyStoreContext < KeyIds > ,
9297 ) -> Result < SecretsResponse , SecretsManagerError > {
9398 Ok ( SecretsResponse {
9499 data : response
95100 . data
96101 . unwrap_or_default ( )
97102 . into_iter ( )
98- . map ( |r| SecretResponse :: process_base_response ( r, enc ) )
103+ . map ( |r| SecretResponse :: process_base_response ( r, ctx ) )
99104 . collect :: < Result < _ , _ > > ( ) ?,
100105 } )
101106 }
0 commit comments