CERTIDOX - INDEPENDENT VERIFICATION BUNDLE
Certified PDF Document

PURPOSE

This archive contains the encrypted certified reference document together with the materials required to:

1. reconstruct the certified reference document;
2. verify its SHA-256 hash against the certification manifest; and
3. independently verify the DigiStamp RFC 3161 timestamp associated with that
   manifest.

The verification process is designed to be reproducible using independently available technical tools and does not require reliance on a Certidox-generated verification display.


CONTENTS

document.enc
    AES-256-GCM encrypted certified reference document.

reading_key.txt
    Reading key used to decrypt document.enc.

manifest.json
    Certification manifest containing:
    - the Certidox certification identifier;
    - the SHA-256 hash of the certified payload;
    - the Certidox certification-event time;
    - the certifier information recorded by Certidox; and
    - the certifying organization recorded by Certidox.

response.tsr
    DigiStamp RFC 3161 timestamp response.

    The RFC 3161 message imprint corresponds to the SHA-256 of the exact manifest.json bytes submitted for timestamping.

decrypt.py
    Convenience script used to decrypt document.enc and reconstruct the certified reference document.

verify_timestamp.sh
    Convenience script used to verify:
    - the SHA-256 of the reconstructed certified payload against the value recorded in manifest.json; and
    - the exact manifest.json bytes against the DigiStamp RFC 3161 timestamp response.

readme.txt
    This document.


CERTIFIED PAYLOAD

The decrypted payload is the certified reference PDF document.

The original source filename is not required for cryptographic verification.

Verification is based on the exact certified document content and its SHA-256, not on the original filename assigned to that document.


PAYLOAD SHA-256

payload_sha256 in manifest.json is the SHA-256 hash of the exact certified payload before encryption.

It is calculated by the Certidox certification process and recorded in manifest.json before that manifest is submitted for RFC 3161 timestamping.

Successful verification requires:

SHA-256(reconstructed certified payload) = payload_sha256 recorded in manifest.json


RFC 3161 TIMESTAMP VERIFICATION

The exact manifest.json used for certification is preserved with the certification record.

The DigiStamp RFC 3161 timestamp response contains a message imprint corresponding to the SHA-256 of those exact manifest.json bytes.

Successful timestamp verification therefore requires:

SHA-256(exact manifest.json bytes) = RFC 3161 message imprint

The verification procedure may use DigiStamp trust material obtained independently of Certidox.

The included scripts are convenience implementations and are not themselves trust anchors.


VERIFICATION CHAIN

The historical cryptographic verification chain is:

Certidox QR code
    ->
reading key and certification identifier
    ->
document.enc
    ->
reconstructed certified reference document
    ->
SHA-256 of the certified payload
    ->
manifest.json
    ->
SHA-256 of the exact manifest.json bytes
    ->
DigiStamp RFC 3161 timestamp response


WHAT A SUCCESSFUL VERIFICATION ESTABLISHES

A successful verification establishes that:

1. document.enc can be decrypted using the corresponding reading key;

2. the SHA-256 of the reconstructed certified reference document matches the payload_sha256 recorded in manifest.json;

3. the SHA-256 of the exact manifest.json bytes matches the message imprint contained in the DigiStamp RFC 3161 timestamp response; and

4. the timestamp response validates using the trust material used for the verification.

This provides cryptographic evidence that the SHA-256 corresponding to the exact reconstructed certified digital document was recorded in the timestamped manifest no later than the DigiStamp RFC 3161 genTime.


TWO DISTINCT TIMES

Two different times are relevant to the certification.

1. CERTIDOX CERTIFICATION-EVENT TIME

certification_event_time_utc in manifest.json is the time recorded by Certidox for the certification event.

2. DIGISTAMP RFC 3161 GENTIME

The RFC 3161 genTime is the independent time asserted by the DigiStamp Timestamp Authority.

These two times serve different evidentiary purposes and must not automatically be treated as identical.


CERTIFIER INFORMATION

manifest.json contains the certifier information and certifying organization recorded by Certidox.

