keys: read damage is never a key failure; legacy key API removed

Damaged AACS units are holed, blanked and counted on every path instead
of stopping with E7013; failed batch partners fall back to side reads
and a wrong FMTS key is judged per key. ResolvedKeySet is the only AACS
decrypt door; a raw whole-disc reader never decrypts and refuses titles
with no stream folder (E6003) or a piece no held key opens (E7032).
This commit is contained in:
Matthew Jackson
2026-09-29 17:20:43 -07:00
parent 25fd393c04
commit 1d78420366
51 changed files with 2461 additions and 8541 deletions
+3
View File
@@ -113,6 +113,9 @@ libc = "0.2"
[dev-dependencies]
tempfile = "3"
# The crate's own `test_util` for its integration tests (`tests/crypto_tests.rs` decrypts
# through `test_util::decrypt_unit`; the unit decrypt is crate-private, KU §2.2).
libfreemkv = { path = ".", features = ["test-util"] }
# Permutation model checker for the `scsi::fd_handoff` atomics — the fd
# hand-off between a Linux recovery thread and `SgIoTransport::drop`. A normal