162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2019 Microsoft Corporation. 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Author: Jaskaran Singh Khurana <jaskarankhurana@linux.microsoft.com> 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_ci#ifndef DM_VERITY_SIG_VERIFICATION_H 962306a36Sopenharmony_ci#define DM_VERITY_SIG_VERIFICATION_H 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#define DM_VERITY_ROOT_HASH_VERIFICATION "DM Verity Sig Verification" 1262306a36Sopenharmony_ci#define DM_VERITY_ROOT_HASH_VERIFICATION_OPT_SIG_KEY "root_hash_sig_key_desc" 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_cistruct dm_verity_sig_opts { 1562306a36Sopenharmony_ci unsigned int sig_size; 1662306a36Sopenharmony_ci u8 *sig; 1762306a36Sopenharmony_ci}; 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci#ifdef CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci#define DM_VERITY_ROOT_HASH_VERIFICATION_OPTS 2 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ciint verity_verify_root_hash(const void *data, size_t data_len, 2462306a36Sopenharmony_ci const void *sig_data, size_t sig_len); 2562306a36Sopenharmony_cibool verity_verify_is_sig_opt_arg(const char *arg_name); 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ciint verity_verify_sig_parse_opt_args(struct dm_arg_set *as, struct dm_verity *v, 2862306a36Sopenharmony_ci struct dm_verity_sig_opts *sig_opts, 2962306a36Sopenharmony_ci unsigned int *argc, const char *arg_name); 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_civoid verity_verify_sig_opts_cleanup(struct dm_verity_sig_opts *sig_opts); 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci#else 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci#define DM_VERITY_ROOT_HASH_VERIFICATION_OPTS 0 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_cistatic inline int verity_verify_root_hash(const void *data, size_t data_len, 3862306a36Sopenharmony_ci const void *sig_data, size_t sig_len) 3962306a36Sopenharmony_ci{ 4062306a36Sopenharmony_ci return 0; 4162306a36Sopenharmony_ci} 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_cistatic inline bool verity_verify_is_sig_opt_arg(const char *arg_name) 4462306a36Sopenharmony_ci{ 4562306a36Sopenharmony_ci return false; 4662306a36Sopenharmony_ci} 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_cistatic inline int verity_verify_sig_parse_opt_args(struct dm_arg_set *as, 4962306a36Sopenharmony_ci struct dm_verity *v, struct dm_verity_sig_opts *sig_opts, 5062306a36Sopenharmony_ci unsigned int *argc, const char *arg_name) 5162306a36Sopenharmony_ci{ 5262306a36Sopenharmony_ci return -EINVAL; 5362306a36Sopenharmony_ci} 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_cistatic inline void verity_verify_sig_opts_cleanup(struct dm_verity_sig_opts *sig_opts) 5662306a36Sopenharmony_ci{ 5762306a36Sopenharmony_ci} 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci#endif /* CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG */ 6062306a36Sopenharmony_ci#endif /* DM_VERITY_SIG_VERIFICATION_H */ 61