| From de0b1bae6461f67243282555475f88b2384a1eb9 Mon Sep 17 00:00:00 2001 |
| From: Vincent Dehors <vincent.dehors@smile.fr> |
| Date: Thu, 23 Jan 2020 15:22:38 +0000 |
| Subject: [PATCH] target/arm: Fix PAuth sbox functions |
| |
| In the PAC computation, sbox was applied over wrong bits. |
| As this is a 4-bit sbox, bit index should be incremented by 4 instead of 16. |
| |
| Test vector from QARMA paper (https://eprint.iacr.org/2016/444.pdf) was |
| used to verify one computation of the pauth_computepac() function which |
| uses sbox2. |
| |
| Launchpad: https://bugs.launchpad.net/bugs/1859713 |
| Reviewed-by: Richard Henderson <richard.henderson@linaro.org> |
| Signed-off-by: Vincent DEHORS <vincent.dehors@smile.fr> |
| Signed-off-by: Adrien GRASSEIN <adrien.grassein@smile.fr> |
| Message-id: 20200116230809.19078-2-richard.henderson@linaro.org |
| Reviewed-by: Peter Maydell <peter.maydell@linaro.org> |
| Signed-off-by: Peter Maydell <peter.maydell@linaro.org> |
| |
| Upstream-Status: Backport [https://git.qemu.org/?p=qemu.git;a=patch;h=de0b1bae6461f67243282555475f88b2384a1eb9] |
| CVE: CVE-2020-10702 |
| Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com> |
| --- |
| target/arm/pauth_helper.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| diff --git a/target/arm/pauth_helper.c b/target/arm/pauth_helper.c |
| index d3194f2..0a5f41e 100644 |
| --- a/target/arm/pauth_helper.c |
| +++ b/target/arm/pauth_helper.c |
| @@ -89,7 +89,7 @@ static uint64_t pac_sub(uint64_t i) |
| uint64_t o = 0; |
| int b; |
| |
| - for (b = 0; b < 64; b += 16) { |
| + for (b = 0; b < 64; b += 4) { |
| o |= (uint64_t)sub[(i >> b) & 0xf] << b; |
| } |
| return o; |
| @@ -104,7 +104,7 @@ static uint64_t pac_inv_sub(uint64_t i) |
| uint64_t o = 0; |
| int b; |
| |
| - for (b = 0; b < 64; b += 16) { |
| + for (b = 0; b < 64; b += 4) { |
| o |= (uint64_t)inv_sub[(i >> b) & 0xf] << b; |
| } |
| return o; |
| -- |
| 1.8.3.1 |
| |