| /* 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 */ |