Message ID | 20190620205043.64350-4-ebiggers@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | fs-verity: read-only file-based authenticity protection | expand |
On 06/20, Eric Biggers wrote: > From: Eric Biggers <ebiggers@google.com> > > Add the UAPI header for fs-verity, including two ioctls: > > - FS_IOC_ENABLE_VERITY > - FS_IOC_MEASURE_VERITY > > These ioctls are documented in the "User API" section of > Documentation/filesystems/fsverity.rst. > > Examples of using these ioctls can be found in fsverity-utils > (https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/fsverity-utils.git). > > I've also written xfstests that test these ioctls > (https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/xfstests-dev.git/log/?h=fsverity). > > Reviewed-by: Theodore Ts'o <tytso@mit.edu> Reviewed-by: Jaegeuk Kim <jaegeuk@kernel.org> > Signed-off-by: Eric Biggers <ebiggers@google.com> > --- > Documentation/ioctl/ioctl-number.txt | 1 + > include/uapi/linux/fsverity.h | 39 ++++++++++++++++++++++++++++ > 2 files changed, 40 insertions(+) > create mode 100644 include/uapi/linux/fsverity.h > > diff --git a/Documentation/ioctl/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt > index c9558146ac5896..21767c81e86d58 100644 > --- a/Documentation/ioctl/ioctl-number.txt > +++ b/Documentation/ioctl/ioctl-number.txt > @@ -225,6 +225,7 @@ Code Seq#(hex) Include File Comments > 'f' 00-0F fs/ext4/ext4.h conflict! > 'f' 00-0F linux/fs.h conflict! > 'f' 00-0F fs/ocfs2/ocfs2_fs.h conflict! > +'f' 81-8F linux/fsverity.h > 'g' 00-0F linux/usb/gadgetfs.h > 'g' 20-2F linux/usb/g_printer.h > 'h' 00-7F conflict! Charon filesystem > diff --git a/include/uapi/linux/fsverity.h b/include/uapi/linux/fsverity.h > new file mode 100644 > index 00000000000000..57d1d7fc0c345a > --- /dev/null > +++ b/include/uapi/linux/fsverity.h > @@ -0,0 +1,39 @@ > +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ > +/* > + * fs-verity user API > + * > + * These ioctls can be used on filesystems that support fs-verity. See the > + * "User API" section of Documentation/filesystems/fsverity.rst. > + * > + * Copyright 2019 Google LLC > + */ > +#ifndef _UAPI_LINUX_FSVERITY_H > +#define _UAPI_LINUX_FSVERITY_H > + > +#include <linux/ioctl.h> > +#include <linux/types.h> > + > +#define FS_VERITY_HASH_ALG_SHA256 1 > + > +struct fsverity_enable_arg { > + __u32 version; > + __u32 hash_algorithm; > + __u32 block_size; > + __u32 salt_size; > + __u64 salt_ptr; > + __u32 sig_size; > + __u32 __reserved1; > + __u64 sig_ptr; > + __u64 __reserved2[11]; > +}; > + > +struct fsverity_digest { > + __u16 digest_algorithm; > + __u16 digest_size; /* input/output */ > + __u8 digest[]; > +}; > + > +#define FS_IOC_ENABLE_VERITY _IOW('f', 133, struct fsverity_enable_arg) > +#define FS_IOC_MEASURE_VERITY _IOWR('f', 134, struct fsverity_digest) > + > +#endif /* _UAPI_LINUX_FSVERITY_H */ > -- > 2.22.0.410.gd8fdbe21b5-goog
diff --git a/Documentation/ioctl/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt index c9558146ac5896..21767c81e86d58 100644 --- a/Documentation/ioctl/ioctl-number.txt +++ b/Documentation/ioctl/ioctl-number.txt @@ -225,6 +225,7 @@ Code Seq#(hex) Include File Comments 'f' 00-0F fs/ext4/ext4.h conflict! 'f' 00-0F linux/fs.h conflict! 'f' 00-0F fs/ocfs2/ocfs2_fs.h conflict! +'f' 81-8F linux/fsverity.h 'g' 00-0F linux/usb/gadgetfs.h 'g' 20-2F linux/usb/g_printer.h 'h' 00-7F conflict! Charon filesystem diff --git a/include/uapi/linux/fsverity.h b/include/uapi/linux/fsverity.h new file mode 100644 index 00000000000000..57d1d7fc0c345a --- /dev/null +++ b/include/uapi/linux/fsverity.h @@ -0,0 +1,39 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* + * fs-verity user API + * + * These ioctls can be used on filesystems that support fs-verity. See the + * "User API" section of Documentation/filesystems/fsverity.rst. + * + * Copyright 2019 Google LLC + */ +#ifndef _UAPI_LINUX_FSVERITY_H +#define _UAPI_LINUX_FSVERITY_H + +#include <linux/ioctl.h> +#include <linux/types.h> + +#define FS_VERITY_HASH_ALG_SHA256 1 + +struct fsverity_enable_arg { + __u32 version; + __u32 hash_algorithm; + __u32 block_size; + __u32 salt_size; + __u64 salt_ptr; + __u32 sig_size; + __u32 __reserved1; + __u64 sig_ptr; + __u64 __reserved2[11]; +}; + +struct fsverity_digest { + __u16 digest_algorithm; + __u16 digest_size; /* input/output */ + __u8 digest[]; +}; + +#define FS_IOC_ENABLE_VERITY _IOW('f', 133, struct fsverity_enable_arg) +#define FS_IOC_MEASURE_VERITY _IOWR('f', 134, struct fsverity_digest) + +#endif /* _UAPI_LINUX_FSVERITY_H */