19#define SUPPORT_SKE_DES
20#define SUPPORT_SKE_TDES_128
21#define SUPPORT_SKE_TDES_192
22#define SUPPORT_SKE_AES_128
23#define SUPPORT_SKE_AES_192
24#define SUPPORT_SKE_AES_256
25#define SUPPORT_SKE_SM4
27#define SUPPORT_SKE_MODE_ECB
28#define SUPPORT_SKE_MODE_CBC
29#define SUPPORT_SKE_MODE_CFB
30#define SUPPORT_SKE_MODE_OFB
31#define SUPPORT_SKE_MODE_CTR
32#define SUPPORT_SKE_MODE_XTS
33#define SUPPORT_SKE_MODE_GCM
34#define SUPPORT_SKE_MODE_CMAC
35#define SUPPORT_SKE_MODE_CBC_MAC
37#define SKE_HP_DMA_FUNCTION
39#define SKE_SECURE_PORT_FUNCTION
40#ifdef SKE_SECURE_PORT_FUNCTION
42#define SKE_MAX_KEY_IDX (9)
46#define SKE_HP_REVERSE_BYTE_ORDER_IN_WORD_OFFSET (24)
47#define SKE_HP_MODE_OFFSET (28)
48#define SKE_HP_CRYPTO_OFFSET (11)
49#define SKE_HP_UP_CFG_OFFSET (12)
50#define SKE_HP_DMA_OFFSET (16)
51#define SKE_HP_DMA_LL_OFFSET (17)
52#define SKE_HP_LAST_DATA_OFFSET (16)
112#ifdef SUPPORT_SKE_MODE_ECB
116#ifdef SUPPORT_SKE_MODE_XTS
120#ifdef SUPPORT_SKE_MODE_CBC
124#ifdef SUPPORT_SKE_MODE_CFB
128#ifdef SUPPORT_SKE_MODE_OFB
132#ifdef SUPPORT_SKE_MODE_CTR
136#ifdef SUPPORT_SKE_MODE_CMAC
140#ifdef SUPPORT_SKE_MODE_CBC_MAC
144#ifdef SUPPORT_SKE_MODE_GCM
148#ifdef SUPPORT_SKE_MODE_CCM
159#ifdef SUPPORT_SKE_DES
163#ifdef SUPPORT_SKE_TDES_128
167#ifdef SUPPORT_SKE_TDES_192
171#ifdef SUPPORT_SKE_TDES_EEE_128
172 SKE_ALG_TDES_EEE_128 = 3,
175#ifdef SUPPORT_SKE_TDES_EEE_192
176 SKE_ALG_TDES_EEE_192 = 4,
179#ifdef SUPPORT_SKE_AES_128
183#ifdef SUPPORT_SKE_AES_192
187#ifdef SUPPORT_SKE_AES_256
191#ifdef SUPPORT_SKE_SM4
258#if (defined(SUPPORT_SKE_MODE_GCM) || defined(SUPPORT_SKE_MODE_CCM))
262#if (defined(SUPPORT_SKE_MODE_GCM) || defined(SUPPORT_SKE_MODE_CCM) || \
263 defined(SUPPORT_SKE_MODE_XTS))
273#ifdef SKE_HP_DMA_FUNCTION
275 uint32_t in_words, uint32_t out_words);
277#if (defined(SUPPORT_SKE_MODE_CMAC) || defined(SUPPORT_SKE_MODE_CMAC))
287 uint8_t *out, uint32_t bytes);
uint32_t ske_hp_dma_operate(ske_ctx_t *ctx, uint32_t *in, uint32_t *out, uint32_t in_words, uint32_t out_words)
void ske_hp_set_last_block_len(uint32_t bytes)
void ske_hp_set_aad_len_uint32(uint32_t aad_bytes)
struct ske_hp_reg ske_hp_reg_t
uint32_t ske_hp_update_blocks_internal(ske_ctx_t *ctx, uint8_t *in, uint8_t *out, uint32_t bytes)
void ske_hp_set_c_len_uint32(uint32_t c_bytes)
void ske_hp_set_crypto(SKE_CRYPTO crypto)
void ske_hp_disable_secure_port(void)
uint32_t ske_hp_dma_operate_without_output(ske_ctx_t *ctx, uint32_t *in, uint32_t in_words)
void ske_hp_set_last_block(uint32_t is_last_block)
uint32_t ske_hp_expand_key(void)
void ske_hp_disable_dma_linked_list(void)
void ske_hp_simple_set_input_block(uint32_t *in, uint32_t block_words)
SKE_CRYPTO
Definition: ske_basic.h:153
@ SKE_CRYPTO_DECRYPT
Definition: ske_basic.h:155
@ SKE_CRYPTO_ENCRYPT
Definition: ske_basic.h:154
void ske_hp_simple_get_output_block(uint32_t *out, uint32_t block_words)
uint32_t ske_hp_set_seed(void)
SKE_ALG
Definition: ske_basic.h:158
@ SKE_ALG_AES_128
Definition: ske_basic.h:180
@ SKE_ALG_AES_192
Definition: ske_basic.h:184
@ SKE_ALG_AES_256
Definition: ske_basic.h:188
@ SKE_ALG_DES
Definition: ske_basic.h:160
@ SKE_ALG_TDES_128
Definition: ske_basic.h:164
@ SKE_ALG_TDES_192
Definition: ske_basic.h:168
@ SKE_ALG_SM4
Definition: ske_basic.h:192
SKE_PADDING
Definition: ske_basic.h:205
@ SKE_NO_PADDING
Definition: ske_basic.h:206
@ SKE_ZERO_PADDING
Definition: ske_basic.h:207
void ske_hp_set_cpu_mode(void)
void ske_hp_set_endian_uint32(void)
SKE_RET_CODE
Definition: ske_basic.h:196
@ SKE_CONFIG_INVALID
Definition: ske_basic.h:199
@ SKE_BUFFER_NULL
Definition: ske_basic.h:198
@ SKE_INPUT_INVALID
Definition: ske_basic.h:200
@ SKE_ATTACK_ALARM
Definition: ske_basic.h:201
@ SKE_SUCCESS
Definition: ske_basic.h:197
@ SKE_ERROR
Definition: ske_basic.h:202
uint32_t ske_hp_wait_till_output()
void ske_hp_set_alg(SKE_ALG ske_alg)
void ske_hp_set_mode(SKE_MODE mode)
void ske_hp_enable_dma_linked_list(void)
SKE_MODE
Definition: ske_basic.h:109
@ SKE_MODE_ECB
Definition: ske_basic.h:113
@ SKE_MODE_CFB
Definition: ske_basic.h:125
@ SKE_MODE_CMAC
Definition: ske_basic.h:137
@ SKE_MODE_CBC
Definition: ske_basic.h:121
@ SKE_MODE_XTS
Definition: ske_basic.h:117
@ SKE_MODE_CBC_MAC
Definition: ske_basic.h:141
@ SKE_MODE_CTR
Definition: ske_basic.h:133
@ SKE_MODE_GCM
Definition: ske_basic.h:145
@ SKE_MODE_BYPASS
Definition: ske_basic.h:110
@ SKE_MODE_OFB
Definition: ske_basic.h:129
uint32_t ske_hp_update_blocks_no_output(ske_ctx_t *ctx, uint8_t *in, uint32_t bytes)
void ske_hp_enable_secure_port(uint16_t sp_key_idx)
uint32_t ske_hp_calc_wait_till_done(void)
uint32_t ske_get_version(void)
void ske_hp_set_iv_uint32(uint32_t *iv, uint32_t block_words)
void ske_hp_set_dma_mode(void)
void ske_hp_set_key_uint32(uint32_t *key, uint32_t idx, uint32_t key_words)
Definition: ske_basic.h:215
uint32_t src_addr
Definition: ske_basic.h:216
uint32_t next_llp
Definition: ske_basic.h:218
uint32_t last_len
Definition: ske_basic.h:219
uint32_t dst_addr
Definition: ske_basic.h:217
Definition: ske_basic.h:210
uint8_t block_words
Definition: ske_basic.h:212
uint8_t block_bytes
Definition: ske_basic.h:211
Definition: ske_basic.h:55
uint32_t dma_llp_l
Definition: ske_basic.h:104
uint32_t misr
Definition: ske_basic.h:61
uint32_t dma_sr
Definition: ske_basic.h:86
uint32_t ske_a_len_l
Definition: ske_basic.h:66
uint32_t risr
Definition: ske_basic.h:59
uint32_t ske_version
Definition: ske_basic.h:81
uint32_t rev4[4]
Definition: ske_basic.h:78
uint32_t dma_da_l
Definition: ske_basic.h:94
uint32_t imcr
Definition: ske_basic.h:60
uint32_t rev7[1]
Definition: ske_basic.h:88
uint32_t sp
Definition: ske_basic.h:63
uint32_t dma_llp_h
Definition: ske_basic.h:105
uint32_t dma_da_h
Definition: ske_basic.h:96
uint32_t key2[8]
Definition: ske_basic.h:65
uint32_t rev5[15]
Definition: ske_basic.h:80
uint32_t ske_c_len_h
Definition: ske_basic.h:72
uint32_t ctrl
Definition: ske_basic.h:56
uint32_t cfg
Definition: ske_basic.h:57
uint32_t dma_to
Definition: ske_basic.h:87
uint32_t m_din[4]
Definition: ske_basic.h:77
uint32_t dma_rlen
Definition: ske_basic.h:99
uint32_t dma_cr
Definition: ske_basic.h:85
uint32_t ske_c_len_l
Definition: ske_basic.h:70
uint32_t rev10[2]
Definition: ske_basic.h:101
uint32_t dma_awcc
Definition: ske_basic.h:102
uint32_t rev1[1]
Definition: ske_basic.h:62
uint32_t ske_a_len_h
Definition: ske_basic.h:68
uint32_t m_dout[4]
Definition: ske_basic.h:79
uint32_t rev6[91]
Definition: ske_basic.h:84
uint32_t iv[4]
Definition: ske_basic.h:74
uint32_t sr
Definition: ske_basic.h:58
uint32_t rev3[3]
Definition: ske_basic.h:76
uint32_t key1[8]
Definition: ske_basic.h:64
uint32_t dma_arcc
Definition: ske_basic.h:103
uint32_t dma_sa_l
Definition: ske_basic.h:90
uint32_t ske_seed[36]
Definition: ske_basic.h:82
uint32_t m_din_cr
Definition: ske_basic.h:75
uint32_t rev8[2]
Definition: ske_basic.h:93
uint32_t dma_wlen
Definition: ske_basic.h:100
uint32_t dma_sa_h
Definition: ske_basic.h:91
uint32_t ske_alarm
Definition: ske_basic.h:83
uint32_t rev9[2]
Definition: ske_basic.h:98