1 /* 2 * Copyright (c) 2024, Arm Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #include "crypto_partition.h" 8 crypto_partition_get_namespace(uint32_t client_id)9key_id_namespace_t crypto_partition_get_namespace(uint32_t client_id) 10 { 11 /* 12 * Current just use the client_id as the namespace so keys are strictly 13 * partitioned by client id. 14 */ 15 return (key_id_namespace_t)client_id; 16 } 17 crypto_partition_get_namespaced_key_id(uint32_t client_id,psa_key_id_t key_id)18namespaced_key_id_t crypto_partition_get_namespaced_key_id(uint32_t client_id, psa_key_id_t key_id) 19 { 20 namespaced_key_id_t ns_id = NAMESPACED_KEY_ID_INIT; 21 22 namespaced_key_id_init(&ns_id, crypto_partition_get_namespace(client_id), key_id); 23 24 return ns_id; 25 } 26 crypto_partition_bind_to_owner(psa_key_attributes_t * attributes,uint32_t client_id)27void crypto_partition_bind_to_owner(psa_key_attributes_t *attributes, uint32_t client_id) 28 { 29 key_id_namespace_t ns = crypto_partition_get_namespace(client_id); 30 31 namespaced_key_id_set_namespace(attributes, ns); 32 } 33