1.6.0: version sync + doc fixes
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.
This commit is contained in:
@@ -1,5 +1,11 @@
|
|||||||
# Changelog
|
# 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
|
## [1.5.2] — 2026-07-22
|
||||||
|
|
||||||
Version sync with the workspace; inherits libfreemkv 1.5.2 (CSS DVD descramble
|
Version sync with the workspace; inherits libfreemkv 1.5.2 (CSS DVD descramble
|
||||||
|
|||||||
+3
-3
@@ -1,10 +1,10 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "freemkv-keysources"
|
name = "freemkv-keysources"
|
||||||
version = "1.5.2"
|
version = "1.6.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
rust-version = "1.86"
|
rust-version = "1.86"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
description = "Pluggable AACS key sources (keydb, online key service) for libfreemkv. Each source looks a disc up and hands libfreemkv its terminal Unit Keys via get_uk; the library does all derivation."
|
description = "Pluggable AACS key sources (keydb, online key service) for libfreemkv. Each source looks a disc up and hands libfreemkv its terminal Unit Keys via get_unit_keys; the library does all derivation."
|
||||||
repository = "https://github.com/freemkv/freemkv-keysources"
|
repository = "https://github.com/freemkv/freemkv-keysources"
|
||||||
keywords = ["aacs", "blu-ray", "uhd", "decryption", "keydb"]
|
keywords = ["aacs", "blu-ray", "uhd", "decryption", "keydb"]
|
||||||
categories = ["multimedia"]
|
categories = ["multimedia"]
|
||||||
@@ -34,7 +34,7 @@ tracing = "0.1"
|
|||||||
lto = "thin"
|
lto = "thin"
|
||||||
codegen-units = 1
|
codegen-units = 1
|
||||||
|
|
||||||
# libfreemkv is git-only (off crates.io). Redirect the bare `libfreemkv = "1.2"`
|
# libfreemkv is git-only (off crates.io). Redirect the bare `libfreemkv = "1.5"`
|
||||||
# req above to the git tag — committed and CI-visible. The release script
|
# req above to the git tag — committed and CI-visible. The release script
|
||||||
# rewrites this tag to the new version before regenerating Cargo.lock. Local dev
|
# rewrites this tag to the new version before regenerating Cargo.lock. Local dev
|
||||||
# overrides it with a path patch via the gitignored .cargo/config.toml (a
|
# overrides it with a path patch via the gitignored .cargo/config.toml (a
|
||||||
|
|||||||
+1
-1
@@ -367,7 +367,7 @@ mod tests {
|
|||||||
use libfreemkv::aacs::types::DeviceKey;
|
use libfreemkv::aacs::types::DeviceKey;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
// ── A test ResolveCtx, so get_uk's path selection can be exercised without
|
// ── A test ResolveCtx, so get_unit_keys's path selection can be exercised without
|
||||||
// a real Disc. Each accessor returns exactly what a case needs. ──────────
|
// a real Disc. Each accessor returns exactly what a case needs. ──────────
|
||||||
struct MockCtx {
|
struct MockCtx {
|
||||||
disc_hash: String,
|
disc_hash: String,
|
||||||
|
|||||||
+1
-1
@@ -212,7 +212,7 @@ impl OnlineSource {
|
|||||||
/// disc's encrypted title keys from `ctx`). Any failure — no service,
|
/// disc's encrypted title keys from `ctx`). Any failure — no service,
|
||||||
/// over-cap MKB, network/parse error, or no key for this disc — yields an
|
/// over-cap MKB, network/parse error, or no key for this disc — yields an
|
||||||
/// empty `Vec` (the resolver tries the next source). `&self`: one-shot is
|
/// empty `Vec` (the resolver tries the next source). `&self`: one-shot is
|
||||||
/// the resolver's contract (each source's `get_uk` is called once), so no
|
/// the resolver's contract (each source's `get_unit_keys` is called once), so no
|
||||||
/// per-call latch is needed.
|
/// per-call latch is needed.
|
||||||
fn query(&self, ctx: &dyn ResolveCtx) -> Vec<UnitKey> {
|
fn query(&self, ctx: &dyn ResolveCtx) -> Vec<UnitKey> {
|
||||||
// No configured service: nothing to resolve.
|
// No configured service: nothing to resolve.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
//! Fixture-based integration tests for the published key sources.
|
//! Fixture-based integration tests for the published key sources.
|
||||||
//!
|
//!
|
||||||
//! These exercise the *public* surface of `freemkv-keysources` end-to-end —
|
//! These exercise the *public* surface of `freemkv-keysources` end-to-end —
|
||||||
//! real files on disk, the real `KeyDb`/`Mapfile` parsers from libfreemkv, and
|
//! real files on disk, the real `KeyDb` parser from libfreemkv, and
|
||||||
//! the `KeySource` trait (`get_unit_keys` over a `ResolveCtx`) the applications drive.
|
//! the `KeySource` trait (`get_unit_keys` over a `ResolveCtx`) the applications drive.
|
||||||
//!
|
//!
|
||||||
//! Covered:
|
//! Covered:
|
||||||
|
|||||||
Reference in New Issue
Block a user