/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright 2021 NXP
+ * Copyright 2021-2022 NXP
*/
#include <rte_byteorder.h>
unsigned int i;
uint16_t auth_hdr_len = ofs.ofs.cipher.head -
ofs.ofs.auth.head;
- uint16_t auth_tail_len = ofs.ofs.auth.tail;
- uint32_t auth_only_len = (auth_tail_len << 16) | auth_hdr_len;
+ uint16_t auth_tail_len;
+ uint32_t auth_only_len;
int data_len = 0, auth_len = 0, cipher_len = 0;
for (i = 0; i < sgl->num; i++)
cipher_len = data_len - ofs.ofs.cipher.head - ofs.ofs.cipher.tail;
auth_len = data_len - ofs.ofs.auth.head - ofs.ofs.auth.tail;
+ auth_tail_len = auth_len - cipher_len - auth_hdr_len;
+ auth_only_len = (auth_tail_len << 16) | auth_hdr_len;
if (sgl->num > MAX_SG_ENTRIES) {
DPAA_SEC_DP_ERR("Cipher-Auth: Max sec segs supported is %d",
qm_sg_entry_set64(sg, dest_sgl->vec[i].iova);
sg->length = dest_sgl->vec[i].len;
}
+ sg->length -= ofs.ofs.cipher.tail;
} else {
qm_sg_entry_set64(sg, sgl->vec[0].iova);
sg->length = sgl->vec[0].len - ofs.ofs.cipher.head;
qm_sg_entry_set64(sg, sgl->vec[i].iova);
sg->length = sgl->vec[i].len;
}
+ sg->length -= ofs.ofs.cipher.tail;
}
if (is_encode(ses)) {