nRF Connect SDK API 3.3.99
Loading...
Searching...
No Matches
lib_kmu.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2023 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5 */
6
7#ifndef __LIB_KMU_H
8#define __LIB_KMU_H
9
20#include <stdint.h>
21#include <stdbool.h>
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
31#define LIB_KMU_SUCCESS 0x0
36#define LIB_KMU_ERROR 0x1
41#define LIB_KMU_NULL_PNT 0x2
46#define LIB_KMU_REVOKED 0x3
47
56
60struct kmu_src {
62 uint32_t value[4];
64 uint32_t rpolicy;
68 uint32_t dest;
71 uint32_t metadata;
72};
73
83int lib_kmu_provision_slot(int slot_id, struct kmu_src *kmu_src);
84
92int lib_kmu_push_slot(int slot_id);
93
104int lib_kmu_block_slot_range(int slot_id, unsigned int slot_count);
105
113int lib_kmu_revoke_slot(int slot_id);
114
124int lib_kmu_read_metadata(int slot_id, uint32_t *metadata);
125
133bool lib_kmu_is_slot_empty(int slot_id);
134
137#ifdef __cplusplus
138}
139#endif
140
141#endif /* LIB_KMU */
bool lib_kmu_is_slot_empty(int slot_id)
Check if a KMU slot is empty.
int lib_kmu_provision_slot(int slot_id, struct kmu_src *kmu_src)
Provision a KMU slot with data.
int lib_kmu_push_slot(int slot_id)
Push the KMU slot to its destination address.
int lib_kmu_block_slot_range(int slot_id, unsigned int slot_count)
Block one or more consecutive KMU slots.
lib_kmu_rev_policy
KMU revocation policies.
Definition lib_kmu.h:50
@ LIB_KMU_REV_POLICY_RESERVED
Definition lib_kmu.h:51
@ LIB_KMU_REV_POLICY_REVOKED
Definition lib_kmu.h:54
@ LIB_KMU_REV_POLICY_LOCKED
Definition lib_kmu.h:53
@ LIB_KMU_REV_POLICY_ROTATING
Definition lib_kmu.h:52
int lib_kmu_revoke_slot(int slot_id)
Revoke the KMU slot.
int lib_kmu_read_metadata(int slot_id, uint32_t *metadata)
Read the metadata of a KMU slot.
uint32_t metadata
Definition lib_kmu.h:71
uint32_t dest
Definition lib_kmu.h:68
uint32_t value[4]
Definition lib_kmu.h:62
uint32_t rpolicy
Definition lib_kmu.h:64
Source struct for KMU slot provisioning.
Definition lib_kmu.h:60