Bump to 1.6.0 (workspace sync, no source change). Fix stale get_uk -> get_unit_keys references in the crate description + comments, correct the libfreemkv version note, and drop a phantom Mapfile mention from the tests.
101 lines
3.6 KiB
Markdown
101 lines
3.6 KiB
Markdown
# Changelog
|
|
|
|
## [1.6.0] — UNRELEASED
|
|
|
|
Version sync with the workspace (freemkv-engine split release). No source change
|
|
in this crate; it remains a pluggable AACS key-source provider consumed by the
|
|
`freemkv` CLI and libfreemkv's key resolver.
|
|
|
|
## [1.5.2] — 2026-07-22
|
|
|
|
Version sync with the workspace; inherits libfreemkv 1.5.2 (CSS DVD descramble
|
|
fix). No source change in this crate.
|
|
|
|
## [1.4.5] — 2026-07-18
|
|
|
|
Version sync; inherits libfreemkv 1.4.5. `KeySource` split into `get_unit_keys` +
|
|
`get_fmts_indexes`, and a keydb device-key parse bug on an uppercase `0X` hex
|
|
prefix was fixed (case-insensitive hex parsing across the toolchain).
|
|
|
|
## [1.4.4] — 2026-07-17
|
|
|
|
Version sync; inherits libfreemkv 1.4.4. The online `/decode` request is built from
|
|
a `DecodeSampleSet` proven sufficient by type rather than a runtime length check.
|
|
|
|
## [1.4.3] — 2026-07-17
|
|
|
|
Version sync; inherits libfreemkv 1.4.3. The online unit-key reply is parsed as a
|
|
list (one key for an ordinary disc, the ordered set for a forensic-variant disc),
|
|
and `MIN_SAMPLE_UNITS` is re-exported from libfreemkv.
|
|
|
|
## [1.4.2] — 2026-07-15
|
|
|
|
Version sync with the workspace; inherits libfreemkv 1.4.2. The keydb test that
|
|
feeds real key material into the AACS crypto was adapted to the segregated
|
|
`decrypt_unit` + `is_clean` primitives (behaviour unchanged).
|
|
|
|
## [1.4.1] — 2026-07-14
|
|
|
|
Version sync with the workspace; inherits libfreemkv 1.4.1.
|
|
|
|
## [1.4.0] — 2026-07-13
|
|
|
|
Version sync with the workspace; inherits libfreemkv 1.4.0.
|
|
|
|
## [1.3.2] — 2026-07-10
|
|
|
|
### Changed
|
|
|
|
- Unit keys carry libfreemkv's new `UnitKey.variant_number`; every source
|
|
(keydb, online, VUK-derived) emits `0` — ordinary, non-forensic content —
|
|
via the `UnitKey::new` constructor. No behaviour change. Inherits
|
|
**libfreemkv 1.3.2**.
|
|
|
|
## [1.3.1] — 2026-07-10
|
|
|
|
### Licensing
|
|
|
|
- **Relicensed to the MIT License, from 1.3.1 onwards** (releases up to and
|
|
including 1.3.0 remain under AGPL-3.0).
|
|
|
|
Version sync with the workspace; inherits libfreemkv 1.3.1.
|
|
|
|
## [1.3.0] — 2026-07-08
|
|
|
|
### Added
|
|
|
|
- **AACS 2.0 host certs round-trip through `keydb.cfg`.** `to_keydb_cfg` now
|
|
emits the sibling `| HC2 |` line — the inverse of the v2 host-cert parser — so
|
|
writing a keydb back out no longer silently drops AACS 2.0 host certs.
|
|
|
|
### Changed
|
|
|
|
- **Resolve runs directly on `libfreemkv::aacs` primitives.** After libfreemkv
|
|
dropped its `aacs::boil` veneer, the resolve path now calls
|
|
`derive_media_key_from_{pk,dk}`, `derive_vuk`, and `decrypt_unit_key` from
|
|
`aacs::derive` with the `aacs::types` newtypes. No behaviour change.
|
|
- Inherits **libfreemkv 1.3.0**.
|
|
|
|
### Fixed
|
|
|
|
- **keydb save-validation matches the parser exactly.** A `0x` line counts as a
|
|
disc entry only when it also contains ` = `, so validating and persisting
|
|
content that parses to zero usable entries (e.g. a stray `0xDEADBEEF` line) can
|
|
no longer succeed.
|
|
- **Disc-entry titles round-trip verbatim** (parentheses and all) — the parse
|
|
path now keeps the title exactly as the emit path writes it.
|
|
|
|
## [1.2.0] — 2026-06-29
|
|
|
|
### 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.
|