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