Skip to content

feat(interoperability): import and export C2PA-compatible authenticity manifests #119

Description

@enliven17

Summary

Add bounded C2PA interoperability without treating a C2PA claim as equivalent to a Harpocrates proof.

Motivation

Harpocrates needs this capability to become a production-grade, interoperable evidence protocol while preserving privacy, deterministic verification, and safe failure behavior. The implementation must reuse existing metadata, manifest, ZK, backend, frontend, and Soroban boundaries instead of creating parallel truth sources.

Scope

  • Define a versioned mapping between Harpocrates evidence/proof digests and C2PA claims/assertions.
  • Parse and validate signed C2PA manifests with strict size, depth, algorithm, and resource limits.
  • Export a C2PA-compatible manifest that binds the embedded video hash, metadata hash, proof ID, tier, network, and contract.
  • Preserve unknown assertions safely and surface unsupported semantics explicitly.
  • Keep C2PA trust status separate from on-chain and ZK verification status in APIs and UI.

Acceptance criteria

  • Valid and invalid fixtures cover signatures, malformed boxes, recursion, oversized data, unknown algorithms, and digest mismatches.
  • Round-trip export/import preserves canonical Harpocrates bindings.
  • Parser fuzzing and production-shaped media tests remain bounded.
  • Documentation includes trust-model differences, compatibility matrix, and rollback.
  • Existing lint, type checks, tests, builds, contract checks, and privacy guarantees remain green.

Engineering expectations

Use versioned canonical encodings, explicit error/status types, bounded resource consumption, idempotent operations, and privacy-safe observability. Schema, contract, circuit, or artifact changes require migration and compatibility analysis. Cryptographic changes require stable vectors and a written threat model.

Out of scope

Live production deployment, real credentials or sensitive media, unrelated visual redesigns, and broad dependency upgrades not required by this objective.

Definition of done

A maintainer can reproduce success and adversarial failure paths locally, understand the trust and privacy boundaries, operate the feature safely, and roll it back without undocumented state repair.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Stellar WaveIssues in the Stellar Wave programarea/backendFlask backend under backend/complexity/trivial100 points - small, bounded changehelp wantedExtra attention is neededtype/featureNew feature or enhancement

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions