fieldwitness/frontends/web/templates/attest/result.html
Aaron D. Lee 490f9d4a1d Rebrand SooSeF to FieldWitness
Complete project rebrand for better positioning in the press freedom
and digital security space. FieldWitness communicates both field
deployment and evidence testimony — appropriate for the target audience
of journalists, NGOs, and human rights organizations.

Rename mapping:
- soosef → fieldwitness (package, CLI, all imports)
- soosef.stegasoo → fieldwitness.stego
- soosef.verisoo → fieldwitness.attest
- ~/.soosef/ → ~/.fwmetadata/ (innocuous data dir name)
- SOOSEF_DATA_DIR → FIELDWITNESS_DATA_DIR
- SoosefConfig → FieldWitnessConfig
- SoosefError → FieldWitnessError

Also includes:
- License switch from MIT to GPL-3.0
- C2PA bridge module (Phase 0-2 MVP): cert.py, export.py, vendor_assertions.py
- README repositioned to lead with provenance/federation, stego backgrounded
- Threat model skeleton at docs/security/threat-model.md
- Planning docs: docs/planning/c2pa-integration.md, docs/planning/gtm-feasibility.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 15:05:13 -04:00

96 lines
3.9 KiB
HTML

{% extends "base.html" %}
{% block title %}Attestation Created — FieldWitness{% endblock %}
{% block content %}
<div class="row justify-content-center">
<div class="col-lg-8">
<div class="alert alert-success">
<i class="bi bi-check-circle me-2"></i>
<strong>Attestation created successfully!</strong>
Image <code>{{ filename }}</code> has been attested and stored in the local log (index #{{ index }}).
</div>
<div class="card bg-dark border-secondary mb-4">
<div class="card-header">
<h5 class="mb-0"><i class="bi bi-file-earmark-check me-2"></i>Attestation Record</h5>
</div>
<div class="card-body">
<div class="row g-3">
<div class="col-md-6">
<label class="form-label text-muted small">Record ID</label>
<div><code class="text-info">{{ record_id }}</code></div>
</div>
<div class="col-md-6">
<label class="form-label text-muted small">Short ID</label>
<div><code class="text-info">{{ short_id }}</code></div>
</div>
<div class="col-md-6">
<label class="form-label text-muted small">Attestor Fingerprint</label>
<div><code>{{ attestor[:16] }}...</code></div>
</div>
<div class="col-md-6">
<label class="form-label text-muted small">Timestamp</label>
<div>{{ timestamp }}</div>
</div>
</div>
</div>
</div>
<div class="card bg-dark border-secondary mb-4">
<div class="card-header">
<h6 class="mb-0"><i class="bi bi-hash me-2"></i>Image Hashes</h6>
</div>
<div class="card-body">
<div class="mb-2">
<label class="form-label text-muted small">SHA-256 (exact identity)</label>
<div><code class="text-warning small">{{ sha256 }}</code></div>
</div>
{% if phash %}
<div class="mb-2">
<label class="form-label text-muted small">pHash (survives JPEG compression)</label>
<div><code class="small">{{ phash }}</code></div>
</div>
{% endif %}
{% if dhash %}
<div class="mb-2">
<label class="form-label text-muted small">dHash (survives resizing)</label>
<div><code class="small">{{ dhash }}</code></div>
</div>
{% endif %}
</div>
</div>
{% if caption or location_name %}
<div class="card bg-dark border-secondary mb-4">
<div class="card-header">
<h6 class="mb-0"><i class="bi bi-info-circle me-2"></i>Metadata</h6>
</div>
<div class="card-body">
{% if caption %}
<div class="mb-2">
<label class="form-label text-muted small">Caption</label>
<div>{{ caption }}</div>
</div>
{% endif %}
{% if location_name %}
<div class="mb-2">
<label class="form-label text-muted small">Location</label>
<div>{{ location_name }}</div>
</div>
{% endif %}
</div>
</div>
{% endif %}
<div class="d-grid gap-2">
<a href="/attest" class="btn btn-outline-info">
<i class="bi bi-plus-circle me-2"></i>Attest Another Image
</a>
<a href="/attest/log" class="btn btn-outline-secondary">
<i class="bi bi-journal-text me-2"></i>View Attestation Log
</a>
</div>
</div>
</div>
{% endblock %}