5 #ifndef OPENTITAN_SW_DEVICE_LIB_CRYPTO_IMPL_AES_GCM_AES_GCM_H_
6 #define OPENTITAN_SW_DEVICE_LIB_CRYPTO_IMPL_AES_GCM_AES_GCM_H_
13 #include "sw/device/lib/crypto/drivers/aes.h"
14 #include "sw/device/lib/crypto/impl/aes_gcm/ghash.h"
68 } __attribute__((aligned(
sizeof(uint32_t)))) aes_gcm_context_t;
99 const uint32_t *iv,
const size_t plaintext_len,
100 const uint8_t *plaintext,
const size_t aad_len,
101 const uint8_t *aad,
const size_t tag_len,
102 uint32_t *tag, uint8_t *ciphertext);
140 const uint32_t *iv,
const size_t ciphertext_len,
141 const uint8_t *ciphertext,
const size_t aad_len,
142 const uint8_t *aad,
const size_t tag_len,
143 const uint32_t *tag, uint8_t *plaintext,
170 const uint32_t *iv, aes_gcm_context_t *ctx);
181 status_t aes_gcm_update_aad(aes_gcm_context_t *ctx,
const size_t aad_len,
210 status_t aes_gcm_update_encrypted_data(aes_gcm_context_t *ctx,
211 const size_t input_len,
212 const uint8_t *input,
size_t *output_len,
236 status_t aes_gcm_encrypt_final(aes_gcm_context_t *ctx,
size_t tag_len,
237 uint32_t *tag,
size_t *output_len,
264 const uint32_t *iv, aes_gcm_context_t *ctx);
297 status_t aes_gcm_decrypt_final(aes_gcm_context_t *ctx,
size_t tag_len,
298 const uint32_t *tag,
size_t *output_len,