crypto: Add aesenc_SB_SR_MC_AK

Add a primitive for SubBytes + ShiftRows + MixColumns + AddRoundKey.

Acked-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2023-06-02 03:54:39 -07:00
parent 5b41deb310
commit 7c58cb972e
3 changed files with 82 additions and 0 deletions

View file

@ -59,6 +59,27 @@ static inline void aesenc_SB_SR_AK(AESState *r, const AESState *st,
}
}
/*
* Perform SubBytes + ShiftRows + MixColumns + AddRoundKey.
*/
void aesenc_SB_SR_MC_AK_gen(AESState *ret, const AESState *st,
const AESState *rk);
void aesenc_SB_SR_MC_AK_genrev(AESState *ret, const AESState *st,
const AESState *rk);
static inline void aesenc_SB_SR_MC_AK(AESState *r, const AESState *st,
const AESState *rk, bool be)
{
if (HAVE_AES_ACCEL) {
aesenc_SB_SR_MC_AK_accel(r, st, rk, be);
} else if (HOST_BIG_ENDIAN == be) {
aesenc_SB_SR_MC_AK_gen(r, st, rk);
} else {
aesenc_SB_SR_MC_AK_genrev(r, st, rk);
}
}
/*
* Perform InvMixColumns.
*/