blob: 395d9831c5132a95ab9edddeb4238a5eab55738c [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
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 */
Christopher Ferris9584fa42019-12-09 15:36:13 -08007#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
13struct 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];
Elliott Hughes8cb52b02013-11-21 13:43:23 -080023};
Christopher Ferris9584fa42019-12-09 15:36:13 -080024struct fsverity_digest {
25 __u16 digest_algorithm;
26 __u16 digest_size;
27 __u8 digest[];
28};
Christopher Ferris05667cd2021-02-16 16:01:34 -080029struct 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};
40struct fsverity_formatted_digest {
41 char magic[8];
42 __le16 digest_algorithm;
43 __le16 digest_size;
44 __u8 digest[];
45};
Christopher Ferrisa9750ed2021-05-03 14:02:49 -070046#define FS_VERITY_METADATA_TYPE_MERKLE_TREE 1
47#define FS_VERITY_METADATA_TYPE_DESCRIPTOR 2
48#define FS_VERITY_METADATA_TYPE_SIGNATURE 3
49struct fsverity_read_metadata_arg {
50 __u64 metadata_type;
51 __u64 offset;
52 __u64 length;
53 __u64 buf_ptr;
54 __u64 __reserved;
55};
Christopher Ferris9584fa42019-12-09 15:36:13 -080056#define FS_IOC_ENABLE_VERITY _IOW('f', 133, struct fsverity_enable_arg)
57#define FS_IOC_MEASURE_VERITY _IOWR('f', 134, struct fsverity_digest)
Christopher Ferrisa9750ed2021-05-03 14:02:49 -070058#define FS_IOC_READ_VERITY_METADATA _IOWR('f', 135, struct fsverity_read_metadata_arg)
Elliott Hughes8cb52b02013-11-21 13:43:23 -080059#endif