Registry tokens were raw substrings, so the Canva token matched the "Nova
Canvas" agent of an Amazon Bedrock image. Raw manifest bytes cannot take a
word-boundary rule: across the 1,379 C2PA files in the local corpus, 374 of
37,325 store matches had a letter or digit beside them, nearly all CBOR text
headers and DER tags. Decoded strings have no such framing.
- Match signer, claim-generator, agent and video-marker strings with
registry_word_matches.
- When the reader decoded the manifest, never re-derive the signer from raw
bytes: an unregistered signer stays unknown. Bytes decide only for
manifests the reader cannot open.
- Add fal's signer "Features & Labels"; its attribution had relied on the byte
fallback finding the "fal-ai" generator prefix.
Verdicts over 468 images and 365 videos are unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>