diff --git a/CHANGELOG.md b/CHANGELOG.md index 158654e..aabd4d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,24 @@ # Changelog -## [1.1.0-beta.1] — UNRELEASED +## [1.2.0] — 2026-06-28 ### Added - `KeydbSource` now owns keydb save + update (atomic write to the source's own path); honors the caller-supplied location. +### Changed + +- **One hex parser across the toolchain.** Online and keydb hex inputs now parse + through `libfreemkv::hex`, the same parser the library uses — no separate + decoder with its own length/nibble rules. +- **`DiscInputs` carries the disc's AACS version**, and the tests derive the + `Unit_Key_RO` stride from `inputs.version` instead of hardcoding it, so an + AACS-1.0 (V10, 48-byte) and AACS-2.x (V20/V21, 64-byte) disc are each handled + at their own stride. +- **Online MKB read cap aligned with libfreemkv (64 MiB)**, and an over-cap MKB + is logged rather than silently truncated. + ### Fixed - **Processing-Key decryption restored.** A keydb Processing Key is again driven diff --git a/Cargo.toml b/Cargo.toml index 38ec195..e525d0f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "freemkv-keysources" -version = "1.1.0" +version = "1.2.0" edition = "2024" rust-version = "1.86" license = "AGPL-3.0-only" @@ -11,7 +11,7 @@ categories = ["multimedia"] [dependencies] # The crate provides the `KeySource` trait + `Key`/`DiscInputs` types these impls fill. -libfreemkv = "1.1" +libfreemkv = "1.2" # OnlineSource: POST disc inputs + samples to a key service over HTTP. ureq = { version = "2", features = ["json"] } serde_json = "1"