Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
cipher_structs.h File Reference

Crypto Cipher structure definitions. More...

#include <device.h>
#include <sys/util.h>

Go to the source code of this file.

Data Structures

struct  cipher_ops
 
struct  ccm_params
 
struct  ctr_params
 
struct  gcm_params
 
struct  cipher_ctx
 
struct  cipher_pkt
 
struct  cipher_aead_pkt
 

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)
 
#define CAP_SEPARATE_IO_BUFS   BIT(4)
 
#define CAP_SYNC_OPS   BIT(5)
 
#define CAP_ASYNC_OPS   BIT(6)
 
#define CAP_AUTONONCE   BIT(7)
 
#define CAP_NO_IV_PREFIX   BIT(8)
 

Typedefs

typedef int(* block_op_t) (struct cipher_ctx *ctx, struct cipher_pkt *pkt)
 
typedef int(* cbc_op_t) (struct cipher_ctx *ctx, struct cipher_pkt *pkt, uint8_t *iv)
 
typedef int(* ctr_op_t) (struct cipher_ctx *ctx, struct cipher_pkt *pkt, uint8_t *ctr)
 
typedef int(* ccm_op_t) (struct cipher_ctx *ctx, struct cipher_aead_pkt *pkt, uint8_t *nonce)
 
typedef int(* gcm_op_t) (struct cipher_ctx *ctx, struct cipher_aead_pkt *pkt, uint8_t *nonce)
 
typedef void(* crypto_completion_cb) (struct cipher_pkt *completed, int status)
 

Enumerations

enum  cipher_algo { CRYPTO_CIPHER_ALGO_AES = 1 }
 
enum  cipher_op { CRYPTO_CIPHER_OP_DECRYPT = 0 , CRYPTO_CIPHER_OP_ENCRYPT = 1 }
 
enum  cipher_mode {
  CRYPTO_CIPHER_MODE_ECB = 1 , CRYPTO_CIPHER_MODE_CBC = 2 , CRYPTO_CIPHER_MODE_CTR = 3 , CRYPTO_CIPHER_MODE_CCM = 4 ,
  CRYPTO_CIPHER_MODE_GCM = 5
}
 

Detailed Description

Crypto Cipher structure definitions.

This file contains the Crypto Abstraction layer structures.

[Experimental] Users should note that the Structures can change as a part of ongoing development.