Corruption detection (hash audit)
Re-hash a file and compare it against a recorded digest to detect any post-export corruption or modification.
Problem
You’re exporting a de-identified DICOM file for a clinical trial and want to be able to detect whether the file was corrupted or modified after export. The app generates an integrity-manifest export: the DICOM file plus a detached .dcm.sig manifest holding a SHA-256 hash. Later, anyone can re-check the file’s integrity by recomputing the hash — even a single byte changed after export will be detected.
Scope. This use case is the SHA-256 hash check that detects corruption and unintentional modification. The sidecar is also asymmetrically signed (ECDSA P-256 / ES256), so it additionally resists a determined adversary and proves authorship — see use case 10.5 for the signature and signer-identity workflow.
Steps
Export with Integrity Manifest
-
Open the file (⌘O).
-
Click Export in the top bar, then select Export with Integrity Manifest….
-
Two files are downloaded simultaneously:
- The DICOM file (
.dcm) - The integrity manifest sidecar (
.dcm.sig)
- The DICOM file (
Verify Integrity
-
Open the Verify Integrity Manifest modal — ⌘K → type “verify” → select “Verify integrity manifest…”.
-
Upload the DICOM file — click the DICOM file upload area, select the
.dcmfile. A ✓ indicator confirms the file was loaded. -
Upload the manifest sidecar — click the manifest upload area, select the
.dcm.sigfile. A ✓ indicator confirms it was loaded. -
Click Verify — if both files match, the modal shows a green “Signature verified” confirmation.
Detect Corruption
-
Modify the DICOM file — flip a single byte in the
.dcmfile on disk. -
Re-verify — upload the modified
.dcmand the original.sigsidecar. Click Verify. -
The modal shows “Verification FAILED” — the recomputed hash no longer matches the modified file.
Result
Exporting produces the .dcm and a detached, signed .dcm.sig manifest — a SHA-256 hash of the file plus a binding to the audit snapshot, signed with ECDSA P-256. Re-verifying the matching pair reads “Signature verified”, and a single changed byte is caught. It detects corruption and, via the signature, adversarial tampering — see use case 10.5.