Blame SOURCES/libkcapi-1.1.1-test_Fix_AEAD_fuzz_test_for_big-endian_archs.patch

b09f25
From def2282fd28390f4a8afd0f43be6c3b3b1586f41 Mon Sep 17 00:00:00 2001
b09f25
From: Ondrej Mosnacek <omosnace@redhat.com>
b09f25
Date: Fri, 27 Jul 2018 10:53:00 +0200
b09f25
Subject: [PATCH] test: Fix AEAD fuzz test for big-endian archs
b09f25
b09f25
The stupid authenc() key format contains fields that need to be in the
b09f25
machine's endianity. Right now, they are hard-coded in the LE format.
b09f25
This patch makes them always be in the right format.
b09f25
---
b09f25
 test/kcapi-main.c | 19 +++++++++++--------
b09f25
 1 file changed, 11 insertions(+), 8 deletions(-)
b09f25
b09f25
diff --git a/test/kcapi-main.c b/test/kcapi-main.c
b09f25
index e24956c..d62c91a 100644
b09f25
--- a/test/kcapi-main.c
b09f25
+++ b/test/kcapi-main.c
b09f25
@@ -451,14 +451,17 @@ static int fuzz_aead(struct kcapi_cavs *cavs_test, unsigned long flags,
b09f25
 
b09f25
 		if (kcapi_aead_setkey(handle, key, 16)) {
b09f25
 			if (!strncmp(cavs_test->cipher, "authenc", 7)) {
b09f25
-				uint8_t *k = (uint8_t *)
b09f25
-					"\x08\x00\x01\x00\x00\x00\x00\x10"
b09f25
-					"\x00\x00\x00\x00\x00\x00\x00\x00"
b09f25
-					"\x00\x00\x00\x00\x00\x00\x00\x00"
b09f25
-					"\x00\x00\x00\x00\x06\xa9\x21\x40"
b09f25
-					"\x36\xb8\xa1\x5b\x51\x2e\x03\xd5"
b09f25
-					"\x34\x12\x00\x06";
b09f25
-				if (kcapi_aead_setkey(handle, k, 44)) {
b09f25
+				uint8_t k[44];
b09f25
+				memcpy(k, "\x00\x00\x00\x00\x00\x00\x00\x10"
b09f25
+					  "\x00\x00\x00\x00\x00\x00\x00\x00"
b09f25
+					  "\x00\x00\x00\x00\x00\x00\x00\x00"
b09f25
+					  "\x00\x00\x00\x00\x06\xa9\x21\x40"
b09f25
+					  "\x36\xb8\xa1\x5b\x51\x2e\x03\xd5"
b09f25
+					  "\x34\x12\x00\x06", sizeof(k));
b09f25
+				/* These need to be in machine's endianity: */
b09f25
+				*(uint16_t *)(k + 0) = 8;
b09f25
+				*(uint16_t *)(k + 2) = 1;
b09f25
+				if (kcapi_aead_setkey(handle, k, sizeof(k))) {
b09f25
 					printf("AEAD setkey failed\n");
b09f25
 					goto out;
b09f25
 				}