c2pa-org / public-testfiles

A collection of test files with which to test C2PA implementations.
5 stars 5 forks source link

Remove invalid public PDF sample file #9

Open petervwyatt opened 1 month ago

petervwyatt commented 1 month ago

After the C2PA presentation at recent ISO TC 171 meetings, several people have asked me about the validity of https://github.com/c2pa-org/public-testfiles/blob/main/pdf/adobe-20240110-single_manifest_store.pdf because it fails the Arlington PDF model (the Arlington PDF model has already been extended with C2PA support). This PDF is invalid so please remove from public access until it can be fixed, so its errors are not propagated by others copying the same basic mistakes. I already reported this to @lrosenthol but making this issue so I can refer others to it and they can track updates.

  1. The PDF header is 1.7 yet Associated Files were only introduced in PDF 2.0 – so I think it needs to be PDF 2.0 (either via the header or /Version entry) or the PDF/A-3 conformance XMP needs to be added to keep it PDF 1.7 and PDF/A-3.
  2. The FileSpec dictionary (object 4) is missing the required Subtype key: Table 44 “required in the case of an embedded file stream used as an associated file”. It needs to be the IANA media type for C2PA.
  3. The embedded file stream Params sub-dictionary is missing the required ModDate key: Table 45 “required in the case of an embedded file stream used as an associated file
  4. The /EF entry of the file specification dictionary (object 4) should preferably use the /UF entry as a better example (since this is the “modern” way of supporting Unicode filenames)
  5. I get that with manifests and privacy hiding a meaningful name of the manifest might be needed, but having different names between EmbeddedFiles name-tree and the embedded file itself is problematic across different viewers since ISO 32000 doesn’t provide any advice as to which filename should be shown… I think for this basic example they should be the same.