Zephyr Project API 3.7.0
A Scalable Open Source RTOS
|
Crypto Cipher APIs. More...
#include <zephyr/device.h>
#include <errno.h>
#include <zephyr/sys/util.h>
#include <zephyr/sys/__assert.h>
#include <zephyr/crypto/hash.h>
#include "cipher.h"
Go to the source code of this file.
Data Structures | |
struct | crypto_driver_api |
Crypto driver API definition. More... | |
Macros | |
#define | CAP_OPAQUE_KEY_HNDL BIT(0) |
#define | CAP_RAW_KEY BIT(1) |
#define | CAP_KEY_LOADING_API BIT(2) |
#define | CAP_INPLACE_OPS BIT(3) |
Whether the output is placed in separate buffer or not. | |
#define | CAP_SEPARATE_IO_BUFS BIT(4) |
#define | CAP_SYNC_OPS BIT(5) |
These denotes if the output (completion of a cipher_xxx_op) is conveyed by the op function returning, or it is conveyed by an async notification. | |
#define | CAP_ASYNC_OPS BIT(6) |
#define | CAP_AUTONONCE BIT(7) |
Whether the hardware/driver supports autononce feature. | |
#define | CAP_NO_IV_PREFIX BIT(8) |
Don't prefix IV to cipher blocks. | |
Functions | |
static int | crypto_query_hwcaps (const struct device *dev) |
Query the crypto hardware capabilities. | |
static int | cipher_begin_session (const struct device *dev, struct cipher_ctx *ctx, enum cipher_algo algo, enum cipher_mode mode, enum cipher_op optype) |
Setup a crypto session. | |
static int | cipher_free_session (const struct device *dev, struct cipher_ctx *ctx) |
Cleanup a crypto session. | |
static int | cipher_callback_set (const struct device *dev, cipher_completion_cb cb) |
Registers an async crypto op completion callback with the driver. | |
static int | cipher_block_op (struct cipher_ctx *ctx, struct cipher_pkt *pkt) |
Perform single-block crypto operation (ECB cipher mode). | |
static int | cipher_cbc_op (struct cipher_ctx *ctx, struct cipher_pkt *pkt, uint8_t *iv) |
Perform Cipher Block Chaining (CBC) crypto operation. | |
static int | cipher_ctr_op (struct cipher_ctx *ctx, struct cipher_pkt *pkt, uint8_t *iv) |
Perform Counter (CTR) mode crypto operation. | |
static int | cipher_ccm_op (struct cipher_ctx *ctx, struct cipher_aead_pkt *pkt, uint8_t *nonce) |
Perform Counter with CBC-MAC (CCM) mode crypto operation. | |
static int | cipher_gcm_op (struct cipher_ctx *ctx, struct cipher_aead_pkt *pkt, uint8_t *nonce) |
Perform Galois/Counter Mode (GCM) crypto operation. | |
static int | hash_begin_session (const struct device *dev, struct hash_ctx *ctx, enum hash_algo algo) |
Setup a hash session. | |
static int | hash_free_session (const struct device *dev, struct hash_ctx *ctx) |
Cleanup a hash session. | |
static int | hash_callback_set (const struct device *dev, hash_completion_cb cb) |
Registers an async hash completion callback with the driver. | |
static int | hash_compute (struct hash_ctx *ctx, struct hash_pkt *pkt) |
Perform a cryptographic hash function. | |
static int | hash_update (struct hash_ctx *ctx, struct hash_pkt *pkt) |
Perform a cryptographic multipart hash operation. | |
Crypto Cipher APIs.
This file contains the Crypto Abstraction layer APIs.
[Experimental] Users should note that the APIs can change as a part of ongoing development.