crypto/openssl: support truncated HMAC operations
IPsec requires truncated HMAC operations support. Extend OpenSSL crypto PMD to support truncated HMAC operations necessary for IPsec. Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
This commit is contained in:
parent
9c4491cf5c
commit
c3d22a6522
@ -1509,15 +1509,7 @@ process_openssl_auth_op(struct openssl_qp *qp, struct rte_crypto_op *op,
|
||||
|
||||
srclen = op->sym->auth.data.length;
|
||||
|
||||
if (sess->auth.operation == RTE_CRYPTO_AUTH_OP_VERIFY)
|
||||
dst = qp->temp_digest;
|
||||
else {
|
||||
dst = op->sym->auth.digest.data;
|
||||
if (dst == NULL)
|
||||
dst = rte_pktmbuf_mtod_offset(mbuf_dst, uint8_t *,
|
||||
op->sym->auth.data.offset +
|
||||
op->sym->auth.data.length);
|
||||
}
|
||||
dst = qp->temp_digest;
|
||||
|
||||
switch (sess->auth.mode) {
|
||||
case OPENSSL_AUTH_AS_AUTH:
|
||||
@ -1540,6 +1532,15 @@ process_openssl_auth_op(struct openssl_qp *qp, struct rte_crypto_op *op,
|
||||
sess->auth.digest_length) != 0) {
|
||||
op->status = RTE_CRYPTO_OP_STATUS_AUTH_FAILED;
|
||||
}
|
||||
} else {
|
||||
uint8_t *auth_dst;
|
||||
|
||||
auth_dst = op->sym->auth.digest.data;
|
||||
if (auth_dst == NULL)
|
||||
auth_dst = rte_pktmbuf_mtod_offset(mbuf_dst, uint8_t *,
|
||||
op->sym->auth.data.offset +
|
||||
op->sym->auth.data.length);
|
||||
memcpy(auth_dst, dst, sess->auth.digest_length);
|
||||
}
|
||||
|
||||
if (status != 0)
|
||||
|
@ -26,9 +26,9 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
|
||||
.increment = 1
|
||||
},
|
||||
.digest_size = {
|
||||
.min = 16,
|
||||
.min = 1,
|
||||
.max = 16,
|
||||
.increment = 0
|
||||
.increment = 1
|
||||
},
|
||||
.iv_size = { 0 }
|
||||
}, }
|
||||
@ -68,9 +68,9 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
|
||||
.increment = 1
|
||||
},
|
||||
.digest_size = {
|
||||
.min = 20,
|
||||
.min = 1,
|
||||
.max = 20,
|
||||
.increment = 0
|
||||
.increment = 1
|
||||
},
|
||||
.iv_size = { 0 }
|
||||
}, }
|
||||
@ -110,9 +110,9 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
|
||||
.increment = 1
|
||||
},
|
||||
.digest_size = {
|
||||
.min = 28,
|
||||
.min = 1,
|
||||
.max = 28,
|
||||
.increment = 0
|
||||
.increment = 1
|
||||
},
|
||||
.iv_size = { 0 }
|
||||
}, }
|
||||
@ -131,9 +131,9 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
|
||||
.increment = 0
|
||||
},
|
||||
.digest_size = {
|
||||
.min = 28,
|
||||
.min = 1,
|
||||
.max = 28,
|
||||
.increment = 0
|
||||
.increment = 1
|
||||
},
|
||||
.iv_size = { 0 }
|
||||
}, }
|
||||
@ -152,9 +152,9 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
|
||||
.increment = 1
|
||||
},
|
||||
.digest_size = {
|
||||
.min = 32,
|
||||
.min = 1,
|
||||
.max = 32,
|
||||
.increment = 0
|
||||
.increment = 1
|
||||
},
|
||||
.iv_size = { 0 }
|
||||
}, }
|
||||
@ -194,9 +194,9 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
|
||||
.increment = 1
|
||||
},
|
||||
.digest_size = {
|
||||
.min = 48,
|
||||
.min = 1,
|
||||
.max = 48,
|
||||
.increment = 0
|
||||
.increment = 1
|
||||
},
|
||||
.iv_size = { 0 }
|
||||
}, }
|
||||
@ -236,9 +236,9 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
|
||||
.increment = 1
|
||||
},
|
||||
.digest_size = {
|
||||
.min = 64,
|
||||
.min = 1,
|
||||
.max = 64,
|
||||
.increment = 0
|
||||
.increment = 1
|
||||
},
|
||||
.iv_size = { 0 }
|
||||
}, }
|
||||
|
Loading…
Reference in New Issue
Block a user