summaryrefslogtreecommitdiffhomepage
path: root/pkg/merkletree
AgeCommit message (Collapse)Author
2021-08-23Internal change.Chong Cai
PiperOrigin-RevId: 392523879
2021-08-19Merge Read calls in verity merkle treeChong Cai
Read all data into memory in one Read call and verify them block by block instead of read each block during verification. This is for performance purpose to avoid invoking multiple syscalls. PiperOrigin-RevId: 391877937
2021-06-29Sort children map before hashChong Cai
The unordered map may generate different hash due to its order. The children map needs to be sorted each time before hashing to avoid false verification failure due to the map. Store the sorted children map in verity dentry to avoid sorting it each time verification happens. Also serialize the whole VerityDescriptor struct to hash now that the map is removed from it. PiperOrigin-RevId: 382201560
2021-04-29Remove outdated TODOs in verityChong Cai
PiperOrigin-RevId: 371198372
2021-04-08Add Children in merkletree generateChong Cai
This field was missing and should be provided. PiperOrigin-RevId: 367474481
2021-03-29[syserror] Split usermem packageZach Koopmans
Split usermem package to help remove syserror dependency in go_marshal. New hostarch package contains code not dependent on syserror. PiperOrigin-RevId: 365651233
2021-02-22Internal change.gVisor bot
PiperOrigin-RevId: 358890980
2021-02-11Internal change.gVisor bot
PiperOrigin-RevId: 357090170
2020-12-11Internal change.gVisor bot
PiperOrigin-RevId: 347091372
2020-11-12Add children names into verity hashChong Cai
children names map can be used to verify whether a child is expected during walking, so that we can detect unexpected modifications that deleted/renamed both the target file and the corresponding merkle tree file. PiperOrigin-RevId: 342170715
2020-11-12Refactor merkletree testsChong Cai
Separate the test cases from TestVerify so that the test names reflect the test case better. PiperOrigin-RevId: 342152754
2020-11-04Include file size in Merkle hashChong Cai
The file size can now also be verified. Also, since we are zero-padding the last block of the data, we cannot differentiate the cases between zero-padded block from the blocks that are ends with zeroes. With the size included this can be addressed, as those cases would have different file size. PiperOrigin-RevId: 340695510
2020-10-27Add SHA512 to merkle tree libraryChong Cai
PiperOrigin-RevId: 339377254
2020-10-12Change Merkle tree library to use ReaderAtChong Cai
Merkle tree library was originally using Read/Seek to access data and tree, since the parameters are io.ReadSeeker. This could cause race conditions if multiple threads accesses the same fd to read. Here we change to use ReaderAt, and implement it with PRead to make it thread safe. PiperOrigin-RevId: 336779260
2020-10-09Include stat in Verity hashChong Cai
PiperOrigin-RevId: 336395445
2020-10-06Fix typo in merkletreegVisor bot
PiperOrigin-RevId: 335709552
2020-09-16Implement PRead for verity fsChong Cai
PRead is implemented by read from the underlying file in blocks, and verify each block. The verified contents are saved into the output buffer. PiperOrigin-RevId: 332092267
2020-08-31Implement walk in gvisor verity fsgVisor bot
Implement walk directories in gvisor verity file system. For each step, the child dentry is verified against a verified parent root hash. PiperOrigin-RevId: 329358747
2020-08-24Add check for same source in merkle tree libgVisor bot
If the data is in the same Reader as the merkle tree, we should verify from the first layer in the tree, instead of from the beginning. PiperOrigin-RevId: 328230988
2020-08-17Add Verify in merkle tree librarygVisor bot
Verify checks input data against the merkle tree, and compares the root hash with expectation. PiperOrigin-RevId: 327116711
2020-06-11Add Generate method in merkletreegVisor bot
A method is added to generate a merkle tree for data, and store the generated tree in the output. PiperOrigin-RevId: 315966571
2020-06-11Add merkle tree size measuregVisor bot
This change creates a merkletree package which will be used in the future for an implementation of file system API. PiperOrigin-RevId: 315952451