Bump dependency requirements to their current latest and migrate the code for the breaking API changes; refresh Cargo.lock for the rest. Notable version bumps: * zip 2 -> 8, quick-xml 0.37 -> 0.40, toml 0.8 -> 1 * windows 0.58 -> 0.62, winreg 0.52 -> 0.56 * RustCrypto: aes 0.8 -> 0.9, cbc 0.1 -> 0.2, sha1/sha2 0.10 -> 0.11, md-5 0.10 -> 0.11, ctr 0.9 -> 0.10, hmac 0.12 -> 0.13, pbkdf2 0.12 -> 0.13 Code migrations: * quick-xml 0.40: BytesText::unescape() -> xml10_content(); Attribute::unescape_value() -> normalized_value(XmlVersion::Implicit1_0) * windows 0.62: LocalFree now takes Option<HLOCAL> * cipher 0.5 (aes 0.9 / cbc 0.2): BlockEncryptMut/BlockDecryptMut -> BlockModeEncrypt/BlockModeDecrypt; encrypt_padded_mut/decrypt_padded_mut -> encrypt_padded/decrypt_padded Held back deliberately: rand stays 0.8 because the latest rsa (0.9) still needs an rand_core 0.6 RNG for keygen, which rand 0.9+ no longer provides. rsa pinning the older RustCrypto generation also leaves a couple of duplicate transitive versions (digest 0.10/0.11, crypto-common 0.1/0.2) — harmless. Verified: 46 tests pass, clippy + rustfmt clean, and a real ADEPT EPUB still decrypts end-to-end (DPAPI key extraction + RSA/AES) to a valid DRM-free file. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
54 lines
1.2 KiB
TOML
54 lines
1.2 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = ["crates/drmlibre-core", "crates/drmlibre-cli"]
|
|
|
|
[workspace.package]
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
rust-version = "1.96"
|
|
license = "GPL-3.0-or-later"
|
|
repository = "https://github.com/JMR-dev/DRMLibre"
|
|
authors = ["Jason Ross"]
|
|
|
|
# Derivative-work note: the DRM-removal algorithms are ported from DeDRM_tools
|
|
# (GPLv3). This project is therefore GPL-3.0-or-later. Upstream credit is kept
|
|
# in the relevant module headers.
|
|
|
|
[workspace.dependencies]
|
|
drmlibre-core = { path = "crates/drmlibre-core" }
|
|
|
|
# Errors / logging
|
|
thiserror = "2"
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
|
|
# Crypto (RustCrypto — pure Rust, statically linked)
|
|
rsa = "0.9"
|
|
aes = "0.9"
|
|
cbc = "0.2"
|
|
ctr = "0.10"
|
|
sha1 = "0.11"
|
|
sha2 = "0.11"
|
|
md-5 = "0.11"
|
|
hmac = "0.13"
|
|
pbkdf2 = { version = "0.13", default-features = false }
|
|
|
|
# Config / serialization
|
|
serde = { version = "1", features = ["derive"] }
|
|
toml = "1"
|
|
|
|
# Containers / encoding
|
|
zip = { version = "8", default-features = false, features = ["deflate"] }
|
|
flate2 = "1"
|
|
quick-xml = "0.40"
|
|
base64 = "0.22"
|
|
hex = "0.4"
|
|
|
|
# CLI
|
|
clap = { version = "4", features = ["derive"] }
|
|
|
|
[profile.release]
|
|
lto = true
|
|
strip = true
|
|
codegen-units = 1
|