qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Peter Maydell <peter.maydell@linaro.org>
To: qemu-devel@nongnu.org
Subject: [PULL 04/20] tests/tcg/aarch64: Add pauth-3
Date: Thu, 23 Jan 2020 15:30:25 +0000	[thread overview]
Message-ID: <20200123153041.4248-5-peter.maydell@linaro.org> (raw)
In-Reply-To: <20200123153041.4248-1-peter.maydell@linaro.org>

From: Richard Henderson <richard.henderson@linaro.org>

This is the test vector from the QARMA paper, run through PACGA.

Suggested-by: Vincent Dehors <vincent.dehors@smile.fr>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20200116230809.19078-4-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 tests/tcg/aarch64/Makefile.softmmu-target |  5 ++-
 tests/tcg/aarch64/system/pauth-3.c        | 40 +++++++++++++++++++++++
 2 files changed, 44 insertions(+), 1 deletion(-)
 create mode 100644 tests/tcg/aarch64/system/pauth-3.c

diff --git a/tests/tcg/aarch64/Makefile.softmmu-target b/tests/tcg/aarch64/Makefile.softmmu-target
index 7b4eede3f07..f6b5121f5ce 100644
--- a/tests/tcg/aarch64/Makefile.softmmu-target
+++ b/tests/tcg/aarch64/Makefile.softmmu-target
@@ -61,4 +61,7 @@ run-memory-replay: memory-replay run-memory-record
 	   	  $(QEMU_OPTS) memory, \
 	  "$< on $(TARGET_NAME)")
 
-EXTRA_TESTS+=memory-record memory-replay
+run-pauth-3: pauth-3
+pauth-3: CFLAGS += -march=armv8.3-a
+
+EXTRA_TESTS+=memory-record memory-replay pauth-3
diff --git a/tests/tcg/aarch64/system/pauth-3.c b/tests/tcg/aarch64/system/pauth-3.c
new file mode 100644
index 00000000000..42eff4d5eae
--- /dev/null
+++ b/tests/tcg/aarch64/system/pauth-3.c
@@ -0,0 +1,40 @@
+#include <inttypes.h>
+#include <minilib.h>
+
+int main()
+{
+    /*
+     * Test vector from QARMA paper (https://eprint.iacr.org/2016/444.pdf)
+     * to verify one computation of the pauth_computepac() function,
+     * which uses sbox2.
+     *
+     * Use PACGA, because it returns the most bits from ComputePAC.
+     * We still only get the most significant 32-bits of the result.
+     */
+
+    static const uint64_t d[5] = {
+        0xfb623599da6e8127ull,
+        0x477d469dec0b8762ull,
+        0x84be85ce9804e94bull,
+        0xec2802d4e0a488e9ull,
+        0xc003b93999b33765ull & 0xffffffff00000000ull
+    };
+    uint64_t r;
+
+    asm("msr apgakeyhi_el1, %[w0]\n\t"
+        "msr apgakeylo_el1, %[k0]\n\t"
+        "pacga %[r], %[P], %[T]"
+        : [r] "=r"(r)
+        : [P] "r" (d[0]),
+          [T] "r" (d[1]),
+          [w0] "r" (d[2]),
+          [k0] "r" (d[3]));
+
+    if (r == d[4]) {
+        ml_printf("OK\n");
+        return 0;
+    } else {
+        ml_printf("FAIL: %lx != %lx\n", r, d[4]);
+        return 1;
+    }
+}
-- 
2.20.1



  parent reply	other threads:[~2020-01-23 18:22 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-23 15:30 [PULL 00/20] target-arm queue Peter Maydell
2020-01-23 15:30 ` [PULL 01/20] target/arm: add PMU feature to cortex-r5 and cortex-r5f Peter Maydell
2020-01-23 15:30 ` [PULL 02/20] target/arm: Fix PAuth sbox functions Peter Maydell
2020-01-23 15:30 ` [PULL 03/20] tests/tcg/aarch64: Fix compilation parameters for pauth-% Peter Maydell
2020-01-23 15:30 ` Peter Maydell [this message]
2020-01-23 15:30 ` [PULL 05/20] tests/tcg/aarch64: Add pauth-4 Peter Maydell
2020-01-23 15:30 ` [PULL 06/20] hw/acpi: Remove extra indent in ACPI GED hotplug cb Peter Maydell
2020-01-23 15:30 ` [PULL 07/20] hw/arm: Use helper function to trigger hotplug handler plug Peter Maydell
2020-01-23 15:30 ` [PULL 08/20] qemu-nbd: Convert invocation documentation to rST Peter Maydell
2020-01-23 15:30 ` [PULL 09/20] docs: Create stub system manual Peter Maydell
2020-01-23 15:30 ` [PULL 10/20] qemu-block-drivers: Convert to rST Peter Maydell
2020-01-23 15:30 ` [PULL 11/20] target/arm/arch_dump: Add SVE notes Peter Maydell
2020-01-23 15:30 ` [PULL 12/20] hw/misc/stm32f4xx_syscfg: Fix copy/paste error Peter Maydell
2020-01-23 15:30 ` [PULL 13/20] dma/pl330: Convert to support tracing Peter Maydell
2020-01-23 15:30 ` [PULL 14/20] hw/core/or-irq: Increase limit of or-lines to 48 Peter Maydell
2020-01-23 15:30 ` [PULL 15/20] hw/arm/exynos4210: Fix DMA initialization Peter Maydell
2020-01-23 15:30 ` [PULL 16/20] hw/char/exynos4210_uart: Convert to support tracing Peter Maydell
2020-01-23 15:30 ` [PULL 17/20] hw/char/exynos4210_uart: Implement post_load function Peter Maydell
2020-01-23 15:30 ` [PULL 18/20] hw/char/exynos4210_uart: Implement Rx FIFO level triggers and timeouts Peter Maydell
2020-01-23 15:30 ` [PULL 19/20] hw/char/exynos4210_uart: Add receive DMA support Peter Maydell
2020-01-23 15:30 ` [PULL 20/20] hw/arm/exynos4210: Connect serial port DMA busy signals with pl330 Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200123153041.4248-5-peter.maydell@linaro.org \
    --to=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).