nrfxlib API 3.3.99
Loading...
Searching...
No Matches
nrf_cc3xx_platform_derived_key.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2021 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5 */
13#include <stdint.h>
14
15#ifndef NRF_CC3XX_PLATFORM_DERIVED_KEY__
16#define NRF_CC3XX_PLATFORM_DERIVED_KEY__
17
19typedef enum {
23 ALG_CHACHAPOLY_256_BIT = 3 /* Intentionally the same as CHACHA20 */
25
27typedef struct{
28 uint32_t slot_id;
29 size_t key_size;
30 const uint8_t * label;
31 size_t label_size;
32 const uint8_t * context;
33 size_t context_size;
35
37typedef struct{
38 const uint8_t * nonce;
39 size_t nonce_size;
40 const uint8_t * aad;
41 size_t aad_size;
42 uint8_t * tag;
43 size_t tag_size;
46
54
62
63
75 uint32_t slot_id,
76 unsigned int key_size,
77 uint8_t const * label,
78 size_t label_size);
79
80
90
104 const uint8_t * nonce,
105 size_t nonce_size,
106 const uint8_t * aad,
107 size_t aad_size,
108 uint8_t * tag,
109 size_t tag_size);
110
111
124 uint8_t * output,
125 size_t input_size,
126 uint8_t const * input);
127
128
141 uint8_t * output,
142 size_t input_size,
143 uint8_t const * input);
144
145#endif /* NRF_CC3XX_PLATFORM_DERIVED_KEY__ */
int nrf_cc3xx_platform_derived_key_encrypt(nrf_cc3xx_platform_derived_key_ctx_t *ctx, uint8_t *output, size_t input_size, uint8_t const *input)
Function to encrypt data using a derived key.
int nrf_cc3xx_platform_derived_key_set_auth_info(nrf_cc3xx_platform_derived_key_ctx_t *ctx, const uint8_t *nonce, size_t nonce_size, const uint8_t *aad, size_t aad_size, uint8_t *tag, size_t tag_size)
Function to set the authenticated encryption information.
nrf_cc3xx_platform_cipher_info_t
Enum with the encryption/decryption algorithms supported with derived keys.
Definition nrf_cc3xx_platform_derived_key.h:19
@ ALG_AES_256_BIT
Definition nrf_cc3xx_platform_derived_key.h:21
@ ALG_CHACHA20_256_BIT
Definition nrf_cc3xx_platform_derived_key.h:22
@ ALG_AES_128_BIT
Definition nrf_cc3xx_platform_derived_key.h:20
@ ALG_CHACHAPOLY_256_BIT
Definition nrf_cc3xx_platform_derived_key.h:23
int nrf_cc3xx_platform_derived_key_set_info(nrf_cc3xx_platform_derived_key_ctx_t *ctx, uint32_t slot_id, unsigned int key_size, uint8_t const *label, size_t label_size)
Function to set the key derivation information.
int nrf_cc3xx_platform_derived_key_decrypt(nrf_cc3xx_platform_derived_key_ctx_t *ctx, uint8_t *output, size_t input_size, uint8_t const *input)
Function to decrypt data using a derived key.
int nrf_cc3xx_platform_derived_key_set_cipher(nrf_cc3xx_platform_derived_key_ctx_t *ctx, nrf_cc3xx_platform_cipher_info_t cipher_info)
Function to set the derived cipher.
int nrf_cc3xx_platform_derived_key_init(nrf_cc3xx_platform_derived_key_ctx_t *ctx)
Function to initialize the derived key context.
size_t aad_size
Definition nrf_cc3xx_platform_derived_key.h:41
const uint8_t * nonce
Definition nrf_cc3xx_platform_derived_key.h:38
size_t tag_size
Definition nrf_cc3xx_platform_derived_key.h:43
uint8_t * tag
Definition nrf_cc3xx_platform_derived_key.h:42
size_t nonce_size
Definition nrf_cc3xx_platform_derived_key.h:39
const uint8_t * aad
Definition nrf_cc3xx_platform_derived_key.h:40
Authenticated encryption/decryption info.
Definition nrf_cc3xx_platform_derived_key.h:37
const uint8_t * label
Definition nrf_cc3xx_platform_derived_key.h:30
size_t key_size
Definition nrf_cc3xx_platform_derived_key.h:29
const uint8_t * context
Definition nrf_cc3xx_platform_derived_key.h:32
size_t label_size
Definition nrf_cc3xx_platform_derived_key.h:31
size_t context_size
Definition nrf_cc3xx_platform_derived_key.h:33
uint32_t slot_id
Definition nrf_cc3xx_platform_derived_key.h:28
Structure containing information for doing the key derivation using AES CMAC.
Definition nrf_cc3xx_platform_derived_key.h:27
nrf_cc3xx_platform_auth_info_t auth_info
Definition nrf_cc3xx_platform_derived_key.h:51
nrf_cc3xx_platform_cipher_info_t cipher_info
Definition nrf_cc3xx_platform_derived_key.h:50
nrf_cc3xx_platform_derivation_info_t deriv_info
Definition nrf_cc3xx_platform_derived_key.h:49
size_t state
Definition nrf_cc3xx_platform_derived_key.h:52
Derived key context.
Definition nrf_cc3xx_platform_derived_key.h:48