Hi, in short, I've implemented bus encryption support in libaacs. My work can be found at: https://github.com/rraptorr/libaacs/compare/bus_enc
It seems to work quite nicely although I only have one disc with bus encryption enabled. I've tried to split my work in way that is easier to review, so there are several commits. For details about about bus encryption itself please see commit messages, I've tried to explain how it works in them. I've tested this code on Linux x86_64 with mplayer and on Windows 7 with 64 bit version of VLC (whatever I've tried I was unable to build 32 bit version of libaacs.dll with MinGW that VLC would recognize). While implementation is complete there is one place for improvement. Currently, bus encryption requires a working host certificate, when the host certificate is revoked the disc (I am talking about bus encryption enabled discs only) becomes completely unplayable. For backup purposes it would be nice to store Read Data Key somewhere (this key is used to decrypt bus encryption). The only problem is that this key is drive dependent. I see two possible solutions: - cache read data key in the same way as VUK, but the cache would have to be named after the drive model (and in theory the same drive models might have different keys so that can be not enough) - extend disc entry in KEYDB.cfg to store it, probably with several possible entries per disc (if one has several drives); unfortunately there is no easy way to check if correct key was used, only checking the video stream after all decryption layers are applied Any thoughts on this? I'm looking forward for any comments, feedback and reports if it works for anyone else:) -- Janusz Dziemidowicz _______________________________________________ libaacs-devel mailing list libaacs-devel@videolan.org https://mailman.videolan.org/listinfo/libaacs-devel