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