xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/fsverity.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_FSVERITY_H
8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_LINUX_FSVERITY_H
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/ioctl.h>
10*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
11*8d67ca89SAndroid Build Coastguard Worker #define FS_VERITY_HASH_ALG_SHA256 1
12*8d67ca89SAndroid Build Coastguard Worker #define FS_VERITY_HASH_ALG_SHA512 2
13*8d67ca89SAndroid Build Coastguard Worker struct fsverity_enable_arg {
14*8d67ca89SAndroid Build Coastguard Worker   __u32 version;
15*8d67ca89SAndroid Build Coastguard Worker   __u32 hash_algorithm;
16*8d67ca89SAndroid Build Coastguard Worker   __u32 block_size;
17*8d67ca89SAndroid Build Coastguard Worker   __u32 salt_size;
18*8d67ca89SAndroid Build Coastguard Worker   __u64 salt_ptr;
19*8d67ca89SAndroid Build Coastguard Worker   __u32 sig_size;
20*8d67ca89SAndroid Build Coastguard Worker   __u32 __reserved1;
21*8d67ca89SAndroid Build Coastguard Worker   __u64 sig_ptr;
22*8d67ca89SAndroid Build Coastguard Worker   __u64 __reserved2[11];
23*8d67ca89SAndroid Build Coastguard Worker };
24*8d67ca89SAndroid Build Coastguard Worker struct fsverity_digest {
25*8d67ca89SAndroid Build Coastguard Worker   __u16 digest_algorithm;
26*8d67ca89SAndroid Build Coastguard Worker   __u16 digest_size;
27*8d67ca89SAndroid Build Coastguard Worker   __u8 digest[];
28*8d67ca89SAndroid Build Coastguard Worker };
29*8d67ca89SAndroid Build Coastguard Worker struct fsverity_descriptor {
30*8d67ca89SAndroid Build Coastguard Worker   __u8 version;
31*8d67ca89SAndroid Build Coastguard Worker   __u8 hash_algorithm;
32*8d67ca89SAndroid Build Coastguard Worker   __u8 log_blocksize;
33*8d67ca89SAndroid Build Coastguard Worker   __u8 salt_size;
34*8d67ca89SAndroid Build Coastguard Worker   __le32 __reserved_0x04;
35*8d67ca89SAndroid Build Coastguard Worker   __le64 data_size;
36*8d67ca89SAndroid Build Coastguard Worker   __u8 root_hash[64];
37*8d67ca89SAndroid Build Coastguard Worker   __u8 salt[32];
38*8d67ca89SAndroid Build Coastguard Worker   __u8 __reserved[144];
39*8d67ca89SAndroid Build Coastguard Worker };
40*8d67ca89SAndroid Build Coastguard Worker struct fsverity_formatted_digest {
41*8d67ca89SAndroid Build Coastguard Worker   char magic[8];
42*8d67ca89SAndroid Build Coastguard Worker   __le16 digest_algorithm;
43*8d67ca89SAndroid Build Coastguard Worker   __le16 digest_size;
44*8d67ca89SAndroid Build Coastguard Worker   __u8 digest[];
45*8d67ca89SAndroid Build Coastguard Worker };
46*8d67ca89SAndroid Build Coastguard Worker #define FS_VERITY_METADATA_TYPE_MERKLE_TREE 1
47*8d67ca89SAndroid Build Coastguard Worker #define FS_VERITY_METADATA_TYPE_DESCRIPTOR 2
48*8d67ca89SAndroid Build Coastguard Worker #define FS_VERITY_METADATA_TYPE_SIGNATURE 3
49*8d67ca89SAndroid Build Coastguard Worker struct fsverity_read_metadata_arg {
50*8d67ca89SAndroid Build Coastguard Worker   __u64 metadata_type;
51*8d67ca89SAndroid Build Coastguard Worker   __u64 offset;
52*8d67ca89SAndroid Build Coastguard Worker   __u64 length;
53*8d67ca89SAndroid Build Coastguard Worker   __u64 buf_ptr;
54*8d67ca89SAndroid Build Coastguard Worker   __u64 __reserved;
55*8d67ca89SAndroid Build Coastguard Worker };
56*8d67ca89SAndroid Build Coastguard Worker #define FS_IOC_ENABLE_VERITY _IOW('f', 133, struct fsverity_enable_arg)
57*8d67ca89SAndroid Build Coastguard Worker #define FS_IOC_MEASURE_VERITY _IOWR('f', 134, struct fsverity_digest)
58*8d67ca89SAndroid Build Coastguard Worker #define FS_IOC_READ_VERITY_METADATA _IOWR('f', 135, struct fsverity_read_metadata_arg)
59*8d67ca89SAndroid Build Coastguard Worker #endif
60