Remove outdated TODOs in verity

PiperOrigin-RevId: 371198372
This commit is contained in:
Chong Cai
2021-04-29 14:02:24 -07:00
committed by gVisor bot
parent a41c5fe217
commit 669523f7d2
3 changed files with 29 additions and 46 deletions
-4
View File
@@ -36,7 +36,6 @@ const (
)
// DigestSize returns the size (in bytes) of a digest.
// TODO(b/156980949): Allow config SHA384.
func DigestSize(hashAlgorithm int) int {
switch hashAlgorithm {
case linux.FS_VERITY_HASH_ALG_SHA256:
@@ -69,7 +68,6 @@ func InitLayout(dataSize int64, hashAlgorithms int, dataAndTreeInSameFile bool)
blockSize: hostarch.PageSize,
}
// TODO(b/156980949): Allow config SHA384.
switch hashAlgorithms {
case linux.FS_VERITY_HASH_ALG_SHA256:
layout.digestSize = sha256DigestSize
@@ -429,8 +427,6 @@ func Verify(params *VerifyParams) (int64, error) {
}
// If this is the end of file, zero the remaining bytes in buf,
// otherwise they are still from the previous block.
// TODO(b/162908070): Investigate possible issues with zero
// padding the data.
if bytesRead < len(buf) {
for j := bytesRead; j < len(buf); j++ {
buf[j] = 0
+17 -25
View File
@@ -168,10 +168,6 @@ afterSymlink:
// Preconditions:
// * fs.renameMu must be locked.
// * d.dirMu must be locked.
//
// TODO(b/166474175): Investigate all possible errors returned in this
// function, and make sure we differentiate all errors that indicate unexpected
// modifications to the file system from the ones that are not harmful.
func (fs *filesystem) verifyChildLocked(ctx context.Context, parent *dentry, child *dentry) (*dentry, error) {
vfsObj := fs.vfsfs.VirtualFilesystem()
@@ -278,16 +274,15 @@ func (fs *filesystem) verifyChildLocked(ctx context.Context, parent *dentry, chi
var buf bytes.Buffer
parent.hashMu.RLock()
_, err = merkletree.Verify(&merkletree.VerifyParams{
Out: &buf,
File: &fdReader,
Tree: &fdReader,
Size: int64(parentSize),
Name: parent.name,
Mode: uint32(parentStat.Mode),
UID: parentStat.UID,
GID: parentStat.GID,
Children: parent.childrenNames,
//TODO(b/156980949): Support passing other hash algorithms.
Out: &buf,
File: &fdReader,
Tree: &fdReader,
Size: int64(parentSize),
Name: parent.name,
Mode: uint32(parentStat.Mode),
UID: parentStat.UID,
GID: parentStat.GID,
Children: parent.childrenNames,
HashAlgorithms: fs.alg.toLinuxHashAlg(),
ReadOffset: int64(offset),
ReadSize: int64(merkletree.DigestSize(fs.alg.toLinuxHashAlg())),
@@ -409,15 +404,14 @@ func (fs *filesystem) verifyStatAndChildrenLocked(ctx context.Context, d *dentry
var buf bytes.Buffer
d.hashMu.RLock()
params := &merkletree.VerifyParams{
Out: &buf,
Tree: &fdReader,
Size: int64(size),
Name: d.name,
Mode: uint32(stat.Mode),
UID: stat.UID,
GID: stat.GID,
Children: d.childrenNames,
//TODO(b/156980949): Support passing other hash algorithms.
Out: &buf,
Tree: &fdReader,
Size: int64(size),
Name: d.name,
Mode: uint32(stat.Mode),
UID: stat.UID,
GID: stat.GID,
Children: d.childrenNames,
HashAlgorithms: fs.alg.toLinuxHashAlg(),
ReadOffset: 0,
// Set read size to 0 so only the metadata is verified.
@@ -991,8 +985,6 @@ func (fs *filesystem) SetStatAt(ctx context.Context, rp *vfs.ResolvingPath, opts
}
// StatAt implements vfs.FilesystemImpl.StatAt.
// TODO(b/170157489): Investigate whether stats other than Mode/UID/GID should
// be verified.
func (fs *filesystem) StatAt(ctx context.Context, rp *vfs.ResolvingPath, opts vfs.StatOptions) (linux.Statx, error) {
var ds *[]*dentry
fs.renameMu.RLock()
+12 -17
View File
@@ -840,7 +840,6 @@ func (fd *fileDescription) Release(ctx context.Context) {
// Stat implements vfs.FileDescriptionImpl.Stat.
func (fd *fileDescription) Stat(ctx context.Context, opts vfs.StatOptions) (linux.Statx, error) {
// TODO(b/162788573): Add integrity check for metadata.
stat, err := fd.lowerFD.Stat(ctx, opts)
if err != nil {
return linux.Statx{}, err
@@ -960,10 +959,9 @@ func (fd *fileDescription) generateMerkleLocked(ctx context.Context) ([]byte, ui
}
params := &merkletree.GenerateParams{
TreeReader: &merkleReader,
TreeWriter: &merkleWriter,
Children: fd.d.childrenNames,
//TODO(b/156980949): Support passing other hash algorithms.
TreeReader: &merkleReader,
TreeWriter: &merkleWriter,
Children: fd.d.childrenNames,
HashAlgorithms: fd.d.fs.alg.toLinuxHashAlg(),
Name: fd.d.name,
Mode: uint32(stat.Mode),
@@ -1192,8 +1190,6 @@ func (fd *fileDescription) Ioctl(ctx context.Context, uio usermem.IO, args arch.
case linux.FS_IOC_GETFLAGS:
return fd.verityFlags(ctx, args[2].Pointer())
default:
// TODO(b/169682228): Investigate which ioctl commands should
// be allowed.
return 0, syserror.ENOSYS
}
}
@@ -1253,16 +1249,15 @@ func (fd *fileDescription) PRead(ctx context.Context, dst usermem.IOSequence, of
fd.d.hashMu.RLock()
n, err := merkletree.Verify(&merkletree.VerifyParams{
Out: dst.Writer(ctx),
File: &dataReader,
Tree: &merkleReader,
Size: int64(size),
Name: fd.d.name,
Mode: fd.d.mode,
UID: fd.d.uid,
GID: fd.d.gid,
Children: fd.d.childrenNames,
//TODO(b/156980949): Support passing other hash algorithms.
Out: dst.Writer(ctx),
File: &dataReader,
Tree: &merkleReader,
Size: int64(size),
Name: fd.d.name,
Mode: fd.d.mode,
UID: fd.d.uid,
GID: fd.d.gid,
Children: fd.d.childrenNames,
HashAlgorithms: fd.d.fs.alg.toLinuxHashAlg(),
ReadOffset: offset,
ReadSize: dst.NumBytes(),