13d0407baSopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 23d0407baSopenharmony_ci#undef TRACE_SYSTEM 33d0407baSopenharmony_ci#define TRACE_SYSTEM fips140 43d0407baSopenharmony_ci#define TRACE_INCLUDE_PATH trace/hooks 53d0407baSopenharmony_ci 63d0407baSopenharmony_ci#if !defined(_TRACE_HOOK_FIPS140_H) || defined(TRACE_HEADER_MULTI_READ) 73d0407baSopenharmony_ci#define _TRACE_HOOK_FIPS140_H 83d0407baSopenharmony_ci#include <linux/tracepoint.h> 93d0407baSopenharmony_ci#include <trace/hooks/vendor_hooks.h> 103d0407baSopenharmony_ci 113d0407baSopenharmony_cistruct crypto_aes_ctx; 123d0407baSopenharmony_ci 133d0407baSopenharmony_ci/* 143d0407baSopenharmony_ci * These hooks exist only for the benefit of the FIPS140 crypto module, which 153d0407baSopenharmony_ci * uses them to swap out the underlying implementation with one that is integrity 163d0407baSopenharmony_ci * checked as per FIPS 140 requirements. No other uses are allowed or 173d0407baSopenharmony_ci * supported. 183d0407baSopenharmony_ci */ 193d0407baSopenharmony_ci 203d0407baSopenharmony_ciDECLARE_HOOK(android_vh_sha256, 213d0407baSopenharmony_ci TP_PROTO(const u8 *data, 223d0407baSopenharmony_ci unsigned int len, 233d0407baSopenharmony_ci u8 *out, 243d0407baSopenharmony_ci int *hook_inuse), 253d0407baSopenharmony_ci TP_ARGS(data, len, out, hook_inuse)); 263d0407baSopenharmony_ci 273d0407baSopenharmony_ciDECLARE_HOOK(android_vh_aes_expandkey, 283d0407baSopenharmony_ci TP_PROTO(struct crypto_aes_ctx *ctx, 293d0407baSopenharmony_ci const u8 *in_key, 303d0407baSopenharmony_ci unsigned int key_len, 313d0407baSopenharmony_ci int *err), 323d0407baSopenharmony_ci TP_ARGS(ctx, in_key, key_len, err)); 333d0407baSopenharmony_ci 343d0407baSopenharmony_ciDECLARE_HOOK(android_vh_aes_encrypt, 353d0407baSopenharmony_ci TP_PROTO(const struct crypto_aes_ctx *ctx, 363d0407baSopenharmony_ci u8 *out, 373d0407baSopenharmony_ci const u8 *in, 383d0407baSopenharmony_ci int *hook_inuse), 393d0407baSopenharmony_ci TP_ARGS(ctx, out, in, hook_inuse)); 403d0407baSopenharmony_ci 413d0407baSopenharmony_ciDECLARE_HOOK(android_vh_aes_decrypt, 423d0407baSopenharmony_ci TP_PROTO(const struct crypto_aes_ctx *ctx, 433d0407baSopenharmony_ci u8 *out, 443d0407baSopenharmony_ci const u8 *in, 453d0407baSopenharmony_ci int *hook_inuse), 463d0407baSopenharmony_ci TP_ARGS(ctx, out, in, hook_inuse)); 473d0407baSopenharmony_ci 483d0407baSopenharmony_ci#endif /* _TRACE_HOOK_FIPS140_H */ 493d0407baSopenharmony_ci 503d0407baSopenharmony_ci/* This part must be outside protection */ 513d0407baSopenharmony_ci#include <trace/define_trace.h> 52