Security / Engine
How the engine works
What happens between “Open document” and “Copy saved and checked”, without marketing words.
Last updated / October 19, 2026
- 01
Reading
Pages are read with PDFium, the PDF library inside Chrome, built into the app. Scanned pages without text are read with the operating system's own text recognition: Apple Vision on macOS, Windows.Media.Ocr on Windows, in the background.
Text that another program placed invisibly over a scan is treated as approximate, and pages whose fonts cannot be read back are flagged, because no search could prove what they show.
- 02
Finding
Detectors are plain, testable rules, not a cloud model. Numbers must pass their own validation before they are suggested: Luhn and network prefixes for cards, mod 97 for IBAN, the ABA checksum for routing numbers, Luhn for Canadian SIN, IRS prefixes for EIN, valid ranges for ITIN, format rules for Medicare MBI and the check digit for VIN.
Once a value is found, it is searched on every page in every way the verifier will later look for it, so “481559027” also finds “481-55-9027”. Form field values, comment texts and link addresses are searched too. On macOS, person names are suggested with Apple's NaturalLanguage framework; on Windows, from your word lists.
- 03
Rebuilding
Every page with a redaction is rendered at 200 dpi (adjustable), the boxes are painted into the pixels in memory before anything touches the disk, and the engine paints them again. The page is then replaced by a new page that contains only that image: lossless for text pages, JPEG for scans. There is no text-operator surgery, on purpose.
Pages with content that cannot be seen are rebuilt automatically: invisible text, text or images outside the page (even partly), text in the background color using the real shapes and clipping paths, zero size or opacity, content covered later by an opaque box, image or thick line, clipped images and unreadable drawing commands.
- 04
Writing a clean file
The output catalog is built from a whitelist: the pages, rewritten bookmarks and filtered form fields. Document info, XMP, attachments, thumbnails, PieceInfo, JavaScript and actions, layers, the tag tree, XFA, signatures, named destinations and page labels are not carried over. The file has one revision, a plain cross-reference table, no object streams and no stray objects.
A form field under a box is removed everywhere, and bookmarks, comments and fields that contain removed text are removed or blacked out. Pages that keep their text lose fonts, images and patterns they do not use.
- 05
Checking
The verifier does not reuse the redaction code. It re-opens the output from disk and runs six checks: text (page text and content streams, through the font maps and as raw bytes), stored (every object, decoded stream and the file bytes, as plain text, UTF-16 and hex, with and without separators), pages (each redacted page is a single image with no fonts, text or annotations), document (the whole file, unused resources included), hidden (no hidden content, earlier revision or unused object) and pixels (every box is its fill color, label pixels included).
Raw bytes are searched for texts of six characters or more, because shorter ones turn up in compressed pictures by chance; JPEG pages get a small, documented tolerance at sharp edges. If any check fails, the staged copy is deleted and the app shows which text remained on which page, masked.
- 06
Reporting
Each saved copy gets a PDF and a JSON report: file names and SHA-256 of input and output, date and time, rule set, whether it was reviewed, every redaction with page, type, label and how it was marked, rebuilt pages and why, every check, and what the report can and cannot show. Removed text is never written into the report; an optional masked form shows only the last characters.
- 07
Known limits
- Rebuilt pages are pictures: their text can no longer be selected or searched, and files can grow.
- Text recognition on scans is never perfect; boxes are drawn wide and the app asks you to look closely.
- Detectors can miss information and can mark information that should stay. You review every page.
- A passed check proves the specific texts and areas you chose are gone, not that a document holds nothing sensitive.
- 08
How we test it
Every release runs the engine's unit tests, the app's automated tests and a regression corpus of public forms, each redacted and verified end to end.