{{ report_title or "Chain of Custody Log" }}

Case: {{ case_id }} · Examiner: {{ examiner }} · Generated: {{ generated_at }}

{% set is_verified = (verification and verification.status == 'verified') %}
{% if is_verified %}🛡️{% else %}⚠️{% endif %}

Chain of Custody Ledger: {% if is_verified %}Cryptographically Verified{% else %}Verification Warning / Error{% endif %}

Status: {% if is_verified %} VERIFIED: Cryptographic linkage of all ledger block hashes holds intact. {% else %} WARNING: Mismatched or unverified custody hashes detected. {% endif %}

{% if verification and verification.reason %}

Verification Detail: {{ verification.reason }}

{% endif %}
{% if notes %}

Custody & Case Examiner Notes

{{ notes }}

{% endif %}

Total Ledger Entries

{{ entry_count }}

Chain head SHA256

{{ chain_head_sha256 or "n/a" }}

Evidence Log Ledger Entries

Sequential listing of crytographically chained evidence acquisition blocks.

{% for entry in entries %}
Block #{{ loop.index }} {{ entry.name }}
{% if entry.category %} {% endif %} {% if entry.source_command %} {% endif %} {% if entry.device_serial %} {% endif %} {% if entry.collected_at_utc %} {% endif %} {% if entry.size_bytes is not none %} {% endif %} {% if entry.integrity_status %} {% endif %} {% if entry.sha256 %} {% endif %}
Acquisition Path {{ entry.path }}
Category {{ entry.category }}
Source Command {{ entry.source_command }}
Device Serial {{ entry.device_serial }}
Collected UTC {{ entry.collected_at_utc }}
Size Bytes {{ entry.size_bytes }} bytes
Integrity Status {% set status_badge = 'info' %} {% if entry.integrity_status == 'verified' %}{% set status_badge = 'low' %}{% endif %} {% if entry.integrity_status == 'modified' %}{% set status_badge = 'high' %}{% endif %} {{ entry.integrity_status }}
File SHA-256 {{ entry.sha256 }}
Previous Block Hash {{ entry.previous_hash }}
Entry hash {{ entry.entry_hash }}
{% endfor %}