Evidence
The perito package
What a notification's evidence package (.zip) contains and how a perito verifies it without access to Notificado.
Updated:
The evidence package is a .zip that a perito (expert witness), a judge or the other party verifies with standard tools and no access to Notificado. Download it from the notification, under Notifications, together with the constancia PDF. Every download is recorded.
What it contains
| File | What it is |
|---|---|
manifest.json |
Every file with its SHA-256 and size; the timestamps and what each covers. |
SHA256SUMS |
The same hashes, for sha256sum -c. |
mensaje/*.eml |
The exact message sent to each recipient. |
adjuntos/ |
The documents, byte for byte. |
eventos/eventos.json |
Chained events (previous hash + hash), daily anchors and Merkle proofs. |
eventos/raw/ |
What the providers answered, as received. |
sellos/*.tsr |
The RFC 3161 timestamp tokens. |
sellos/tsa-ca/*.pem |
Each timestamp authority's root of trust. |
constancia.pdf |
The signed constancia. |
firma/cert-chain.pem |
The chain of trust of the constancia's signature. |
verificar.js |
Automatic verifier. |
LEEME.txt / README.txt |
Instructions in Spanish and in English. |
Automatic verification
With Bun, openssl, sha256sum and pdfsig (poppler-utils) installed, inside the unzipped folder:
bun verificar.js
Exit 0 = verified; 1 = something does not verify (it is named); 2 = unreadable package; 3 = openssl missing.
Manual verification
sha256sum -c SHA256SUMS
openssl ts -reply -in sellos/<stamp>.tsr -text
openssl ts -verify -data mensaje/<recipient>.eml -in sellos/<stamp>.tsr -CAfile sellos/tsa-ca/<authority>.pem
pdfsig constancia.pdf
Each timestamp must answer Verification: OK. In the chain, every event satisfies hash = sha256(previous_hash followed by the event in RFC 8785 canonical JSON): altering, removing or reordering one event breaks every event after it.
What it does not prove
That a person read the message: openings are indicios. Nor who clicked a download link — only when, from which IP and with which browser. The judge decides whether the notification is valid.