authorgravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-09-07 20:42:00-07:00
committergravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-09-07 20:42:00-07:00
log5bd5adf1ba1afbdc4eb6f3c20c23522d15945e16
tree6eb7e0f79d1d21c10193b28faa2894fd7f275da6
parent6f5cbac92d1a569a60fc06bf1c9b993b4a5abc20
signature Signed by SSH key SHA256:52mNGHRsVFBDED9IAX5pe+LRWUefqTbxEReunq21QvU

test: retain native protected attachment boundary fixtures

Record native-generated pages and an independent cold-unlock oracle for a Unicode password and attachments from zero bytes through 1 MiB plus one. Extend opaque parsing and snapshot tests to this fixture. Validation: 32 document, revision and snapshot tests pass; all 11 native page text sequences and ten payloads match across protection and cold unlock. Owned clones removed. Assisted-by: gpt-6-astra

21 files changed, 292 insertions(+), 37 deletions(-)

corpus/native-protected-boundaries/README.md created+20
...@@ -0,0 +1,20 @@
1# Native protected attachment boundaries
2
3Synthetic OneNote 2010 section with an exact known password in
4[manifest.json](manifest.json), including a supplementary Unicode character and a
5combining mark. All pages and attachments were generated by native OneNote.
6[The generator](../../tools/native/external-assets.ps1) accepts the recorded lengths.
7
8The notebook is the native protected image. `read/` contains an independent
9fresh-clone, empty-cache unlock oracle. Its `environment.json` says `cold: false`
10because the read reused the cache that the preceding isolated cold-open and
11unlock step established; that step is recorded separately in the manifest.
12
13Attachment plaintext is reproducible: repeat the 1024-byte block whose byte at
14index `i` is `i % 251`, truncated to the recorded length. Native exported hashes
15are in `read/payloads.json`; no second copy of those generated bytes is retained.
16The zero-length attachment has a zero-length stored payload even when protected.
17
18The initially rejected UI attempt is excluded. Source notebooks and personal
19profiles were never edited. This fixture establishes native 2010 behavior for
20these inputs; its password and contents are deliberately public.
corpus/native-protected-boundaries/manifest.json created+113
...@@ -0,0 +1,113 @@
1{
2 "captured_utc": "2026-09-08T03:41:36.733670+00:00",
3 "native_build": "14.0.4763.1000",
4 "password": "native-payloads-🦀-é",
5 "generator": "../../tools/native/external-assets.ps1",
6 "lengths": [
7 0,
8 1,
9 15,
10 16,
11 17,
12 4095,
13 4096,
14 4097,
15 65537,
16 1048577
17 ],
18 "native_pages": 11,
19 "operations": [
20 "Native generated synthetic attachment pages; clean image retained before protection.",
21 "Set password in OneNote UI on owned clone; native lock and unlock passed.",
22 "Fresh clone and isolated native cache; observed locked section and unlocked with the exact fixture password.",
23 "Native cold-read returned all 11 pages; titles and text matched the pre-protection capture; every attachment matched byte for byte.",
24 "Both owned clones removed."
25 ],
26 "cold_cache": {
27 "pages": 11,
28 "hostname": "ONE-M6-139963EF",
29 "cold": true
30 },
31 "files": [
32 {
33 "path": "notebook/Open Notebook.onetoc2",
34 "bytes": 4936,
35 "sha256": "bc2400e03c8ae5f309ddb2a1640f54a4ed2b02127b99b7599e2899e7f399773a"
36 },
37 {
38 "path": "notebook/synthetic.one",
39 "bytes": 1235272,
40 "sha256": "d490a6f6d27a79e9c726a958ab6cdc70a49a28d27fe8fdd19619d85e622619bd"
41 },
42 {
43 "path": "read/environment.json",
44 "bytes": 165,
45 "sha256": "d2a40090b6074bef02f6b3267436397b37072cd792d070d237451163ec71ae0c"
46 },
47 {
48 "path": "read/hierarchy.xml",
49 "bytes": 2597,
50 "sha256": "dcc0305a7d8c5d1c5873908811399b56af64200c807503c297d236cf74cb4794"
51 },
52 {
53 "path": "read/page-000.xml",
54 "bytes": 1699,
55 "sha256": "88bf95c8482a696571b812bd82773442a2000d05b0dd92772316ae96485c2dfc"
56 },
57 {
58 "path": "read/page-001.xml",
59 "bytes": 1699,
60 "sha256": "c83d007a3bccffd34b5e565b3e09f9f12faf84d934311be876f9c7344b0adc00"
61 },
62 {
63 "path": "read/page-002.xml",
64 "bytes": 1703,
65 "sha256": "7c925ccdb1f84440afb2e7b64beaf93fad8373fad80a71e279c988ac1c7d47f0"
66 },
67 {
68 "path": "read/page-003.xml",
69 "bytes": 1703,
70 "sha256": "fd31e47e9b51a2f02327c220682967d6b2b492787ddaaf1c4af36755d5913532"
71 },
72 {
73 "path": "read/page-004.xml",
74 "bytes": 1703,
75 "sha256": "78b1b2f4fe7cc9ee4f8d3830e3b01e8ae1a58060833d85a33a7e7a017022d7a6"
76 },
77 {
78 "path": "read/page-005.xml",
79 "bytes": 1711,
80 "sha256": "e24344d38c142b640f86ce586cdff9ff7b1fccda019253a76e246bc68cc4ec1f"
81 },
82 {
83 "path": "read/page-006.xml",
84 "bytes": 1711,
85 "sha256": "33e0703d598f63fa6caa2c13429a3a33c7930b1cc5fd84d808f2ade8e8782297"
86 },
87 {
88 "path": "read/page-007.xml",
89 "bytes": 1711,
90 "sha256": "e2c1d3efebba92924533c00f8c1f071c81b4a834e494138c4a26640f7f825c49"
91 },
92 {
93 "path": "read/page-008.xml",
94 "bytes": 1715,
95 "sha256": "73b09d4378e5d31faf07303085a0d2e127f878b35ada88ec6c4d26caa8ef4993"
96 },
97 {
98 "path": "read/page-009.xml",
99 "bytes": 1723,
100 "sha256": "2c06ec16c7f5933d471df036ea4238254e6f537f92c5187f5cb854e45c4f8e3f"
101 },
102 {
103 "path": "read/page-010.xml",
104 "bytes": 1235,
105 "sha256": "54f597866ce44693af9f947f7a2f226c06b326b35f420422083e453d1d6eab6a"
106 },
107 {
108 "path": "read/payloads.json",
109 "bytes": 3280,
110 "sha256": "cfbb46f2a69ad78acf9459826456d23b0c008b8920919a2ccf938df36d4b5701"
111 }
112 ]
113}
corpus/native-protected-boundaries/notebook/Open Notebook.onetoc2 created
Binary files /dev/null and b/corpus/native-protected-boundaries/notebook/Open Notebook.onetoc2 differ
corpus/native-protected-boundaries/notebook/synthetic.one created
Binary files /dev/null and b/corpus/native-protected-boundaries/notebook/synthetic.one differ
corpus/native-protected-boundaries/read/environment.json created+7
...@@ -0,0 +1,7 @@
1{
2 "powershell": "5.1.14409.1005",
3 "schema": "xs2010",
4 "hostname": "ONE-M6-139963EF",
5 "cold": false,
6 "onenote": "14.0.4763.1000"
7}
corpus/native-protected-boundaries/read/hierarchy.xml created+2
...@@ -0,0 +1,2 @@
1<?xml version="1.0"?>
2<one:Notebook xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" name="notebook" nickname="notebook" ID="{3247F4B5-B1A5-466E-B189-462F0CC64538}{1}{B0}" path="C:\one-tests\runs\capture\notebook" lastModifiedTime="2026-09-08T03:36:25.000Z" color="#9595AA" isCurrentlyViewed="true"><one:Section name="synthetic" ID="{85F6D340-D714-06E5-3A5A-0C1844038BBA}{1}{B0}" path="C:\one-tests\runs\capture\notebook\synthetic.one" lastModifiedTime="2026-09-08T03:36:25.000Z" color="#8AA8E4" encrypted="true" isCurrentlyViewed="true"><one:Page ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{43}{B0}" name="Fictitious plain text." dateTime="2026-09-05T05:06:54.000Z" lastModifiedTime="2026-09-08T03:36:21.000Z" pageLevel="1" isCurrentlyViewed="true"/><one:Page ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{12}{B0}" name="Attachment 0" dateTime="2026-09-08T03:12:53.000Z" lastModifiedTime="2026-09-08T03:36:21.000Z" pageLevel="1"/><one:Page ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{15}{B0}" name="Attachment 1" dateTime="2026-09-08T03:12:54.000Z" lastModifiedTime="2026-09-08T03:36:21.000Z" pageLevel="1"/><one:Page ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{18}{B0}" name="Attachment 15" dateTime="2026-09-08T03:12:54.000Z" lastModifiedTime="2026-09-08T03:36:21.000Z" pageLevel="1"/><one:Page ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{21}{B0}" name="Attachment 16" dateTime="2026-09-08T03:12:55.000Z" lastModifiedTime="2026-09-08T03:36:23.000Z" pageLevel="1"/><one:Page ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{24}{B0}" name="Attachment 17" dateTime="2026-09-08T03:12:55.000Z" lastModifiedTime="2026-09-08T03:36:23.000Z" pageLevel="1"/><one:Page ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{27}{B0}" name="Attachment 4095" dateTime="2026-09-08T03:12:55.000Z" lastModifiedTime="2026-09-08T03:36:23.000Z" pageLevel="1"/><one:Page ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{30}{B0}" name="Attachment 4096" dateTime="2026-09-08T03:12:55.000Z" lastModifiedTime="2026-09-08T03:36:24.000Z" pageLevel="1"/><one:Page ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{33}{B0}" name="Attachment 4097" dateTime="2026-09-08T03:12:55.000Z" lastModifiedTime="2026-09-08T03:36:24.000Z" pageLevel="1"/><one:Page ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{36}{B0}" name="Attachment 65537" dateTime="2026-09-08T03:12:56.000Z" lastModifiedTime="2026-09-08T03:36:25.000Z" pageLevel="1"/><one:Page ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{39}{B0}" name="Attachment 1048577" dateTime="2026-09-08T03:12:56.000Z" lastModifiedTime="2026-09-08T03:36:25.000Z" pageLevel="1"/></one:Section></one:Notebook>
corpus/native-protected-boundaries/read/page-000.xml created+2
...@@ -0,0 +1,2 @@
1<?xml version="1.0"?>
2<one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{12}{B0}" name="Attachment 0" dateTime="2026-09-08T03:12:53.000Z" lastModifiedTime="2026-09-08T03:36:21.000Z" pageLevel="1"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-08T03:12:54.000Z" lastModifiedTime="2026-09-08T03:12:54.000Z" objectID="{0B7E4970-D3E3-01A1-25E0-745DEE575203}{13}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Attachment 0]]></one:T></one:OE></one:Title><one:Outline author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" lastModifiedTime="2026-09-08T03:12:56.000Z" objectID="{0B7E4970-D3E3-01A1-25E0-745DEE575203}{20}{B0}"><one:Position x="36.0" y="86.4000015258789" z="0"/><one:Size width="72.0" height="63.0"/><one:OEChildren><one:OE creationTime="2026-09-08T03:12:54.000Z" lastModifiedTime="2026-09-08T03:12:54.000Z" objectID="{0B7E4970-D3E3-01A1-25E0-745DEE575203}{19}{B0}" alignment="left"><one:InsertedFile pathCache="C:\Users\clover\AppData\Local\Temp\OneNote\14.0\DNT\15bfba6e-540e-40f1-9dfd-8367a3f0e7a9.bin" pathSource="C:\one-tests\runs\capture\inputs\0.bin" preferredName="0.bin"/></one:OE></one:OEChildren></one:Outline></one:Page>
corpus/native-protected-boundaries/read/page-001.xml created+2
...@@ -0,0 +1,2 @@
1<?xml version="1.0"?>
2<one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{15}{B0}" name="Attachment 1" dateTime="2026-09-08T03:12:54.000Z" lastModifiedTime="2026-09-08T03:36:21.000Z" pageLevel="1"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-08T03:12:54.000Z" lastModifiedTime="2026-09-08T03:12:54.000Z" objectID="{89F9F232-AB92-07AB-39A0-579A47A5F10A}{13}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Attachment 1]]></one:T></one:OE></one:Title><one:Outline author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" lastModifiedTime="2026-09-08T03:12:56.000Z" objectID="{89F9F232-AB92-07AB-39A0-579A47A5F10A}{20}{B0}"><one:Position x="36.0" y="86.4000015258789" z="0"/><one:Size width="72.0" height="63.0"/><one:OEChildren><one:OE creationTime="2026-09-08T03:12:54.000Z" lastModifiedTime="2026-09-08T03:12:54.000Z" objectID="{89F9F232-AB92-07AB-39A0-579A47A5F10A}{19}{B0}" alignment="left"><one:InsertedFile pathCache="C:\Users\clover\AppData\Local\Temp\OneNote\14.0\DNT\ad25c278-bb0b-4aa9-8786-d9881150275e.bin" pathSource="C:\one-tests\runs\capture\inputs\1.bin" preferredName="1.bin"/></one:OE></one:OEChildren></one:Outline></one:Page>
corpus/native-protected-boundaries/read/page-002.xml created+2
...@@ -0,0 +1,2 @@
1<?xml version="1.0"?>
2<one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{18}{B0}" name="Attachment 15" dateTime="2026-09-08T03:12:54.000Z" lastModifiedTime="2026-09-08T03:36:21.000Z" pageLevel="1"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-08T03:12:54.000Z" lastModifiedTime="2026-09-08T03:12:54.000Z" objectID="{A5CFC542-F990-057E-367A-028A57D773EA}{13}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Attachment 15]]></one:T></one:OE></one:Title><one:Outline author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" lastModifiedTime="2026-09-08T03:12:56.000Z" objectID="{A5CFC542-F990-057E-367A-028A57D773EA}{20}{B0}"><one:Position x="36.0" y="86.4000015258789" z="0"/><one:Size width="72.0" height="63.0"/><one:OEChildren><one:OE creationTime="2026-09-08T03:12:54.000Z" lastModifiedTime="2026-09-08T03:12:54.000Z" objectID="{A5CFC542-F990-057E-367A-028A57D773EA}{19}{B0}" alignment="left"><one:InsertedFile pathCache="C:\Users\clover\AppData\Local\Temp\OneNote\14.0\DNT\f1ddba2a-51ab-486c-9981-3b024bb3154f.bin" pathSource="C:\one-tests\runs\capture\inputs\15.bin" preferredName="15.bin"/></one:OE></one:OEChildren></one:Outline></one:Page>
corpus/native-protected-boundaries/read/page-003.xml created+2
...@@ -0,0 +1,2 @@
1<?xml version="1.0"?>
2<one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{21}{B0}" name="Attachment 16" dateTime="2026-09-08T03:12:55.000Z" lastModifiedTime="2026-09-08T03:36:23.000Z" pageLevel="1"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-08T03:12:55.000Z" lastModifiedTime="2026-09-08T03:12:55.000Z" objectID="{D01E8920-2805-0083-3721-95BCC8E4167F}{13}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Attachment 16]]></one:T></one:OE></one:Title><one:Outline author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" lastModifiedTime="2026-09-08T03:12:56.000Z" objectID="{D01E8920-2805-0083-3721-95BCC8E4167F}{20}{B0}"><one:Position x="36.0" y="86.4000015258789" z="0"/><one:Size width="72.0" height="63.0"/><one:OEChildren><one:OE creationTime="2026-09-08T03:12:55.000Z" lastModifiedTime="2026-09-08T03:12:55.000Z" objectID="{D01E8920-2805-0083-3721-95BCC8E4167F}{19}{B0}" alignment="left"><one:InsertedFile pathCache="C:\Users\clover\AppData\Local\Temp\OneNote\14.0\DNT\f0817d03-1b3c-4a67-8434-da0ee4f0b59b.bin" pathSource="C:\one-tests\runs\capture\inputs\16.bin" preferredName="16.bin"/></one:OE></one:OEChildren></one:Outline></one:Page>
corpus/native-protected-boundaries/read/page-004.xml created+2
...@@ -0,0 +1,2 @@
1<?xml version="1.0"?>
2<one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{24}{B0}" name="Attachment 17" dateTime="2026-09-08T03:12:55.000Z" lastModifiedTime="2026-09-08T03:36:23.000Z" pageLevel="1"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-08T03:12:55.000Z" lastModifiedTime="2026-09-08T03:12:55.000Z" objectID="{97C3EBA8-DDD3-0A4F-1E9C-683127C71288}{13}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Attachment 17]]></one:T></one:OE></one:Title><one:Outline author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" lastModifiedTime="2026-09-08T03:12:56.000Z" objectID="{97C3EBA8-DDD3-0A4F-1E9C-683127C71288}{20}{B0}"><one:Position x="36.0" y="86.4000015258789" z="0"/><one:Size width="72.0" height="63.0"/><one:OEChildren><one:OE creationTime="2026-09-08T03:12:55.000Z" lastModifiedTime="2026-09-08T03:12:55.000Z" objectID="{97C3EBA8-DDD3-0A4F-1E9C-683127C71288}{19}{B0}" alignment="left"><one:InsertedFile pathCache="C:\Users\clover\AppData\Local\Temp\OneNote\14.0\DNT\f3ddeb57-9ce7-4717-ab29-0b2ccef55a24.bin" pathSource="C:\one-tests\runs\capture\inputs\17.bin" preferredName="17.bin"/></one:OE></one:OEChildren></one:Outline></one:Page>
corpus/native-protected-boundaries/read/page-005.xml created+2
...@@ -0,0 +1,2 @@
1<?xml version="1.0"?>
2<one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{27}{B0}" name="Attachment 4095" dateTime="2026-09-08T03:12:55.000Z" lastModifiedTime="2026-09-08T03:36:23.000Z" pageLevel="1"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-08T03:12:55.000Z" lastModifiedTime="2026-09-08T03:12:55.000Z" objectID="{741633FC-036D-0C74-320F-8ADC38E0A19E}{13}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Attachment 4095]]></one:T></one:OE></one:Title><one:Outline author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" lastModifiedTime="2026-09-08T03:12:56.000Z" objectID="{741633FC-036D-0C74-320F-8ADC38E0A19E}{20}{B0}"><one:Position x="36.0" y="86.4000015258789" z="0"/><one:Size width="72.0" height="63.0"/><one:OEChildren><one:OE creationTime="2026-09-08T03:12:55.000Z" lastModifiedTime="2026-09-08T03:12:55.000Z" objectID="{741633FC-036D-0C74-320F-8ADC38E0A19E}{19}{B0}" alignment="left"><one:InsertedFile pathCache="C:\Users\clover\AppData\Local\Temp\OneNote\14.0\DNT\54adf0e6-831c-4951-8422-f94518869248.bin" pathSource="C:\one-tests\runs\capture\inputs\4095.bin" preferredName="4095.bin"/></one:OE></one:OEChildren></one:Outline></one:Page>
corpus/native-protected-boundaries/read/page-006.xml created+2
...@@ -0,0 +1,2 @@
1<?xml version="1.0"?>
2<one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{30}{B0}" name="Attachment 4096" dateTime="2026-09-08T03:12:55.000Z" lastModifiedTime="2026-09-08T03:36:24.000Z" pageLevel="1"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-08T03:12:55.000Z" lastModifiedTime="2026-09-08T03:12:55.000Z" objectID="{221F2011-02E3-0DFF-30DA-32B887343A0E}{13}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Attachment 4096]]></one:T></one:OE></one:Title><one:Outline author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" lastModifiedTime="2026-09-08T03:12:56.000Z" objectID="{221F2011-02E3-0DFF-30DA-32B887343A0E}{20}{B0}"><one:Position x="36.0" y="86.4000015258789" z="0"/><one:Size width="72.0" height="63.0"/><one:OEChildren><one:OE creationTime="2026-09-08T03:12:55.000Z" lastModifiedTime="2026-09-08T03:12:55.000Z" objectID="{221F2011-02E3-0DFF-30DA-32B887343A0E}{19}{B0}" alignment="left"><one:InsertedFile pathCache="C:\Users\clover\AppData\Local\Temp\OneNote\14.0\DNT\fbd276ac-cd94-4ca1-bf68-55d920539d7b.bin" pathSource="C:\one-tests\runs\capture\inputs\4096.bin" preferredName="4096.bin"/></one:OE></one:OEChildren></one:Outline></one:Page>
corpus/native-protected-boundaries/read/page-007.xml created+2
...@@ -0,0 +1,2 @@
1<?xml version="1.0"?>
2<one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{33}{B0}" name="Attachment 4097" dateTime="2026-09-08T03:12:55.000Z" lastModifiedTime="2026-09-08T03:36:24.000Z" pageLevel="1"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-08T03:12:56.000Z" lastModifiedTime="2026-09-08T03:12:56.000Z" objectID="{6FC97252-6851-027D-2C2F-02DD4D1043A5}{13}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Attachment 4097]]></one:T></one:OE></one:Title><one:Outline author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" lastModifiedTime="2026-09-08T03:12:56.000Z" objectID="{6FC97252-6851-027D-2C2F-02DD4D1043A5}{20}{B0}"><one:Position x="36.0" y="86.4000015258789" z="0"/><one:Size width="72.0" height="63.0"/><one:OEChildren><one:OE creationTime="2026-09-08T03:12:56.000Z" lastModifiedTime="2026-09-08T03:12:56.000Z" objectID="{6FC97252-6851-027D-2C2F-02DD4D1043A5}{19}{B0}" alignment="left"><one:InsertedFile pathCache="C:\Users\clover\AppData\Local\Temp\OneNote\14.0\DNT\7e92b40f-0cde-4350-a1c8-15d0cb7c27ba.bin" pathSource="C:\one-tests\runs\capture\inputs\4097.bin" preferredName="4097.bin"/></one:OE></one:OEChildren></one:Outline></one:Page>
corpus/native-protected-boundaries/read/page-008.xml created+2
...@@ -0,0 +1,2 @@
1<?xml version="1.0"?>
2<one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{36}{B0}" name="Attachment 65537" dateTime="2026-09-08T03:12:56.000Z" lastModifiedTime="2026-09-08T03:36:25.000Z" pageLevel="1"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-08T03:12:56.000Z" lastModifiedTime="2026-09-08T03:12:56.000Z" objectID="{BB722167-561D-0EB5-282A-227BB9601E32}{13}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Attachment 65537]]></one:T></one:OE></one:Title><one:Outline author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" lastModifiedTime="2026-09-08T03:12:56.000Z" objectID="{BB722167-561D-0EB5-282A-227BB9601E32}{20}{B0}"><one:Position x="36.0" y="86.4000015258789" z="0"/><one:Size width="72.0" height="63.0"/><one:OEChildren><one:OE creationTime="2026-09-08T03:12:56.000Z" lastModifiedTime="2026-09-08T03:12:56.000Z" objectID="{BB722167-561D-0EB5-282A-227BB9601E32}{19}{B0}" alignment="left"><one:InsertedFile pathCache="C:\Users\clover\AppData\Local\Temp\OneNote\14.0\DNT\92c4d34d-168a-4f16-a463-635fbca2f646.bin" pathSource="C:\one-tests\runs\capture\inputs\65537.bin" preferredName="65537.bin"/></one:OE></one:OEChildren></one:Outline></one:Page>
corpus/native-protected-boundaries/read/page-009.xml created+2
...@@ -0,0 +1,2 @@
1<?xml version="1.0"?>
2<one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{39}{B0}" name="Attachment 1048577" dateTime="2026-09-08T03:12:56.000Z" lastModifiedTime="2026-09-08T03:36:25.000Z" pageLevel="1"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Title lang="en-US"><one:OE author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" creationTime="2026-09-08T03:12:56.000Z" lastModifiedTime="2026-09-08T03:12:56.000Z" objectID="{B986C7A4-513F-086A-093A-A55963EAD509}{13}{B0}" alignment="left" quickStyleIndex="0" style="font-family:Calibri;font-size:17.0pt"><one:T><![CDATA[Attachment 1048577]]></one:T></one:OE></one:Title><one:Outline author="virtual" authorInitials="V" lastModifiedBy="virtual" lastModifiedByInitials="V" lastModifiedTime="2026-09-08T03:12:56.000Z" objectID="{B986C7A4-513F-086A-093A-A55963EAD509}{20}{B0}"><one:Position x="36.0" y="86.4000015258789" z="0"/><one:Size width="72.0" height="63.0"/><one:OEChildren><one:OE creationTime="2026-09-08T03:12:56.000Z" lastModifiedTime="2026-09-08T03:12:56.000Z" objectID="{B986C7A4-513F-086A-093A-A55963EAD509}{19}{B0}" alignment="left"><one:InsertedFile pathCache="C:\Users\clover\AppData\Local\Temp\OneNote\14.0\DNT\cff7bbe7-97a7-4c6e-91a9-06cc9cc868f8.bin" pathSource="C:\one-tests\runs\capture\inputs\1048577.bin" preferredName="1048577.bin"/></one:OE></one:OEChildren></one:Outline></one:Page>
corpus/native-protected-boundaries/read/page-010.xml created+2
...@@ -0,0 +1,2 @@
1<?xml version="1.0"?>
2<one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/2010/onenote" ID="{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{43}{B0}" name="Fictitious plain text." dateTime="2026-09-05T05:06:54.000Z" lastModifiedTime="2026-09-08T03:39:13.000Z" pageLevel="1" isCurrentlyViewed="true" lang="en-US"><one:QuickStyleDef index="0" name="p" fontColor="automatic" highlightColor="automatic" font="Calibri" fontSize="11.0" spaceBefore="0.0" spaceAfter="0.0"/><one:PageSettings RTL="false" color="automatic"><one:PageSize><one:Automatic/></one:PageSize><one:RuleLines visible="false"/></one:PageSettings><one:Outline author="snow" authorInitials="S" lastModifiedBy="snow" lastModifiedByInitials="S" lastModifiedTime="2026-09-08T03:39:11.000Z" objectID="{1B1F0DD5-3C48-00B4-305E-6D9B7B93B0A2}{12}{B0}"><one:Position x="36.0" y="14.40000057220459" z="0"/><one:Size width="127.5136947631836" height="13.42771625518799"/><one:OEChildren><one:OE creationTime="2026-09-05T05:06:55.000Z" lastModifiedTime="2026-09-08T03:39:11.000Z" objectID="{1B1F0DD5-3C48-00B4-305E-6D9B7B93B0A2}{13}{B0}" alignment="left" quickStyleIndex="0"><one:T><![CDATA[Fictitious plain text.]]></one:T></one:OE></one:OEChildren></one:Outline></one:Page>
corpus/native-protected-boundaries/read/payloads.json created+82
...@@ -0,0 +1,82 @@
1[
2 {
3 "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
4 "name": "0.bin",
5 "object": "{0B7E4970-D3E3-01A1-25E0-745DEE575203}{19}{B0}",
6 "kind": "InsertedFile",
7 "page": "{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{12}{B0}",
8 "bytes": 0
9 },
10 {
11 "sha256": "6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d",
12 "name": "1.bin",
13 "object": "{89F9F232-AB92-07AB-39A0-579A47A5F10A}{19}{B0}",
14 "kind": "InsertedFile",
15 "page": "{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{15}{B0}",
16 "bytes": 1
17 },
18 {
19 "sha256": "7071fc3188fde7e7e500d4768f1784bede1a22e991648dcab9dc3219acff1d4c",
20 "name": "15.bin",
21 "object": "{A5CFC542-F990-057E-367A-028A57D773EA}{19}{B0}",
22 "kind": "InsertedFile",
23 "page": "{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{18}{B0}",
24 "bytes": 15
25 },
26 {
27 "sha256": "be45cb2605bf36bebde684841a28f0fd43c69850a3dce5fedba69928ee3a8991",
28 "name": "16.bin",
29 "object": "{D01E8920-2805-0083-3721-95BCC8E4167F}{19}{B0}",
30 "kind": "InsertedFile",
31 "page": "{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{21}{B0}",
32 "bytes": 16
33 },
34 {
35 "sha256": "3e5718fea51a8f3f5baca61c77afab473c1810f8b9db330273b4011ce92c787e",
36 "name": "17.bin",
37 "object": "{97C3EBA8-DDD3-0A4F-1E9C-683127C71288}{19}{B0}",
38 "kind": "InsertedFile",
39 "page": "{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{24}{B0}",
40 "bytes": 17
41 },
42 {
43 "sha256": "925128da639768d0475745fe9a9f64762cde4124250d33eeadfa3fa59ade26ba",
44 "name": "4095.bin",
45 "object": "{741633FC-036D-0C74-320F-8ADC38E0A19E}{19}{B0}",
46 "kind": "InsertedFile",
47 "page": "{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{27}{B0}",
48 "bytes": 4095
49 },
50 {
51 "sha256": "d836371f66ce824353fbe3fbcee019fd534c02e3afaf4266d6dacb424acb5ac1",
52 "name": "4096.bin",
53 "object": "{221F2011-02E3-0DFF-30DA-32B887343A0E}{19}{B0}",
54 "kind": "InsertedFile",
55 "page": "{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{30}{B0}",
56 "bytes": 4096
57 },
58 {
59 "sha256": "e17ccd8f53701462eeb137b59b9f839b0f1da9b5ed8721ac65540eff10965c91",
60 "name": "4097.bin",
61 "object": "{6FC97252-6851-027D-2C2F-02DD4D1043A5}{19}{B0}",
62 "kind": "InsertedFile",
63 "page": "{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{33}{B0}",
64 "bytes": 4097
65 },
66 {
67 "sha256": "dc8608b73169191bf61e580637df32af153784c4e63748134fd4ab85afcc2d40",
68 "name": "65537.bin",
69 "object": "{BB722167-561D-0EB5-282A-227BB9601E32}{19}{B0}",
70 "kind": "InsertedFile",
71 "page": "{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{36}{B0}",
72 "bytes": 65537
73 },
74 {
75 "sha256": "e0bf9215397fdc4f1046c58bcbab5e927b5cab719f17ac3a7312a393cd2d5d33",
76 "name": "1048577.bin",
77 "object": "{B986C7A4-513F-086A-093A-A55963EAD509}{19}{B0}",
78 "kind": "InsertedFile",
79 "page": "{29453F44-AA0E-0CBE-13F7-7684DA3DB9EB}{39}{B0}",
80 "bytes": 1048577
81 }
82]
\ No newline at end of file
crates/onestore/tests/document.rs+19-15
...@@ -438,21 +438,25 @@ fn native_unicode_table_assets_and_coordinates_are_typed() {...@@ -438,21 +438,25 @@ fn native_unicode_table_assets_and_coordinates_are_typed() {
438438
439#[test]439#[test]
440fn encrypted_content_is_accounted_without_fabricated_plaintext() {440fn encrypted_content_is_accounted_without_fabricated_plaintext() {
441 let bytes =441 for path in [
442 fs::read("../../corpus/native-encrypted/encrypted-01/notebook/synthetic.one").unwrap();442 "../../corpus/native-encrypted/encrypted-01/notebook/synthetic.one",
443 let store = Store::parse(&bytes).unwrap();443 "../../corpus/native-protected-boundaries/notebook/synthetic.one",
444 let index = RevisionIndex::parse(&store).unwrap();444 ] {
445 let document = Document::parse(&index).unwrap();445 let bytes = fs::read(path).unwrap();
446 assert!(!document.spaces.is_empty());446 let store = Store::parse(&bytes).unwrap();
447 let nodes: Vec<_> = document447 let index = RevisionIndex::parse(&store).unwrap();
448 .spaces448 let document = Document::parse(&index).unwrap();
449 .values()449 assert!(!document.spaces.is_empty());
450 .flat_map(|s| s.revisions.values())450 let nodes: Vec<_> = document
451 .flat_map(|r| r.nodes.values())451 .spaces
452 .collect();452 .values()
453 assert!(!nodes.is_empty());453 .flat_map(|s| s.revisions.values())
454 for node in nodes {454 .flat_map(|r| r.nodes.values())
455 assert!(matches!(node.kind, Kind::Encrypted { ciphertext } if !ciphertext.is_empty()));455 .collect();
456 assert!(!nodes.is_empty());
457 for node in nodes {
458 assert!(matches!(node.kind, Kind::Encrypted { ciphertext } if !ciphertext.is_empty()));
459 }
456 }460 }
457}461}
458462
crates/onestore/tests/revisions.rs+26-22
...@@ -67,31 +67,35 @@ fn persisted_identities_preserve_native_byte_order_and_canonical_form() {...@@ -67,31 +67,35 @@ fn persisted_identities_preserve_native_byte_order_and_canonical_form() {
6767
68#[test]68#[test]
69fn native_encryption_remains_opaque() {69fn native_encryption_remains_opaque() {
70 let bytes =70 for path in [
71 fs::read("../../corpus/native-encrypted/encrypted-01/notebook/synthetic.one").unwrap();71 "../../corpus/native-encrypted/encrypted-01/notebook/synthetic.one",
72 let store = Store::parse(&bytes).unwrap();72 "../../corpus/native-protected-boundaries/notebook/synthetic.one",
73 assert!(store.checksum_mismatches.is_empty());73 ] {
74 let index = RevisionIndex::parse(&store).unwrap();74 let bytes = fs::read(path).unwrap();
75 let mut encrypted = 0;75 let store = Store::parse(&bytes).unwrap();
76 for (osid, space) in &index.spaces {76 assert!(store.checksum_mismatches.is_empty());
77 for (rid, revision) in &space.revisions {77 let index = RevisionIndex::parse(&store).unwrap();
78 let resolved = index.resolve(*osid, *rid).unwrap();78 let mut encrypted = 0;
79 if revision.encrypted {79 for (osid, space) in &index.spaces {
80 encrypted += 1;80 for (rid, revision) in &space.revisions {
81 assert!(81 let resolved = index.resolve(*osid, *rid).unwrap();
82 resolved82 if revision.encrypted {
83 .objects83 encrypted += 1;
84 .values()84 assert!(
85 .any(|object| matches!(object.data, ObjectData::Encrypted(_)))85 resolved
86 );86 .objects
87 assert_eq!(87 .values()
88 resolved.reachable().unwrap_err().message,88 .any(|object| matches!(object.data, ObjectData::Encrypted(_)))
89 "Encrypted property references are unavailable"89 );
90 );90 assert_eq!(
91 resolved.reachable().unwrap_err().message,
92 "Encrypted property references are unavailable"
93 );
94 }
91 }95 }
92 }96 }
97 assert!(encrypted > 0);
93 }98 }
94 assert!(encrypted > 0);
95}99}
96100
97#[test]101#[test]
crates/onestore/tests/shared_snapshot.rs+1
...@@ -19,6 +19,7 @@ use trace::{Event, Trace};...@@ -19,6 +19,7 @@ use trace::{Event, Trace};
19fn storage_inspection_preserves_opaque_images_without_claiming_edit_readiness() {19fn storage_inspection_preserves_opaque_images_without_claiming_edit_readiness() {
20 for path in [20 for path in [
21 "native-encrypted/encrypted-01/notebook/synthetic.one",21 "native-encrypted/encrypted-01/notebook/synthetic.one",
22 "native-protected-boundaries/notebook/synthetic.one",
22 "native-encrypted/cold-encrypted-02/notebook/Open Notebook.one",23 "native-encrypted/cold-encrypted-02/notebook/Open Notebook.one",
23 "malformed/native-inflight.one",24 "malformed/native-inflight.one",
24 ] {25 ] {