Add keys() to IOStream trait — streams know their own decrypt keys

- IOStream::keys() default returns DecryptKeys::None
- IsoStream and DiscStream override with real AACS/CSS keys
- Pipeline calls input.keys() instead of separate scan_keys()
- Streams are self-contained: read bytes + provide keys
This commit is contained in:
MattJackson
2026-04-14 23:42:14 +00:00
parent 2f52188f77
commit fbdfccdd83
3 changed files with 20 additions and 4 deletions
+3 -1
View File
@@ -231,13 +231,15 @@ impl IOStream for IsoStream {
Ok(())
}
fn total_bytes(&self) -> Option<u64> {
// Read mode: size is known from disc scan
if self.reader.is_some() {
Some(self.disc_title.size_bytes)
} else {
None
}
}
fn keys(&self) -> DecryptKeys {
self.decrypt_keys.clone()
}
}
impl Read for IsoStream {