Thread: PlayStation 3
View Single Post
Old 21st September 2018, 04:07   #36  |  Link
MartyMcNuts
Registered User
 
Join Date: Aug 2018
Posts: 16
Quote:
Originally Posted by maetel99 View Post
The idea is to make a list of all the device keys (like those in this thread) and then make a directory full of MKB records (such as posted by candela). You then test each device key against each of the MKB records in turn and look at the processing key that gets generated. If a processing key is generated, then the device key is valid for that MKB version and you can see if the processing key is also in the keydb.cfg file. If no processing key is generated, then the device key is not valid for that MKB version.

The process of testing the device keys is described in the AACS common spec in sections 3.2.1 - 3.2.4. Each MKB file has a set of subset difference records that are used to derive the processing key from the device key. In libAACS, the function _find_dk() does this. There is some ambiguity about where to start the subset difference tree iteration, so in libAACS they test all the possible nodes as a starting point until finding one that works (or that none work).

Let me know if you have more questions.
Thanks, that makes sense.

I'm currently working on something else at the moment but once that is finished, I might take a closer look at this and see if I can maybe write a small program for this task.
MartyMcNuts is offline   Reply With Quote