nRF Connect SDK API 3.3.99
Loading...
Searching...
No Matches
cracen_psa_builtin_key_policy.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2025 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5 */
6
20#ifndef CRACEN_PSA_BUILTIN_KEY_POLICY_H
21#define CRACEN_PSA_BUILTIN_KEY_POLICY_H
22
23#include <psa/crypto.h>
24#include <psa/crypto_values.h>
25#include <cracen_psa_key_ids.h>
26
27#if defined(__NRF_TFM__)
28
30typedef struct {
31 mbedtls_key_owner_id_t owner;
32 psa_drv_slot_number_t key_slot;
33 psa_key_usage_t usage;
34} cracen_builtin_ikg_key_policy_t;
35
37typedef enum {
38 KMU_ENTRY_SLOT_SINGLE,
39 KMU_ENTRY_SLOT_RANGE,
40} cracen_kmu_entry_type_t;
41
47typedef struct {
48 mbedtls_key_owner_id_t owner;
49 psa_drv_slot_number_t key_slot_start;
50 psa_drv_slot_number_t key_slot_end;
51 cracen_kmu_entry_type_t kmu_entry_type;
52} cracen_builtin_kmu_key_policy_t;
53
60psa_key_usage_t cracen_ikg_key_user_get_usage(const psa_key_attributes_t *attributes);
61
68bool cracen_kmu_key_user_allowed(const psa_key_attributes_t *attributes);
69
70#else /* __NRF_TFM__ */
71
72static inline psa_key_usage_t cracen_ikg_key_user_get_usage(const psa_key_attributes_t *attributes)
73{
74 psa_key_id_t key_id = MBEDTLS_SVC_KEY_ID_GET_KEY_ID(psa_get_key_id(attributes));
75
76 return (key_id == CRACEN_BUILTIN_IDENTITY_KEY_ID)
77 ? (PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_SIGN_HASH |
78 PSA_KEY_USAGE_VERIFY_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH)
79 : (PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_VERIFY_DERIVATION);
80}
81
82static inline bool cracen_kmu_key_user_allowed(const psa_key_attributes_t *attributes)
83{
84 (void)attributes;
85 return true;
86}
87
88#endif /* __NRF_TFM__ */
89
92#endif /* CRACEN_PSA_BUILTIN_KEY_POLICY_H */
static bool cracen_kmu_key_user_allowed(const psa_key_attributes_t *attributes)
Definition cracen_psa_builtin_key_policy.h:82
static psa_key_usage_t cracen_ikg_key_user_get_usage(const psa_key_attributes_t *attributes)
Definition cracen_psa_builtin_key_policy.h:72
#define CRACEN_BUILTIN_IDENTITY_KEY_ID
Built-in identity key ID.
Definition cracen_psa_key_ids.h:24
psa_drv_slot_number_t
Definition platform_builtin_key_loader_ids.h:17