c2pa 0.32.1

Rust SDK for C2PA (Coalition for Content Provenance and Authenticity) implementors
Documentation
[package]
name = "c2pa"
version = "0.32.1"
description = "Rust SDK for C2PA (Coalition for Content Provenance and Authenticity) implementors"
authors = [
	"Maurice Fisher <mfisher@adobe.com>",
	"Gavin Peacock <gpeacock@adobe.com>",
	"Eric Scouten <scouten@adobe.com>",
	"Leonard Rosenthol <lrosenth@adobe.com>",
	"Dave Kozma <dkozma@adobe.com>",
]
license = "MIT OR Apache-2.0"
documentation = "https://docs.rs/c2pa"
homepage = "https://contentauthenticity.org"
repository = "https://github.com/contentauth/c2pa-rs"
readme = "../README.md"
keywords = ["xmp", "metadata"]
categories = ["api-bindings"]
edition = "2021"
rust-version = "1.73.0"
exclude = ["tests/fixtures"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[features]
default = ["v1_api"]
add_thumbnails = ["image"]
psxxx_ocsp_stapling_experimental = []
file_io = ["openssl_sign"]
serialize_thumbnails = []
no_interleaved_io = ["file_io"]
fetch_remote_manifests = []
openssl_sign = ["openssl"]
json_schema = ["dep:schemars"]
pdf = ["dep:lopdf"]
v1_api = []
unstable_api = []

# The diagnostics feature is unsupported and might be removed.
# It enables some low-overhead timing features used in our development cycle.
diagnostics = []

[[example]]
name = "client"
required-features = ["file_io"]

[[example]]
name = "show"
required-features = ["file_io"]

[[example]]
name = "v2show"
required-features = ["unstable_api"]

[[example]]
name = "v2api"
required-features = ["unstable_api"]



[lib]
crate-type = ["lib"]

[dependencies]
asn1-rs = "0.5.2"
async-generic = "0.1.2"
async-trait = { version = "0.1.77" }
atree = "0.5.2"
base64 = "0.21.2"
bcder = "0.7.1"
bytes = "1.4.0"
byteorder = { version = "1.4.3", default-features = false }
byteordered = "0.6.0"
chrono = { version = "0.4.27", default-features = false, features = [
	"serde",
	"wasmbind",
] }
ciborium = "0.2.0"
config = { version = "0.14.0", default-features = false, features = [
	"json",
	"json5",
	"toml",
	"ron",
	"ini",
] }
conv = "0.3.3"
coset = "0.3.1"
extfmt = "0.1.1"
fast-xml = "0.23.1"
hex = "0.4.3"
# Version 1.13.0 doesn't compile under Rust < 1.75, pinning to 1.12.0
id3 = "=1.12.0"
img-parts = "0.3.0"
jfifdump = "0.5.1"
log = "0.4.8"
lopdf = { version = "0.31.0", optional = true }
lazy_static = "1.4.0"
memchr = "2.7.1"
multibase = "0.9.0"
multihash = "0.11.4"
mp4 = "0.13.0"
pem = "3.0.2"
png_pong = "0.9.1"
rand = "0.8.5"
rand_chacha = "0.3.1"
range-set = "0.0.9"
rasn-ocsp = "0.12.5"
rasn-pkix = "0.12.5"
rasn = "0.12.5"
riff = "1.0.1"
schemars = { version = "0.8.13", optional = true }
serde = { version = "1.0.197", features = ["derive"] }
serde_bytes = "0.11.5"
serde_cbor = "0.11.1"
serde_derive = "1.0.197"
serde_json = { version = "1.0.114", features = ["preserve_order"] }
serde_with = "3.4.0"
serde-transcode = "1.1.1"
sha2 = "0.10.2"
tempfile = "3.10.1"
thiserror = "1.0.40"
treeline = "0.1.0"
url = "2.2.2"
uuid = { version = "1.3.1", features = ["serde", "v4", "wasm-bindgen"] }
x509-parser = "0.15.1"
x509-certificate = "0.19.0"
zip = { version = "0.6.6", default-features = false }

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
ureq = "2.4.0"
image = { version = "0.24.7", default-features = false, features = [
	"jpeg",
	"png",
], optional = true }
instant = "0.1.12"
openssl = { version = "0.10.61", features = ["vendored"], optional = true }

[target.'cfg(target_arch = "wasm32")'.dependencies]
console_log = { version = "1.0.0", features = ["color"] }
ed25519-dalek = "2.1.1"
getrandom = { version = "0.2.7", features = ["js"] }
# We need to use the `inaccurate` flag here to ensure usage of the JavaScript Date API
# to handle certificate timestamp checking correctly.
instant = { version = "0.1.12", features = ["wasm-bindgen", "inaccurate"] }
js-sys = "0.3.58"
rsa = "0.6.1"
serde-wasm-bindgen = "0.5.0"
spki = "0.6.0"
wasm-bindgen = "0.2.83"
wasm-bindgen-futures = "0.4.31"
web-sys = { version = "0.3.58", features = [
	"Crypto",
	"SubtleCrypto",
	"CryptoKey",
	"Window",
	"WorkerGlobalScope",
] }

[dev-dependencies]
anyhow = "1.0.40"
mockall = "0.11.2"
c2pa = { path = ".", features = ["unstable_api"] } # allow integration tests to use the new API

[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
wasm-bindgen-test = "0.3.31"

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
actix = "0.13.1"
ed25519-dalek = "2.1.1"
tokio = { version = "1.36.0", features = ["full"] }