diff --git a/src/mux/iso.rs b/src/mux/iso.rs index 421afc1..d5910c3 100644 --- a/src/mux/iso.rs +++ b/src/mux/iso.rs @@ -9,7 +9,7 @@ use super::isowriter::IsoWriter; use super::IOStream; -use crate::decrypt::DecryptKeys; +use crate::decrypt::{decrypt_sectors, DecryptKeys}; use crate::disc::{Disc, DiscTitle, ScanOptions}; use crate::error::{Error, Result}; use crate::sector::SectorReader; @@ -203,7 +203,9 @@ impl IsoStream { .read_sectors(lba, count, &mut self.batch_buf) .map_err(|e| io::Error::other(e.to_string()))?; + // Decrypt after read — stream handles its own decryption let bytes = count as usize * SECTOR_SIZE as usize; + decrypt_sectors(&mut self.batch_buf[..bytes], &self.decrypt_keys, 0); self.buf_pos = 0; self.buf_len = bytes;