1 /* 2 * Copyright (c) 2021-2023, Arm Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #include "psa_crypto_client.h" 8 9 #include <service/crypto/include/psa/crypto.h> 10 #include <stddef.h> 11 12 struct psa_crypto_client psa_crypto_client_instance = { 13 14 .base.session = NULL, 15 16 /* To conform to PSA API, psa_crypto_init needs to be called. 17 * This state variable is used enforces this. 18 */ 19 .init_status = PSA_ERROR_BAD_STATE 20 }; 21 psa_crypto_init(void)22psa_status_t psa_crypto_init(void) 23 { 24 /* Must be called after psa_crypto_client_init */ 25 if (psa_crypto_client_instance.base.session) 26 psa_crypto_client_instance.init_status = PSA_SUCCESS; 27 28 return psa_crypto_client_instance.init_status; 29 } 30 psa_crypto_client_init(struct rpc_caller_session * session)31psa_status_t psa_crypto_client_init(struct rpc_caller_session *session) 32 { 33 return service_client_init(&psa_crypto_client_instance.base, session); 34 } 35 psa_crypto_client_deinit(void)36void psa_crypto_client_deinit(void) 37 { 38 service_client_deinit(&psa_crypto_client_instance.base); 39 psa_crypto_client_instance.init_status = PSA_ERROR_BAD_STATE; 40 } 41 psa_crypto_client_rpc_status(void)42int psa_crypto_client_rpc_status(void) 43 { 44 return psa_crypto_client_instance.base.rpc_status; 45 } 46