|
Zephyr Project API 4.4.99
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 |
| @driver_ops{Crypto} More... | |
Macros | |
Crypto capability flags | |
Capability flags returned by crypto_query_hwcaps() and selected in cipher_ctx::flags or hash_ctx::flags during session setup. Not all drivers support all flags. More flags to be added as necessary. | |
| #define | CAP_OPAQUE_KEY_HNDL BIT(0) |
| Key material is referenced through an opaque driver-specific handle. | |
| #define | CAP_RAW_KEY BIT(1) |
| Key material is supplied as raw key bytes. | |
| #define | CAP_KEY_LOADING_API BIT(2) |
| TBD. | |
| #define | CAP_INPLACE_OPS BIT(3) |
| In-place operations are supported. | |
| #define | CAP_SEPARATE_IO_BUFS BIT(4) |
| Separate input and output buffers are supported. | |
| #define | CAP_SYNC_OPS BIT(5) |
| Synchronous operations are supported. | |
| #define | CAP_ASYNC_OPS BIT(6) |
| Asynchronous operations with completion notifications are supported. | |
| #define | CAP_AUTONONCE BIT(7) |
| Automatic nonce generation is supported. | |
| #define | CAP_NO_IV_PREFIX BIT(8) |
| Cipher output does not include a prefixed IV. | |
Typedefs | |
| typedef int(* | crypto_api_query_hw_caps) (const struct device *dev) |
| @def_driverbackendgroup{Crypto,crypto} | |
| typedef int(* | crypto_api_cipher_begin_session) (const struct device *dev, struct cipher_ctx *ctx, enum cipher_algo algo, enum cipher_mode mode, enum cipher_op op_type) |
| Setup a crypto cipher session. | |
| typedef int(* | crypto_api_cipher_free_session) (const struct device *dev, struct cipher_ctx *ctx) |
| Cleanup a crypto cipher session. | |
| typedef int(* | crypto_api_cipher_async_callback_set) (const struct device *dev, cipher_completion_cb cb) |
| Register an asynchronous crypto cipher callback. | |
| typedef int(* | crypto_api_hash_begin_session) (const struct device *dev, struct hash_ctx *ctx, enum hash_algo algo) |
| Setup a crypto hash session. | |
| typedef int(* | crypto_api_hash_free_session) (const struct device *dev, struct hash_ctx *ctx) |
| Cleanup a crypto hash session. | |
| typedef int(* | crypto_api_hash_async_callback_set) (const struct device *dev, hash_completion_cb cb) |
| Register an asynchronous crypto hash callback. | |
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.