SemiDrive SSDK Appication Program Interface PTG3.0
ske_gcm.h
Go to the documentation of this file.
1
9#ifndef SKE_GCM_H
10#define SKE_GCM_H
11
12#include "ske.h"
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18#define SKE_HP_GCM_MAX_BYTES (16)
19
20typedef struct {
21 uint8_t buf[16];
22 ske_ctx_t ske_gcm_ctx[1];
24 uint32_t aad_bytes;
25 uint32_t c_bytes;
28
30 uint8_t *key, uint16_t sp_key_idx, uint8_t *iv,
31 uint32_t iv_bytes, uint32_t aad_bytes,
32 uint32_t c_bytes);
33
34uint32_t ske_hp_gcm_aad(ske_gcm_ctx_t *ctx, uint8_t *aad);
35
36uint32_t ske_hp_gcm_update(ske_gcm_ctx_t *ctx, uint8_t *in, uint8_t *out,
37 uint32_t bytes);
38
39uint32_t ske_hp_gcm_final(ske_gcm_ctx_t *ctx, uint8_t *tag, uint32_t tag_bytes);
40
41uint32_t ske_hp_gcm_crypto(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
42 uint16_t sp_key_idx, uint8_t *iv, uint32_t iv_bytes,
43 uint8_t *aad, uint32_t aad_bytes, uint8_t *in,
44 uint8_t *out, uint32_t c_bytes, uint8_t *tag,
45 uint32_t tag_bytes);
46
47#ifdef SKE_HP_DMA_FUNCTION
48uint32_t ske_hp_dma_gcm_init(ske_gcm_ctx_t *ctx, SKE_ALG alg, SKE_CRYPTO crypto,
49 uint8_t *key, uint16_t sp_key_idx, uint8_t *iv,
50 uint32_t iv_bytes, uint32_t aad_bytes,
51 uint32_t c_bytes);
52
53uint32_t ske_hp_dma_gcm_update_blocks(ske_gcm_ctx_t *ctx, uint32_t *in,
54 uint32_t *out, uint32_t tag_bytes);
55
56uint32_t ske_hp_dma_gcm_final(ske_gcm_ctx_t *ctx);
57
58uint32_t ske_hp_dma_gcm_crypto(SKE_ALG alg, SKE_CRYPTO crypto, uint8_t *key,
59 uint16_t sp_key_idx, uint8_t *iv,
60 uint32_t iv_bytes, uint32_t aad_bytes,
61 uint32_t *in, uint32_t *out, uint32_t c_bytes,
62 uint32_t tag_bytes);
63#endif
64
65#ifdef __cplusplus
66}
67#endif
68
69#endif
Semidrive CRYPTO ske header file.
SKE_CRYPTO
Definition: ske_basic.h:153
SKE_ALG
Definition: ske_basic.h:158
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_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)
uint32_t ske_hp_gcm_final(ske_gcm_ctx_t *ctx, uint8_t *tag, uint32_t tag_bytes)
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)
Definition: ske_basic.h:210
Definition: ske_gcm.h:20
SKE_CRYPTO crypto
Definition: ske_gcm.h:23
uint32_t c_bytes
Definition: ske_gcm.h:25
uint8_t current_bytes
Definition: ske_gcm.h:26
uint32_t aad_bytes
Definition: ske_gcm.h:24