From b9719b996a7c0c0dd4d80a142ddb26fabafd0ce9 Mon Sep 17 00:00:00 2001 From: Arek Kusztal Date: Fri, 23 Dec 2016 08:24:51 +0000 Subject: [PATCH] crypto/aesni_gcm: fix J0 padding bytes This commit fixes pre-counter block (J0) padding by clearing four most significant bytes before setting initial counter value. Fixes: b2bb3597470c ("crypto/aesni_gcm: move pre-counter block to driver") Signed-off-by: Arek Kusztal Acked-by: Piotr Azarewicz --- drivers/crypto/aesni_gcm/aesni_gcm_pmd.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c index dba5e15876..af3d60f0cd 100644 --- a/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c +++ b/drivers/crypto/aesni_gcm/aesni_gcm_pmd.c @@ -40,6 +40,7 @@ #include #include #include +#include #include "aesni_gcm_pmd_private.h" @@ -241,7 +242,8 @@ process_gcm_crypto_op(struct aesni_gcm_qp *qp, struct rte_crypto_sym_op *op, * to set BE LSB to 1, driver expects that 16B is allocated */ if (op->cipher.iv.length == 12) { - op->cipher.iv.data[15] = 1; + uint32_t *iv_padd = (uint32_t *)&op->cipher.iv.data[12]; + *iv_padd = rte_bswap32(1); } if (op->auth.aad.length != 12 && op->auth.aad.length != 8 && -- 2.20.1