New AES and GHASH implementations using POWER8 crypto opcodes.

This commit is contained in:
Thomas Pornin 2017-02-15 14:08:37 +00:00
parent f0c0046601
commit db8f1b6645
16 changed files with 3186 additions and 27 deletions

View file

@ -249,6 +249,7 @@ SPEED_AES(small)
SPEED_AES(ct)
SPEED_AES(ct64)
SPEED_AES(x86ni)
SPEED_AES(pwr8)
#define br_des_tab_cbcenc_get_vtable() (&br_des_tab_cbcenc_vtable)
#define br_des_tab_cbcdec_get_vtable() (&br_des_tab_cbcdec_vtable)
@ -334,6 +335,20 @@ test_speed_ghash_pclmul(void)
}
}
static void
test_speed_ghash_pwr8(void)
{
br_ghash gh;
gh = br_ghash_pwr8_get();
if (gh == 0) {
printf("%-30s UNAVAILABLE\n", "GHASH (pwr8)");
fflush(stdout);
} else {
test_speed_ghash_inner("GHASH (pwr8)", gh);
}
}
static uint32_t
fake_chacha20(const void *key, const void *iv,
uint32_t cc, void *data, size_t len)
@ -1215,6 +1230,16 @@ static const struct {
STU(aes192_x86ni_ctr),
STU(aes256_x86ni_ctr),
STU(aes128_pwr8_cbcenc),
STU(aes128_pwr8_cbcdec),
STU(aes192_pwr8_cbcenc),
STU(aes192_pwr8_cbcdec),
STU(aes256_pwr8_cbcenc),
STU(aes256_pwr8_cbcdec),
STU(aes128_pwr8_ctr),
STU(aes192_pwr8_ctr),
STU(aes256_pwr8_ctr),
STU(des_tab_cbcenc),
STU(des_tab_cbcdec),
STU(3des_tab_cbcenc),
@ -1231,6 +1256,7 @@ static const struct {
STU(ghash_ctmul32),
STU(ghash_ctmul64),
STU(ghash_pclmul),
STU(ghash_pwr8),
STU(poly1305_ctmul),
STU(poly1305_ctmul32),