[dpdk-users] AES GCM PMD Driver IV length support
Trahe, Fiona
fiona.trahe at intel.com
Thu Dec 8 11:56:26 CET 2016
Hi Nubin,
> -----Original Message-----
> From: users [mailto:users-bounces at dpdk.org] On Behalf Of Nubin Stanley
> Sent: Thursday, December 8, 2016 9:21 AM
> To: users at dpdk.org
> Cc: martin.varghese at nokia.com
> Subject: [dpdk-users] AES GCM PMD Driver IV length support
>
> Hi All
>
>
>
> I see that the only IV size supported in AES GCM driver is 16bytes. For
> using AES-GCM-128 in IPsec, the IV length has to be 12 bytes ( 4 (salt)
> + 8 (iv)).
>
>
> How should I handle this IPsec case with AES GCM PMD driver.
>
>
>
> .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
>
> {.sym = {
>
> .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
>
> {.cipher = {
>
> .algo = RTE_CRYPTO_CIPHER_AES_GCM,
>
> .block_size = 16,
>
> .key_size = {
>
> .min = 16,
>
> .max = 16,
>
> .increment = 0
>
> },
>
> .iv_size = {
>
> .min = 16,
>
> .max = 16,
>
> .increment = 0
>
> }
>
> }, }
>
> }, }
>
>
>
> Regards,
> Nubin Stanley
I found the following code in the PMD to handle an iv length of 12, so this looks like a bug in the capability data.
/* sanity checks */
if (op->cipher.iv.length != 16 && op->cipher.iv.length != 12 &&
op->cipher.iv.length != 0) {
GCM_LOG_ERR("iv");
return -1;
}
/*
* GCM working in 12B IV mode => 16B pre-counter block we need
* to set BE LSB to 1, driver expects that 16B is allocated
*/
if (op->cipher.iv.length == 12) {
op->cipher.iv.data[15] = 1;
}
Have you tried passing a 12-byte iv to the driver ?
More information about the users
mailing list