blob: a78dd3cb62d861eb6475a7446e8d1f2b906c1375 [file] [log] [blame]
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* Copyright (c) 2017, Linaro Limited
*/
#ifndef __GHASH_CE_CORE_H
#define __GHASH_CE_CORE_H
#include <inttypes.h>
void pmull_ghash_update_p64(int blocks, uint64_t dg[2], const uint8_t *src,
const uint64_t k[2], const uint8_t *head);
void pmull_ghash_update_p8(int blocks, uint64_t dg[2], const uint8_t *src,
const uint64_t k[2], const uint8_t *head);
void pmull_gcm_load_round_keys(const uint64_t rk[30], int rounds);
void pmull_gcm_encrypt(int blocks, uint64_t dg[2], uint8_t dst[],
const uint8_t src[], const uint64_t k[2],
uint64_t ctr[], int rounds, uint8_t ks[]);
void pmull_gcm_decrypt(int blocks, uint64_t dg[2], uint8_t dst[],
const uint8_t src[], const uint64_t k[2],
uint64_t ctr[], int rounds);
uint32_t pmull_gcm_aes_sub(uint32_t input);
void pmull_gcm_encrypt_block(uint8_t dst[], const uint8_t src[], int rounds);
#endif /*__GHASH_CE_CORE_H*/