This workaround was needed before version 1.0.1f. Do not build it for
versions >= 1.1.

Fixes: d61f70b4c918 ("crypto/libcrypto: add driver for OpenSSL library")
Signed-off-by: Didier Pallard <didier.pall...@6wind.com>
Cc: sta...@dpdk.org
---
 drivers/crypto/openssl/rte_openssl_pmd.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/drivers/crypto/openssl/rte_openssl_pmd.c 
b/drivers/crypto/openssl/rte_openssl_pmd.c
index e00db0facba5..a11885df8255 100644
--- a/drivers/crypto/openssl/rte_openssl_pmd.c
+++ b/drivers/crypto/openssl/rte_openssl_pmd.c
@@ -1195,8 +1195,11 @@ process_openssl_auth_encryption_gcm(struct rte_mbuf 
*mbuf_src, int offset,
                int srclen, uint8_t *aad, int aadlen, uint8_t *iv,
                uint8_t *dst, uint8_t *tag, EVP_CIPHER_CTX *ctx)
 {
-       int len = 0, unused = 0;
+       int len = 0;
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       int unused = 0;
        uint8_t empty[] = {};
+#endif
 
        if (EVP_EncryptInit_ex(ctx, NULL, NULL, NULL, iv) <= 0)
                goto process_auth_encryption_gcm_err;
@@ -1210,9 +1213,11 @@ process_openssl_auth_encryption_gcm(struct rte_mbuf 
*mbuf_src, int offset,
                                srclen, ctx, 0))
                        goto process_auth_encryption_gcm_err;
 
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
        /* Workaround open ssl bug in version less then 1.0.1f */
        if (EVP_EncryptUpdate(ctx, empty, &unused, empty, 0) <= 0)
                goto process_auth_encryption_gcm_err;
+#endif
 
        if (EVP_EncryptFinal_ex(ctx, dst, &len) <= 0)
                goto process_auth_encryption_gcm_err;
@@ -1274,8 +1279,11 @@ process_openssl_auth_decryption_gcm(struct rte_mbuf 
*mbuf_src, int offset,
                int srclen, uint8_t *aad, int aadlen, uint8_t *iv,
                uint8_t *dst, uint8_t *tag, EVP_CIPHER_CTX *ctx)
 {
-       int len = 0, unused = 0;
+       int len = 0;
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       int unused = 0;
        uint8_t empty[] = {};
+#endif
 
        if (EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_GCM_SET_TAG, 16, tag) <= 0)
                goto process_auth_decryption_gcm_err;
@@ -1292,9 +1300,11 @@ process_openssl_auth_decryption_gcm(struct rte_mbuf 
*mbuf_src, int offset,
                                srclen, ctx, 0))
                        goto process_auth_decryption_gcm_err;
 
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
        /* Workaround open ssl bug in version less then 1.0.1f */
        if (EVP_DecryptUpdate(ctx, empty, &unused, empty, 0) <= 0)
                goto process_auth_decryption_gcm_err;
+#endif
 
        if (EVP_DecryptFinal_ex(ctx, dst, &len) <= 0)
                return -EFAULT;
-- 
2.30.2

Reply via email to