Files
cubelinux-kernel/tools/testing/selftests/arm64/pauth/exec_target.c
T
Greg Kroah-Hartman 598cf27219 Linux 6.19.3
Link: https://lore.kernel.org/r/20260217200002.683975158@linuxfoundation.org
Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
Tested-by: Takeshi Ogasawara <takeshi.ogasawara@futuring-girl.com>
Tested-by: Peter Schneider <pschneider1968@googlemail.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Salvatore Bonaccorso <carnil@debian.org>
Tested-by: Brett A C Sheffield <bacs@librecast.net>
Tested-by: Mark Brown <broonie@kernel.org>
Tested-by: Luna Jernberg <droidbittin@gmail.com>
Tested-by: Ronald Warsow <rwarsow@gmx.de>
Tested-by: Justin M. Forbes <jforbes@fedoraproject.org>
Tested-by: Ron Economos <re@w6rz.net>
Tested-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-02-19 16:33:27 +01:00

40 lines
883 B
C

// SPDX-License-Identifier: GPL-2.0
// Copyright (C) 2020 ARM Limited
#include <stdio.h>
#include <stdlib.h>
#include <sys/auxv.h>
#include "helper.h"
int main(void)
{
struct signatures signed_vals;
unsigned long hwcaps;
size_t val;
size_t size = fread(&val, sizeof(size_t), 1, stdin);
if (size != 1) {
fprintf(stderr, "Could not read input from stdin\n");
return EXIT_FAILURE;
}
/* don't try to execute illegal (unimplemented) instructions) caller
* should have checked this and keep worker simple
*/
hwcaps = getauxval(AT_HWCAP);
if (hwcaps & HWCAP_PACA) {
signed_vals.keyia = keyia_sign(val);
signed_vals.keyib = keyib_sign(val);
signed_vals.keyda = keyda_sign(val);
signed_vals.keydb = keydb_sign(val);
}
signed_vals.keyg = (hwcaps & HWCAP_PACG) ? keyg_sign(val) : 0;
fwrite(&signed_vals, sizeof(struct signatures), 1, stdout);
return 0;
}