From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, vincent.dehors@smile.fr,
alex.bennee@linaro.org, adrien.grassein@smile.fr
Subject: [PATCH 3/4] tests/tcg/aarch64: Add pauth-3
Date: Thu, 16 Jan 2020 13:08:08 -1000 [thread overview]
Message-ID: <20200116230809.19078-4-richard.henderson@linaro.org> (raw)
In-Reply-To: <20200116230809.19078-1-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>
---
tests/tcg/aarch64/system/pauth-3.c | 40 +++++++++++++++++++++++
tests/tcg/aarch64/Makefile.softmmu-target | 5 ++-
2 files changed, 44 insertions(+), 1 deletion(-)
create mode 100644 tests/tcg/aarch64/system/pauth-3.c
diff --git a/tests/tcg/aarch64/system/pauth-3.c b/tests/tcg/aarch64/system/pauth-3.c
new file mode 100644
index 0000000000..42eff4d5ea
--- /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;
+ }
+}
diff --git a/tests/tcg/aarch64/Makefile.softmmu-target b/tests/tcg/aarch64/Makefile.softmmu-target
index 7b4eede3f0..f6b5121f5c 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
--
2.20.1
next prev parent reply other threads:[~2020-01-16 23:09 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-16 23:08 [PATCH 0/4] target/arm: Fix ComputePAC (LP 1859713) Richard Henderson
2020-01-16 23:08 ` [PATCH 1/4] target/arm: Fix PAuth sbox functions Richard Henderson
2020-01-16 23:08 ` [PATCH 2/4] tests/tcg/aarch64: Fix compilation parameters for pauth-% Richard Henderson
2020-01-17 6:42 ` Philippe Mathieu-Daudé
2020-01-20 13:10 ` Peter Maydell
2020-01-16 23:08 ` Richard Henderson [this message]
2020-01-16 23:08 ` [PATCH 4/4] tests/tcg/aarch64: Add pauth-4 Richard Henderson
2020-01-17 11:41 ` [PATCH 0/4] target/arm: Fix ComputePAC (LP 1859713) no-reply
2020-01-20 13:12 ` 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=20200116230809.19078-4-richard.henderson@linaro.org \
--to=richard.henderson@linaro.org \
--cc=adrien.grassein@smile.fr \
--cc=alex.bennee@linaro.org \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=vincent.dehors@smile.fr \
/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).