mirror of
https://github.com/freemkv/libfreemkv.git
synced 2026-10-07 18:13:10 +00:00
Relocate AACS bus decryption to one spot at the bottom of the sector chain: the Drive's SectorSource impl applies decrypt_bus_in_content (gated to encrypted-content ranges), with the stage decided once from the unlock/ handshake result (BusStage::from_read_data_key). Remove read_data_key from DecryptKeys::Aacs and AacsState and the two downstream decrypt_bus call sites; every reader (key sampler, mux, unit-key validation) now sees already-de-bussed content and never reasons about bus encryption. Add BusRemovalSectorSource stream + tests; keep the AacsBusKeyUnavailable fail-loud gate.