aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/crypto
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/crypto')
-rw-r--r--drivers/crypto/caam_jr/caam_jr.c4
-rw-r--r--drivers/crypto/caam_jr/caam_jr_uio.c10
-rw-r--r--drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c12
-rw-r--r--drivers/crypto/dpaa2_sec/hw/desc/pdcp.h4
-rw-r--r--drivers/crypto/dpaa_sec/dpaa_sec.c2
-rw-r--r--drivers/crypto/kasumi/meson.build8
-rw-r--r--drivers/crypto/meson.build2
-rw-r--r--drivers/crypto/openssl/rte_openssl_pmd.c12
-rw-r--r--drivers/crypto/qat/qat_sym_session.c3
-rw-r--r--drivers/crypto/snow3g/meson.build13
-rw-r--r--drivers/crypto/virtio/virtio_logs.h4
-rw-r--r--drivers/crypto/virtio/virtio_rxtx.c4
-rw-r--r--drivers/crypto/zuc/meson.build8
13 files changed, 55 insertions, 31 deletions
diff --git a/drivers/crypto/caam_jr/caam_jr.c b/drivers/crypto/caam_jr/caam_jr.c
index 190053ee..efc69b6e 100644
--- a/drivers/crypto/caam_jr/caam_jr.c
+++ b/drivers/crypto/caam_jr/caam_jr.c
@@ -311,7 +311,7 @@ caam_jr_prep_cdb(struct caam_jr_session *ses)
int32_t shared_desc_len = 0;
struct sec_cdb *cdb;
int err;
-#if RTE_BYTE_ORDER == RTE_BIG_ENDIAN
+#if CAAM_BYTE_ORDER == CORE_BYTE_ORDER
int swap = false;
#else
int swap = true;
@@ -798,7 +798,7 @@ build_auth_only_sg(struct rte_crypto_op *op, struct caam_jr_session *ses)
sg->len = cpu_to_caam32(ses->digest_length);
length += ses->digest_length;
} else {
- length -= ses->digest_length;
+ sg->len -= ses->digest_length;
}
/* last element*/
diff --git a/drivers/crypto/caam_jr/caam_jr_uio.c b/drivers/crypto/caam_jr/caam_jr_uio.c
index bf872a22..afd75c9a 100644
--- a/drivers/crypto/caam_jr/caam_jr_uio.c
+++ b/drivers/crypto/caam_jr/caam_jr_uio.c
@@ -362,8 +362,8 @@ free_job_ring(uint32_t uio_fd)
job_ring->register_base_addr,
(unsigned long)job_ring->map_size, strerror(errno));
} else
- CAAM_JR_DEBUG(" JR UIO memory unmapped at %p",
- job_ring->register_base_addr);
+ CAAM_JR_DEBUG("JR UIO memory is unmapped");
+
job_ring->register_base_addr = NULL;
}
@@ -445,7 +445,11 @@ sec_configure(void)
ret = file_read_first_line(SEC_UIO_DEVICE_SYS_ATTR_PATH,
dir->d_name, "name", uio_name);
CAAM_JR_INFO("sec device uio name: %s", uio_name);
- SEC_ASSERT(ret == 0, -1, "file_read_first_line failed");
+ if (ret != 0) {
+ CAAM_JR_ERR("file_read_first_line failed\n");
+ closedir(d);
+ return -1;
+ }
if (file_name_match_extract(uio_name,
SEC_UIO_DEVICE_NAME,
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index 34c14f77..a7973cc0 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -236,8 +236,8 @@ build_authenc_gcm_sg_fd(dpaa2_sec_session *sess,
/* Configure Output SGE for Encap/Decap */
DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf));
- DPAA2_SET_FLE_OFFSET(sge, mbuf->data_off + sym_op->aead.data.offset -
- auth_only_len);
+ DPAA2_SET_FLE_OFFSET(sge, mbuf->data_off +
+ RTE_ALIGN_CEIL(auth_only_len, 16) - auth_only_len);
sge->length = mbuf->data_len - sym_op->aead.data.offset + auth_only_len;
mbuf = mbuf->next;
@@ -400,8 +400,8 @@ build_authenc_gcm_fd(dpaa2_sec_session *sess,
/* Configure Output SGE for Encap/Decap */
DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(dst));
- DPAA2_SET_FLE_OFFSET(sge, sym_op->aead.data.offset +
- dst->data_off - auth_only_len);
+ DPAA2_SET_FLE_OFFSET(sge, dst->data_off +
+ RTE_ALIGN_CEIL(auth_only_len, 16) - auth_only_len);
sge->length = sym_op->aead.data.length + auth_only_len;
if (sess->dir == DIR_ENC) {
@@ -2864,7 +2864,7 @@ dpaa2_sec_security_session_destroy(void *dev __rte_unused,
rte_free(s->ctxt);
rte_free(s->cipher_key.data);
rte_free(s->auth_key.data);
- memset(sess, 0, sizeof(dpaa2_sec_session));
+ memset(s, 0, sizeof(dpaa2_sec_session));
set_sec_session_private_data(sess, NULL);
rte_mempool_put(sess_mp, sess_priv);
}
@@ -2913,7 +2913,7 @@ dpaa2_sec_sym_session_clear(struct rte_cryptodev *dev,
rte_free(s->ctxt);
rte_free(s->cipher_key.data);
rte_free(s->auth_key.data);
- memset(sess, 0, sizeof(dpaa2_sec_session));
+ memset(s, 0, sizeof(dpaa2_sec_session));
struct rte_mempool *sess_mp = rte_mempool_from_obj(sess_priv);
set_sym_session_private_data(sess, index, NULL);
rte_mempool_put(sess_mp, sess_priv);
diff --git a/drivers/crypto/dpaa2_sec/hw/desc/pdcp.h b/drivers/crypto/dpaa2_sec/hw/desc/pdcp.h
index 719ef605..fee84410 100644
--- a/drivers/crypto/dpaa2_sec/hw/desc/pdcp.h
+++ b/drivers/crypto/dpaa2_sec/hw/desc/pdcp.h
@@ -1,7 +1,5 @@
-/*
+/* SPDX-License-Identifier: BSD-3-Clause or GPL-2.0+
* Copyright 2008-2013 Freescale Semiconductor, Inc.
- *
- * SPDX-License-Identifier: BSD-3-Clause or GPL-2.0+
*/
#ifndef __DESC_PDCP_H__
diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c
index 8958fd06..10201c58 100644
--- a/drivers/crypto/dpaa_sec/dpaa_sec.c
+++ b/drivers/crypto/dpaa_sec/dpaa_sec.c
@@ -2166,7 +2166,7 @@ dpaa_sec_security_session_destroy(void *dev __rte_unused,
rte_free(s->cipher_key.data);
rte_free(s->auth_key.data);
- memset(sess, 0, sizeof(dpaa_sec_session));
+ memset(s, 0, sizeof(dpaa_sec_session));
set_sec_session_private_data(sess, NULL);
rte_mempool_put(sess_mp, sess_priv);
}
diff --git a/drivers/crypto/kasumi/meson.build b/drivers/crypto/kasumi/meson.build
index a09b0e25..9a8956a0 100644
--- a/drivers/crypto/kasumi/meson.build
+++ b/drivers/crypto/kasumi/meson.build
@@ -1,12 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Intel Corporation
-lib = cc.find_library('libsso_kasumi', required: false)
-if not lib.found()
+lib = cc.find_library('sso_kasumi', required: false)
+if not lib.found() or not cc.has_header('sso_kasumi.h')
build = false
-else
- ext_deps += lib
+ subdir_done()
endif
+ext_deps += lib
sources = files('rte_kasumi_pmd.c', 'rte_kasumi_pmd_ops.c')
deps += ['bus_vdev']
diff --git a/drivers/crypto/meson.build b/drivers/crypto/meson.build
index bf1bd928..83e78860 100644
--- a/drivers/crypto/meson.build
+++ b/drivers/crypto/meson.build
@@ -3,7 +3,7 @@
drivers = ['aesni_gcm', 'aesni_mb', 'caam_jr', 'ccp', 'dpaa_sec', 'dpaa2_sec',
'kasumi', 'mvsam', 'null', 'octeontx', 'openssl', 'qat', 'scheduler',
- 'virtio', 'zuc']
+ 'snow3g', 'virtio', 'zuc']
std_deps = ['cryptodev'] # cryptodev pulls in all other needed deps
config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c
index 11ea0d19..5b27bb91 100644
--- a/drivers/crypto/openssl/rte_openssl_pmd.c
+++ b/drivers/crypto/openssl/rte_openssl_pmd.c
@@ -1799,6 +1799,9 @@ process_openssl_modinv_op(struct rte_crypto_op *cop,
cop->status = RTE_CRYPTO_OP_STATUS_ERROR;
}
+ BN_clear(res);
+ BN_clear(base);
+
return 0;
}
@@ -1820,17 +1823,20 @@ process_openssl_modexp_op(struct rte_crypto_op *cop,
return -1;
}
- base = BN_bin2bn((const unsigned char *)op->modinv.base.data,
- op->modinv.base.length, base);
+ base = BN_bin2bn((const unsigned char *)op->modex.base.data,
+ op->modex.base.length, base);
if (BN_mod_exp(res, base, sess->u.e.exp,
sess->u.e.mod, sess->u.e.ctx)) {
- op->modinv.base.length = BN_bn2bin(res, op->modinv.base.data);
+ op->modex.base.length = BN_bn2bin(res, op->modex.base.data);
cop->status = RTE_CRYPTO_OP_STATUS_SUCCESS;
} else {
cop->status = RTE_CRYPTO_OP_STATUS_ERROR;
}
+ BN_clear(res);
+ BN_clear(base);
+
return 0;
}
diff --git a/drivers/crypto/qat/qat_sym_session.c b/drivers/crypto/qat/qat_sym_session.c
index 4d7ec01d..e147572e 100644
--- a/drivers/crypto/qat/qat_sym_session.c
+++ b/drivers/crypto/qat/qat_sym_session.c
@@ -242,7 +242,8 @@ qat_sym_session_configure_cipher(struct rte_cryptodev *dev,
session->qat_mode = ICP_QAT_HW_CIPHER_ECB_MODE;
break;
case RTE_CRYPTO_CIPHER_NULL:
- session->qat_mode = ICP_QAT_HW_CIPHER_ECB_MODE;
+ session->qat_cipher_alg = ICP_QAT_HW_CIPHER_ALGO_NULL;
+ session->qat_mode = ICP_QAT_HW_CIPHER_CTR_MODE;
break;
case RTE_CRYPTO_CIPHER_KASUMI_F8:
if (qat_sym_validate_kasumi_key(cipher_xform->key.length,
diff --git a/drivers/crypto/snow3g/meson.build b/drivers/crypto/snow3g/meson.build
new file mode 100644
index 00000000..c566a5f6
--- /dev/null
+++ b/drivers/crypto/snow3g/meson.build
@@ -0,0 +1,13 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2019 Intel Corporation
+
+lib = cc.find_library('sso_snow3g', required: false)
+if not lib.found() or not cc.has_header('sso_snow3g.h')
+ build = false
+ subdir_done()
+endif
+
+allow_experimental_apis = true
+ext_deps += lib
+sources = files('rte_snow3g_pmd.c', 'rte_snow3g_pmd_ops.c')
+deps += ['bus_vdev', 'cryptodev']
diff --git a/drivers/crypto/virtio/virtio_logs.h b/drivers/crypto/virtio/virtio_logs.h
index 26a286cf..1ee38193 100644
--- a/drivers/crypto/virtio/virtio_logs.h
+++ b/drivers/crypto/virtio/virtio_logs.h
@@ -7,8 +7,10 @@
#include <rte_log.h>
+extern int virtio_crypto_logtype_init;
+
#define PMD_INIT_LOG(level, fmt, args...) \
- rte_log(RTE_LOG_ ## level, RTE_LOGTYPE_PMD, \
+ rte_log(RTE_LOG_ ## level, virtio_crypto_logtype_init, \
"PMD: %s(): " fmt "\n", __func__, ##args)
#define PMD_INIT_FUNC_TRACE() PMD_INIT_LOG(DEBUG, " >>")
diff --git a/drivers/crypto/virtio/virtio_rxtx.c b/drivers/crypto/virtio/virtio_rxtx.c
index e32a1ecd..e9a63cb5 100644
--- a/drivers/crypto/virtio/virtio_rxtx.c
+++ b/drivers/crypto/virtio/virtio_rxtx.c
@@ -203,8 +203,8 @@ virtqueue_crypto_sym_enqueue_xmit(
uint16_t req_data_len = sizeof(struct virtio_crypto_op_data_req);
uint32_t indirect_vring_addr_offset = req_data_len +
sizeof(struct virtio_crypto_inhdr);
- uint32_t indirect_iv_addr_offset = indirect_vring_addr_offset +
- sizeof(struct vring_desc) * NUM_ENTRY_VIRTIO_CRYPTO_OP;
+ uint32_t indirect_iv_addr_offset =
+ offsetof(struct virtio_crypto_op_cookie, iv);
struct rte_crypto_sym_op *sym_op = cop->sym;
struct virtio_crypto_session *session =
(struct virtio_crypto_session *)get_sym_session_private_data(
diff --git a/drivers/crypto/zuc/meson.build b/drivers/crypto/zuc/meson.build
index b8ca7107..2b48072c 100644
--- a/drivers/crypto/zuc/meson.build
+++ b/drivers/crypto/zuc/meson.build
@@ -1,12 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Intel Corporation
-lib = cc.find_library('libsso_zuc', required: false)
-if not lib.found()
+lib = cc.find_library('sso_zuc', required: false)
+if not lib.found() or not cc.has_header('sso_zuc.h')
build = false
-else
- ext_deps += lib
+ subdir_done()
endif
+ext_deps += lib
sources = files('rte_zuc_pmd.c', 'rte_zuc_pmd_ops.c')
deps += ['bus_vdev']