Skip to content

Display signer certificate CN in provenance graph nodes#19

Open
sherifhanna-google wants to merge 6 commits into
mainfrom
fix-signer-attribution
Open

Display signer certificate CN in provenance graph nodes#19
sherifhanna-google wants to merge 6 commits into
mainfrom
fix-signer-attribution

Conversation

@sherifhanna-google
Copy link
Copy Markdown
Collaborator

Switched Overview tree node labels from claim generator tool names to the Common Name (CN) from the leaf certificate subject that signed the claim.

If the asset's signature is validated using the ITL (Interactive Trust List) CA list, the display automatically falls back to showing the friendly Claim Generator name to avoid generic test CAs (e.g. 'C2PA Test CA').

Unified this conditional resolution logic between the provenance graph nodes and the text narrative summaries. Cleaned up unused props.

TAG=agy
CONV=651fee74-60bb-4d72-9cf8-a4b9333578d9

andyparsons and others added 2 commits May 13, 2026 23:41
… view

Ingredient assertions (c2pa.ingredient*) embed a thumbnail reference even
when the ingredient has no Content Credentials. This change resolves those
thumbnails and displays them on stub nodes in the provenance tree.

- ingredientThumbnailSrc(): handles both v2 (inline data) and v1 (JUMBF
  url pointing to a c2pa.thumbnail.* assertion in the parent manifest)
- enrichThumbnails(): extended to also resolve identifier URIs inside
  ingredient thumbnail objects (v2 embedded case)
- enrichThumbnailsViaPackagedSdk(): quick-check now also detects
  unresolved ingredient-embedded thumbnail identifiers

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Switched Overview tree node labels from claim generator tool names to the Common Name (CN) from the leaf certificate subject that signed the claim.

If the asset's signature is validated using the ITL (Interactive Trust List) CA list, the display automatically falls back to showing the friendly Claim Generator name to avoid generic test CAs (e.g., "C2PA Test CA").

Unified this conditional resolution logic between the provenance graph nodes and the text narrative summaries. Cleaned up unused props.

TAG=agy
CONV=651fee74-60bb-4d72-9cf8-a4b9333578d9
@netlify
Copy link
Copy Markdown

netlify Bot commented May 13, 2026

Deploy Preview for c2pa-conformulator ready!

Name Link
🔨 Latest commit 5733d77
🔍 Latest deploy log https://app.netlify.com/projects/c2pa-conformulator/deploys/6a07b1c199e8b00008608fb9
😎 Deploy Preview https://deploy-preview-19--c2pa-conformulator.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

…d flexible JUMBF path segment parsing

Refactored OverviewPanel's ingredientThumbnailSrc utility to perform:
1. Cryptographic hash matching (t.hash) against local assertions. This completely bypasses casing, JUMBF folders, relative vs absolute URIs, or encoding mismatches.
2. Versatile path segment split fallback for JUMBF URLs, extracting the last leaf segment instead of relying on strict folder prefixes.

TAG=agy
CONV=651fee74-60bb-4d72-9cf8-a4b9333578d9
Exclude ingredient thumbnails (c2pa.thumbnail.ingredient) from
matching as manifest-level claim thumbnails in OverviewPanel
helpers (thumbnailSrc and manifestFormat).

This prevents ingredient thumbnails from leaking into manifest cards,
resolving the off-by-one circular shift layout bug across all
provenance nodes in the Overview graph when a manifest has no
own claim thumbnail.

Added a robust Vitest integration test to fully assert this
isolation behavior.

TAG=agy
CONV=651fee74-60bb-4d72-9cf8-a4b9333578d9
…fallback

- Prioritized the child manifest's own cryptographic claim thumbnail over the parent's ingredient assertion thumbnail.
- Falls back to parent-resolved ingredient thumbnail if the child manifest does not have its own.
- Added comprehensive unit tests verifying precedence and fallback behaviors.

TAG=agy
CONV=651fee74-60bb-4d72-9cf8-a4b9333578d9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants