Skip to content

Commit

Permalink
examples/ipsec-secgw: fix auth IV length
Browse files Browse the repository at this point in the history
[ upstream commit 56af18587ef8beace28de1054643752922f7a696 ]

Currently, cipher IV length is getting used to set auth
xform IV length. Auth IV is needed for AES-GMAC case,
and in all other cases, auth IV should be 0.
Used a separate auth IV length to separate out cipher and auth cases.

Fixes: 9413c39 ("examples/ipsec-secgw: support additional algorithms")

Signed-off-by: Akhil Goyal <gakhil@marvell.com>
Acked-by: Kai Ji <kai.ji@intel.com>
  • Loading branch information
Akhil Goyal authored and kevintraynor committed Mar 15, 2023
1 parent c414933 commit f18e07d
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions examples/ipsec-secgw/sa.c
Expand Up @@ -1223,6 +1223,7 @@ sa_add_rules(struct sa_ctx *sa_ctx, const struct ipsec_sa entries[],
struct ipsec_sa *sa;
uint32_t i, idx;
uint16_t iv_length, aad_length;
uint16_t auth_iv_length = 0;
int inline_status;
int32_t rc;
struct rte_ipsec_session *ips;
Expand Down Expand Up @@ -1315,7 +1316,7 @@ sa_add_rules(struct sa_ctx *sa_ctx, const struct ipsec_sa entries[],

/* AES_GMAC uses salt like AEAD algorithms */
if (sa->auth_algo == RTE_CRYPTO_AUTH_AES_GMAC)
iv_length = 12;
auth_iv_length = 12;

if (inbound) {
sa_ctx->xf[idx].b.type = RTE_CRYPTO_SYM_XFORM_CIPHER;
Expand All @@ -1339,7 +1340,7 @@ sa_add_rules(struct sa_ctx *sa_ctx, const struct ipsec_sa entries[],
sa_ctx->xf[idx].a.auth.op =
RTE_CRYPTO_AUTH_OP_VERIFY;
sa_ctx->xf[idx].a.auth.iv.offset = IV_OFFSET;
sa_ctx->xf[idx].a.auth.iv.length = iv_length;
sa_ctx->xf[idx].a.auth.iv.length = auth_iv_length;

} else { /* outbound */
sa_ctx->xf[idx].a.type = RTE_CRYPTO_SYM_XFORM_CIPHER;
Expand All @@ -1363,7 +1364,7 @@ sa_add_rules(struct sa_ctx *sa_ctx, const struct ipsec_sa entries[],
sa_ctx->xf[idx].b.auth.op =
RTE_CRYPTO_AUTH_OP_GENERATE;
sa_ctx->xf[idx].b.auth.iv.offset = IV_OFFSET;
sa_ctx->xf[idx].b.auth.iv.length = iv_length;
sa_ctx->xf[idx].b.auth.iv.length = auth_iv_length;

}

Expand Down

0 comments on commit f18e07d

Please sign in to comment.