增加所有文件
This commit is contained in:
68
drivers/include/crypto/cacc/ske/ske.h
Normal file
68
drivers/include/crypto/cacc/ske/ske.h
Normal file
@@ -0,0 +1,68 @@
|
||||
/**
|
||||
* @file ske.h
|
||||
* @brief Semidrive CRYPTO ske header file.
|
||||
*
|
||||
* @copyright Copyright (c) 2021 Semidrive Semiconductor.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef SKE_H
|
||||
#define SKE_H
|
||||
#include <ske_basic.h>
|
||||
#include <types.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct ske_dev {
|
||||
paddr_t base;
|
||||
int irq;
|
||||
} ske_dev_t;
|
||||
|
||||
void ske_hp_big_endian_add_uint8(uint8_t *a, uint32_t a_bytes, uint8_t b);
|
||||
|
||||
void ske_hp_little_endian_add_uint32(uint32_t *a, uint32_t a_words, uint32_t b);
|
||||
|
||||
uint8_t ske_hp_get_key_byte_len(SKE_ALG ske_alg);
|
||||
|
||||
uint8_t ske_hp_get_block_byte_len(SKE_ALG ske_alg);
|
||||
|
||||
void ske_hp_set_iv(uint8_t *iv, uint32_t block_bytes);
|
||||
|
||||
void ske_hp_set_key(SKE_ALG alg, uint8_t *key, uint16_t key_bytes,
|
||||
uint16_t key_idx);
|
||||
|
||||
uint32_t ske_hp_init_internal(ske_ctx_t *ctx, SKE_ALG alg, SKE_MODE mode,
|
||||
SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *iv);
|
||||
|
||||
uint32_t ske_hp_init(SKE_ALG alg, SKE_MODE mode, SKE_CRYPTO crypto,
|
||||
uint8_t *key, uint16_t sp_key_idx, uint8_t *iv);
|
||||
|
||||
uint32_t ske_hp_update_blocks(uint8_t *in, uint8_t *out, uint32_t bytes);
|
||||
|
||||
uint32_t ske_hp_final(void);
|
||||
|
||||
uint32_t ske_hp_crypto(SKE_ALG alg, SKE_MODE mode, SKE_CRYPTO crypto,
|
||||
uint8_t *key, uint16_t sp_key_idx, uint8_t *iv,
|
||||
uint8_t *in, uint8_t *out, uint32_t bytes);
|
||||
|
||||
#ifdef SKE_HP_DMA_FUNCTION
|
||||
uint32_t ske_hp_dma_init(SKE_ALG alg, SKE_MODE mode, SKE_CRYPTO crypto,
|
||||
uint8_t *key, uint16_t sp_key_idx, uint8_t *iv);
|
||||
|
||||
uint32_t ske_hp_dma_update_blocks(uint32_t *in, uint32_t *out, uint32_t words);
|
||||
|
||||
uint32_t ske_hp_dma_final(void);
|
||||
|
||||
uint32_t ske_hp_dma_crypto(SKE_ALG alg, SKE_MODE mode, SKE_CRYPTO crypto,
|
||||
uint8_t *key, uint16_t sp_key_idx, uint8_t *iv,
|
||||
uint32_t *in, uint32_t *out, uint32_t words);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
47
drivers/include/crypto/cacc/ske/ske_cbc.h
Normal file
47
drivers/include/crypto/cacc/ske/ske_cbc.h
Normal file
@@ -0,0 +1,47 @@
|
||||
/**
|
||||
* @file ske_cbc.h
|
||||
* @brief Semidrive CRYPTO ske cbc header file.
|
||||
*
|
||||
* @copyright Copyright (c) 2021 Semidrive Semiconductor.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef SKE_CBC_H
|
||||
#define SKE_CBC_H
|
||||
|
||||
#include "ske.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
uint32_t ske_hp_cbc_init(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *iv);
|
||||
|
||||
uint32_t ske_hp_cbc_update_blocks(uint8_t *in, uint8_t *out, uint32_t bytes);
|
||||
|
||||
uint32_t ske_hp_cbc_final(void);
|
||||
|
||||
uint32_t ske_hp_cbc_crypto(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *iv, uint8_t *in,
|
||||
uint8_t *out, uint32_t bytes);
|
||||
|
||||
#ifdef SKE_HP_DMA_FUNCTION
|
||||
uint32_t ske_hp_dma_cbc_init(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *iv);
|
||||
|
||||
uint32_t ske_hp_dma_cbc_update_blocks(uint32_t *in, uint32_t *out,
|
||||
uint32_t words);
|
||||
|
||||
uint32_t ske_hp_dma_cbc_final(void);
|
||||
|
||||
uint32_t ske_hp_dma_cbc_crypto(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *iv, uint32_t *in,
|
||||
uint32_t *out, uint32_t words);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
64
drivers/include/crypto/cacc/ske/ske_cbc_mac.h
Normal file
64
drivers/include/crypto/cacc/ske/ske_cbc_mac.h
Normal file
@@ -0,0 +1,64 @@
|
||||
/**
|
||||
* @file ske_cbc_mac.h
|
||||
* @brief Semidrive CRYPTO ske cbc mac header file.
|
||||
*
|
||||
* @copyright Copyright (c) 2021 Semidrive Semiconductor.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef SKE_CBC_MAC_H
|
||||
#define SKE_CBC_MAC_H
|
||||
|
||||
#include "ske.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
ske_ctx_t ske_cbc_mac_ctx[1];
|
||||
uint8_t is_updated;
|
||||
uint8_t left_bytes;
|
||||
uint8_t block_buf[16];
|
||||
SKE_PADDING padding;
|
||||
} ske_cbc_mac_ctx_t;
|
||||
|
||||
typedef struct {
|
||||
ske_ctx_t ske_cbc_mac_ctx[1];
|
||||
uint32_t tmp_output_block[4];
|
||||
} ske_cbc_mac_dma_ctx_t;
|
||||
|
||||
uint32_t ske_hp_cbc_mac_init(ske_cbc_mac_ctx_t *ctx, SKE_ALG alg,
|
||||
SKE_PADDING padding, uint8_t *key,
|
||||
uint16_t sp_key_idx);
|
||||
|
||||
uint32_t ske_hp_cbc_mac_update(ske_cbc_mac_ctx_t *ctx, uint8_t *msg,
|
||||
uint32_t msg_bytes);
|
||||
|
||||
uint32_t ske_hp_cbc_mac_final(ske_cbc_mac_ctx_t *ctx, uint8_t *mac,
|
||||
uint8_t mac_bytes);
|
||||
|
||||
uint32_t ske_hp_cbc_mac(SKE_ALG alg, SKE_PADDING padding, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *msg, uint32_t msg_bytes,
|
||||
uint8_t *mac, uint8_t mac_bytes);
|
||||
|
||||
#ifdef SKE_HP_DMA_FUNCTION
|
||||
uint32_t ske_hp_dma_cbc_mac_init(ske_cbc_mac_dma_ctx_t *ctx, SKE_ALG alg,
|
||||
uint8_t *key, uint16_t sp_key_idx);
|
||||
|
||||
uint32_t ske_hp_dma_cbc_mac_update_blocks_excluding_last_block(
|
||||
ske_cbc_mac_dma_ctx_t *ctx, uint32_t *msg, uint32_t msg_words);
|
||||
|
||||
uint32_t ske_hp_dma_cbc_mac_update_including_last_block(
|
||||
ske_cbc_mac_dma_ctx_t *ctx, uint32_t *msg, uint32_t msg_bytes,
|
||||
uint32_t *mac);
|
||||
|
||||
uint32_t ske_hp_dma_cbc_mac(SKE_ALG alg, uint8_t *key, uint16_t sp_key_idx,
|
||||
uint32_t *msg, uint32_t msg_bytes, uint32_t *mac);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
46
drivers/include/crypto/cacc/ske/ske_cfb.h
Normal file
46
drivers/include/crypto/cacc/ske/ske_cfb.h
Normal file
@@ -0,0 +1,46 @@
|
||||
/**
|
||||
* @file ske_cfb.h
|
||||
* @brief Semidrive CRYPTO ske cfb header file.
|
||||
*
|
||||
* @copyright Copyright (c) 2021 Semidrive Semiconductor.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef SKE_CFB_H
|
||||
#define SKE_CFB_H
|
||||
#include "ske.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
uint32_t ske_hp_cfb_init(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *iv);
|
||||
|
||||
uint32_t ske_hp_cfb_update_blocks(uint8_t *in, uint8_t *out, uint32_t bytes);
|
||||
|
||||
uint32_t ske_hp_cfb_final(void);
|
||||
|
||||
uint32_t ske_hp_cfb_crypto(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *iv, uint8_t *in,
|
||||
uint8_t *out, uint32_t bytes);
|
||||
|
||||
#ifdef SKE_HP_DMA_FUNCTION
|
||||
uint32_t ske_hp_dma_cfb_init(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *iv);
|
||||
|
||||
uint32_t ske_hp_dma_cfb_update_blocks(uint32_t *in, uint32_t *out,
|
||||
uint32_t words);
|
||||
|
||||
uint32_t ske_hp_dma_cfb_final(void);
|
||||
|
||||
uint32_t ske_hp_dma_cfb_crypto(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *iv, uint32_t *in,
|
||||
uint32_t *out, uint32_t words);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
61
drivers/include/crypto/cacc/ske/ske_cmac.h
Normal file
61
drivers/include/crypto/cacc/ske/ske_cmac.h
Normal file
@@ -0,0 +1,61 @@
|
||||
/**
|
||||
* @file ske_cmac.h
|
||||
* @brief Semidrive CRYPTO ske cmac header file.
|
||||
*
|
||||
* @copyright Copyright (c) 2021 Semidrive Semiconductor.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef SKE_CMAC_H
|
||||
#define SKE_CMAC_H
|
||||
|
||||
#include "ske.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
ske_ctx_t ske_cmac_ctx[1];
|
||||
uint8_t left_bytes;
|
||||
uint8_t block_buf[16];
|
||||
} ske_cmac_ctx_t;
|
||||
|
||||
typedef struct {
|
||||
ske_ctx_t ske_cmac_ctx[1];
|
||||
} ske_cmac_dma_ctx_t;
|
||||
|
||||
uint32_t ske_hp_cmac_init(ske_cmac_ctx_t *ctx, SKE_ALG alg, uint8_t *key,
|
||||
uint16_t sp_key_idx);
|
||||
|
||||
uint32_t ske_hp_cmac_update(ske_cmac_ctx_t *ctx, uint8_t *msg,
|
||||
uint32_t msg_bytes);
|
||||
|
||||
uint32_t ske_hp_cmac_final(ske_cmac_ctx_t *ctx, uint8_t *mac,
|
||||
uint8_t mac_bytes);
|
||||
|
||||
uint32_t ske_hp_cmac(SKE_ALG alg, uint8_t *key, uint16_t sp_key_idx,
|
||||
uint8_t *msg, uint32_t msg_bytes, uint8_t *mac,
|
||||
uint8_t mac_bytes);
|
||||
|
||||
#ifdef SKE_HP_DMA_FUNCTION
|
||||
uint32_t ske_hp_dma_cmac_init(ske_cmac_dma_ctx_t *ctx, SKE_ALG alg,
|
||||
uint8_t *key, uint16_t sp_key_idx);
|
||||
|
||||
uint32_t ske_hp_dma_cmac_update_blocks_excluding_last_block(
|
||||
ske_cmac_dma_ctx_t *ctx, uint32_t *msg, uint32_t msg_words);
|
||||
|
||||
uint32_t ske_hp_dma_cmac_update_including_last_block(ske_cmac_dma_ctx_t *ctx,
|
||||
uint32_t *msg,
|
||||
uint32_t msg_bytes,
|
||||
uint32_t *mac);
|
||||
|
||||
uint32_t ske_hp_dma_cmac(SKE_ALG alg, uint8_t *key, uint16_t sp_key_idx,
|
||||
uint32_t *msg, uint32_t msg_bytes, uint32_t *mac);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
47
drivers/include/crypto/cacc/ske/ske_ctr.h
Normal file
47
drivers/include/crypto/cacc/ske/ske_ctr.h
Normal file
@@ -0,0 +1,47 @@
|
||||
/**
|
||||
* @file ske_ctr.h
|
||||
* @brief Semidrive CRYPTO ske ctr header file.
|
||||
*
|
||||
* @copyright Copyright (c) 2021 Semidrive Semiconductor.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef SKE_CTR_H
|
||||
#define SKE_CTR_H
|
||||
|
||||
#include "ske.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
uint32_t ske_hp_ctr_init(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *iv);
|
||||
|
||||
uint32_t ske_hp_ctr_update_blocks(uint8_t *in, uint8_t *out, uint32_t bytes);
|
||||
|
||||
uint32_t ske_hp_ctr_final(void);
|
||||
|
||||
uint32_t ske_hp_ctr_crypto(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *iv, uint8_t *in,
|
||||
uint8_t *out, uint32_t bytes);
|
||||
|
||||
#ifdef SKE_HP_DMA_FUNCTION
|
||||
uint32_t ske_hp_dma_ctr_init(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *iv);
|
||||
|
||||
uint32_t ske_hp_dma_ctr_update_blocks(uint32_t *in, uint32_t *out,
|
||||
uint32_t words);
|
||||
|
||||
uint32_t ske_hp_dma_ctr_final(void);
|
||||
|
||||
uint32_t ske_hp_dma_ctr_crypto(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *iv, uint32_t *in,
|
||||
uint32_t *out, uint32_t words);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
47
drivers/include/crypto/cacc/ske/ske_ecb.h
Normal file
47
drivers/include/crypto/cacc/ske/ske_ecb.h
Normal file
@@ -0,0 +1,47 @@
|
||||
/**
|
||||
* @file ske_ecb.h
|
||||
* @brief Semidrive CRYPTO ske ecb header file.
|
||||
*
|
||||
* @copyright Copyright (c) 2021 Semidrive Semiconductor.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef SKE_ECB_H
|
||||
#define SKE_ECB_H
|
||||
|
||||
#include "ske.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
uint32_t ske_hp_ecb_init(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx);
|
||||
|
||||
uint32_t ske_hp_ecb_update_blocks(uint8_t *in, uint8_t *out, uint32_t bytes);
|
||||
|
||||
uint32_t ske_hp_ecb_final(void);
|
||||
|
||||
uint32_t ske_hp_ecb_crypto(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *in, uint8_t *out,
|
||||
uint32_t bytes);
|
||||
|
||||
#ifdef SKE_HP_DMA_FUNCTION
|
||||
uint32_t ske_hp_dma_ecb_init(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx);
|
||||
|
||||
uint32_t ske_hp_dma_ecb_update_blocks(uint32_t *in, uint32_t *out,
|
||||
uint32_t words);
|
||||
|
||||
uint32_t ske_hp_dma_ecb_final(void);
|
||||
|
||||
uint32_t ske_hp_dma_ecb_crypto(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint32_t *in, uint32_t *out,
|
||||
uint32_t words);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
69
drivers/include/crypto/cacc/ske/ske_gcm.h
Normal file
69
drivers/include/crypto/cacc/ske/ske_gcm.h
Normal file
@@ -0,0 +1,69 @@
|
||||
/**
|
||||
* @file ske_gcm.h
|
||||
* @brief Semidrive CRYPTO ske gcm header file.
|
||||
*
|
||||
* @copyright Copyright (c) 2021 Semidrive Semiconductor.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef SKE_GCM_H
|
||||
#define SKE_GCM_H
|
||||
|
||||
#include "ske.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define SKE_HP_GCM_MAX_BYTES (16)
|
||||
|
||||
typedef struct {
|
||||
uint8_t buf[16];
|
||||
ske_ctx_t ske_gcm_ctx[1];
|
||||
SKE_CRYPTO crypto;
|
||||
uint32_t aad_bytes;
|
||||
uint32_t c_bytes;
|
||||
uint8_t current_bytes;
|
||||
} ske_gcm_ctx_t;
|
||||
|
||||
uint32_t ske_hp_gcm_init(ske_gcm_ctx_t *ctx, SKE_ALG alg, SKE_CRYPTO crypto,
|
||||
uint8_t *key, uint16_t sp_key_idx, uint8_t *iv,
|
||||
uint32_t iv_bytes, uint32_t aad_bytes,
|
||||
uint32_t c_bytes);
|
||||
|
||||
uint32_t ske_hp_gcm_aad(ske_gcm_ctx_t *ctx, uint8_t *aad);
|
||||
|
||||
uint32_t ske_hp_gcm_update(ske_gcm_ctx_t *ctx, uint8_t *in, uint8_t *out,
|
||||
uint32_t bytes);
|
||||
|
||||
uint32_t ske_hp_gcm_final(ske_gcm_ctx_t *ctx, uint8_t *tag, uint32_t tag_bytes);
|
||||
|
||||
uint32_t ske_hp_gcm_crypto(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *iv, uint32_t iv_bytes,
|
||||
uint8_t *aad, uint32_t aad_bytes, uint8_t *in,
|
||||
uint8_t *out, uint32_t c_bytes, uint8_t *tag,
|
||||
uint32_t tag_bytes);
|
||||
|
||||
#ifdef SKE_HP_DMA_FUNCTION
|
||||
uint32_t ske_hp_dma_gcm_init(ske_gcm_ctx_t *ctx, SKE_ALG alg, SKE_CRYPTO crypto,
|
||||
uint8_t *key, uint16_t sp_key_idx, uint8_t *iv,
|
||||
uint32_t iv_bytes, uint32_t aad_bytes,
|
||||
uint32_t c_bytes);
|
||||
|
||||
uint32_t ske_hp_dma_gcm_update_blocks(ske_gcm_ctx_t *ctx, uint32_t *in,
|
||||
uint32_t *out, uint32_t tag_bytes);
|
||||
|
||||
uint32_t ske_hp_dma_gcm_final(ske_gcm_ctx_t *ctx);
|
||||
|
||||
uint32_t ske_hp_dma_gcm_crypto(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *iv,
|
||||
uint32_t iv_bytes, uint32_t aad_bytes,
|
||||
uint32_t *in, uint32_t *out, uint32_t c_bytes,
|
||||
uint32_t tag_bytes);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
47
drivers/include/crypto/cacc/ske/ske_ofb.h
Normal file
47
drivers/include/crypto/cacc/ske/ske_ofb.h
Normal file
@@ -0,0 +1,47 @@
|
||||
/**
|
||||
* @file ske_ofb.h
|
||||
* @brief Semidrive CRYPTO ske ofb header file.
|
||||
*
|
||||
* @copyright Copyright (c) 2021 Semidrive Semiconductor.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef SKE_OFB_H
|
||||
#define SKE_OFB_H
|
||||
|
||||
#include "ske.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
uint32_t ske_hp_ofb_init(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *iv);
|
||||
|
||||
uint32_t ske_hp_ofb_update_blocks(uint8_t *in, uint8_t *out, uint32_t bytes);
|
||||
|
||||
uint32_t ske_hp_ofb_final(void);
|
||||
|
||||
uint32_t ske_hp_ofb_crypto(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *iv, uint8_t *in,
|
||||
uint8_t *out, uint32_t bytes);
|
||||
|
||||
#ifdef SKE_HP_DMA_FUNCTION
|
||||
uint32_t ske_hp_dma_ofb_init(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *iv);
|
||||
|
||||
uint32_t ske_hp_dma_ofb_update_blocks(uint32_t *in, uint32_t *out,
|
||||
uint32_t words);
|
||||
|
||||
uint32_t ske_hp_dma_ofb_final(void);
|
||||
|
||||
uint32_t ske_hp_dma_ofb_crypto(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *iv, uint32_t *in,
|
||||
uint32_t *out, uint32_t words);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
66
drivers/include/crypto/cacc/ske/ske_xts.h
Normal file
66
drivers/include/crypto/cacc/ske/ske_xts.h
Normal file
@@ -0,0 +1,66 @@
|
||||
/**
|
||||
* @file ske_xts.h
|
||||
* @brief Semidrive CRYPTO ske xts header file.
|
||||
*
|
||||
* @copyright Copyright (c) 2021 Semidrive Semiconductor.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef SKE_XTS_H
|
||||
#define SKE_XTS_H
|
||||
|
||||
#include "ske.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct ske_xts_ctx {
|
||||
ske_ctx_t ske_xts_ctx[1];
|
||||
SKE_CRYPTO crypto;
|
||||
uint32_t c_bytes;
|
||||
uint32_t current_bytes;
|
||||
} ske_xts_ctx_t;
|
||||
|
||||
uint32_t ske_hp_xts_init(ske_xts_ctx_t *ctx, SKE_ALG alg, SKE_CRYPTO crypto,
|
||||
uint8_t *key, uint16_t sp_key_idx, uint8_t *i,
|
||||
uint32_t c_bytes);
|
||||
|
||||
uint32_t ske_hp_xts_update_blocks(ske_xts_ctx_t *ctx, uint8_t *in, uint8_t *out,
|
||||
uint32_t bytes);
|
||||
|
||||
uint32_t ske_hp_xts_update_including_last_2_blocks(ske_xts_ctx_t *ctx,
|
||||
uint8_t *in, uint8_t *out,
|
||||
uint32_t bytes);
|
||||
|
||||
uint32_t ske_hp_xts_final(ske_xts_ctx_t *ctx);
|
||||
|
||||
uint32_t ske_hp_xts_crypto(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *i, uint8_t *in,
|
||||
uint8_t *out, uint32_t bytes);
|
||||
|
||||
#ifdef SKE_HP_DMA_FUNCTION
|
||||
uint32_t ske_hp_dma_xts_init(ske_xts_ctx_t *ctx, SKE_ALG alg, SKE_CRYPTO crypto,
|
||||
uint8_t *key, uint16_t sp_key_idx, uint8_t *i,
|
||||
uint32_t c_bytes);
|
||||
|
||||
uint32_t ske_hp_dma_xts_update_blocks(ske_xts_ctx_t *ctx, uint32_t *in,
|
||||
uint32_t *out, uint32_t words);
|
||||
|
||||
uint32_t ske_hp_dma_xts_update_including_last_2_blocks(ske_xts_ctx_t *ctx,
|
||||
uint32_t *in,
|
||||
uint32_t *out,
|
||||
uint32_t bytes);
|
||||
|
||||
uint32_t ske_hp_dma_xts_final(ske_xts_ctx_t *ctx);
|
||||
|
||||
uint32_t ske_hp_dma_xts_crypto(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
|
||||
uint16_t sp_key_idx, uint8_t *i, uint32_t *in,
|
||||
uint32_t *out, uint32_t c_bytes);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user