aacs: new freemkv-unlock-aacs plugin crate

The AACS host-certificate bus-auth unlocker as a first-class external plugin,
peer to freemkv-unlock-ld and freemkv-unlock-css. AacsUnlocker impls
libfreemkv::Unlocker — matches DiscKind::Aacs, self-guards against the hardware
(refuses NotApplicable without issuing a handshake CDB if the drive reports a
non-Blu-ray profile), gathers host certs from the scan options, and runs the
libfreemkv cert-handshake primitive to learn the Volume ID + bus key. libfreemkv
keeps the handshake + AACS content decryption; this crate owns the unlocker.
Additive: a consuming binary opts in with one register_unlocker(...) line.
This commit is contained in:
Matthew Jackson
2026-06-29 17:33:27 -07:00
parent 26a2859eb4
commit 58a4b9720f
3 changed files with 228 additions and 3 deletions
+4 -3
View File
@@ -6,9 +6,10 @@
# unlocker is deleting that one line plus the dependency (delete-to-comply).
#
# Members:
# ld — LibreDrive (MediaTek MT1959 firmware unlock)
# css — CSS (DVD-Video) bus-auth unlock
# ld — LibreDrive (MediaTek MT1959 firmware unlock)
# aacs — AACS host-certificate bus-auth unlock (Blu-ray / UHD)
# css — CSS (DVD-Video) bus-auth unlock
# (future unlockers go here as additional members)
[workspace]
resolver = "2"
members = ["ld", "css"]
members = ["ld", "aacs", "css"]