xref: /openbmc/linux/drivers/md/dm-verity-verify-sig.h (revision 88cd3e6cfac915f50f7aa7b699bdf053afec866e)
1*88cd3e6cSJaskaran Khurana // SPDX-License-Identifier: GPL-2.0
2*88cd3e6cSJaskaran Khurana /*
3*88cd3e6cSJaskaran Khurana  * Copyright (C) 2019 Microsoft Corporation.
4*88cd3e6cSJaskaran Khurana  *
5*88cd3e6cSJaskaran Khurana  * Author:  Jaskaran Singh Khurana <jaskarankhurana@linux.microsoft.com>
6*88cd3e6cSJaskaran Khurana  *
7*88cd3e6cSJaskaran Khurana  */
8*88cd3e6cSJaskaran Khurana #ifndef DM_VERITY_SIG_VERIFICATION_H
9*88cd3e6cSJaskaran Khurana #define DM_VERITY_SIG_VERIFICATION_H
10*88cd3e6cSJaskaran Khurana 
11*88cd3e6cSJaskaran Khurana #define DM_VERITY_ROOT_HASH_VERIFICATION "DM Verity Sig Verification"
12*88cd3e6cSJaskaran Khurana #define DM_VERITY_ROOT_HASH_VERIFICATION_OPT_SIG_KEY "root_hash_sig_key_desc"
13*88cd3e6cSJaskaran Khurana 
14*88cd3e6cSJaskaran Khurana struct dm_verity_sig_opts {
15*88cd3e6cSJaskaran Khurana 	unsigned int sig_size;
16*88cd3e6cSJaskaran Khurana 	u8 *sig;
17*88cd3e6cSJaskaran Khurana };
18*88cd3e6cSJaskaran Khurana 
19*88cd3e6cSJaskaran Khurana #ifdef CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG
20*88cd3e6cSJaskaran Khurana 
21*88cd3e6cSJaskaran Khurana #define DM_VERITY_ROOT_HASH_VERIFICATION_OPTS 2
22*88cd3e6cSJaskaran Khurana 
23*88cd3e6cSJaskaran Khurana int verity_verify_root_hash(const void *data, size_t data_len,
24*88cd3e6cSJaskaran Khurana 			    const void *sig_data, size_t sig_len);
25*88cd3e6cSJaskaran Khurana bool verity_verify_is_sig_opt_arg(const char *arg_name);
26*88cd3e6cSJaskaran Khurana 
27*88cd3e6cSJaskaran Khurana int verity_verify_sig_parse_opt_args(struct dm_arg_set *as, struct dm_verity *v,
28*88cd3e6cSJaskaran Khurana 				    struct dm_verity_sig_opts *sig_opts,
29*88cd3e6cSJaskaran Khurana 				    unsigned int *argc, const char *arg_name);
30*88cd3e6cSJaskaran Khurana 
31*88cd3e6cSJaskaran Khurana void verity_verify_sig_opts_cleanup(struct dm_verity_sig_opts *sig_opts);
32*88cd3e6cSJaskaran Khurana 
33*88cd3e6cSJaskaran Khurana #else
34*88cd3e6cSJaskaran Khurana 
35*88cd3e6cSJaskaran Khurana #define DM_VERITY_ROOT_HASH_VERIFICATION_OPTS 0
36*88cd3e6cSJaskaran Khurana 
37*88cd3e6cSJaskaran Khurana int verity_verify_root_hash(const void *data, size_t data_len,
38*88cd3e6cSJaskaran Khurana 			    const void *sig_data, size_t sig_len)
39*88cd3e6cSJaskaran Khurana {
40*88cd3e6cSJaskaran Khurana 	return 0;
41*88cd3e6cSJaskaran Khurana }
42*88cd3e6cSJaskaran Khurana 
43*88cd3e6cSJaskaran Khurana bool verity_verify_is_sig_opt_arg(const char *arg_name)
44*88cd3e6cSJaskaran Khurana {
45*88cd3e6cSJaskaran Khurana 	return false;
46*88cd3e6cSJaskaran Khurana }
47*88cd3e6cSJaskaran Khurana 
48*88cd3e6cSJaskaran Khurana int verity_verify_sig_parse_opt_args(struct dm_arg_set *as, struct dm_verity *v,
49*88cd3e6cSJaskaran Khurana 				    struct dm_verity_sig_opts *sig_opts,
50*88cd3e6cSJaskaran Khurana 				    unsigned int *argc, const char *arg_name)
51*88cd3e6cSJaskaran Khurana {
52*88cd3e6cSJaskaran Khurana 	return -EINVAL;
53*88cd3e6cSJaskaran Khurana }
54*88cd3e6cSJaskaran Khurana 
55*88cd3e6cSJaskaran Khurana void verity_verify_sig_opts_cleanup(struct dm_verity_sig_opts *sig_opts)
56*88cd3e6cSJaskaran Khurana {
57*88cd3e6cSJaskaran Khurana }
58*88cd3e6cSJaskaran Khurana 
59*88cd3e6cSJaskaran Khurana #endif /* CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG */
60*88cd3e6cSJaskaran Khurana #endif /* DM_VERITY_SIG_VERIFICATION_H */
61