• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: MIT */
2 /*
3  * Private header for the 'fsverity' program
4  *
5  * Copyright 2018 Google LLC
6  *
7  * Use of this source code is governed by an MIT-style
8  * license that can be found in the LICENSE file or at
9  * https://opensource.org/licenses/MIT.
10  */
11 #ifndef PROGRAMS_FSVERITY_H
12 #define PROGRAMS_FSVERITY_H
13 
14 #include "utils.h"
15 #include "../common/fsverity_uapi.h"
16 
17 /*
18  * Largest digest size among all hash algorithms supported by fs-verity.
19  * This can be increased if needed.
20  */
21 #define FS_VERITY_MAX_DIGEST_SIZE	64
22 
23 enum {
24 	OPT_BLOCK_SIZE,
25 	OPT_CERT,
26 	OPT_COMPACT,
27 	OPT_FOR_BUILTIN_SIG,
28 	OPT_HASH_ALG,
29 	OPT_KEY,
30 	OPT_LENGTH,
31 	OPT_OFFSET,
32 	OPT_OUT_DESCRIPTOR,
33 	OPT_OUT_MERKLE_TREE,
34 	OPT_PKCS11_ENGINE,
35 	OPT_PKCS11_KEYID,
36 	OPT_PKCS11_MODULE,
37 	OPT_SALT,
38 	OPT_SIGNATURE,
39 };
40 
41 struct fsverity_command;
42 
43 /* cmd_digest.c */
44 int fsverity_cmd_digest(const struct fsverity_command *cmd,
45 			int argc, char *argv[]);
46 
47 /* cmd_dump_metadata.c */
48 int fsverity_cmd_dump_metadata(const struct fsverity_command *cmd,
49 			       int argc, char *argv[]);
50 
51 /* cmd_enable.c */
52 int fsverity_cmd_enable(const struct fsverity_command *cmd,
53 			int argc, char *argv[]);
54 
55 /* cmd_measure.c */
56 int fsverity_cmd_measure(const struct fsverity_command *cmd,
57 			 int argc, char *argv[]);
58 
59 /* cmd_sign.c */
60 int fsverity_cmd_sign(const struct fsverity_command *cmd,
61 		      int argc, char *argv[]);
62 
63 /* fsverity.c */
64 void usage(const struct fsverity_command *cmd, FILE *fp);
65 bool parse_tree_param(int opt_char, const char *arg,
66 		      struct libfsverity_merkle_tree_params *params);
67 bool destroy_tree_params(struct libfsverity_merkle_tree_params *params);
68 
69 #endif /* PROGRAMS_FSVERITY_H */
70