Release notes
Version 0.6.0
See Release tag 0.6.0.
Breaking changes
The signature of the c2pa.sign_ps256() method changed. Previously, the argument was a file path but now its the PEM certificate string.
Version 0.5.2
New features:
- Allow EC signatures in DER format from signers and verify signature format during validation.
- Fix bug in signing audio and video files in ISO Base Media File Format (BMFF).
- Add the ability to verify PDF files (but not to sign them).
- Increase speed of
sign_fileby 2x or more, when using file paths (uses native Rust file I/O). - Fixes for RIFF and GIF formats.
Version 0.5.0
New features in this release:
- Rewrites the API to be stream-based using a Builder / Reader model.
- The functions now support throwing
c2pa.Errorvalues, caught withtry/except. - Instead of
c2pa.read_fileyou now callc2pa_api.Reader.from_fileandreader.json. - Read thumbnails and other resources use
reader.resource_to_streamorreader.resource.to_file. - Instead of
c2pa.sign_fileusec2pa_api.Builder.from_jsonandbuilder.signorbuilder.sign_file. - Add thumbnails or other resources with
builder.add_resourceorbuilder.add_resource_file. - Add Ingredients with
builder.add_ingredientorbuilder.add_ingredient_file. - You can archive a
Builderusingbuilder.to_archiveand reconstruct it withbuilder.from_archive. - Signers can be constructed with
c2pa_api.create_signer. - The signer now requires a signing function to keep private keys private.
- Example signing functions are provided in c2pa_api.py
Version 0.4.0
This release:
- Changes the name of the import from
c2pa-pythontoc2pa. - Supports pre-built platform wheels for macOS, Windows and manylinux.
Version 0.3.0
This release includes some breaking changes to align with future APIs:
C2paSignerInfomoves thealgto the first parameter from the 3rd.c2pa.verify_from_file_jsonis nowc2pa.read_file.c2pa.ingredient_from_file_jsonis nowc2pa.read_ingredient_file.c2pa.add_manifest_to_file_jsonis nowc2pa.sign_file.- There are many more specific errors types now, and Error messages always start with the name of the error i.e (str(err.value).startswith("ManifestNotFound")).
- The ingredient thumbnail identifier may be jumbf uri reference if a valid thumb already exists in the active manifest.
- Extracted file paths for read_file now use a folder structure and different naming conventions.