User Tools

Site Tools


netmdocm

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
netmdocm [2011/01/16 14:34] nopslednetmdocm [2011/01/16 17:59] (current) nopsled
Line 937: Line 937:
  
 In other words, this extracts the 0-extension of a MACLIST and an encrypted hash of that. In other words, this extracts the 0-extension of a MACLIST and an encrypted hash of that.
 +
 +See pcmaclist(6)
  
 /* /*
Line 1085: Line 1087:
  
 ===== querycif(09) - Get KEK encrypted content key ===== ===== querycif(09) - Get KEK encrypted content key =====
- 
-/* 
-Procedure prototype: 
- querycif(09) 
- 
-Input: 
- 
-SalPointer const &, 
-SalPointer const &, 
-long, 
-long, 
-SalPointer const &, 
-SalOmgId const &, 
-SalPointer const &, 
-long, 
-SalExtrinsicsProg const &, 
- 
-Output: 
- 
-SalAsnSeqBegin, 
-long &, 
-OmgString & 
-querycif(09) 
- 
-Process File, SalOmgId, param3, long (3), long (3), Ekb capability table, 00010001_EKB -> Enc(CKEY, KEK) 
-  
-*/ 
-  
- 
-unsigned char param3[24] = 
-{ 
-    0x46, 0x73, 0xE4, 0x89, 0x6A, 0xA9, 0x0B, 0x96, 0x69, 0x43, 0xAA, 0x39, 0x99, 0xE2, 0x08, 0xC4,  
-    0xF8, 0xCA, 0x19, 0x2E, 0x38, 0xE2, 0x3E, 0x4C,  
-} ; 
- 
-unsigned char param6_EkbCapabilityTable[24] = 
-{ 
-    0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00,  
-    0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00,  
-} ; 
- 
- 
-/* Return value. TODO: double check */ 
- 
-unsigned char return_value[11] = 
-{ 
-    0x30, 0x80, 0x02, 0x01, 0x00, 0x04, 0x08, 0x82, 0x19, 0x23, 0xFD,  
-} ; 
  
 <code> <code>
Line 1185: Line 1139:
  
  
- 
- 
-function GetKekEncCKEY(blob_t OpfImage (arg_2), blob_t EkbCapTableBody (arg_3)) 
-{ 
- Array ProcessFile[5]; 
-  
- dict[4] = EkbCapTableBody; 
- ProcessFile = decode_asn1(opf_image); 
- dict[3] = OpfImage; 
- 
- //  
- // Calculate HMAC for the opf[3] usage information. Check if it matches with the HMAC value in opf[1] 
-        // 
-        // ProcessFile[1]:  HMAC(opf[3], saldec(opf[2])) 
- 
- blob_t dec_pf2 = devicesal_220_decrypt_hook_249(ProcessFile[2],  EkbCapTableBody); 
- blob_t serialized_opf3 = BCSerialize(ProcessFile[3]); 
- blob_t key = concat ( dec_pf2, serialized_opf3 ); 
- blob_t hasked_key = inline::SHA-1 ( key, 0); 
- blob_t key_pf2 = concat ( dec_pf2, hashed_key ); 
- blob_t hashed_key_pf2 = inline:SHA-1 (key_pf2); 
-  
-        // if( HMAC(opf[3], saldec(opf[2]) == ProcessFile[1]) 
-        // 
-        // 
- if (compare_blob (hashed_key_pf2, ProcessFile[1])  == 0) // 0xffff  
- // Test_Small_Int_For_Zero -> 0 (acc) 
- { 
- ... todo 
- } 
-} 
  
 </code> </code>
netmdocm.1295188448.txt.gz · Last modified: 2011/01/16 14:34 by nopsled

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki