PackageTrack
Sign in Get early access

c2pa

Rust SDK for C2PA (Coalition for Content Provenance and Authenticity) implementors

0.90.15 9.7M downloads/mo #3155 most downloaded on crates.io contentauth/c2pa-rs

What this package is like to depend on

Last release 10 days ago

13 Aug 2026

Ships on a steady schedule

a new release about every 2 weeks

Nearly every release is documented

notes for 216 of 233 stable releases

4 versions withdrawn

withdrawn after publishing

4 years old

237 releases · first in 2022

101 releases in the last 12 months

see the full history below

Release timeline

237 releases · Mar 2022 to Aug 2026
2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 237
  1. 1.0.0 03 Aug 2022 withdrawn

    Nothing published for this version

  2. 0.90.15 13 Aug 2026
    Release notes

    What's Changed

    Full Changelog: c2pa-v0.90.14...c2pa-v0.90.15

    Open source →
  3. 0.90.14 13 Aug 2026
    Release notes

    What's Changed

    Full Changelog: c2pa-v0.90.13...c2pa-v0.90.14

    Open source →
  4. 0.90.13 13 Aug 2026
    Release notes

    What's Changed

    Full Changelog: c2pa-v0.90.12...c2pa-v0.90.13

    Open source →
  5. 0.90.12 12 Aug 2026

    Nothing published for this version

  6. 0.90.11 12 Aug 2026

    Nothing published for this version

  7. 0.90.10 11 Aug 2026

    Nothing published for this version

  8. 0.90.9 10 Aug 2026

    Nothing published for this version

  9. 0.90.8 10 Aug 2026

    Nothing published for this version

  10. 0.90.7 07 Aug 2026

    Nothing published for this version

  11. 0.90.6 06 Aug 2026

    Nothing published for this version

  12. 0.90.5 05 Aug 2026

    Nothing published for this version

  13. 0.90.4 04 Aug 2026

    Nothing published for this version

  14. 0.90.3 24 Jul 2026

    Nothing published for this version

  15. 0.90.2 24 Jul 2026

    Nothing published for this version

  16. 0.90.1 21 Jul 2026

    Nothing published for this version

  17. 0.90.0 17 Jul 2026

    Nothing published for this version

  18. 0.89.3 13 Jul 2026
    Release notes

    13 July 2026

    Documented

    • Fix docs build, take 2 (#2297)
    • Fix docs build (#2296)

    Fixed

    • Harden against integer underflow attacks in PNG iTxt chunks XMP parsing (#2274)
    • Harden against integer overflow attacks in BMFF parser (#2280)
    • Resource_to_stream returns error for unknown resource URIs instead of manifest JUMBF (#2289) (#2290)
    Open source →
  19. 0.89.2 09 Jul 2026
    Release notes

    09 July 2026

    Fixed

    • Bind OCSP response certId to the signing certificate (CAI-11829) (#2273)
    • Fix new Clippy warnings for Rust 1.97.0 (#2279)
    • Ensure created has a dst and don't add parent when actions already exist (#2264)
    • Integer overflow panic in bmff_to_jumbf_exclusions via DataMap offset addition (#2263)
    Open source →
  20. 0.89.1 07 Jul 2026
    Release notes

    07 July 2026

    Documented

    • Update README.md doc links (#2261)

    Fixed

    • Resolve crate audit advisories (lopdf, quick-xml, crossbeam-epoch, ttf-parser) (#2268)
    • Don't serialize empty values (#2254)
    • CAI-10364 (Server-Side Request Forgery (SSRF) via CAWG did:web Resolution during Post-Validation ) (#2168)

    Other

    • Lazy load all ingredient resources & remove old to_archive zip format. (#2173)
    Open source →
  21. 0.89.0 22 Jun 2026
    Release notes

    19 June 2026

    Added

    • Add source to HttpResolverError::Other error message (#2237)
    • Auto format detect for Reader (#2181)

    Fixed

    • Harden JUMBF and JPEG XL parsers against Brotli decompression bombs (#2210)
    Open source →
  22. 0.88.0 11 Jun 2026
    Release notes

    11 June 2026

    Added

    • Remove some long deprecated APIs (#2206)
    Open source →
    Release notes

    Removal of deprecated APIs

    Release 0.88.0 removes several long-deprecated APIs. These are breaking changes; update your code before upgrading.

    Rust API

    The following Ingredient methods and types have been removed:

    Removed Use instead
    Ingredient::from_file(path) Open the file and call Ingredient::from_stream(format, &mut stream)
    Ingredient::from_file_with_folder(path, folder) Ingredient::from_stream(format, &mut stream)
    Ingredient::from_file_with_options(path, options) Ingredient::from_stream(format, &mut stream) + builder setter methods
    Ingredient::from_memory(format, bytes) Ingredient::from_stream(format, &mut std::io::Cursor::new(bytes))
    Ingredient::set_memory_thumbnail(format, bytes) Ingredient::set_thumbnail(format, bytes)
    IngredientOptions, DefaultOptions Use builder setter methods directly on Ingredient

    C FFI

    The following C API functions have been removed:

    Removed Use instead
    c2pa_read_file c2pa_reader_from_context()
    c2pa_read_ingredient_file c2pa_reader_from_context()
    c2pa_sign_file c2pa_builder_from_context()
    Open source →
  23. 0.87.0 11 Jun 2026
    Release notes

    11 June 2026

    Added

    • [breaking] Split c2pa-raw-crypto into its own crate (#2202)

    Fixed

    • Improve ingredientMismatch error messages (#2225)
    • Noop test new release workflow (#2221)

    Other

    • Revert "feat!: Split c2pa-raw-crypto into its own crate (#2202)"
    • Use latest release-plz and add a dry run job on release PRs (#2217)
    Open source →
  24. 0.86.1 08 Jun 2026
    Release notes

    08 June 2026

    Fixed

    • NOOP PR for release-plz trigger (#2215)
    Open source →
  25. 0.86.0 08 Jun 2026
    Release notes

    04 June 2026

    Fixed

    • [breaking] Remove unused Error variant types (#2195)
    • Harden additional JUMBF parser sites against integer underflow (#2201)
    Open source →
  26. 0.85.2 03 Jun 2026
    Release notes

    03 June 2026

    Fixed

    • Exact ingredient redaction URI matching (#2203)
    • Harden against integer underflow in JUMBF box parsers (#2200)
    • Dup redaction (#2199)
    • Harden against unchecked array index in JUMBF brotli box accessor (#2192)
    • Make GIF box map C2PA placeholder len 0 rather than 1 (#2156)
    • Error with validation results on invalid manifest after verify after sign (#2147)
    Open source →
  27. 0.85.1 01 Jun 2026
    Release notes

    01 June 2026

    Fixed

    • Preserve validation status log kind after deserialization (#2162)
    • Declare c2pa XML namespace on SVG root, not manifest tag (#2113)

    Other

    • Avoid buffering intermediate streams if stream len is greater than threshold (#2178)
    • Avoid buffering PNG when writing XMP and removing manifest (#2177)
    Open source →
  28. 0.85.0 27 May 2026
    Release notes

    27 May 2026

    Added

    • Support CAWG callback signing via c_ffi (#2118)

    Fixed

    • Sync resolver for CAWG web DID (#2172)
    • Load ingredient manifest store esp. to load resources on search/load miss (#2164)
    • Share reqwest HTTP clients (#2152)
    • Improve archive APIs to be able to link archives to actions (#2095)
    • Use XMP instance_id from source asset in sign and save_to_stream (#2158)
    • Harden against Builder::base_path injection attack on archive deserialisation (#2139)
    • Harden against integer overflow attacks in hash_stream_by_alg_with_progress range validation (#2140)

    Other

    • Skip intermediate stream copy for common signing path (#2161)
    • Avoid buffering PNG into memory when writing (#2159)
    • Avoid buffering stream when computing placeholder PNG C2PA chunk (#2154)
    • Avoid buffering stream when computing placeholder JPEG C2PA chunk (#2155)
    • Fix lints in newer Rust versions. (#2153)
    • Optimize signing passes/copies for large PNGs (#1967)
    • Optimize signing passes/copies for large RIFFs (#1970)
    • Optimize signing passes/copies for large JPEGs (#1971)
    • Lazy-load ingredient manifest stores from shared Arc<Store> (#2103)
    • Consolidate embeddable async functions (#2149)
    • Consolidate async verify functions (#2146)
    Open source →
  29. 0.84.1 12 May 2026
    Release notes

    12 May 2026

    Fixed

    • Case-insensitive enums in settings to preserve backwards compatibility with config crate (#2138)
    Open source →
  30. 0.84.0 12 May 2026
    Release notes

    11 May 2026

    Fixed

    • Archive preserves duplicate label assertions (#2135)

    Other

    • [breaking] Remove config crate and use serde_json directly (#2132)
    Open source →
  31. 0.83.0 11 May 2026
    Release notes

    11 May 2026

    Added

    • Large and complex benchmark suite (#2116)

    Fixed

    • Reduce allocations in redactions (#2127)
    • Allow boxes with incomplete content to succeed. (#2125)

    Other

    • Update cargo-udeps setup (#2047)
    Open source →
  32. 0.82.1 04 May 2026
    Release notes

    04 May 2026

    Fixed

    • Harden against integer underflow attack in GIF XMP validation (#2099)
    • Harden error code mapping for hash mismatch in validator (#2101)
    • Update logic for stale thumbnails detection in redaction (#2107)
    Open source →
  33. 0.82.0 01 May 2026
    Release notes

    01 May 2026

    Fixed

    • Harden against unbounded HTTP response body read in DID web server (#2070)
    Open source →
  34. 0.81.0 01 May 2026
    Release notes

    01 May 2026

    Added

    • Make c2pa_reason an enum (#2100)

    Fixed

    • Harden against integer underflow attacks in parsing purpose field in BMFF UUID box (#2097)
    • Harden against integer overflow attack in png chunk hashing for 32 bit WASM architecture (#2102)
    • [breaking] Use absolute URIs for ingredient thumbnails (#2098)
    Open source →
  35. 0.80.3 29 Apr 2026
    Release notes

    29 April 2026

    Added

    • Support DNG big data (#2092)
    • Add init trust, trust sidecars, and atomic sidecar writes, plus fixes (#2093)

    Updated dependencies

    • Bump openssl from 0.10.77 to 0.10.78 (#2082)
    Open source →
  36. 0.80.2 28 Apr 2026
    Release notes

    28 April 2026

    Documented

    • Adds redaction docs and example (#2071)

    Fixed

    • c2pa-c-ffi UB detected by miri (#2089)
    • Harden RSA validators against invalid BER sequences (#2065)
    • Harden against deep linear ingredient chains with max limits (#2064)
    • Harden BMFF hash merkel tree creation with max merkel leaves limits (#2063)
    • Harden against image decompression bomb attacks in building thumbnail (#2062)
    • Harden tiff parser against forged IFD entry count fields (#2059)
    • Harden builder and resource store addition against path traversal zip slip attacks (#2066)
    Open source →
  37. 0.80.1 27 Apr 2026
    Release notes

    27 April 2026

    Fixed

    • Harden against empty certificates during OCSP certificate validation (#2067)
    • Prevent duplicate timestamp assertion (#2085)
    • Harden riff chunk parser against forged size field memory attacks (#2053)
    • Harden bmff parsing against integer overflow attack (#2054)
    • Harden against cyclic IFD chain in tiff parser (#2068)
    Open source →
  38. 0.80.0 17 Apr 2026
    Release notes

    16 April 2026

    Added

    • Add ingredient archive FFI functions and relax Builder mutability (#2061)
    • Compressed manifest (#2027)

    Documented

    • Separate out C docs (#2052)

    Fixed

    • Multi rendition support (#2058)
    Open source →
  39. 0.79.5 15 Apr 2026
    Release notes

    15 April 2026

    Fixed

    • Handle more thumbnail redaction edge cases (#2049)
    Open source →
  40. 0.79.4 14 Apr 2026
    Release notes

    14 April 2026

    Fixed

    • Run cargo fmt (#2046)
    • Wrap Error::NotImplemented in Err() for wasip1 tempfile_builder (#2037)
    • Limit the maximum number of assertions allowed for C2PA Manifest (#1951)
    Open source →
    Release notes

    Deprecation of thread-local settings APIs

    Release 0.79.4 deprecates all legacy thread-local configuration APIs in favor of explicit Context-based equivalents. These are not breaking changes: All deprecated methods retain their original behavior and continue to work, but will produce compiler warnings. Note that some of these deprecated methods were subsequently removed in Version 0.88.0.

    Rust API

    Builder::default() and Reader::default() are now the idiomatic way to construct with default settings, replacing the more verbose Builder::from_context(Context::new()) and Reader::from_context(Context::new()).

    The following methods are now deprecated:

    Deprecated Use instead
    Builder::new() Builder::default()
    Builder::from_json(json) Builder::default().with_definition(json)
    Builder::from_archive(stream) Builder::default().with_archive(stream)
    Reader::from_stream(format, stream) Reader::default().with_stream(format, stream)
    Reader::from_file(path) Reader::default().with_file(path)
    Reader::from_manifest_data_and_stream(...) Reader::default().with_manifest_data_and_stream(...)
    Reader::from_fragmented_files(path, fragments) Reader::default().with_fragmented_files(path, fragments)
    Settings::from_toml(toml) Settings::new().with_toml(toml)
    Settings::from_string(str, format) Settings::new().with_json(str) or Settings::new().with_toml(str)
    Settings::signer() Configure a signer on a Context and pass it to Builder::from_context

    To use custom settings, create a Context with Context::new().with_settings(...) and pass it to Builder::from_context(context) or Reader::from_context(context).

    C FFI

    The following C API functions are deprecated:

    Deprecated Use instead
    c2pa_load_settings c2pa_settings_new() + c2pa_context_builder_set_settings()
    c2pa_reader_from_stream c2pa_reader_from_context()
    c2pa_reader_from_file c2pa_reader_from_context()
    c2pa_reader_from_manifest_data_and_stream c2pa_reader_from_context() + c2pa_reader_with_manifest_data_and_stream()
    c2pa_builder_from_json c2pa_builder_from_context() + c2pa_builder_set_definition()
    c2pa_builder_from_archive c2pa_builder_from_context() + c2pa_builder_with_archive()
    c2pa_signer_from_settings c2pa_context_builder_set_signer()
    c2pa_read_file, c2pa_read_ingredient_file, c2pa_sign_file Context-based equivalents (removed in Version 0.88.0)
    c2pa_reader_free, c2pa_builder_free, c2pa_string_free, c2pa_manifest_bytes_free, c2pa_signer_free, c2pa_release_string, c2pa_signature_free c2pa_free()

    C and C++ headers now emit compiler deprecation warnings when deprecated functions are called.

    Open source →
  41. 0.79.3 09 Apr 2026
    Release notes

    09 April 2026

    Added

    • (sdk) Ingredient JUMBF archives, archive metadata typing (#2007)

    Fixed

    • Redaction follow-up fix (#2030)
    Open source →
  42. 0.79.2 08 Apr 2026
    Release notes

    08 April 2026

    Fixed

    • Harden against integer overflow panic in big tiff processing (#2012)
    • Harden against integer underflow panic in assertion label parsing (#2013)
    • Harden assertion label URI parsing logic to fix index out of bounds access (#2018)
    • Harden BMFF hash merkle validation via count/range mismatch (#2019)
    • Harden BmffHash timed media chunk verification against out of bounds access issue (#2020)
    • Harden BMFF Merkle maps processing logic to avoid panic (#2021)
    • Harden against invalid MP4 files during BmffHash timed-media chunk mapping (#2022)
    • Redact thumbnails when ingredient with thumbnails added through add_ingredient is being thumbnail-redacted too (#2016)
    • Allow any file type to be signed with a sidecar (#2014)
    Open source →
  43. 0.79.1 08 Apr 2026
    Release notes

    07 April 2026

    Fixed

    • Redact thumbnails in databoxes (v1 claims) (#2015)
    Open source →
  44. 0.79.0 03 Apr 2026
    Release notes

    03 April 2026

    Fixed

    • Redacting things in multiple ingredients (#2009)
    • Adds more granular progress for validation (#2006)
    • [breaking] Disable HTTP redirects in restricted networking implementation (#1907)
    Open source →
  45. 0.78.8 01 Apr 2026
    Release notes

    31 March 2026

    Added

    • Expose a C FFI API to help determine the hashtype a Builder uses with embeddable APIs (#1992)
    • Add support for JPEG XL file format (#1870)

    Fixed

    • Switch to Firefox for CI web tests (#1999)

    Other

    • Fix clippy lints (#1996)
    Open source →
  46. 0.78.7 27 Mar 2026
    Release notes

    27 March 2026

    Added

    • Adds a progress/cancel feature to Context for the c2pa-rs sdk (#1927)

    Fixed

    • Harden JUMB embed media description box parser against integer underflow attack (#1950)
    • Harden JUMB description box parser against integer underflow attack (#1949)
    • Harden JUMBF nested box parsing against stack overflow attack (#1966)
    • Harden BMFF Merkle tree hash processing code against integer underflow attack (#1963)
    • Updated crJSON Schema (#1975)
    • TIFF backcompatibility for RAW formats (#1976)
    • Check for malicious recursion (#1979)
    Open source →
  47. 0.78.6 24 Mar 2026
    Release notes

    23 March 2026

    Added

    • Add FLAC format support (#1912)
    Open source →
  48. 0.78.5 23 Mar 2026
    Release notes

    23 March 2026

    Added

    • Add cr_json() and cr_json_value() to Reader; remove separate CrJsonReader (#1919)

    Fixed

    • Add compatibility for source assets that report mdat box sizes that e… (#1956)
    • Change Builder::add_action to add original actions or v2 actions (#1946)
    Open source →
  49. 0.78.4 16 Mar 2026
    Release notes

    16 March 2026

    Fixed

    • Pin atree to 0.5.2 (#1940)
    • Remove exponential memory growth from nested claim reconstruction (#1885) (#1887)
    Open source →
  50. 0.78.3 16 Mar 2026
    Release notes

    13 March 2026

    Added

    • Impl Send + Sync on EphemeralSigner (#1934)

    Fixed

    • Apply same restrictions on ingredient deltas as active manifest for validation state (#1624)
    Open source →
  51. 0.78.2 12 Mar 2026
    Release notes

    12 March 2026

    Fixed

    • Windows Build flags (#1930)
    Open source →
  52. 0.78.1 12 Mar 2026
    Release notes

    12 March 2026

    Fixed

    • Fragmented video verification (#1925)
    Open source →
  53. 0.78.0 11 Mar 2026
    Release notes

    11 March 2026

    Added

    Fixed

    • Correct validation of OCSP signature (#1863)
    • Merkle api integration (#1902)
    Open source →
  54. 0.77.1 11 Mar 2026
    Release notes

    10 March 2026

    Documented

    • Combine docs on Context and Settings to reduce duplication (#1899)
    Open source →
  55. 0.77.0 04 Mar 2026
    Release notes

    04 March 2026

    Added

    • Embeddable manifest API with Context/Settings, CAWG and BMFF.v3 support. (#1847)
    Open source →
    Release notes

    Embeddable API

    Release 0.77.0 adds a new embeddable manifest API with Context/Settings, CAWG, and BMFF.v3 support. For details, see Embeddable signing API.

    API changes for C2PA 2.2

    Reader has some new methods:

    • validation_state() returns ValidationState, which can be Invalid, Valid, or Trusted. Use this method instead of checking for validation_status() = None.
    • validation_results() returns ValidationResults, which is a more complete form of ValidationStatus and returns success, informational, and failure codes for the active manifest and ingredients. ValidationStatus is deprecated in favor of ValidationResults.

    Ingredient now supports a validation_results() method and a validation_results field.

    An AssetType assertion is now supported.

    C2PA v2 claims

    [!NOTE] The library now supports C2PA v2 claims by default. V2 claims have many new checks and status codes.

    Additionally:

    • The title() and format() methods of both Manifest and Ingredient objects now return an Option<String> because in v2 claims, title is optional and format does not exist.
    • The first action must be c2pa.created or c2pa.opened (which requires an ingredient).

    [!WARNING] Implementations should not generate deprecated v1 claims. If needed, though, you can generate v1 claims by setting the Builder manifest definition claim_version field to 1.

    Open source →
  56. 0.76.2 03 Mar 2026
    Release notes

    03 March 2026

    Fixed

    • Panic when validating boxes hash with no names (#1897)
    Open source →
  57. 0.76.1 02 Mar 2026
    Release notes

    02 March 2026

    Fixed

    • Handle meta box without FullBox header from Apple devices (#1889)

    Updated dependencies

    • Bump png_pong from 0.9.3 to 0.10.0 (#1850)
    • Bump toml from 0.9.12+spec-1.1.0 to 1.0.2+spec-1.1.0 (#1883)
    Open source →
  58. 0.76.0 24 Feb 2026
    Release notes

    23 February 2026

    Added

    • Enable self-signed ephemeral certs on Wasm build (#1858)

    Documented

    • Fix doc for verify_after_sign due to bug (#1876)
    • Doc cleanup and some reorg (#1822)
    • SignerSettings doc comments (#1856)

    Fixed

    • Use cose_sign1 signature field for timestamp assertion verification (#1867)
    • [breaking] Allow Builder::sign_async future to be spawnable on Tokio runtime (#1846)

    Updated dependencies

    • Bump zip from 7.4.0 to 8.1.0 (#1864)
    • Bump zip from 6.0.0 to 7.4.0 (#1857)
    Open source →
  59. 0.75.21 12 Feb 2026
    Release notes

    12 February 2026

    No-op re-release to address previous build failure.

    Open source →
  60. 0.75.20 12 Feb 2026
    Release notes

    12 February 2026

    Added

    • Use ephemeral self-signed cert to sign working store / archive (#1839)
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive