[package] name = "freemkv-unlock" version = "1.8.0" edition = "2024" rust-version = "1.88" license = "MIT" description = "Unlock layer for the freemkv toolchain: the Unlocker contract + self-contained firmware/AACS/CSS unlocker modules. libfreemkv depends on this and dispatches via all_unlockers()." repository = "https://github.com/freemkv/freemkv-unlock" # NEVER crates.io: this crate carries drive firmware. Consumed only by git tag. publish = false [features] # Off by default. Exposes ld's unlock-handshake wire format (`UNLOCK_MARKER`, # `is_unlock_read_buffer`) for the bdemu test-emulator, which impersonates an # ld-unlockable drive. Real clients never enable it and keep the generic API. emulation = [] [dependencies] serde = { version = "1", features = ["derive"] } serde_json = "1" base64 = "0.23" tracing = "0.1" num-bigint = "0.5" num-traits = "0.2" sha1 = "0.11" sha2 = "0.11" aes = "0.9" rand = "0.10" # Wipes host private keys, ephemeral scalars, and derived bus/volume/data-key # material on drop so it doesn't linger in freed memory (defence in depth atop # the redacting Debug impls). `derive` gives ZeroizeOnDrop for the key structs. zeroize = { version = "1", features = ["derive"] } # Pioneer/Renesas vendor CDB constructors (identity read, gated memory read, knock). pioneer-optical = "0.7" [lints.clippy] uninlined_format_args = "allow"