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