SemiDrive SSDK Appication Program Interface PTG3.0
ske.h
Go to the documentation of this file.
1
9#ifndef SKE_H
10#define SKE_H
11#include <ske_basic.h>
12#include <types.h>
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18typedef struct ske_dev {
19 paddr_t base;
20 int irq;
22
23void ske_hp_big_endian_add_uint8(uint8_t *a, uint32_t a_bytes, uint8_t b);
24
25void ske_hp_little_endian_add_uint32(uint32_t *a, uint32_t a_words, uint32_t b);
26
28
30
31void ske_hp_set_iv(uint8_t *iv, uint32_t block_bytes);
32
33void ske_hp_set_key(SKE_ALG alg, uint8_t *key, uint16_t key_bytes,
34 uint16_t key_idx);
35
37 SKE_CRYPTO crypto, uint8_t *key,
38 uint16_t sp_key_idx, uint8_t *iv);
39
40uint32_t ske_hp_init(SKE_ALG alg, SKE_MODE mode, SKE_CRYPTO crypto,
41 uint8_t *key, uint16_t sp_key_idx, uint8_t *iv);
42
43uint32_t ske_hp_update_blocks(uint8_t *in, uint8_t *out, uint32_t bytes);
44
45uint32_t ske_hp_final(void);
46
47uint32_t ske_hp_crypto(SKE_ALG alg, SKE_MODE mode, SKE_CRYPTO crypto,
48 uint8_t *key, uint16_t sp_key_idx, uint8_t *iv,
49 uint8_t *in, uint8_t *out, uint32_t bytes);
50
51#ifdef SKE_HP_DMA_FUNCTION
52uint32_t ske_hp_dma_init(SKE_ALG alg, SKE_MODE mode, SKE_CRYPTO crypto,
53 uint8_t *key, uint16_t sp_key_idx, uint8_t *iv);
54
55uint32_t ske_hp_dma_update_blocks(uint32_t *in, uint32_t *out, uint32_t words);
56
57uint32_t ske_hp_dma_final(void);
58
59uint32_t ske_hp_dma_crypto(SKE_ALG alg, SKE_MODE mode, SKE_CRYPTO crypto,
60 uint8_t *key, uint16_t sp_key_idx, uint8_t *iv,
61 uint32_t *in, uint32_t *out, uint32_t words);
62#endif
63
64#ifdef __cplusplus
65}
66#endif
67
68#endif
void ske_hp_set_key(SKE_ALG alg, uint8_t *key, uint16_t key_bytes, uint16_t key_idx)
uint8_t ske_hp_get_key_byte_len(SKE_ALG ske_alg)
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)
uint32_t ske_hp_final(void)
uint32_t ske_hp_update_blocks(uint8_t *in, uint8_t *out, uint32_t bytes)
struct ske_dev ske_dev_t
void ske_hp_set_iv(uint8_t *iv, uint32_t block_bytes)
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_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)
uint8_t ske_hp_get_block_byte_len(SKE_ALG ske_alg)
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)
Semidrive CRYPTO ske basic header file.
SKE_CRYPTO
Definition: ske_basic.h:153
SKE_ALG
Definition: ske_basic.h:158
SKE_MODE
Definition: ske_basic.h:109
Definition: ske_basic.h:210
Definition: ske.h:18
paddr_t base
Definition: ske.h:19
int irq
Definition: ske.h:20