18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/* Copyright (C) 2020 ARM Limited */ 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ci#ifndef _HELPER_H_ 58c2ecf20Sopenharmony_ci#define _HELPER_H_ 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci#include <stdlib.h> 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#define NKEYS 5 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_cistruct signatures { 128c2ecf20Sopenharmony_ci size_t keyia; 138c2ecf20Sopenharmony_ci size_t keyib; 148c2ecf20Sopenharmony_ci size_t keyda; 158c2ecf20Sopenharmony_ci size_t keydb; 168c2ecf20Sopenharmony_ci size_t keyg; 178c2ecf20Sopenharmony_ci}; 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_civoid pac_corruptor(void); 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci/* PAuth sign a value with key ia and modifier value 0 */ 228c2ecf20Sopenharmony_cisize_t keyia_sign(size_t val); 238c2ecf20Sopenharmony_cisize_t keyib_sign(size_t val); 248c2ecf20Sopenharmony_cisize_t keyda_sign(size_t val); 258c2ecf20Sopenharmony_cisize_t keydb_sign(size_t val); 268c2ecf20Sopenharmony_cisize_t keyg_sign(size_t val); 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci#endif 29