On Sat, Jun 15, 2019 at 08:57:31AM -0400, Theodore Ts'o wrote: > On Thu, Jun 06, 2019 at 08:51:54AM -0700, Eric Biggers wrote: > > From: Eric Biggers <ebiggers@xxxxxxxxxx> > > > > Add the beginnings of the fs/verity/ support layer, including the > > Kconfig option and various helper functions for hashing. To start, only > > SHA-256 is supported, but other hash algorithms can easily be added. > > > > Signed-off-by: Eric Biggers <ebiggers@xxxxxxxxxx> > > Looks good; you can add: > > Reviewed-off-by: Theodore Ts'o <tytso@xxxxxxx> > > One thought for consideration below... > > > > + > > +/* > > + * Maximum depth of the Merkle tree. Up to 64 levels are theoretically possible > > + * with a very small block size, but we'd like to limit stack usage during > > + * verification, and in practice this is plenty. E.g., with SHA-256 and 4K > > + * blocks, a file with size UINT64_MAX bytes needs just 8 levels. > > + */ > > +#define FS_VERITY_MAX_LEVELS 16 > > Maybe we should make FS_VERITY_MAX_LEVELS 8 for now? This is an > implementation-level restriction, and currently we don't support any > architectures that have a page size < 4k. We can always bump this > number up in the future if it ever becomes necessary, and limiting max > levels to 8 saves almost 100 bytes of stack space in verify_page(). > > - Ted Yes, I agree. I'll reduce MAX_LEVELS to 8 for now and tweak the comment. - Eric