AACS 2.0 full pipeline: handshake, bus key, decrypt, transparent API

- aacs.rs: content decryption (AES-CBC aligned units, bus decrypt, VUK
 derivation, unit key decrypt). 11 tests including synthetic roundtrip.
- aacs_handshake.rs: SCSI authentication (ECDH on AACS 160-bit curve,
 ECDSA sign/verify, AES-CMAC, bus key derivation, read_data_key).
 14 tests including EC order, ECDH shared secret, cert verification.
- disc.rs: transparent API — Disc::scan() detects AACS, authenticates,
 derives keys internally. ContentReader decrypts on the fly. App never
 sees AACS details.
- error.rs: AacsError (E7000) variant

BF v12 complete: 284 unique matches from 8 AWS instances.
This commit is contained in:
MattJackson
2026-04-06 20:40:52 -07:00
parent dbc5789406
commit 985d00f0a4
6 changed files with 1651 additions and 4 deletions
+2 -1
View File
@@ -81,6 +81,7 @@ pub mod clpi;
pub mod disc;
pub mod jar;
pub mod aacs;
pub mod aacs_handshake;
pub use error::{Error, Result};
pub use drive::DriveSession;
@@ -89,4 +90,4 @@ pub use profile::{DriveProfile, Chipset};
pub use platform::{Platform, DriveStatus};
pub use scsi::ScsiTransport;
pub use speed::DriveSpeed;
pub use disc::{Disc, Title, Stream, StreamKind, Codec, HdrFormat, ColorSpace, Extent};
pub use disc::{Disc, Title, Stream, StreamKind, Codec, HdrFormat, ColorSpace, Extent, ContentReader, AacsState, ScanOptions};