Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches

Crypto APIs. More...

Topics

 Cipher
 Crypto Cipher APIs.
 Crypto Driver Backend API
 Hash
 Crypto Hash APIs.
 Random Function APIs
 Random Function APIs.

Files

file  crypto.h
 Crypto Cipher APIs.

Functions

static int crypto_query_hwcaps (const struct device *dev)
 Query the crypto hardware capabilities.

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.

Detailed Description

Crypto APIs.

Since
1.7
Version
1.0.0

Macro Definition Documentation

◆ CAP_ASYNC_OPS

#define CAP_ASYNC_OPS   BIT(6)

#include <zephyr/crypto/crypto.h>

Asynchronous operations with completion notifications are supported.

◆ CAP_AUTONONCE

#define CAP_AUTONONCE   BIT(7)

#include <zephyr/crypto/crypto.h>

Automatic nonce generation is supported.

◆ CAP_INPLACE_OPS

#define CAP_INPLACE_OPS   BIT(3)

#include <zephyr/crypto/crypto.h>

In-place operations are supported.

◆ CAP_KEY_LOADING_API

#define CAP_KEY_LOADING_API   BIT(2)

#include <zephyr/crypto/crypto.h>

TBD.

◆ CAP_NO_IV_PREFIX

#define CAP_NO_IV_PREFIX   BIT(8)

#include <zephyr/crypto/crypto.h>

Cipher output does not include a prefixed IV.

◆ CAP_OPAQUE_KEY_HNDL

#define CAP_OPAQUE_KEY_HNDL   BIT(0)

#include <zephyr/crypto/crypto.h>

Key material is referenced through an opaque driver-specific handle.

◆ CAP_RAW_KEY

#define CAP_RAW_KEY   BIT(1)

#include <zephyr/crypto/crypto.h>

Key material is supplied as raw key bytes.

◆ CAP_SEPARATE_IO_BUFS

#define CAP_SEPARATE_IO_BUFS   BIT(4)

#include <zephyr/crypto/crypto.h>

Separate input and output buffers are supported.

◆ CAP_SYNC_OPS

#define CAP_SYNC_OPS   BIT(5)

#include <zephyr/crypto/crypto.h>

Synchronous operations are supported.

Function Documentation

◆ crypto_query_hwcaps()

int crypto_query_hwcaps ( const struct device * dev)
inlinestatic

#include <zephyr/crypto/crypto.h>

Query the crypto hardware capabilities.

This API is used by the app to query the capabilities supported by the crypto device. Based on this the app can specify a subset of the supported options to be honored for a session during cipher_begin_session().

Parameters
devPointer to the device structure for the driver instance.
Returns
bitmask of supported options.