From patchwork Tue Jul 31 14:16:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ashish Gupta X-Patchwork-Id: 43466 X-Patchwork-Delegate: gakhil@marvell.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 827F71DB8; Tue, 31 Jul 2018 15:54:05 +0200 (CEST) Received: from NAM04-SN1-obe.outbound.protection.outlook.com (mail-eopbgr700044.outbound.protection.outlook.com [40.107.70.44]) by dpdk.org (Postfix) with ESMTP id B6BE8152A for ; Tue, 31 Jul 2018 15:54:03 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JhAlWhXO4/fd7UOE9P5G4RKQRAZdMZM3QTQ4Ghvizms=; b=KeDL6S9d0kKkxQPN0V9KAUlkJ+P4TyIe8JRSipurMZQJeYtjQ2VaF9pGTyEICo3XjIXagfBfDcMEXiA7kbMSL+ErXqf+1qzH0wxLl8j6VJPOljSaQWpz6e55gOkJSujPF34KF19adZIpiKrJeRrKcbY4FlWEUX6ykiOQMa6CNXA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Ashish.Gupta@cavium.com; Received: from hyd1agupta-dt.caveonetworks.com (115.113.156.2) by CY4PR07MB3062.namprd07.prod.outlook.com (2603:10b6:903:d1::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1017.14; Tue, 31 Jul 2018 13:54:00 +0000 From: Ashish Gupta To: pablo.de.lara.guarch@intel.com Cc: dev@dpdk.org, narayanaprasad.athreya@cavium.com, nidadavolu.murthy@cavium.com, Sunila Sahu , Shally Verma , Ashish Gupta Date: Tue, 31 Jul 2018 19:46:25 +0530 Message-Id: <20180731141625.20225-2-Ashish.Gupta@caviumnetworks.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180731141625.20225-1-Ashish.Gupta@caviumnetworks.com> References: <20180731141625.20225-1-Ashish.Gupta@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [115.113.156.2] X-ClientProxiedBy: MA1PR0101CA0013.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:21::23) To CY4PR07MB3062.namprd07.prod.outlook.com (2603:10b6:903:d1::15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a9becca6-58ed-485e-855c-08d5f6ed12a8 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:CY4PR07MB3062; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3062; 3:+GqN/JVAvmaejNsEi5EHYCK36Lph0MXv9XFvTNymYLjgVAt+gJwbRozc8j06p2mBKCyTLdN+RPsdBpUWud/mcgftRarKL+oLEygTVsbOW5VfgSlpFkvQoxzkfgmmQxNU2/3Q0f5qI0mPGf8pctKLDJ2aV+mruLrf6NSMOKfJL4XUBxZqaEYjksCW5jHC51XZ15NudN18aMdYIN82JZzVuSHucgdwNu6IE+igGfUNcP1xU2bFrDvqzAuIG1pG+WfI; 25:J0Q8qnCPU7y3rI6EeW9GnArG0AAkxpr+EpBY47LdWyst0gId9Y/w8/QW2XezHRzsvruQ9zU43FssbFyVeX/kXvdXDAqPfzFtv2xupBFmkMiI464xjK6IADRhTUTfcIoxGoUHLICGA/sr8Z137YLxHFV/tG6ic1w8uMaq9dhs6Ty7imxOolhJAflcb7Edu9a8nhGGbHs1NQprNAMwWEPd7jV1v5XBYJwly0ZEe+V4+NUJIUIua+iZVo5D8QyJf4U2zKM84qySSH4asYBGk8k/FY7x+w2vzZf/lST4YpUd0OREWaW0OAhC0/oqBdRAqf2gzrsumdoT20SjNrq6E7gBvw==; 31:g4nVZQ2cu0MeNO1XzZyrYZMomzI1gJX6hUmxlNxSnZZ3+gho4Nf1qBL27KP5QuM+zaFMWZWOrcsdo6T37hRAnmVuqlOab4c4jyARcITl8PV3QwPZvMvPJNdc/C7wrx2vGcU9bxnu+uIrnb1/jhVM7YvebY8XEesbulj3ilaKpgjCZs655Q33ADcQ37brI7VwoVl0EAKmd719QXk8QPmyq9uqsJJXZ9U4+shLL8++l38= X-MS-TrafficTypeDiagnostic: CY4PR07MB3062: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3062; 20:pffQq2b8XIFqWPGMGn1z3nUPvFljzQH8zzMXue9EpgLs7KtlwLJYNga+c2e/4u6+aFS2y5shzTmX4fMNefJKQKAcGGWOccfkGEC2jWaVV15yU+BjEdtd2V7ShEwu4fLD7m2CRqRem47ZjsK+Cw3myqJy9y8WPfgrwJpYfVt0up5z/UHZGyYnRYg1Z2GDz9t/+OAl0dYpCQhFv4PAQb+EsPyUN4FrnYZ+3xyaIXwSwaISKsGih2gpZSZ2DPEFKM9eXbrRLdNvoqD2F9J48KUwdzQDCJ/06ZZAiTxY3KAQjKtLGLYfJWMwbXaRVa4dNE48O8CVSet3e0h7TZcw8mABQufDTw6HuwcCxZynXuJhTZYKMoR10bLO5cYyNL1az3+qN3peQCzuWoA7LxkMtJ8Ka4eZUZRljB2UeS/mzOgKqJKbsxlxknW59KrRWLV9oIcTgpgLd3Zroz824hkzx1Vw0P+3chp6do+6Knl5WgR0be0Tl6p+EatkxMe18IDu7IK8BLg7hWNy+dMvaaf3TQUHG0vtSDGR9CPymav21CnR6GCtD/rXPGIfeytvaC9z1cZ94PnI8cKoG1gQZCQZQJP2mSNZRfWedzDD7BzYtWzeoaE=; 4:z4d7pVF/nsyE330qUuMzuJC0EwYmIImGcKfaxgbrmstmIHTdKFWNkFKCQGg/HWhxozgG50uAIP4d3LoIFU+OVpAN+nmQ6hTdWfxgiov6u0JbxwWI0LGGvmRfkWVfC85Y1kAQncKEuMhrSED7h8y9wU4MeWMx1Sq16EfdPTb/7ACLvp78YyqolfCgS6dZYvePcI67oIt9BXzkusvJ6wfr1hGWyB98+E51bOxvgK0cqxbtFBC+B6iGf+1HbKvZfX9rjPPl3gDt3OgXv9OtvjK/hwA6RMiXvCw1K2h/9ohp+suevIxdnguzmNomCk7BzyQk X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(3231311)(944501410)(52105095)(3002001)(10201501046)(149027)(150027)(6041310)(20161123562045)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(6072148)(201708071742011)(7699016); SRVR:CY4PR07MB3062; BCL:0; PCL:0; RULEID:; SRVR:CY4PR07MB3062; X-Forefront-PRVS: 0750463DC9 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(136003)(346002)(376002)(366004)(39860400002)(199004)(189003)(8936002)(72206003)(2361001)(6486002)(5660300001)(6666003)(6916009)(305945005)(47776003)(66066001)(53936002)(8676002)(3846002)(81156014)(81166006)(50226002)(1076002)(478600001)(6116002)(107886003)(68736007)(4326008)(50466002)(36756003)(6506007)(386003)(25786009)(486006)(69596002)(6512007)(2906002)(48376002)(106356001)(476003)(16586007)(54906003)(11346002)(53416004)(446003)(7736002)(316002)(2351001)(42882007)(97736004)(26005)(51416003)(16526019)(2616005)(52116002)(956004)(105586002)(186003)(76176011); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3062; H:hyd1agupta-dt.caveonetworks.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3062; 23:7g5DApRQWtz+9wK1+tCbvH42d7132aqogAGBkhdXr?= y8v01IlPkE2YuO2MbyBAe0uJfEVl7kE2BQxme5VqYJBu1DGf+tnVWUMKXYzqY9CjHztpXjQWZVYsY4JrJX4/dBExYLa1NN6Mjk/c88eIBN4EDzP89c/xy6Lx77oozwpr9ltmQqFiJzvT6YbONcRO/QxUV2Z9I/9ePgICT1wv1OuUkpYKE8Q5D6juKmWBDQL/ippopeyE2x1OmrlrjuPHz2HK0YLnHSsA5bRx3V4CpawAAM+Krmf788RMVsEf9W2ucux8vvWDY+SrAZAiTD2cGWPo0veNKmNm7eQZd9Nc0kNbBYQ03HYb0VJc1M6lMExE9khk4hSsT+mXF7Iy0gaxna20tIr0Cy41NIclpO7kVdNo5+/INlCpv5wJPHTvoqW/jdHnlTKUbm0wTsddkkR4wMbBM1UOxVorCNHHNAWlIzsKde/hP0bNhlFqRYIzVwy4MJCN6/oiXXlfvNRsxWOSHmD8oxVVDffTzBhXNqni5EphES3BA0XH33MGZ8TM1uppRK8BEJs7tlf3npUQADe8lhOu23zQRbyYzeyfkK71QKJgqIOdTaGEoB2WmRvjHmLwQUwNewj+rP3JyC0Ul1RoHKKd7NVpXx94YTtbG9S08Z76Msyn/rBmUfzcpwPxh/n0rHVorI2DFCkYyR3utq9EAVsAHNtCX+vozPRealfsg0oYts7jPn2o3cAHdRsmRIiZBZARHY5dwmBGHlt1GFamqW7FWHGpMI8ctvmldh1qijn8NskMTsa3y4g4ICWk8xfl0YNL88J2VyTn3CusZCYHa+9bqDOWCdpLiQ8izI8bzv/pOjuf5ODHlSyf80jBzxZPls0pWecUlfKv58Yrg6qjMhKxzur8EBraCDm2S9lqWVFpJhNUSejVvG8Sz/cSO9mwjG3Lfi2iPvN9fKl4HDjwmnVEgZOkonrNNT/mh/W6zZcHF3XPiVlVWm+9Hqr0+b86idID5Sa62J42Q0So1D/5dtGkKc5qXKFIY/yUtZx9fK1WVSzXsO0CRkX9M/QyW5hdUwl/9S1eyl/AKalKFRGG0b6PWES6ySs5tQWmT31Wrkl/AhdKP8SITbO1vgGD/CO+opuBfXLxuek76pXOMiOrAHECjOlGU3DsVRUhsvzIIzqPvvK7CBLuwUqgt4hF6OMNetmgyoya326ve1dV9ERMbsngZ9x1by755LOt/YYLSeRdGXwMYgh3V4yWVVIkfxwHTycqPHFiTseh0z06CEAa/ZWBpVoyoN8x1ML+kfyPb73Gl0eChbqDsPfeImuCn2zNGP1LRq5lb5MgkHjlEoJrlkX X-Microsoft-Antispam-Message-Info: esuGpZ8AJa0j8GT4jeo4NsmEi9ki33ASK46Jdxki0aiLIsD0Ze+FScZtKWTMpYI4wyBUvzCqHQtKLsplek6Qk9RESsWLRPWyd20SlhWhPWXDxaiKb+1Hj+QpRCdUcDtp+UV4IN88TDuYoOGCCUq6VLfcjxDCFuGRyxnJYh3NzUihKKt02ufyknRr4uMAe56mj0iqbtUgcly6OCqmQ9l03BJ9Zf6FjY35K0ze5sDl4I3pnW+kE1+sMiRbZiGXLe6TutLWj91tDdkVdEjuixgCC9dKBeeBtRcaX7cv7VEyx1jYitjC002iLORti8JeIfja6rXxkCniNsWA7ecM4bL1ExERxYJGn7eJ9ulxfty8kNA= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3062; 6:bQO3kLb1KmxsyUeGt7LNHEJcOCkLvchu9/dBJ2ox0Y/XfAkyEpFyYKaRAJ0f31Y6Uo88SzMGxY2qzGrxsrqPL/rJVV5XfbxlM49th5DvdzCCQR7gN4Gvi1k5vGIp7C9atcni9eNmFsFUanBTh8c8b/fxYM96d7Sjvm3WqQlQV7x1ZTIn1vpr6U6HcpK/LJ56TVGTxNui6JEthhHVVLsAk4Zc1IPx8mXWbbIVNxcPZNH0vK2Ycc7SPp3KxTaTF4dDwEvW/XfpJUKYBw8FbTuMojyzFhvmVXKCz1+MK6kH//xlyPPaw5zoNaIXq38nK8M5267p6/c81Fi5+4r3Sifp0SBQnCHaFMhMpZIa7vG0rV9jjFLIWQ3/yGXvgFvQ62N1+VBwKlXnayaJhHDy76gE0NW+7bmGelMvDjE3jwqWB7wF0yV6k4SmB4FNEF/s1lWCv+xanOxE0On14k8B589IFA==; 5:WRsCOEwj0yPmPPr2eL5I7A1KI+kaHy6ZicwMa5w9IyurP3xMTARfOe519tUSNorK484VpzQP+/r3mvluql3kyIUqKNvdxnrn4cxKz9UbOFgSvXwCNLHz+otxIwetfR1e5k8O5MTsphDpFm7GH1Grl+5K/TSWIgu3KsTJin9WU8k=; 7:oIXjAtLSDMfjCsieIdgPu7WbgnqaVtyw0lxjbe1b5NnvWfajU42tZbpEp0SYBKZuDY4btYDhElZhg6zY9fRZ2DyXf9/CeS/qGusosryyuI2BmWRE+J9kLWKxr6eSEAlQB/3+MNwUSNrTciXMZ9aFvbZsd30Ldw1KtcapKkROQzzW/oksiR2hYTyUjEQjbyU8r1dp1jlfBZXXq+Xi6nDR1TpydotLfva4PM9AdAguxNKXKNl6Pxh5VK4VSX4KtMim SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jul 2018 13:54:00.0540 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a9becca6-58ed-485e-855c-08d5f6ed12a8 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3062 Subject: [dpdk-dev] [PATCH v1 1/1] crypto/openssl: replace macros by static inline functions X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Replace macros by static inline functions in openssl version compatibility layer Signed-off-by: Sunila Sahu Signed-off-by: Shally Verma Signed-off-by: Ashish Gupta Acked-by: Akhil Goyal --- drivers/crypto/openssl/compat.h | 265 ++++++++++++++++++--------- drivers/crypto/openssl/rte_openssl_pmd.c | 10 +- drivers/crypto/openssl/rte_openssl_pmd_ops.c | 12 +- 3 files changed, 188 insertions(+), 99 deletions(-) diff --git a/drivers/crypto/openssl/compat.h b/drivers/crypto/openssl/compat.h index 45f9a33dc..eecb7d369 100644 --- a/drivers/crypto/openssl/compat.h +++ b/drivers/crypto/openssl/compat.h @@ -7,101 +7,190 @@ #if (OPENSSL_VERSION_NUMBER < 0x10100000L) -#define set_rsa_params(rsa, p, q, ret) \ - do {rsa->p = p; rsa->q = q; ret = 0; } while (0) - -#define set_rsa_crt_params(rsa, dmp1, dmq1, iqmp, ret) \ - do { \ - rsa->dmp1 = dmp1; \ - rsa->dmq1 = dmq1; \ - rsa->iqmp = iqmp; \ - ret = 0; \ - } while (0) - -#define set_rsa_keys(rsa, n, e, d, ret) \ - do { \ - rsa->n = n; rsa->e = e; rsa->d = d; ret = 0; \ - } while (0) - -#define set_dh_params(dh, p, g, ret) \ - do { \ - dh->p = p; \ - dh->q = NULL; \ - dh->g = g; \ - ret = 0; \ - } while (0) - -#define set_dh_priv_key(dh, priv_key, ret) \ - do { dh->priv_key = priv_key; ret = 0; } while (0) - -#define set_dsa_params(dsa, p, q, g, ret) \ - do { dsa->p = p; dsa->q = q; dsa->g = g; ret = 0; } while (0) - -#define get_dh_pub_key(dh, pub_key) \ - (pub_key = dh->pub_key) - -#define get_dh_priv_key(dh, priv_key) \ - (priv_key = dh->priv_key) - -#define set_dsa_sign(sign, r, s) \ - do { sign->r = r; sign->s = s; } while (0) - -#define get_dsa_sign(sign, r, s) \ - do { r = sign->r; s = sign->s; } while (0) - -#define set_dsa_keys(dsa, pub, priv, ret) \ - do { dsa->pub_key = pub; dsa->priv_key = priv; ret = 0; } while (0) - -#define set_dsa_pub_key(dsa, pub_key) \ - (dsa->pub_key = pub_key) - -#define get_dsa_priv_key(dsa, priv_key) \ - (priv_key = dsa->priv_key) +static __rte_always_inline int +set_rsa_params(RSA *rsa, BIGNUM *p, BIGNUM *q) +{ + rsa->p = p; + rsa->q = q; + return 0; +} + +static __rte_always_inline int +set_rsa_crt_params(RSA *rsa, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp) +{ + rsa->dmp1 = dmp1; + rsa->dmq1 = dmq1; + rsa->iqmp = iqmp; + return 0; +} + +static __rte_always_inline int +set_rsa_keys(RSA *rsa, BIGNUM *n, BIGNUM *e, BIGNUM *d) +{ + rsa->n = n; + rsa->e = e; + rsa->d = d; + return 0; +} + +static __rte_always_inline int +set_dh_params(DH *dh, BIGNUM *p, BIGNUM *g) +{ + dh->p = p; + dh->q = NULL; + dh->g = g; + return 0; +} + +static __rte_always_inline int +set_dh_priv_key(DH *dh, BIGNUM *priv_key) +{ + dh->priv_key = priv_key; + return 0; +} + +static __rte_always_inline int +set_dsa_params(DSA *dsa, BIGNUM *p, BIGNUM *q, BIGNUM *g) +{ + dsa->p = p; + dsa->q = q; + dsa->g = g; + return 0; +} + +static __rte_always_inline void +get_dh_pub_key(DH *dh, const BIGNUM **pub_key) +{ + *pub_key = dh->pub_key; +} + +static __rte_always_inline void +get_dh_priv_key(DH *dh, const BIGNUM **priv_key) +{ + *priv_key = dh->priv_key; +} + +static __rte_always_inline void +set_dsa_sign(DSA_SIG *sign, BIGNUM *r, BIGNUM *s) +{ + sign->r = r; + sign->s = s; +} + +static __rte_always_inline void +get_dsa_sign(DSA_SIG *sign, const BIGNUM **r, const BIGNUM **s) +{ + *r = sign->r; + *s = sign->s; +} + +static __rte_always_inline int +set_dsa_keys(DSA *dsa, BIGNUM *pub, BIGNUM *priv) +{ + dsa->pub_key = pub; + dsa->priv_key = priv; + return 0; +} + +static __rte_always_inline void +set_dsa_pub_key(DSA *dsa, BIGNUM *pub) +{ + dsa->pub_key = pub; +} + +static __rte_always_inline void +get_dsa_priv_key(DSA *dsa, BIGNUM **priv_key) +{ + *priv_key = dsa->priv_key; +} #else -#define set_rsa_params(rsa, p, q, ret) \ - (ret = !RSA_set0_factors(rsa, p, q)) +static __rte_always_inline int +set_rsa_params(RSA *rsa, BIGNUM *p, BIGNUM *q) +{ + return !(RSA_set0_factors(rsa, p, q)); +} -#define set_rsa_crt_params(rsa, dmp1, dmq1, iqmp, ret) \ - (ret = !RSA_set0_crt_params(rsa, dmp1, dmq1, iqmp)) +static __rte_always_inline int +set_rsa_crt_params(RSA *rsa, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp) +{ + return !(RSA_set0_crt_params(rsa, dmp1, dmq1, iqmp)); +} /* n, e must be non-null, d can be NULL */ -#define set_rsa_keys(rsa, n, e, d, ret) \ - (ret = !RSA_set0_key(rsa, n, e, d)) - -#define set_dh_params(dh, p, g, ret) \ - (ret = !DH_set0_pqg(dh, p, NULL, g)) - -#define set_dh_priv_key(dh, priv_key, ret) \ - (ret = !DH_set0_key(dh, NULL, priv_key)) - -#define get_dh_pub_key(dh, pub_key) \ - (DH_get0_key(dh_key, &pub_key, NULL)) - -#define get_dh_priv_key(dh, priv_key) \ - (DH_get0_key(dh_key, NULL, &priv_key)) - -#define set_dsa_params(dsa, p, q, g, ret) \ - (ret = !DSA_set0_pqg(dsa, p, q, g)) - -#define set_dsa_priv_key(dsa, priv_key) \ - (DSA_set0_key(dsa, NULL, priv_key)) - -#define set_dsa_sign(sign, r, s) \ - (DSA_SIG_set0(sign, r, s)) - -#define get_dsa_sign(sign, r, s) \ - (DSA_SIG_get0(sign, &r, &s)) - -#define set_dsa_keys(dsa, pub, priv, ret) \ - (ret = !DSA_set0_key(dsa, pub, priv)) - -#define set_dsa_pub_key(dsa, pub_key) \ - (DSA_set0_key(dsa, pub_key, NULL)) -#define get_dsa_priv_key(dsa, priv_key) \ - (DSA_get0_key(dsa, NULL, &priv_key)) +static __rte_always_inline int +set_rsa_keys(RSA *rsa, BIGNUM *n, BIGNUM *e, BIGNUM *d) +{ + return !(RSA_set0_key(rsa, n, e, d)); +} + +static __rte_always_inline int +set_dh_params(DH *dh, BIGNUM *p, BIGNUM *g) +{ + return !(DH_set0_pqg(dh, p, NULL, g)); +} + +static __rte_always_inline int +set_dh_priv_key(DH *dh, BIGNUM *priv_key) +{ + return !(DH_set0_key(dh, NULL, priv_key)); +} + +static __rte_always_inline void +get_dh_pub_key(DH *dh_key, const BIGNUM **pub_key) +{ + DH_get0_key(dh_key, pub_key, NULL); +} + +static __rte_always_inline void +get_dh_priv_key(DH *dh_key, const BIGNUM **priv_key) +{ + DH_get0_key(dh_key, NULL, priv_key); +} + +static __rte_always_inline int +set_dsa_params(DSA *dsa, BIGNUM *p, BIGNUM *q, BIGNUM *g) +{ + return !(DSA_set0_pqg(dsa, p, q, g)); +} + +static __rte_always_inline void +set_dsa_priv_key(DSA *dsa, BIGNUM *priv_key) +{ + DSA_set0_key(dsa, NULL, priv_key); +} + +static __rte_always_inline void +set_dsa_sign(DSA_SIG *sign, BIGNUM *r, BIGNUM *s) +{ + DSA_SIG_set0(sign, r, s); +} + +static __rte_always_inline void +get_dsa_sign(DSA_SIG *sign, const BIGNUM **r, const BIGNUM **s) +{ + DSA_SIG_get0(sign, r, s); +} + +static __rte_always_inline int +set_dsa_keys(DSA *dsa, BIGNUM *pub, BIGNUM *priv) +{ + return !(DSA_set0_key(dsa, pub, priv)); +} + +static __rte_always_inline void +set_dsa_pub_key(DSA *dsa, BIGNUM *pub_key) +{ + DSA_set0_key(dsa, pub_key, NULL); +} + +static __rte_always_inline void +get_dsa_priv_key(DSA *dsa, const BIGNUM **priv_key) +{ + DSA_get0_key(dsa, NULL, priv_key); +} #endif /* version < 10100000 */ diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c b/drivers/crypto/openssl/rte_openssl_pmd.c index 7d263aba3..7cf42199c 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd.c +++ b/drivers/crypto/openssl/rte_openssl_pmd.c @@ -1564,7 +1564,7 @@ process_openssl_dsa_sign_op(struct rte_crypto_op *cop, cop->status = RTE_CRYPTO_OP_STATUS_ERROR; } else { const BIGNUM *r = NULL, *s = NULL; - get_dsa_sign(sign, r, s); + get_dsa_sign(sign, &r, &s); op->r.length = BN_bn2bin(r, op->r.data); op->s.length = BN_bn2bin(s, op->s.data); @@ -1666,7 +1666,7 @@ process_openssl_dh_op(struct rte_crypto_op *cop, cop->status = RTE_CRYPTO_OP_STATUS_NOT_PROCESSED; return -1; } - set_dh_priv_key(dh_key, priv_key, ret); + ret = set_dh_priv_key(dh_key, priv_key); if (ret) { OPENSSL_LOG(ERR, "Failed to set private key\n"); cop->status = RTE_CRYPTO_OP_STATUS_ERROR; @@ -1715,7 +1715,7 @@ process_openssl_dh_op(struct rte_crypto_op *cop, cop->status = RTE_CRYPTO_OP_STATUS_NOT_PROCESSED; return -1; } - set_dh_priv_key(dh_key, priv_key, ret); + ret = set_dh_priv_key(dh_key, priv_key); if (ret) { OPENSSL_LOG(ERR, "Failed to set private key\n"); cop->status = RTE_CRYPTO_OP_STATUS_ERROR; @@ -1743,7 +1743,7 @@ process_openssl_dh_op(struct rte_crypto_op *cop, __func__, __LINE__); /* get the generated keys */ - get_dh_pub_key(dh_key, pub_key); + get_dh_pub_key(dh_key, &pub_key); /* output public key */ op->pub_key.length = BN_bn2bin(pub_key, @@ -1758,7 +1758,7 @@ process_openssl_dh_op(struct rte_crypto_op *cop, __func__, __LINE__); /* get the generated keys */ - get_dh_priv_key(dh_key, priv_key); + get_dh_priv_key(dh_key, &priv_key); /* provide generated private key back to user */ op->priv_key.length = BN_bn2bin(priv_key, diff --git a/drivers/crypto/openssl/rte_openssl_pmd_ops.c b/drivers/crypto/openssl/rte_openssl_pmd_ops.c index de2284390..4ad8fa1f8 100644 --- a/drivers/crypto/openssl/rte_openssl_pmd_ops.c +++ b/drivers/crypto/openssl/rte_openssl_pmd_ops.c @@ -875,14 +875,14 @@ static int openssl_set_asym_session_parameters( RSA_free(rsa); goto err_rsa; } - set_rsa_params(rsa, p, q, ret); + ret = set_rsa_params(rsa, p, q); if (ret) { OPENSSL_LOG(ERR, "failed to set rsa params\n"); RSA_free(rsa); goto err_rsa; } - set_rsa_crt_params(rsa, dmp1, dmq1, iqmp, ret); + ret = set_rsa_crt_params(rsa, dmp1, dmq1, iqmp); if (ret) { OPENSSL_LOG(ERR, "failed to set crt params\n"); @@ -896,7 +896,7 @@ static int openssl_set_asym_session_parameters( } } - set_rsa_keys(rsa, n, e, d, ret); + ret = set_rsa_keys(rsa, n, e, d); if (ret) { OPENSSL_LOG(ERR, "Failed to load rsa keys\n"); RSA_free(rsa); @@ -1005,7 +1005,7 @@ static int openssl_set_asym_session_parameters( "failed to allocate resources\n"); goto err_dh; } - set_dh_params(dh, p, g, ret); + ret = set_dh_params(dh, p, g); if (ret) { DH_free(dh); goto err_dh; @@ -1087,7 +1087,7 @@ static int openssl_set_asym_session_parameters( goto err_dsa; } - set_dsa_params(dsa, p, q, g, ret); + ret = set_dsa_params(dsa, p, q, g); if (ret) { DSA_free(dsa); OPENSSL_LOG(ERR, "Failed to dsa params\n"); @@ -1101,7 +1101,7 @@ static int openssl_set_asym_session_parameters( * both versions */ /* just set dummy public for very 1st call */ - set_dsa_keys(dsa, pub_key, priv_key, ret); + ret = set_dsa_keys(dsa, pub_key, priv_key); if (ret) { DSA_free(dsa); OPENSSL_LOG(ERR, "Failed to set keys\n");