SDK 0.7.2a1 · documentation review 2026-11-10.
Use the qualified kit as a reference deployment and assign an owner for each step below. A development init is a local evaluation, not a production setup.
Credentials and trust
Run kit init without --development using your actual HTTPS verifier origin.
It creates the directory structure and separate report key, but intentionally
creates no fake production issuer or public TLS credentials.
| File or setting | Operator supplies | Checked locally |
|---|---|---|
private/provider/certificate.pem |
ES256 signer leaf and intermediate chain | Current validity, path to issuer roots and supported signer EKU |
private/provider/private.key |
Matching ES256 private key, mode 0600 | Key match; no group/world read access |
private/provider/identity.json |
Actual non-development identity declaration | Mode consistency; JSON flag does not create public trust |
config/issuer-roots.pem |
Appropriate public issuer CA roots | CA validity/constraints, provider path validation |
config/tsa-roots.pem |
Appropriate TSA roots, separate from signer trust | Root format/validity; export validates actual timestamp trust |
config/kit.json timestamp_url |
Reachable HTTPS TSA endpoint | Syntax; live availability tested by actual export |
private/tls/cert.pem, key.pem |
TLS identity for your public hostname | Pair can load; local check does not establish public hostname/reachability |
config/report.pub |
Independently distributed report public key | Matches the separate report signer |
Do not relabel an init-dev identity as production. Public C2PA trust-list
membership and conformity are separate from a chain rooted in an operator's
local configuration. The toolkit does not obtain a certificate or enroll a product.
Accepted local signer EKUs are emailProtection, documentSigning and
c2pa-kp-claimSigning, excluding timestamp/OCSP/any-purpose leaf use. Revocation
freshness is not checked offline. See key lifecycle.
Production exports currently require a trusted TSA. This is the SDK's signing policy, not a direct requirement to contact a TSA per file in Article 50(2). The voluntary Code separately discusses secure signing/time-stamping; do not confuse that with a mandate for this particular service topology.
Product and publication
- Set truthful public publisher/system/version in product and reviewed-source config. One kit serves one pair; use separate kits for additional versions.
- Declare content, roles, markets and placement dates. Record remaining actions
from
profile check; a declaration is not verification of deployed behavior. - Prepare each final rendition before SDK export. Keep synthetic audio outside the visual profile. Resolve upstream C2PA semantics before re-marking inputs.
- Apply required user-facing disclosures in the app when applicable, considering
placement, wording and accessibility.
--visibleis a reference component. - Run
kit check DIRECTORY --runtime, inspect structured errors and open actions.
local_configuration_checked covers local configuration only. It does not
establish public reachability, TLS hostname, TSA uptime, public enrollment,
accessibility, production capacity or legal sufficiency.
Publish and prove the route
Use the generated production-egress override for the exporter only after
configuring the TSA destination policy. Keep verifier egress disabled and its
registry mount read-only. Publish the edge with real TLS/DNS; defaults bind to
localhost. kit render regenerates limits/redirects after configuration changes.
From a client outside the host, test the actual HTTPS UI/API with an image and
all selected video modes. Verify signed responses with the separately pinned
report key. Download the content through the real app/CDN and verify those bytes.
Check normal delivery transforms, negative/unsupported results, feedback and
upload cleanup. Confirm that export failures never publish the original as a
fallback. These operator checks are not automatically performed by kit check.
Keep it operational
Back up registry/config and protect keys; rehearse restore in staging. Monitor capacity, TLS expiry, failed exports and incomplete scans. The reference verifier has one inference slot and no queue: load behavior needs an operator-specific plan. Review proxy/host logs and publish actual operator privacy/contact details. Review anonymous feedback and documented failures. Plan key/report-key rotation, revocation and backward detection of earlier formats.
Record the results in the operator evidence template. Release qualification used development credentials; no real production identity/TSA deployment or long-running public load test is claimed.
A concrete certificate route
Reviewed 11 November 2026. Start by identifying your actual operator and product. The CAI implementer guide describes product conformance followed by CA certificate issuance. Generator and validator are separate roles; backend is a supported implementation class. The process asks for registered organization details and authorized agreements. Ariadne has not enrolled your product, obtained conformance or issued its credentials.
SSL.com's C2PA offer currently lists a no-cost one-year Level 1 certificate plus 2,500 timestamps/year, subject to eligibility and a valid conformance record. Above-quota pricing needs a quote. Confirm ES256/P-256 key handling, certificate chain/EKU, HTTPS TSA endpoint, root distribution, quotas and renewal directly before choosing it. We have not obtained or interoperability-tested a real certificate from that CA.
The public C2PA issuer and TSA trust lists serve different purposes. A locally accepted root or generic RFC3161 response alone does not prove public C2PA enrollment or the final product's conformance.
Before paying for or announcing production
- Complete the operator/product identity and conformance decisions.
- Confirm the CA can provide the key/signing interface this SDK supports. The current identity loader requires local PEM ES256 keys; hardware-backed signing is not automatically supplied by this adapter.
- Obtain the actual chain and separate TSA roots; validate their provenance.
- Run a real export with the configured HTTPS TSA and qualified runtime.
- Inspect the exact downloaded output in an independent C2PA validator, distinguishing signature, asset match, timestamp and issuer trust.
- Repeat through your real CDN, with renewal/failure/restore tests and a budget.
These steps depend on your operator identity and vendor arrangements. They cannot be completed by changing a development identity flag. The SDK/sample qualification is available now; production public trust remains an explicit operator onboarding step. See cost planning.
Provider compatibility checked during launch preparation
| Candidate route | What is established | What is not established |
|---|---|---|
| SSL.com C2PA certificate/TSA | Published eligibility, quota and HTTPS TSA endpoint | No enrollment/key; API-key authentication is not directly exposed by this SDK adapter |
| Generic DigiCert RFC3161 endpoint | Official documentation publishes an HTTP endpoint | The kit requires HTTPS; a single EC2 HTTPS probe failed to connect. No C2PA-TSA compatibility is claimed |
| Operator-owned compatible HTTPS TSA route | SDK accepts an HTTPS URL and separately configured TSA roots | The actual service, authentication and end-to-end production export need qualification |
SSL.com's timestamp documentation
specifies https://ts-c2pa.ssl.com with an API key. Current kit configuration
accepts a plain HTTPS URL, rejecting URL credentials/query secrets; the C2PA
signer adapter supplies no configurable TSA authorization header. Do not put a
secret into a public URL or imply that this vendor works out of the box.
Confirm a supported authenticated signing interface or separately qualify a
restricted operator-owned egress adapter before selecting that route. This
documentation does not provide or qualify such an adapter.
The DigiCert probe sent only a synthetic random-hash request; its failed HTTPS connection is an observation from one host, not a finding that the vendor's service is generally unavailable. Do not downgrade the kit's HTTPS policy to make that example pass. A real CA/TSA export remains pending actual operator identity, credentials and endpoint arrangements.