All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
As of December 2025 and until the 1.0.0 version is released, the CAI team will only make minor version changes (incrementing the x in 0.x.0) if breaking changes are made. Features will now result in a patch version change (incrementing the y in 0.x.y). This brings us into closer compliance with typical SemVer practice (and follows the default behavior of release-plz.
12 February 2026
No-op re-release to address previous build failure.
12 February 2026
- Use ephemeral self-signed cert to sign working store / archive (#1839)
09 February 2026
- Support QT style 'meta' boxes (#1844)
- Settings.builder.created_assertion_lables was not being applied. (#1828)
06 February 2026
- Wrong size being written out for XMP box (#1835)
06 February 2026
- Capture default values in schema generation (#1824)
03 February 2026
- Force Cargo to use sparse crates.io index
03 February 2026
(Re-release since the 0.75.11 release failed.)
03 February 2026
- Adds thread safe Settings and Context support to c_ffi_api (#1783)
- Only use
reqwestforc2pa-c-ffinetworking (#1807)
- Bump jumbf from 0.5.0 to 0.7.0 (#1806)
02 February 2026
- Updates to c2pa_cbor 0.77.2 (#1804)
- Bump jumbf from 0.4.1 to 0.5.0 (#1794)
30 January 2026
- Public API for timestamp assertions (#1603)
- Add support for arbitrary key/value pairs in assertion metadata (#1782)
- Bump c2pa-cbor from 0.77.0 to 0.77.1 (#1800)
28 January 2026
27 January 2026
- Retrigger release-plz release workflow (#1781)
22 January 2026
- Trigger a new release to allow generated binaries to be published
21 January 2026
- Use patched version of typed-path for zip (#1761)
- Work around compilation issues introduced by
typed_pathcrate (#1757) - Update tiff support to latest standard (#1736)
16 January 2026
- Context propagation for Reader to support legacy behavior (#1743)
16 January 2026
- Describe what parameter is missing in c2pa.opened/placed/removed validation (#1737)
- Disable verify after sign temporarily (due to bug) (#1746)
15 January 2026
- Fix streams handling for TIFF (#1728)
15 January 2026
- Report claim version in manifest report (#1722)
- Verify after sign not executing (#1638)
- Bump img-parts from 0.3.3 to 0.4.0 (#1733)
- Bump range-set from 0.0.11 to 0.1.0 (#1726)
- Bump nonempty-collections from 0.3.1 to 1.2.1 (#1724)
- Bump extfmt from 0.1.1 to 0.2.0 (#1725)
- Bump zip from 6.0.0 to 7.0.0 (#1723)
14 January 2026
- Deeper integration of Context into the SDK (#1710)
- Multi RIFF AVI (AVIX) support (#1656)
- Add
Manifest::signatureto get Cose_Sign1 signature (#1699)
- CAI-10286 - path traversal, zip-slip in from_archive (#1721)
- 1716 fix deeply nested bmff box issue (#1717)
- Fix vulnerability with user supplied exclusions. (#1715)
- Make parameters optional for transcoded and repackaged actions (#1701)
- Allow actions assertions to be created assertions (#1703)
- Bump non-empty-string from 0.2.4 to 0.2.6 (#1720)
- Bump id3 from 1.16.1 to 1.16.3 (#1718)
- Bump asn1-rs from 0.6.2 to 0.7.1 (#1505)
- Bump toml from 0.8.23 to 0.9.10+spec-1.1.0 (#1713)
- Bump env_logger from 0.10.2 to 0.11.8 (#1711)
- Bump rasn from 0.26.6 to 0.28.1 (#1621)
- Bump rand_chacha from 0.3.1 to 0.9.0 (#1619)
- Bump mockall from 0.13.1 to 0.14.0 (#1708)
07 January 2026
- [breaking] Store
ContextasArcfor shared context and threading support (#1680) - Add CAWG roles support to SignerSettings (#1700)
- Adds
Contextto contain settings, HTTPS resolvers, and signers (#1631)
- Hard binding recursive search for nested update manifests (#1693)
- Update
codspeed-criterion-compatto 4.2.1 (#1702)
- Bump rsa from 0.9.9 to 0.9.10 (#1698)
22 December 2025
- Nested ingredient serializing-deserializing (fix for #1685) (#1686)
- Flush stream to finish write operations before rewind for FFI layer improvements (#1672)
19 December 2025
- Fix case where UUID boxes and BMFF layout confused the insertion (#1676)
- Remove extra hash binding verification for update manifests (#1659)
- Add maybeSync (#1664)
- Address new warnings with Rust 1.92.0 (#1661)
- Replace once_cell Lazy with std LazyLock (#1666)
04 December 2025
- Restricted HTTP resolvers (#1630)
04 December 2025
- Check if stream matches input format via file signature/structure (#1528)
- Use MaybeSend to simplify code (#1639)
- Add doc for CLI settings, misc copy edits (#1636)
- Set wasm-bindgen-cli version in CI (#1644)
- Fix the timestamp cert chain validation to be independent of the order (#1600)
- RFC 3161 fractional seconds (#1640)
- Stack overflow and hang due to cyclic ingredients (#1576)
- Allow untrusted failure code to be a
Validvalidation state (#1623) - Remove unmaintained
json5dependency and other unusedconfigcrate sub-dependencies (#1611)
- Remove direct dependency on
windows-core(#1616)
17 November 2025
- Remove x509_certificate (#1547)
- Remove ring altogether (#1606)
17 November 2025
- Fix and update Builder examples (#1484)
13 November 2025
- Remove a dbg statement (#1594)
12 November 2025
07 November 2025
- Disallow ureq and reqwest_blocking for WASM and WASI (#1579)
06 November 2025
- Sync/async HTTP resolvers API (#1355)
- Better support for remote-only manifests of non-BMFF assets (#1569)
- Bump thiserror from 1.0.69 to 2.0.17 (#1562)
04 November 2025
- Refine validation state logic (#1541)
- Adds support and documentation for JSON formatted Settings (#1533)
- Allow reading a manifest store as a Builder to continue editing (#1476)
- Allow C2PA archives to be unsigned (#1560)
- Add JsonSchema to Action (#1550)
- Update to avoid deprecation warning for Command::cargo_bin (#1548)
- Bump zip from 3.0.0 to 6.0.0 (#1540)
- Bump coset from 0.3.8 to 0.4.0 (#1539)
- Bump hex-literal from 0.4.1 to 1.0.0 (#1527)
24 October 2025
- Add settings structs to the public API (#1447)
- Enables generating created assertions and getting the created state (#1432)
- Make settings not thread-local (#1444)
- Add CAWG validation to
Reader(#1370)
- Document features in Rust docs and clarify features (#1491)
- Say to use v2 claims. Update support statement (#1496)
- Update README.md to add CAI membership & Discord links (#1482)
- Fix docs.rs build by removing removed features (#1480)
- Change MSRV to 1.88.0 (#1520)
- Timestamp grace for legacy manifests (#1502)
- Skip test_reader_to_folder in github workflow for WASI (#1498)
- Remove
serialize_thumbnailsfeature (#1492) - Don't log OCSP status if the result cannot be validated. (#1489)
- Expose underlying timestamp assertion support (#1371)
- Turn on trust by default (#1483)
- Empty actions array should be allowed for v1 claim compatibility [CAI-9573] (#1477)
- Add support for new data hash exclusions when update manifests are pr… (#1478)
- Update httpmock to 0.8.0 (#1472)
- Bump memchr from 2.7.5 to 2.7.6 (#1516)
- Bump schemars from 0.8.22 to 1.0.4 (#1247)
- Bump pem from 3.0.5 to 3.0.6 (#1511)
- Bump serde_with from 3.14.0 to 3.15.1 (#1503)
- Bump httpmock from 0.8.1 to 0.8.2 (#1504)
02 October 2025
- Mark
DigitalSourceTypefields as deprecated without warning (new serde update) (#1427) - Correct the payload of claim signature box when calculating the hash. (#1466)
30 September 2025
- Do not generate multiple
c2pa.placedactions with settings (#1458) - AllActionsIncluded defaults to None (#1459)
- Fix pdf benchmarks (#1452)
24 September 2025
- We lost the ability to read the deprecated instanceId actions parameters field. (#1443)
- Remove
no_interleaved_iofeature (#1437)
23 September 2025
- Add support for iso6 boxes (tfra, tfhd and saio) (#1442)
- [CAI-9586] Some validation errors are thrown as exceptions (#1441)
- Only enable "asm" feature on aarch64 macos (#1440)
19 September 2025
- Expose add_action from the Builder at the C level (#1425)
- Add Redaction and Update manifest support to Builder (#1180)
- Add
ParametersMaptoActions(#1274) - (sdk) Introduce new API to retrieve detailed manifest JSON (#1406)
15 September 2025
- Fetch OCSP wasm (#1402)
- Allow v1 claim c2pa.manifest cbor assertions without full valid… (#1412)
10 September 2025
- Add
cawg_trust.verify_trust_listsetting (#1356) - Remove the v1_api feature and all associated code (#1387)
06 September 2025
- Implement CAWG X.509 signing via settings (#1388)
- Assertion metadata localizations support was missing. CAI-9444 (#1390)
- Make
opensslandrust_native_cryptofeatures additive (#1379) - Make OpenSSL code path enforce COSE specified salt length (#1376)
03 September 2025
- Add benchmarking (#1311)
- Rewind output stream after adding dynamic assertions (#1358)
- Fix label handling for custom metadata (#1354)
- Gif global color table size (#1348)
- Fix overly agressive metata collection (#1345)
27 August 2025
26 August 2025
- (sdk) Falls back to fs for large intermediate streams (#1341)
- Add ability to set/get the description for an action. (#1276)
- Ingredient thumbnail generation respect settings (#1332)
- Fix a regression for invalid manifest handling and reader creation (#1312)
- Fix test
- Fix docs and dead code lint (#1340)
15 August 2025
All notable changes to this project will be documented in this file.
This project adheres to Semantic Versioning, except that – as is typical in the Rust community – the minimum supported Rust version may be increased without a major version increase.
Since version 0.36.2, the format of this changelog is based on Keep a Changelog.
14 August 2025
- Add option for configuring trust when validating identity assertions (CAI-7980) (#1239)
- Add new soft binding fields to the ingredient assertion structure (#1306)
- Add cawg.metadata label and test. (#1305)
- Certificate status assertion (#1236)
- Browser wasm fetch remote manifests (#1259)
- Define
DigitalSourceTypeas enum (#1260) - Impl Soft Binding assertion definition (#1147)
- Add metadata assertion and support for validation (#1258)
- Remove
Sendtrait forCAIReadon Wasm (#1264) - [breaking] Change
Verifierto hold aCow<'a, CertificateTrustPolicyrather than a reference (#1238) - V2 Claims are now generated by default (#1266)
- Bump MSRV to 1.86.0 (#1269)
- Expand settings API (#1192)
- Fix broken ingredient recursion (#1309)
- Mark the CreativeWork assertion as deprecated (#1304)
- Make common name available to manifest_store (#1300)
- V2 redactions were reporting validation error if the assertion was redacted (#1282)
- Bmff update manifest support (#1284)
- Report correct identity assertion JUMBF URI when reporting validation status (#1292)
- Support for BMFF V3 hashing options (#1253)
- Remove "other" field in
Metadataassertion (#1251) - Add support for m4v (#1254)
- Rename Metadata to AssertionMetadata (#1261)
- Feature flag
test_reader_remote_urlwith featurefetch_remote_manifests(#1252)
18 July 2025
- Add C binding for setting the base path (#1237)
- Asset reference assertion (#1203)
- Add
Reader::remote_urlandReader::is_embedded(#1150) - Store icon references into c2pa.icon assertions for v2 instead of using data_boxes. (#1235)
- Remove file type from thumbnail names (#1187)
- Update MSRV to 1.85 (#1208)
- Fix spec link for EmbeddedData (#1226)
- API doc clean up and improvement (#1178)
- Fix formatting of top level example. (#1161)
- Panic when adding empty actions assertion (#1227)
- Generated JPEG thumbnail incorrectly rotated (#1233)
- Unfreeze dependency on base64ct crate now that we're up to MSRV 1.85 (#1228)
- Clean up logs (#1181)
- Change timestamp validation to return new required info fields (#1191)
- Xmp jpeg write (#1156)
- Clippy warnings for Rust 1.88 (#1204)
- Move uri_to_path into utils (#1186)
19 June 2025
- No-op change to trigger c2pa core crate publish
18 June 2025
- No-op change to trigger rebuild
18 June 2025
- To_archive does not store resources associated with ingredients (#1151)
17 June 2025
- Doc cleanup (#1143)
- Freeze base64ct crate at 1.7.3 for now (#1163)
- C2patool reports cawg.ica.credential_valid for valid CAWG X.509 signature (CAI-8751) (#1155)
- Docs.rs build using openssl and rust_native_crypto simulatenously (#1139)
27 May 2025
- Es512 support without new dependencies (#1130)
27 May 2025
- Make OpenSSL a default feature (#1118)
- Add CAWG support for fragmented BMFF (#1114)
- Integrates prebuilt library release workflow (#1126)
20 May 2025
- [breaking] Merge
c2pa-status-trackercrate intoc2pa(#1115)
- Avoid yanked version of
windows-corecrate (#1116)
16 May 2025
- [breaking] Merge c2pa-crypto crate into core c2pa crate (#1099)
16 May 2025
14 May 2025
- [breaking] Merge CAWG identity SDK into main C2PA crate (#1089)
- Trigger re-publish of c2pa crate
14 May 2025
- Adds c_api for dynamic library releases (#1047)
- SVG thumbnails with a fix to the ingredient thumbnail format detection (#722)
- (sdk) Support setting the Ingredient manifest_data field for remote manifests using Builder (#1091)
- Ingredient from_stream/memory not loading remote manifests (#1061)
25 April 2025
- Return an error if a manifest cannot be read (#1051)
24 April 2025
- Fix missing Action fields (#1050)
16 April 2025
- Dynamic assertions should be gathered assertions (#1005)
07 April 2025
- Populates claim signature field in ingredient v3. (#1027)
- Adjust dependencies to avoid security warnings and yanked versions (#1031)
- Enable trust checks for all unit tests (#1022)
04 April 2025
- Update openssl to address a recently-announced vulnerability (#1024)
03 April 2025
- (cawg_identity) Add
BuiltInSignatureVerifier(#978)
- Thread safe version of settings.rs (#1018)
- Fix support for user supplied labels (#1017)
- Sig check fix (#1016)
26 March 2025
- Make sure manifests are signed with end-entity certs (#997)
- Revert "chore: publish c2patool and cawg_identity updates (#992)"
20 March 2025
- (c2patool) Fixes crash and improves cawg support (#989)
19 March 2025
- Adds allActionsIncluded flag to Actions Assertion (#986)
- Generate gathered assertions for v2 claims (#985)
18 March 2025
- Adds
reader.post_validatemethod for CAWG validation support (#976) - Add
StatusTrackertoIdentityAssertionparsing and validation APIs (#943) - Add
SynctoAsyncDynamicAssertion(#953) - Simplify
StatusTrackerinterface (#937) - Add WASI to c2patool (#945)
- Add WASI support to cawg_identity (#942)
- Add ES256 and ES384 Rust native signing (#941)
- Adds validation_state to the json reports from the Reader (#930)
- Wasm32 wasi 0.41.0 (#888)
- Remove circular dependency between C2PA and CAWG crates (#982)
- ISSUE-967: Remove the
RST0..=RST7check from thehas_lengthmethod for the JPEG asset handler. (#968) - Fix broken c2patool fragment feature (#960)
- Feature flag
v1_apiwithoutfile_iodidn't compile (#944) - Use older version of x509-certificate for wasm32-unknown (#934)
- Fix new Clippy warnings for Rust 1.85.0 (#933)
- Remove
opensslfeature flag (#940)
- Bump zip crate to 2.4.1 (#981)
- Bump x509-certificate to 0.24.0 (#957)
15 February 2025
- Add support for DynamicAssertions in JSON format (#924)
- Panic in decoding of GIF chunks (#873)
- Use correct byte label for GIF Plain Text Extension (#864)
- Panic in slicing of empty XMP data (#872)
- Use
AsRef<Path>injumbf_iofunctions (#910)
11 February 2025
- Restore support for claim_generator_hints (#915)
06 February 2025
- Fix reported errors for docs (#903)
- Update error reporting (#906)
- Repair cargo test (#898)
31 January 2025
- Remove dependency on SubtleCrypto (#881)
30 January 2025
- (cawg_identity) Split
CredentialHolderinto sync and async versions (#891)
29 January 2025
- Allow synchronous DynamicAssertion (#889)
- Claim v2 (#707)
24 January 2025
- (crypto) Make
box_sizeparameter onc2pa_crypto::cose::signanOption(#879)
- Bump coset requirement to 0.3.8 (#883)
- Update id3 crate (#875)
- Remove
Debugsupertrait fromDynamicAssertionandCredentialHoldertraits (#876)
22 January 2025
- Change the definition of
Signer.raw_signer()to return anOptiondefaulting toNone(#869)
22 January 2025
- Make alg enum exhaustive (#866)
16 January 2025
- (crypto) Add
rsacrate support torust_native_cryptofeature (#853) - (cawg_identity) Implement identity assertion validation (#843)
- Remove writing of native camera RAW formats from SDK (#814)
- Review
c2pa-cryptocrate API (#813) - Add new function
c2pa_crypto::cose::signing_time_from_sign1(#812) - Move COSE signing into
c2pa_cryptocrate (#807) - Move COSE timestamp generation into
c2pa_crypto(#803) - Move COSE signature verification into
c2pa_crypto(#801) - Introduce
c2pa_crypto::Verifier::verify_trust(#798) - Introduce
c2pa_crypto::cose::Verifier(#797) - Consolidate implementations of
cert_chain_from_sign1inc2pa_crypto(#796) - Move
signing_alg_from_sign1intoc2pa-crypto(#795) - Move
get_cose_sign1intoc2pa-cryptocrate (#794) - Move COSE OCSP support into c2pa-crypto (#793)
- Move
verify_trustintoc2pa_crypto(#784) - Introduce
c2pa_crypto::CertificateAcceptancePolicy(#779) - Bump MSRV to 1.81.0 (#781)
- Make sure
DynamicAssertion::contentgets a properly populatedPartialClaim(#842) - Switch to from fast_xml to quick_xml (#805)
- Update img-parts for jpeg segment underflow fix (#806)
- Bring
claim_v2changes from #707 intoc2pa_crypto(#811) - Improve usage of
#[cfg]directives (#783) - OOB read attempt in jpeg_io asset handler in get_cai_segments function (#719)
- Prevent negative length value for SVG object locations (#766)
- JPEG
write_caiOOB insertion (#762) - Add support XMP in SVG (#771)
- Possible overflow for TIFF (#760)
- Resolve new Clippy issues (#776)
- Bump jfifdump from 0.5.1 to 0.6.0 (#785)
- Bump serde-wasm-bindgen from 0.5.0 to 0.6.5 (#786)
- Bump thiserror from 2.0.6 to 2.0.8 (#787)
- Bump rasn from 0.18.0 to 0.22.0 (#727)
- Bump thiserror from 1.0.69 to 2.0.6 (#770)
12 December 2024
- Add
RawSignertrait toc2pa-crypto(derived fromc2pa::Signer) (#716) - Move time stamp code into c2pa-crypto (#696)
- Adds ValidationState support (#701)
- Introduce
DynamicAssertiontrait (#566)
- Compile
c2pa-cryptowithcargo check(#768) - Verbose assertions for
is_none()(#704) - Remove
c2pa::Signerdependency onc2pa_crypto::TimeStampProvider(#718) - Add support for MP3 without ID3 header (#652)
- Treat Unicode-3.0 license as approved; unpin related dependencies (#693)
- Remote manifest fetch test was not using full path (#675)
- Fix #624 (edge cases when combining the box hashes) (#625)
- Fix #672, Callback is unsound (#674)
- Support "remote_manifest_fetch" verify setting (#667)
- Bump chrono from 0.4.38 to 0.4.39 (#763)
- Bump asn1-rs from 0.5.2 to 0.6.2 (#724)
- Bump mockall requirement from 0.11.2 to 0.13.1 in /sdk (#685)
- Update zip requirement from 0.6.6 to 2.2.1 in /sdk (#698)
13 November 2024
- Factor status tracking infrastructure into its own crate (#665)
- Fixed a typo in ManifestDefinition docstring (#639)
06 November 2024
- Add fragmented mp4 Builder and Reader support (#649)
- Associate ingredients with actions using parameters.org.cai.ingredientsIds array (#627)
- Stay on url version 2.5.2 until Unicode-3.0 license can be approved (#654)
24 October 2024
- Update API documentation (#621)
17 October 2024
- Adds identified RangeType to region of interest (#631)
15 October 2024
- Harden SDK against attempting buffers that are too large (#628)
07 October 2024
- Changelog contained duplicate entries for 0.16.1 (#618)
07 October 2024
- No-op change to start using release-plz to manage releases
04 October 2024
- fix: Make sure algorithm is being respected in data_hash.rs (#613)
- fix: Make sure RSTn segment names are included in the data box hashes list (#612)
- Update mp4 requirement from 0.13.0 to 0.14.0 in /sdk (#595)
- chore: Add m4a test (#606)
- fix: Write absolute urls to manifest store resource references. (#603)
- doc: Removes xmp_write feature from README.md.
- chore: Remove deprecated actions-rs/clippy-check action (#601)
- chore: bump stefanzweifel/git-auto-commit-action from 4 to 5 (#600)
- chore: bump actions/github-script from 3 to 7 (#599)
- chore: bump paulhatch/semantic-version from 5.2.1 to 5.4.0 (#598)
- chore: Use Dependabot to upgrade GitHub Actions steps (#597)
- chore: Fix dependabot issues (#594)
- Fixes issue where nested assertion-uri-hash errors were being reported at the active manifest level. (#593)
- Feature/add content length to tsa request (#587)
23 September 2024
- (MINOR) ensures release bumps minor version (#592)
- fix: requires "StatusTracker" to implement "Send" (#589)
17 September 2024
- Fix error when trying to sign BMFF content with Builder. (#582)
12 September 2024
- upgrades to riff@2.0.0, preventing panic on invalid riff files (#579)
- EC signature DER support (#581)
- Update base64 requirement from 0.21.2 to 0.22.1 in /sdk (#519)
- (MINOR) Rust API enhancements and fixes. (#575)
- Fix GIF off by one with XMP (#562)
30 August 2024
- (MINOR) Fragmented BMFF media (#572)
29 August 2024
- Depend on url crate version 2.5.2 or newer (#573)
17 August 2024
- Inline certs for wasm test signer (#564)
15 August 2024
- Bmff write fix (#552)
- Fix remote embedding RIFF when specifying mime type (#551)
- Fix data hash out of bounds when using placeholder beyond stream length (#546)
- Adds embeddable apis and remote_url/no_embed options (#537)
- export_schema: add unstable_api feature (#542)
- Ingredient checks (#529)
- Add base_path field to Builder (#539)
- Export
AssertionDefinitionandActionTemplatein public API (#522)
30 July 2024
- Use timestamp with OpenSSL validation to prevent check chain check er… (#531)
- Fix GIF
remove_cai_store_from_streambehavior (#524)
26 July 2024
- Update crate to fix bad certificate dump content (#525)
- Introduce a mutex around the FFI calls to OpenSSL (#516)
- Bump bcder minimum version to 0.7.3 (#526)
- (MINOR) Updates needed for v2 JavaScript SDK (#521)
- Add region of interest assertion definition (#506)
- Fix CI tests (#520)
- Builder Archive update (#507)
- Update range-set requirement from 0.0.9 to 0.0.11 in /sdk (#442)
- Make sure reading past end of JUMBF box is an error (#518)
- added final details (#517)
18 July 2024
- Ensure Ingredient data_types make it to the store and back. (#514)
- draft security md (#508)
- Make data_types field optional when serializing data-box-map (#512)
- Fix box hash placeholder len (set to 1) (#511)
- Set data box placeholder len to at least 1 for GIF (#510)
- Rewind mp3 streams when reading/writing (#509)
- Update README.md (#351)
- Add GIF support (#489)
- Update image requirement from 0.24.7 to 0.25.1 in /make_test_images (#445)
- Upgrade uuid to 1.7.0 & fix removed wasm-bindgen feature (#450)
- Expose
SignatureInfopublicly (#501) - Cleanup empty/unused files + lints (#500)
15 July 2024
- Fetching of databoxes must always use HashedURI to enforce hash checks. (#505)
- Temporarily allow unused
JsonAssertionDatato fix unused error in CI (#498) - Add remote manifest support to MP3 (#496)
28 June 2024
25 June 2024
- Add data_type (future) to Ingredient_V2 (#490)
- Let's not assume that third-party assertions are using serde_cbor (#491)
24 June 2024
19 June 2024
- Add iterators over manifests and resources in unstable API (#482)
- OCSP certificate should be valid at signing time (#481)
- url crate version 2.5.1 introduces new license "Unicode-3.0" (#483)
- Implement
Debugw/ detailed manifest forReader(#473) - Bump MSRV to 1.74 (#478)
- Allow empty Merkle proof for last leaf node. (#470)
10 May 2024
- Steps toward removing RemoteSigner APIs. (#466)
07 May 2024
- (Minor) Additional unit tests and fixes for injection (or previously untested) issues. (#464)
- Expose authoring support in WASM (#369)
- Move signer to first parameter on Builder.sign (#457)
- Gpeacock/embed_remote_settings (#460)
- (MINOR) Removes xmp_write feature and xmp_toolkit (#461)
- Async Signer: add support for async OCSP call (#458)
- Use cargo test in CI (#459)
- (MINOR) Initial V2 API work (#437)
05 April 2024
- Add
video/quicktimeto the list of BMFF MIME types (#441) - Streaming XMP write support for PNG (#439)
03 April 2024
- Fixed temp file auto delete (#438)
- Add
Synctrait toTrustHandlerConfig(#440) - remove file_io dependency on fetch_remote_manifests (#434)
- Remove verify after signing when compiling without openssl (#404)
- Streaming write support for BMFF (#435)
- Added support for XMP streaming writes for TIFF/DNG (#433)
- Implements embed_reference_to_stream for jpeg (#430)
25 March 2024
- Adds Action changes field as option vec of serde_json value (#431)
13 March 2024
- (MINOR) Adds Send trait to TrustHandlerConfig (#426)
12 March 2024
- Roll back rasn-* version requirements since 0.12.6 was yanked (#425)
12 March 2024
- Adds a Manifest::composed manifest method (#424)
- Allow cert dump to work in WASM (#420)
- Update minimum dependency of rasn-* crates (#423)
08 March 2024
- Fix include_byte references that were not available in external crate builds
08 March 2024
- (MINOR) Remove testing function that was inadvertently public (#421)
08 March 2024
- Trust support (#415)
08 March 2024
- add a thumb resource when referencing an embedded uri (#419)
07 March 2024
- Adds Manifest.remote_manifest_url() (CAI-5437) (#418)
- Fix use of deprecated method
chrono::NaiveDateTime::timestamp(#417) - Fix up some random typos. (#353)
26 February 2024
- SDK configuration settings support (infrastructure) (#408)
- Support streaming writes for TIFF (#410)
- Fixed typo in comment (#409)
- (MINOR) Update
xmp_toolkitto v1.7.1, remove Ring dependency, fix build errors (#407) - Crate udate to fix jpeg parsing error (#402)
- allows builds to pass (#403)
- Ocsp support (#371)
06 February 2024
- Finish async signing implementation for cose_sign (#370)
- adds read_cai test for PDF with content credentials (#366)
- [IGNORE] README edits (#356)
- Update ci.yml
- Remove deprecated twoway crate (#361)
- Fix response strings for BMFF and Box hash statuses (#360)
- Restore correct 1.3 CoseSign1 headers (#359)
- Openssl update to version 3.x (#357)
- Add support for ARW and NEF (#355)
04 December 2023
- CAI-5041 Clear Windows temp attribute (#352)
22 November 2023
- Remove Blake3 dependency from c2pa-rs (#348)
21 November 2023
- Fix PDF reading of manifest from wrong key (#346)
17 November 2023
- readme update (#345)
- Add support for embeddable manifests with RemoteSigner (#344)
- Blake build fix (#343)
- Update image crate dependency and limit features (#341)
- Bump xmp_toolkit requirement to 1.6 (#339)
- Disable Windows builds with latest Rust version (#342)
01 November 2023
- (PATCH) switches af relationship for a reference to the c2pa data to an array of references, one of which is the c2pa spec (#333)
- Restore async versions of embed functions (#327)
- (MINOR) Support databox thumbnails CAI-4142 (#325)
- (MINOR) Reuse claim thumbnail as ingredient thumbnail if the store is valid (#322)
- (MINOR) Use JUMBF URIs for ManifestStore identifiers (#323)
- Add ManifestStore::from_stream (#319)
- Adds embed_to_stream (#313)
04 October 2023
- Support for validating JPEGs that contain MPF (multi-picture format). (#317)
- Add ability to customize HTTP headers on timestamp request to Signer and AsyncSigner traits (#315)
- Add all of the MIME types that are associated with WAV files (#316)
- Allow MS_C2PA_SIGNING OID to pass (#314)
29 September 2023
- supports removal of manifests from pdf (#312)
- Support for MP3 (#295)
- (MINOR) Signer can call timestamp authority directly (#311)
- implements pdf read support (#309)
13 September 2023
- Add support for default SVG MIME type (#305)
- Support for writing and reading manifest data from simple PDFs (without incremental updates or signatures) (#249)
- Increase actix requirement to 0.13.1 (#304)
- (MINOR) Expose HashRange (#300)
- Lock openssl-sys version to 0.9.92 (#302)
- Update links to C2PA spec to 1.3 (#292)
- Error saving stream writes (#290)
- Fix for overly harsh checks when checking Merkle trees. (#289)
02 August 2023
- Adds a way to force no claim thumbnail generation (#288)
- adds ManifestStoreReport::cert_chain_from_bytes (#286)
14 July 2023
14 July 2023
- (MINOR) User, UserCbor and Uuid assertions removed from SDK (#141)
- Fix for #195 make_test_images missing ingredient references (#254)
- Return ResourceNotFound instead of NotFound for resource get (#279)
- (MINOR) Minor improvements for Wasm and Node.js interoperability (#276)
- Fix iloc extent_offsets when offset_size is 0 (#277)
- (MINOR) Converts DataHash and BoxHash methods to use RemoteSigner instead of AsyncSigner (#280)
- (MINOR) Embeddable manifest support (#266)
- Repair CI tests (#278)
21 June 2023
- (MINOR) force minor version change (#273)
21 June 2023
- Bump minor version and update README.md (#272)
- Updates (#270)
- Add
SendtoCAIReadtrait so that it can be used across threads (#271) - Generate old COSE headers for temporary backwards support (#269)
19 June 2023
- Fix for returning input stream data when using
embed_from_memory(#268)
13 June 2023
- Remove no-default ci test (#259)
- includes the cert serial number in the ValidationInfo output (#263)
- adds ManifestStoreReport::cert_chain (#265)
- Update Timestamp message imprint to include entire protected header (#264)
09 June 2023
- Box hash support (#261)
- Fix timestamp Accuracy decoding (#262)
- Make remote manifest handling consistent across input types (#260)
- (MINOR) Support for Ingredients V2 and Actions V2 (#258)
- Generate and validate 1.3 Cose signatures (#256)
- Add type exports via JSON Schema (#255)
- Bmff v2 (#251)
18 May 2023
04 May 2023
- (MINOR) Added ResourceNotFound error (#244)
03 May 2023
- backed out calls to set_memory_thumbnail (#243)
- Revert "backed out calls to set_memory_thumbnail"
- backed out calls to set_memory_thumbnail This was causing thumbnail files to not be generated.
24 April 2023
- Fixes bug in Ingredient_from_stream_info (#241)
20 April 2023
- Ingredient async and thumbnail support (#240)
- Update actix requirement from 0.11.0 to 0.13.0 in /sdk (#209)
- Update uuid requirement from 0.8.1 to 1.3.1 in /sdk (#237)
- Upgrade x509-parser to 0.15.0 (#229)
- Add support for ARM on Linux (#233)
05 April 2023
- (MINOR) SVG support (#226)
- (MINOR) Update several X509-related crate dependencies (#225)
- Update thiserror to 1.0.40 in /sdk (#223)
- Avoid chrono's transitive dependency on time crate (#222)
- Require openssl >0.10.48 to address multiple RUSTSEC warnings (#221)
- Apply code format to doc comments (#220)
28 March 2023
- Update README (#215)
23 March 2023
- Makefile update (#213)
- Streaming enhancement (#212)
- Adds base_path_take to ResourceStore (#205)
- Add write support for HEIC, HEIF, AVIF (#210)
- (MINOR) Riff support with refactored AssetIO (#203)
- (MINOR) Resource format and is_parent / relationship changes (#202)
- Fix hash algo warning in Wasm and hashing for RSA-PSS SHA-384/512 (#206)
- Derive impl of Default for Relationship enum (#204)
07 March 2023
02 March 2023
- Fix issue where value was inadvertently included in Exclusion structure (#197)
- (MINOR) Bump MSRV to 1.63.0 (#198)
- Fixed unit test failure (invalid unique name generation). (#190)
22 February 2023
- Disable mdat exclusion (#187)
- Bmff v2 (#186)
- Fix for using non-c2pa segment when add required segments (#185)
- Update Ingredient and VC hashes to 1.2 spec (#184)
- (MINOR) Create a ResourceStore for binary assets (#180)
- Fix Clippy warnings from new Rust 1.67 (#182)
- Visualizations (#163)
19 December 2022
- Update xmp-toolkit from 0.6.0 to 1.0.0 (#165)
- Address new Clippy warnings for Rust 1.66 (#164)
- Create external manifests for unknown types (#162)
03 December 2022
- Updates some cargo dependencies (#159)
- makes manifest#add_redaction public; adds test (#156)
- Fixes support for instanceId on action and generate parameters.ingredient field when possible (#158)
- Support digitalSourceType field in Action (#154)
- (MINOR) Add sign feature for signing manifests without file I/O (#125)
- TIFF/DNG support (#152)
09 November 2022
- Fix bad error response when manifest is stripped (#153)
- (MINOR) Bump MSRV to 1.61 (#142)
- Fix new Clippy warnings generated by Rust 1.65 (#151)
- Build infrastructure improvements (#150)
- Fix manifest.set_thumbnail when add_thumbnails is enabled (#148)
- Fix for XMP links being mistaken for remote URLs (#147)
- Upgrade xmp_toolkit to 0.6.0 (#146)
- create jpeg thumbnails for pngs without alpha (#145)
- Add test_embed_with_ingredient_err (#134)
04 October 2022
23 September 2022
- (MINOR) Remove previously embedded manifests for remote manifests (#136)
- (MINOR) Add support for manifest removal (#123)
21 September 2022
- manifest_data was missing for remote manifests (#135)
13 September 2022
- Add ManifestStore::from_manifest_and_asset_bytes_async (#130)
26 August 2022
- Add RemoteManifestUrl Error, returning url (#120)
- Convert status_log error val to a string so that we can return full errors (#121)
- Report failures from remote manifest fetch (#116)
- Fast XMP extraction from PNG (#117)
- Bump MSRV to 1.59.0 (#118)
- Make sure there is a single manifest store in the asset (#114)
- (MINOR) Switch to "lib" for crate-type (#113)
16 August 2022
- Update C2PA manifest store mime type (#112)
- Updates Manifest API to support remote and external manifests (#107)
- Support validating remote and external manifest stores (#108)
- Fix build error when xmp_write is not defined (#105)
- Fix box order for BMFF (#104)
- Added support for external manifests (#101)
03 August 2022
- Remove inadvertent 1.0.0 release from changelog (#97)
- Treat 'meta' box as standard container (#95)
- Fix for
sign_claimmasking error (#96)
01 August 2022
- Bug fix: Ingredients with valid claims not reporting correct thumbnails (#94)
- Update
make_test_imagesto use timestamp authority (#90) - Fix bad response for case when there is no timestamp (#89)
21 July 2022
- (MINOR) Add support for remotely generated CoseSign1 signatures (#87)
- Optimize performance of large assets (#84)
20 July 2022
- Add Unicode license to allow-list (#85)
- (MINOR)
IngredientOptionsallow override of hash and thumbnail generation; image library is now a default feature (#79)
19 July 2022
- Fix publish workflow (#82)
19 July 2022
- (MINOR) Introduce a new
SigningAlgenum (#76) - Support for asynchronous signing of claims (#57)
- Adds an add_validation_status method to Ingredient (#68)
15 July 2022
- Use rsa crate for RSA-PSS verification in Wasm (#77)
15 July 2022
- Add a new API to provide access to COSE signing logic for external signers (#75)
- (MINOR) Move crate-level functions for creating signers to new public
create_signermod (#72)
14 July 2022
- Fix broken documentation build (#74)
14 July 2022
- Configure docs.rs to include feature-gated items (#73)
- Update XMP Toolkit to 0.5.0 (#71)
- Refactor code to limit memory usage and remove data copies during hash generation (#67)
29 June 2022
- (MINOR) Return specific errors for FileNotFound and UnsupportedType (#62)
28 June 2022
- Fix up changelog noise
- Fix bug with multiple ingredients in
Manifest::from_store(#61)
28 June 2022
- (MINOR) Initial BMFF support (#39)
23 June 2022
- Return assertion instance values starting at
1instead of2(#60)
22 June 2022
- Update thumbnail to be
Vec<u8>, add serialization feature (#59) - Adds xmp_write feature to make xmp-toolkit inclusion optional (#53)
20 June 2022
- (MINOR) Add asset attribute getters for manifest (#56)
- (MINOR) Remove temp_signer from sdk; update docs and examples to use get_signer_from_files (#52)
- (MINOR) Clean up client example; update actions and schema (#51)
16 June 2022
- Fix bug in updating crate reference in README (#50)
16 June 2022
- Fix bug in Cargo.toml updates (#49)
16 June 2022
- Add status badges for CI validation, crates.io, and code coverage (#46)
- Remove self-signed end-entity cert support (#48)
- Add rustfmt toml to get edition 2018 formatting (#36)
- (MINOR) Update from_bytes(_async) to return a Result (#43)
- Adjust temp signer reserved sizes to account for large timestamps (#45)
- Fix bug in verify_from_buffer (#44)
- Remove cargo edit from publish workflow (#42)
- Apply fix from c2patool publish workflow (#40)
- Remove need for using OpenSSL to generate certs by using pre-generated certs (#41)
- Update README and pull request template with formatting changes (#38)
08 June 2022
- Make most jumbf_io functions crate private and move Store dependencies to Store (#37)
- Remove c2patool source now that it's in its own repo (#35)
- (MINOR) Update ManifestAssertion supporting instances (#34)
- Export top level signing functions, hide other signature details (#32)
- Add documentation for the
ActionsandMetadataassertions (#30) - Rework how c2patool is configured (#28)
- Convert make_tests into a scriptable engine; rename to make_test_images (#29)
- Update thiserror requirement from >= 1.0.20, < 1.0.26 to >= 1.0.20, < 1.0.32 in /sdk (#9)
- Update base64 requirement from 0.12.2 to 0.13.0 in /sdk (#10)
- Update range-set requirement from 0.0.7 to 0.0.9 in /sdk (#13)
- Make Assertions opaque in the public SDK (#22)
- Update c2pa requirement from 0.1 to 0.2 in /c2patool (#23)
26 May 2022
- Fix dependency reference from c2patool crate to c2pa crate (#21)
- (MINOR) Detailed API review for Ingredient struct (#17)
26 May 2022
26 May 2022
- No-op change to verify correct handling of PR numbers (#19)
- Fix error in formatting changelog
- Fix missing links in changelog
26 May 2022
- Add Makefile for local testing (#18)
- Add workflow for automatically releasing c2pa crate (#16)
- Reduce fixtures size (#15)
- Add codecov.io integration (#4)
- Configure dependabot (#8)
- Configure dependabot (#7)
- Remove unnecessary steps from cargo-deny job (#6)
- Update to latest GH Actions checkout action (#5)
- Change ring license hash to decimal (#3)
23 May 2022
- Initial public release