[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 04/20] tests/tcg/aarch64: Add pauth-3
From: |
Peter Maydell |
Subject: |
[PULL 04/20] tests/tcg/aarch64: Add pauth-3 |
Date: |
Thu, 23 Jan 2020 15:30:25 +0000 |
From: Richard Henderson <address@hidden>
This is the test vector from the QARMA paper, run through PACGA.
Suggested-by: Vincent Dehors <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>
---
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
- [PULL 00/20] target-arm queue, Peter Maydell, 2020/01/23
- [PULL 01/20] target/arm: add PMU feature to cortex-r5 and cortex-r5f, Peter Maydell, 2020/01/23
- [PULL 04/20] tests/tcg/aarch64: Add pauth-3,
Peter Maydell <=
- [PULL 05/20] tests/tcg/aarch64: Add pauth-4, Peter Maydell, 2020/01/23
- [PULL 07/20] hw/arm: Use helper function to trigger hotplug handler plug, Peter Maydell, 2020/01/23
- [PULL 03/20] tests/tcg/aarch64: Fix compilation parameters for pauth-%, Peter Maydell, 2020/01/23
- [PULL 06/20] hw/acpi: Remove extra indent in ACPI GED hotplug cb, Peter Maydell, 2020/01/23
- [PULL 02/20] target/arm: Fix PAuth sbox functions, Peter Maydell, 2020/01/23
- [PULL 09/20] docs: Create stub system manual, Peter Maydell, 2020/01/23
- [PULL 08/20] qemu-nbd: Convert invocation documentation to rST, Peter Maydell, 2020/01/23
- [PULL 12/20] hw/misc/stm32f4xx_syscfg: Fix copy/paste error, Peter Maydell, 2020/01/23
- [PULL 14/20] hw/core/or-irq: Increase limit of or-lines to 48, Peter Maydell, 2020/01/23
- [PULL 13/20] dma/pl330: Convert to support tracing, Peter Maydell, 2020/01/23