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