Include dependency graph for drms.c:

Data Structures | |
| struct | aes_s |
| struct | md5_s |
| struct | shuffle_s |
| struct | drms_s |
Defines | |
| #define | SWAP(a, b) { (a) ^= (b); (b) ^= (a); (a) ^= (b); } |
| #define | REVERSE(p, n) |
| #define | F1(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) |
| #define | F2(x, y, z) F1((z), (x), (y)) |
| #define | F3(x, y, z) ((x) ^ (y) ^ (z)) |
| #define | F4(x, y, z) ((y) ^ ((x) | ~(z))) |
| #define | MD5_DO(f, w, x, y, z, data, s) ( w += f(x, y, z) + data, w = w<<s | w>>(32-s), w += x ) |
| #define | ROT13(c) |
| #define | DRMS_DIRNAME ".drms" |
| #define | ISCINFO "iSCInfo" |
| #define | PROD_NAME "iPod" |
| #define | VENDOR_NAME "Apple Computer, Inc." |
Functions | |
| static void | InitAES (struct aes_s *, uint32_t *) |
| static void | DecryptAES (struct aes_s *, uint32_t *, const uint32_t *) |
| static void | InitMD5 (struct md5_s *) |
| static void | AddMD5 (struct md5_s *, const uint8_t *, uint32_t) |
| static void | EndMD5 (struct md5_s *) |
| static void | Digest (struct md5_s *, uint32_t *) |
| static void | InitShuffle (struct shuffle_s *, uint32_t *, uint32_t) |
| static void | DoShuffle (struct shuffle_s *, uint32_t *, uint32_t) |
| static uint32_t | FirstPass (uint32_t *) |
| static void | SecondPass (uint32_t *, uint32_t) |
| static void | ThirdPass (uint32_t *) |
| static void | FourthPass (uint32_t *) |
| static void | TinyShuffle1 (uint32_t *) |
| static void | TinyShuffle2 (uint32_t *) |
| static void | TinyShuffle3 (uint32_t *) |
| static void | TinyShuffle4 (uint32_t *) |
| static void | TinyShuffle5 (uint32_t *) |
| static void | TinyShuffle6 (uint32_t *) |
| static void | TinyShuffle7 (uint32_t *) |
| static void | TinyShuffle8 (uint32_t *) |
| static void | DoExtShuffle (uint32_t *) |
| static int | GetSystemKey (uint32_t *, bool) |
| static int | WriteUserKey (void *, uint32_t *) |
| static int | ReadUserKey (void *, uint32_t *) |
| static int | GetUserKey (void *, uint32_t *) |
| static int | GetSCIData (char *, uint32_t **, uint32_t *) |
| static int | HashSystemInfo (uint32_t *) |
| static int | GetiPodID (int64_t *) |
| static void | BlockXOR (uint32_t *p_dest, uint32_t *p_s1, uint32_t *p_s2) |
| void * | drms_alloc (const char *psz_homedir) |
| void | drms_free (void *_p_drms) |
| void | drms_decrypt (void *_p_drms, uint32_t *p_buffer, uint32_t i_bytes) |
| int | drms_init (void *_p_drms, uint32_t i_type, uint8_t *p_info, uint32_t i_len) |
| #define DRMS_DIRNAME ".drms" |
| #define F1 | ( | x, | |||
| y, | |||||
| z | ) | ((z) ^ ((x) & ((y) ^ (z)))) |
| #define F2 | ( | x, | |||
| y, | |||||
| z | ) | F1((z), (x), (y)) |
| #define F3 | ( | x, | |||
| y, | |||||
| z | ) | ((x) ^ (y) ^ (z)) |
| #define F4 | ( | x, | |||
| y, | |||||
| z | ) | ((y) ^ ((x) | ~(z))) |
| #define ISCINFO "iSCInfo" |
| #define PROD_NAME "iPod" |
| #define REVERSE | ( | p, | |||
| n | ) |
| #define ROT13 | ( | c | ) |
| #define SWAP | ( | a, | |||
| b | ) | { (a) ^= (b); (b) ^= (a); (a) ^= (b); } |
| #define VENDOR_NAME "Apple Computer, Inc." |
| static void AddMD5 | ( | struct md5_s * | , | |
| const uint8_t * | , | |||
| uint32_t | ||||
| ) | [static] |
| static void BlockXOR | ( | uint32_t * | p_dest, | |
| uint32_t * | p_s1, | |||
| uint32_t * | p_s2 | |||
| ) | [inline, static] |
| static void DecryptAES | ( | struct aes_s * | , | |
| uint32_t * | , | |||
| const uint32_t * | ||||
| ) | [static] |
| static void Digest | ( | struct md5_s * | , | |
| uint32_t * | ||||
| ) | [static] |
| static void DoExtShuffle | ( | uint32_t * | ) | [static] |
| static void DoShuffle | ( | struct shuffle_s * | , | |
| uint32_t * | , | |||
| uint32_t | ||||
| ) | [static] |
| void* drms_alloc | ( | const char * | psz_homedir | ) |
| void drms_decrypt | ( | void * | _p_drms, | |
| uint32_t * | p_buffer, | |||
| uint32_t | i_bytes | |||
| ) |
| void drms_free | ( | void * | _p_drms | ) |
| int drms_init | ( | void * | _p_drms, | |
| uint32_t | i_type, | |||
| uint8_t * | p_info, | |||
| uint32_t | i_len | |||
| ) |
| static void EndMD5 | ( | struct md5_s * | ) | [static] |
| static uint32_t FirstPass | ( | uint32_t * | ) | [static] |
| static void FourthPass | ( | uint32_t * | ) | [static] |
| static int GetiPodID | ( | int64_t * | ) | [static] |
| static int GetSCIData | ( | char * | , | |
| uint32_t ** | , | |||
| uint32_t * | ||||
| ) | [static] |
| static int GetSystemKey | ( | uint32_t * | , | |
| bool | ||||
| ) | [static] |
| static int GetUserKey | ( | void * | , | |
| uint32_t * | ||||
| ) | [static] |
| static int HashSystemInfo | ( | uint32_t * | ) | [static] |
| static void InitAES | ( | struct aes_s * | , | |
| uint32_t * | ||||
| ) | [static] |
| static void InitMD5 | ( | struct md5_s * | ) | [static] |
| static void InitShuffle | ( | struct shuffle_s * | , | |
| uint32_t * | , | |||
| uint32_t | ||||
| ) | [static] |
| static int ReadUserKey | ( | void * | , | |
| uint32_t * | ||||
| ) | [static] |
| static void SecondPass | ( | uint32_t * | , | |
| uint32_t | ||||
| ) | [static] |
| static void ThirdPass | ( | uint32_t * | ) | [static] |
| static void TinyShuffle1 | ( | uint32_t * | ) | [static] |
| static void TinyShuffle2 | ( | uint32_t * | ) | [static] |
| static void TinyShuffle3 | ( | uint32_t * | ) | [static] |
| static void TinyShuffle4 | ( | uint32_t * | ) | [static] |
| static void TinyShuffle5 | ( | uint32_t * | ) | [static] |
| static void TinyShuffle6 | ( | uint32_t * | ) | [static] |
| static void TinyShuffle7 | ( | uint32_t * | ) | [static] |
| static void TinyShuffle8 | ( | uint32_t * | ) | [static] |
| static int WriteUserKey | ( | void * | , | |
| uint32_t * | ||||
| ) | [static] |
1.5.1