corpus/protected-edit/README.md | 13 +++ corpus/protected-edit/candidate/notebook/Open Notebook.onetoc2 | Bin 0 -> 4936 bytes corpus/protected-edit/candidate/notebook/synthetic.one | Bin 0 -> 20648 bytes corpus/protected-edit/candidate/read/af1af4b8987109ce1e335e538910fb3860b7c57eb3b6110a06aa2114e06d69a7.attachment | 1 + corpus/protected-edit/candidate/read/environment.json | 7 ++ corpus/protected-edit/candidate/read/hierarchy.xml | 2 + corpus/protected-edit/candidate/read/page-000.xml | 9 ++ corpus/protected-edit/candidate/read/payloads.json | 10 ++ corpus/protected-edit/native-after/synthetic.one | Bin 0 -> 26408 bytes crates/notebook/README.md | 7 +- crates/notebook/src/session.rs | 18 ++++ crates/notebook/tests/protected.rs | 87 +++++++++++++++ crates/onestore/README.md | 8 +- crates/onestore/src/commit.rs | 16 +++ crates/onestore/src/page/write.rs | 25 +++-- crates/onestore/src/protected/crypto.rs | 57 +++++++++- crates/onestore/src/protected/mod.rs | 185 ++++++++++++++++++++++++++++++-- crates/onestore/src/revisions.rs | 9 +- crates/onestore/src/write.rs | 140 +++++++++++++++++++++--- crates/onestore/tests/protected.rs | 129 ++++++++++++++++++++++ fuzz/Cargo.toml | 7 ++ fuzz/fuzz_targets/protected_write.rs | 69 ++++++++++++ tools/test_protected_edit.py | 45 ++++++++ 23 files changed, 804 insertions(+), 40 deletions(-)