| /* SPDX-License-Identifier: GPL-2.0 */ | |
| #undef TRACE_SYSTEM | |
| #define TRACE_SYSTEM fips140 | |
| #define TRACE_INCLUDE_PATH trace/hooks | |
| #if !defined(_TRACE_HOOK_FIPS140_H) || defined(TRACE_HEADER_MULTI_READ) | |
| #define _TRACE_HOOK_FIPS140_H | |
| #include <linux/tracepoint.h> | |
| #include <trace/hooks/vendor_hooks.h> | |
| struct crypto_aes_ctx; | |
| /* | |
| * These hooks exist only for the benefit of the FIPS140 crypto module, which | |
| * uses them to swap out the underlying implementation with one that is integrity | |
| * checked as per FIPS 140 requirements. No other uses are allowed or | |
| * supported. | |
| */ | |
| DECLARE_HOOK(android_vh_sha256, | |
| TP_PROTO(const u8 *data, | |
| unsigned int len, | |
| u8 *out, | |
| int *hook_inuse), | |
| TP_ARGS(data, len, out, hook_inuse)); | |
| DECLARE_HOOK(android_vh_aes_expandkey, | |
| TP_PROTO(struct crypto_aes_ctx *ctx, | |
| const u8 *in_key, | |
| unsigned int key_len, | |
| int *err), | |
| TP_ARGS(ctx, in_key, key_len, err)); | |
| DECLARE_HOOK(android_vh_aes_encrypt, | |
| TP_PROTO(const struct crypto_aes_ctx *ctx, | |
| u8 *out, | |
| const u8 *in, | |
| int *hook_inuse), | |
| TP_ARGS(ctx, out, in, hook_inuse)); | |
| DECLARE_HOOK(android_vh_aes_decrypt, | |
| TP_PROTO(const struct crypto_aes_ctx *ctx, | |
| u8 *out, | |
| const u8 *in, | |
| int *hook_inuse), | |
| TP_ARGS(ctx, out, in, hook_inuse)); | |
| #endif /* _TRACE_HOOK_FIPS140_H */ | |
| /* This part must be outside protection */ | |
| #include <trace/define_trace.h> |