11// Copyright 2020 Contributors to the Parsec project.
22// SPDX-License-Identifier: Apache-2.0
3- use super :: {
4- utils:: { self , PasswordContext } ,
5- Provider ,
6- } ;
3+ use super :: { utils, Provider } ;
74use crate :: authenticators:: ApplicationName ;
85use crate :: key_info_managers:: KeyTriple ;
96use parsec_interface:: operations:: { psa_asymmetric_decrypt, psa_asymmetric_encrypt} ;
@@ -19,21 +16,22 @@ impl Provider {
1916 ) -> Result < psa_asymmetric_encrypt:: Result > {
2017 let key_triple = KeyTriple :: new ( app_name, ProviderId :: Tpm , op. key_name . clone ( ) ) ;
2118
19+ let password_context = self . get_key_ctx ( & key_triple) ?;
20+ let key_attributes = self . key_info_store . get_key_attributes ( & key_triple) ?;
21+
2222 let mut esapi_context = self
2323 . esapi_context
2424 . lock ( )
2525 . expect ( "ESAPI Context lock poisoned" ) ;
2626
27- let password_context: PasswordContext = self . key_info_store . get_key_id ( & key_triple) ?;
28- let key_attributes = self . key_info_store . get_key_attributes ( & key_triple) ?;
29-
3027 op. validate ( key_attributes) ?;
3128
3229 match esapi_context. rsa_encrypt (
33- password_context. context ,
30+ password_context. key_material ( ) . clone ( ) ,
31+ utils:: parsec_to_tpm_params ( key_attributes) ?,
3432 Some (
3533 password_context
36- . auth_value
34+ . auth_value ( )
3735 . try_into ( )
3836 . map_err ( utils:: to_response_status) ?,
3937 ) ,
@@ -42,7 +40,6 @@ impl Provider {
4240 . clone ( )
4341 . try_into ( )
4442 . map_err ( utils:: to_response_status) ?,
45- utils:: convert_asym_scheme_to_tpm ( op. alg . into ( ) ) ?,
4643 match op. salt {
4744 Some ( salt) => Some (
4845 salt. deref ( )
@@ -71,21 +68,22 @@ impl Provider {
7168 ) -> Result < psa_asymmetric_decrypt:: Result > {
7269 let key_triple = KeyTriple :: new ( app_name, ProviderId :: Tpm , op. key_name . clone ( ) ) ;
7370
71+ let password_context = self . get_key_ctx ( & key_triple) ?;
72+ let key_attributes = self . key_info_store . get_key_attributes ( & key_triple) ?;
73+
7474 let mut esapi_context = self
7575 . esapi_context
7676 . lock ( )
7777 . expect ( "ESAPI Context lock poisoned" ) ;
7878
79- let password_context: PasswordContext = self . key_info_store . get_key_id ( & key_triple) ?;
80- let key_attributes = self . key_info_store . get_key_attributes ( & key_triple) ?;
81-
8279 op. validate ( key_attributes) ?;
8380
8481 match esapi_context. rsa_decrypt (
85- password_context. context ,
82+ password_context. key_material ( ) . clone ( ) ,
83+ utils:: parsec_to_tpm_params ( key_attributes) ?,
8684 Some (
8785 password_context
88- . auth_value
86+ . auth_value ( )
8987 . try_into ( )
9088 . map_err ( utils:: to_response_status) ?,
9189 ) ,
@@ -94,7 +92,6 @@ impl Provider {
9492 . clone ( )
9593 . try_into ( )
9694 . map_err ( utils:: to_response_status) ?,
97- utils:: convert_asym_scheme_to_tpm ( op. alg . into ( ) ) ?,
9895 match op. salt {
9996 Some ( salt) => Some (
10097 salt. deref ( )
0 commit comments