Because those values are contained in the timestamped manifest, successful verification establishes that those recorded values were contained in the manifest no later than the DigiStamp RFC 3161 genTime and have not subsequently been altered without invalidating the timestamp verification.

This does not, by itself, independently establish that the recorded human identity, authority or legal capacity was accurate when Certidox created the certification record.


DIGITAL FILES AND PRINTED OR RENDERED COPIES

The SHA-256 contained in the certification record is the SHA-256 of the exact certified digital reference document.

Where a presented digital file is claimed to be a byte-identical copy of that certified reference document, its file-level identity can be checked directly by calculating its SHA-256 and comparing it with the certified payload_sha256.

A physical printed copy has no file-level SHA-256.

A scanned, photographed, converted or otherwise rendered digital copy will ordinarily have different file-level bytes and therefore a different SHA-256.

This does not prevent verification of the certified reference.

Where the Certidox QR code remains readable, the QR code provides the linkage used to recover the fixed certified reference document against which the content of the presented digital or printed copy can be examined.

Accordingly, file-level SHA-256 comparison is used where byte-identical digital files are being compared.

For printed, scanned, photographed or otherwise rendered copies, the certified reference document recovered through the QR-linked verification process serves as the fixed reference for comparison.


QR CODE LINKAGE

The Certidox QR code provides the linkage between the presented certified document and its Certidox certification record.

Independent decoding of the QR code may provide the certification identifier (prefixed by the Certidox instance number) and reading key required to locate and reconstruct the associated certified reference document.

The reading key can then be used with document.enc to recover the certified payload.

Successful reconstruction and cryptographic verification provide a technical path from the QR code appearing on a document or readable copy to the fixed certified reference document and its associated timestamp evidence.


INDEPENDENT VERIFICATION

Except for any inquiry into the current live Certidox certification status, reconstruction of the certified payload and historical RFC 3161 timestamp verification do not require:

- access to the Certidox live verification interface; or
- reliance on a Certidox-generated verification display.

The DigiStamp trust material required for RFC 3161 verification may be obtained independently of Certidox.


CURRENT CERTIDOX STATUS

The current Certidox certification status is a live service-side value.

It is separate from the historical cryptographic evidence contained in this bundle.

Offline verification of this bundle does not, by itself, establish the current Certidox status of the certification.


WHAT THIS BUNDLE DOES NOT ESTABLISH BY ITSELF

This bundle does not, by itself, establish:

- the factual truth of the document's content;
- the legal authority or capacity of the recorded certifier;
- personal authorship of the document;
- that a printed, scanned, photographed or converted copy is byte-for-byte identical to the certified digital reference document;
- the legal admissibility or evidentiary weight of the document;
- fraud, intent or liability; or
- the current live Certidox certification status.

Those matters require separate evidence where relevant.


EVIDENCE PRESERVATION

For evidentiary use:

1. preserve the original ZIP archive unchanged;

2. compute and record the SHA-256 of the original ZIP archive before extraction;

3. perform reconstruction and verification on a working copy;

4. preserve the original manifest.json and response.tsr unchanged; and

5. record the SHA-256 of any digital file independently compared with the certified reference document.

The SHA-256 of the ZIP archive identifies that particular exported archive.

It is distinct from:

- the Certidox certification identifier;
- the payload_sha256 contained in manifest.json; and
- the SHA-256 of manifest.json used for RFC 3161 verification.


SECURITY AND CONFIDENTIALITY

This archive contains both the encrypted certified payload and the reading key required to decrypt it.

Possession of the complete verification bundle therefore normally permits recovery of the certified reference document.

The bundle should be protected with confidentiality controls appropriate to the underlying certified document.


QUICK VERIFICATION

Work from a copy of the original archive.

Reconstruct the certified payload:

    python3 decrypt.py

Verify the historical cryptographic evidence:

    bash verify_timestamp.sh

A successful verification should confirm:

    Payload SHA-256: MATCH
    Manifest / RFC 3161 message imprint: MATCH
    RFC 3161 verification: OK

The DigiStamp RFC 3161 genTime reported by the verification is the independent Timestamp Authority time.

The current Certidox live status is not established by this offline verification.
