| /* SPDX-License-Identifier: GPL-2.0-only */ |
| /* |
| * Copyright (C) 2019 Microsoft Corporation. |
| * |
| * Author: Jaskaran Singh Khurana <jaskarankhurana@linux.microsoft.com> |
| * |
| */ |
| #ifndef DM_VERITY_SIG_VERIFICATION_H |
| #define DM_VERITY_SIG_VERIFICATION_H |
| |
| #define DM_VERITY_ROOT_HASH_VERIFICATION "DM Verity Sig Verification" |
| #define DM_VERITY_ROOT_HASH_VERIFICATION_OPT_SIG_KEY "root_hash_sig_key_desc" |
| |
| struct dm_verity_sig_opts { |
| unsigned int sig_size; |
| u8 *sig; |
| }; |
| |
| #ifdef CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG |
| |
| #define DM_VERITY_ROOT_HASH_VERIFICATION_OPTS 2 |
| |
| int verity_verify_root_hash(const void *data, size_t data_len, |
| const void *sig_data, size_t sig_len); |
| bool verity_verify_is_sig_opt_arg(const char *arg_name); |
| |
| int verity_verify_sig_parse_opt_args(struct dm_arg_set *as, struct dm_verity *v, |
| struct dm_verity_sig_opts *sig_opts, |
| unsigned int *argc, const char *arg_name); |
| |
| void verity_verify_sig_opts_cleanup(struct dm_verity_sig_opts *sig_opts); |
| |
| #else |
| |
| #define DM_VERITY_ROOT_HASH_VERIFICATION_OPTS 0 |
| |
| static inline int verity_verify_root_hash(const void *data, size_t data_len, |
| const void *sig_data, size_t sig_len) |
| { |
| return 0; |
| } |
| |
| static inline bool verity_verify_is_sig_opt_arg(const char *arg_name) |
| { |
| return false; |
| } |
| |
| static inline int verity_verify_sig_parse_opt_args(struct dm_arg_set *as, |
| struct dm_verity *v, struct dm_verity_sig_opts *sig_opts, |
| unsigned int *argc, const char *arg_name) |
| { |
| return -EINVAL; |
| } |
| |
| static inline void verity_verify_sig_opts_cleanup(struct dm_verity_sig_opts *sig_opts) |
| { |
| } |
| |
| #endif /* CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG */ |
| #endif /* DM_VERITY_SIG_VERIFICATION_H */ |