cryptodev-tests: port to openssl 1.1

This leaves openssh as the only recipe that requires openssl 1.0 (or libressl).

(From OE-Core rev: 8b3711f32f0e25961762cbc77ae2e10628ecdf07)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alexander Kanavin
2018-08-28 12:23:13 +02:00
committed by Richard Purdie
parent df15a4c914
commit 1343314af9
2 changed files with 105 additions and 1 deletions

View 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}"'

View File

@@ -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));
}