nRF Connect SDK API 3.4.99
Loading...
Searching...
No Matches
wifi_kmu.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2026 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5 */
6
7#ifndef WIFI_KMU_H__
8#define WIFI_KMU_H__
9
10#include <stdint.h>
11#include <stddef.h>
12
21#ifdef __cplusplus
22extern "C" {
23#endif
24
39int wifi_kmu_write_key(uint32_t slot_id, uint32_t target_addr, const uint8_t *key_buffer,
40 size_t key_size);
41
52
53/* Utility functions to prepare keys before passing to KMU */
54
56static const uint32_t wifi_kmu_key_addr_invalid = 0xFFFFFFFF;
57
59static const uint32_t wifi_kmu_key_length_invalid = 0xFFFFFFFE;
60
78
91uint32_t wifi_kmu_get_key_start_addr(wifi_kmu_key_type_t type, uint32_t db_id, uint32_t key_index);
92
103
114
129int wifi_kmu_key_reverse_byte_order(void *restrict dst, const void *restrict src,
130 uint32_t key_length_bytes);
131
144int wifi_kmu_key_reverse_byte_order_in_place(void *buf, uint32_t key_length_bytes);
145
156uint32_t wifi_kmu_get_next_slot(uint32_t key_length_bytes);
157
158#ifdef __cplusplus
159}
160#endif
161
166#endif /* WIFI_KMU_H__ */
static const uint32_t wifi_kmu_key_addr_invalid
Value to indicate an invalid key address.
Definition wifi_kmu.h:56
int wifi_kmu_key_reverse_byte_order(void *restrict dst, const void *restrict src, uint32_t key_length_bytes)
Reverse key byte order before passing into KMU.
static const uint32_t wifi_kmu_key_length_invalid
Value to indicate an invalid key length.
Definition wifi_kmu.h:59
uint32_t wifi_kmu_get_next_slot(uint32_t key_length_bytes)
Get next KMU slot to use.
wifi_kmu_key_type_t
Different types of keys used by Wi-Fi.
Definition wifi_kmu.h:64
@ PEER_BCST_MIC
Definition wifi_kmu.h:72
@ VIF_ENC
Definition wifi_kmu.h:74
@ VIF_MIC
Definition wifi_kmu.h:76
@ PEER_BCST_ENC
Definition wifi_kmu.h:70
@ PEER_UCST_MIC
Definition wifi_kmu.h:68
@ PEER_UCST_ENC
Definition wifi_kmu.h:66
int wifi_kmu_erase_keys(void)
Function to erase KMU slots with Wi-Fi keys.
uint32_t wifi_kmu_get_key_start_addr(wifi_kmu_key_type_t type, uint32_t db_id, uint32_t key_index)
Calculate target address of the key.
uint32_t wifi_kmu_get_key_size_in_bytes(wifi_kmu_key_type_t type)
Calculate size of the key in bytes.
uint32_t wifi_kmu_get_key_size_in_bits(wifi_kmu_key_type_t type)
Calculate size of the key in bits.
int wifi_kmu_write_key(uint32_t slot_id, uint32_t target_addr, const uint8_t *key_buffer, size_t key_size)
Function to write Wi-Fi key via KMU.
int wifi_kmu_key_reverse_byte_order_in_place(void *buf, uint32_t key_length_bytes)
Reverse key byte order before passing into KMU.