c2pa-crypto 0.6.0

Cryptography internals for c2pa-rs crate
Documentation
[package]
name = "c2pa-crypto"
version = "0.6.0"
description = "Cryptography internals for c2pa-rs crate"
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>",
    "Dylan Ross <dyross@adobe.com>"
]
license = "MIT OR Apache-2.0"
documentation = "https://docs.rs/c2pa-crypto"
homepage = "https://contentauthenticity.org"
repository = "https://github.com/contentauth/c2pa-rs"
readme = "README.md"
keywords = ["metadata"]
categories = ["api-bindings"]
edition = "2021"
rust-version = "1.82.0"
exclude = ["tests/fixtures"]

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(test)'] }
# Workaround for https://github.com/est31/cargo-udeps/issues/293.

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

[features]
json_schema = ["dep:schemars"]
rust_native_crypto = [
    "dep:const-oid",
    "dep:der",
    "dep:ed25519-dalek",
    "dep:num-bigint-dig",
    "dep:pkcs1",
    "dep:rsa",
    "dep:spki",
]

[dependencies]
asn1-rs = "0.6.2"
async-generic = "1.1"
async-trait = "0.1.77"
base64 = "0.22.1"
bcder = "0.7.3"
bytes = "1.7.2"
c2pa-status-tracker = { path = "../status-tracker", version = "0.4.0" }
ciborium = "0.2.2"
const-hex = "1.14"
const-oid = { version = "0.9.6", optional = true }
coset = "0.3.8"
der = { version = "0.7.9", optional = true }
ed25519-dalek = { version = "2.1.1", features = ["alloc", "digest", "pem", "pkcs8"], optional = true }
getrandom = { version = "0.2.7", features = ["js"] }
hex = "0.4.3"
nom = "7.1.3"
num-bigint-dig = { version = "0.8.4", optional = true }
pkcs1 = { version = "0.7.5", optional = true }
rand = "0.8.5"
rasn = "0.22.0"
rasn-ocsp = "0.22.0"
rasn-pkix = "0.22.0"
rsa = { version = "0.9.7", features = ["pem", "sha2", "std"], optional = true }
schemars = { version = "0.8.21", optional = true }
serde = { version = "1.0.197", features = ["derive"] }
serde_bytes = "0.11.5"
sha1 = "0.10.6"
sha2 = "0.10.6"
spki = { version = "0.7.3", optional = true }
thiserror = "2.0.8"
web-time = "1.1"
x509-certificate = "0.21.0"
x509-parser = "0.16.0"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
openssl = { version = "0.10.61", features = ["vendored"] }
ureq = "2.4.0"
url = "2.5.3"

[package.metadata.cargo-udeps.ignore]
normal = ["openssl"] # TEMPORARY: Remove after openssl transition complete.

[dependencies.chrono]
version = "0.4.39"
default-features = false
features = ["wasmbind"]

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.chrono]
version = "0.4.39"
default-features = false
features = ["now", "wasmbind"]

[target.'cfg(target_arch = "wasm32")'.dependencies]
async-trait = "0.1.77"
const-oid = "0.9.6"
der = "0.7.9"
ecdsa = "0.16.9"
ed25519-dalek = { version = "2.1.1", features = ["alloc", "digest", "pem", "pkcs8"] }
p256 = "0.13.2"
p384 = "0.13.0"
num-bigint-dig = "0.8.4"
pkcs1 = "0.7.5"
rsa = { version = "0.9.7", features = ["pem", "sha2"] }
spki = "0.7.3"
wasm-bindgen = "0.2.83"
wasm-bindgen-futures = "0.4.31"
web-sys = { version = "0.3.58", features = [
    "console",
    "Crypto",
    "SubtleCrypto",
    "CryptoKey",
    "Window",
    "WorkerGlobalScope",
] }

[target.'cfg(all(target_arch = "wasm32", not(target_os = "wasi")))'.dependencies]
getrandom = { version = "0.2.7", features = ["js"] }
js-sys = "0.3.58"

[dev-dependencies]
const-oid = "0.9.6"
der = "0.7.9"
ed25519-dalek = { version = "2.1.1", features = ["alloc", "digest", "pem", "pkcs8"] }
num-bigint-dig = "0.8.4"
pkcs1 = "0.7.5"
rsa = { version = "0.9.7", features = ["pem", "sha2"] }
spki = "0.7.3"

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
actix = "0.13.1"

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