]> code.ossystems Code Review - openembedded-core.git/commitdiff
cryptodev-tests: port to openssl 1.1
authorAlexander Kanavin <alexander.kanavin@linux.intel.com>
Tue, 28 Aug 2018 10:23:13 +0000 (12:23 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 4 Sep 2018 10:03:31 +0000 (11:03 +0100)
This leaves openssh as the only recipe that requires openssl 1.0 (or libressl).

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-kernel/cryptodev/cryptodev-tests_1.9.bb
meta/recipes-kernel/cryptodev/files/0001-Port-tests-to-openssl-1.1.patch [new file with mode: 0644]

index 9afb3de217e39efc4b9dab9e62c5839ad64d6621..617db6cdd310f75e1eb930388b8173778efe49b3 100644 (file)
@@ -2,10 +2,11 @@ require cryptodev.inc
 
 SUMMARY = "A test suite for /dev/crypto device driver"
 
-DEPENDS += "openssl10"
+DEPENDS += "openssl"
 
 SRC_URI += " \
 file://0001-Add-the-compile-and-install-rules-for-cryptodev-test.patch \
+file://0001-Port-tests-to-openssl-1.1.patch \
 "
 
 EXTRA_OEMAKE='KERNEL_DIR="${STAGING_EXECPREFIXDIR}" PREFIX="${D}"'
diff --git a/meta/recipes-kernel/cryptodev/files/0001-Port-tests-to-openssl-1.1.patch b/meta/recipes-kernel/cryptodev/files/0001-Port-tests-to-openssl-1.1.patch
new file mode 100644 (file)
index 0000000..c969126
--- /dev/null
@@ -0,0 +1,103 @@
+From 2fe4bdeb8cdd0b0f46d9caed807812855d51ea56 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Wed, 28 Mar 2018 20:11:05 +0300
+Subject: [PATCH] Port tests to openssl 1.1
+
+Upstream-Status: Accepted [https://github.com/cryptodev-linux/cryptodev-linux/pull/36]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ tests/openssl_wrapper.c | 33 +++++++++++++++++++++++++++++++++
+ 1 file changed, 33 insertions(+)
+
+diff --git a/tests/openssl_wrapper.c b/tests/openssl_wrapper.c
+index 038c58f..dea2496 100644
+--- a/tests/openssl_wrapper.c
++++ b/tests/openssl_wrapper.c
+@@ -4,6 +4,7 @@
+ #include <openssl/aes.h>
+ #include <openssl/evp.h>
+ #include <openssl/hmac.h>
++#include <openssl/opensslv.h>
+ //#define DEBUG
+@@ -23,10 +24,17 @@ enum ctx_type {
+       ctx_type_md,
+ };
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++union openssl_ctx {
++      HMAC_CTX *hmac;
++      EVP_MD_CTX *md;
++};
++#else
+ union openssl_ctx {
+       HMAC_CTX hmac;
+       EVP_MD_CTX md;
+ };
++#endif
+ struct ctx_mapping {
+       __u32 ses;
+@@ -63,6 +71,16 @@ static void remove_mapping(__u32 ses)
+       switch (mapping->type) {
+       case ctx_type_none:
+               break;
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++      case ctx_type_hmac:
++              dbgp("%s: calling HMAC_CTX_free\n", __func__);
++              HMAC_CTX_free(mapping->ctx.hmac);
++              break;
++      case ctx_type_md:
++              dbgp("%s: calling EVP_MD_CTX_free\n", __func__);
++              EVP_MD_CTX_free(mapping->ctx.md);
++              break;
++#else
+       case ctx_type_hmac:
+               dbgp("%s: calling HMAC_CTX_cleanup\n", __func__);
+               HMAC_CTX_cleanup(&mapping->ctx.hmac);
+@@ -71,6 +89,7 @@ static void remove_mapping(__u32 ses)
+               dbgp("%s: calling EVP_MD_CTX_cleanup\n", __func__);
+               EVP_MD_CTX_cleanup(&mapping->ctx.md);
+               break;
++#endif
+       }
+       memset(mapping, 0, sizeof(*mapping));
+ }
+@@ -127,10 +146,17 @@ static int openssl_hmac(struct session_op *sess, struct crypt_op *cop)
+               mapping->ses = sess->ses;
+               mapping->type = ctx_type_hmac;
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++              ctx = mapping->ctx.hmac;
++
++              dbgp("calling HMAC_CTX_new");
++              ctx = HMAC_CTX_new();
++#else
+               ctx = &mapping->ctx.hmac;
+               dbgp("calling HMAC_CTX_init");
+               HMAC_CTX_init(ctx);
++#endif
+               dbgp("calling HMAC_Init_ex");
+               if (!HMAC_Init_ex(ctx, sess->mackey, sess->mackeylen,
+                               sess_to_evp_md(sess), NULL)) {
+@@ -172,10 +198,17 @@ static int openssl_md(struct session_op *sess, struct crypt_op *cop)
+               mapping->ses = sess->ses;
+               mapping->type = ctx_type_md;
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++              ctx = mapping->ctx.md;
++
++              dbgp("calling EVP_MD_CTX_new");
++              ctx = EVP_MD_CTX_new();
++#else
+               ctx = &mapping->ctx.md;
+               dbgp("calling EVP_MD_CTX_init");
+               EVP_MD_CTX_init(ctx);
++#endif
+               dbgp("calling EVP_DigestInit");
+               EVP_DigestInit(ctx, sess_to_evp_md(sess));
+       }