- Moved dh operation type to dh operation struct.
This commit reflects changes to the asymmetric crypto API.

Signed-off-by: Arek Kusztal <arkadiuszx.kusz...@intel.com>
---
 drivers/crypto/openssl/rte_openssl_pmd.c     | 15 ++++++---------
 drivers/crypto/openssl/rte_openssl_pmd_ops.c |  1 -
 2 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c 
b/drivers/crypto/openssl/rte_openssl_pmd.c
index 2a3930df0a..c4ac767052 100644
--- a/drivers/crypto/openssl/rte_openssl_pmd.c
+++ b/drivers/crypto/openssl/rte_openssl_pmd.c
@@ -1692,12 +1692,12 @@ process_openssl_dh_op(struct rte_crypto_op *cop,
                struct openssl_asym_session *sess)
 {
        struct rte_crypto_dh_op_param *op = &cop->asym->dh;
+       struct rte_crypto_asym_op *asym_op = cop->asym;
        DH *dh_key = sess->u.dh.dh_key;
        BIGNUM *priv_key = NULL;
        int ret = 0;
 
-       if (sess->u.dh.key_op &
-                       (1 << RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE)) {
+       if (asym_op->dh.op_type == RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE) {
                /* compute shared secret using peer public key
                 * and current private key
                 * shared secret = peer_key ^ priv_key mod p
@@ -1753,10 +1753,8 @@ process_openssl_dh_op(struct rte_crypto_op *cop,
         * if user provides private key,
         * then first set DH with user provided private key
         */
-       if ((sess->u.dh.key_op &
-                       (1 << RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE)) &&
-                       !(sess->u.dh.key_op &
-                       (1 << RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE))) {
+       if (asym_op->dh.op_type == RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE &&
+                       op->priv_key.data) {
                /* generate public key using user-provided private key
                 * pub_key = g ^ priv_key mod p
                 */
@@ -1790,7 +1788,7 @@ process_openssl_dh_op(struct rte_crypto_op *cop,
                return 0;
        }
 
-       if (sess->u.dh.key_op & (1 << RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE)) {
+       if (asym_op->dh.op_type == RTE_CRYPTO_ASYM_KE_PUBLIC_KEY_GENERATE) {
                const BIGNUM *pub_key = NULL;
 
                OPENSSL_LOG(DEBUG, "%s:%d update public key\n",
@@ -1804,8 +1802,7 @@ process_openssl_dh_op(struct rte_crypto_op *cop,
                                op->pub_key.data);
        }
 
-       if (sess->u.dh.key_op &
-                       (1 << RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE)) {
+       if (asym_op->dh.op_type == RTE_CRYPTO_ASYM_KE_PRIVATE_KEY_GENERATE) {
                const BIGNUM *priv_key = NULL;
 
                OPENSSL_LOG(DEBUG, "%s:%d updated priv key\n",
diff --git a/drivers/crypto/openssl/rte_openssl_pmd_ops.c 
b/drivers/crypto/openssl/rte_openssl_pmd_ops.c
index a1be96bf1d..737ec5de80 100644
--- a/drivers/crypto/openssl/rte_openssl_pmd_ops.c
+++ b/drivers/crypto/openssl/rte_openssl_pmd_ops.c
@@ -999,7 +999,6 @@ static int openssl_set_asym_session_parameters(
                 * DH Priv key generate, or both
                 * public and private key generate
                 */
-               asym_session->u.dh.key_op = (1 << xform->dh.type);
                asym_session->u.dh.dh_key = dh;
                asym_session->xfrm_type = RTE_CRYPTO_ASYM_XFORM_DH;
                break;
-- 
2.13.6

Reply via email to