Zephyr Project API 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
crypto.h
Go to the documentation of this file.
1
4
5/*
6 * Copyright (c) 2017-2020 Nordic Semiconductor ASA
7 * Copyright (c) 2015-2017 Intel Corporation
8 *
9 * SPDX-License-Identifier: Apache-2.0
10 */
11#ifndef ZEPHYR_INCLUDE_BLUETOOTH_CRYPTO_H_
12#define ZEPHYR_INCLUDE_BLUETOOTH_CRYPTO_H_
13
22
23#include <stdbool.h>
24#include <stddef.h>
25#include <stdint.h>
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
42int bt_rand(void *buf, size_t len);
43
56int bt_encrypt_le(const uint8_t key[16], const uint8_t plaintext[16],
57 uint8_t enc_data[16]);
58
71int bt_encrypt_be(const uint8_t key[16], const uint8_t plaintext[16],
72 uint8_t enc_data[16]);
73
74
95int bt_ccm_decrypt(const uint8_t key[16], uint8_t nonce[13], const uint8_t *enc_data,
96 size_t len, const uint8_t *aad, size_t aad_len,
97 uint8_t *plaintext, size_t mic_size);
98
99
119int bt_ccm_encrypt(const uint8_t key[16], uint8_t nonce[13],
120 const uint8_t *plaintext, size_t len, const uint8_t *aad,
121 size_t aad_len, uint8_t *enc_data, size_t mic_size);
122
123#ifdef __cplusplus
124}
125#endif
129
130#endif /* ZEPHYR_INCLUDE_BLUETOOTH_CRYPTO_H_ */
int bt_rand(void *buf, size_t len)
Generate random data.
int bt_ccm_decrypt(const uint8_t key[16], uint8_t nonce[13], const uint8_t *enc_data, size_t len, const uint8_t *aad, size_t aad_len, uint8_t *plaintext, size_t mic_size)
Decrypt big-endian data with AES-CCM.
int bt_encrypt_le(const uint8_t key[16], const uint8_t plaintext[16], uint8_t enc_data[16])
AES encrypt little-endian data.
int bt_ccm_encrypt(const uint8_t key[16], uint8_t nonce[13], const uint8_t *plaintext, size_t len, const uint8_t *aad, size_t aad_len, uint8_t *enc_data, size_t mic_size)
Encrypt big-endian data with AES-CCM.
int bt_encrypt_be(const uint8_t key[16], const uint8_t plaintext[16], uint8_t enc_data[16])
AES encrypt big-endian data.
__UINT8_TYPE__ uint8_t
Definition stdint.h:88