Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003  * Copyright (C) 2019 Microsoft Corporation.
0004  *
0005  * Author:  Jaskaran Singh Khurana <jaskarankhurana@linux.microsoft.com>
0006  *
0007  */
0008 #ifndef DM_VERITY_SIG_VERIFICATION_H
0009 #define DM_VERITY_SIG_VERIFICATION_H
0010 
0011 #define DM_VERITY_ROOT_HASH_VERIFICATION "DM Verity Sig Verification"
0012 #define DM_VERITY_ROOT_HASH_VERIFICATION_OPT_SIG_KEY "root_hash_sig_key_desc"
0013 
0014 struct dm_verity_sig_opts {
0015     unsigned int sig_size;
0016     u8 *sig;
0017 };
0018 
0019 #ifdef CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG
0020 
0021 #define DM_VERITY_ROOT_HASH_VERIFICATION_OPTS 2
0022 
0023 int verity_verify_root_hash(const void *data, size_t data_len,
0024                 const void *sig_data, size_t sig_len);
0025 bool verity_verify_is_sig_opt_arg(const char *arg_name);
0026 
0027 int verity_verify_sig_parse_opt_args(struct dm_arg_set *as, struct dm_verity *v,
0028                     struct dm_verity_sig_opts *sig_opts,
0029                     unsigned int *argc, const char *arg_name);
0030 
0031 void verity_verify_sig_opts_cleanup(struct dm_verity_sig_opts *sig_opts);
0032 
0033 #else
0034 
0035 #define DM_VERITY_ROOT_HASH_VERIFICATION_OPTS 0
0036 
0037 static inline int verity_verify_root_hash(const void *data, size_t data_len,
0038                       const void *sig_data, size_t sig_len)
0039 {
0040     return 0;
0041 }
0042 
0043 static inline bool verity_verify_is_sig_opt_arg(const char *arg_name)
0044 {
0045     return false;
0046 }
0047 
0048 static inline int verity_verify_sig_parse_opt_args(struct dm_arg_set *as,
0049             struct dm_verity *v, struct dm_verity_sig_opts *sig_opts,
0050             unsigned int *argc, const char *arg_name)
0051 {
0052     return -EINVAL;
0053 }
0054 
0055 static inline void verity_verify_sig_opts_cleanup(struct dm_verity_sig_opts *sig_opts)
0056 {
0057 }
0058 
0059 #endif /* CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG */
0060 #endif /* DM_VERITY_SIG_VERIFICATION_H */