Subversion Repositories freemyipod

Rev

Rev 523 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 523 Rev 550
Line 32... Line 32...
32
import libemcoredata
32
import libemcoredata
33
 
33
 
34
 
34
 
35
def s5l8701cryptdfu(data):
35
def s5l8701cryptdfu(data):
36
    data = data.ljust((len(data) + 0x3f) & ~0x3f, "\0")
36
    data = data.ljust((len(data) + 0x3f) & ~0x3f, "\0")
37
    header = "87011.0\0\0\0x8\0\0" + struct.pack("<I", len(data))
37
    header = "87011.0\0\0\x08\0\0" + struct.pack("<I", len(data))
38
    emcore = libemcore.Emcore()
38
    emcore = libemcore.Emcore()
39
    addr = emcore.memalign(0x10, len(data) + 0x800)
39
    addr = emcore.memalign(0x10, len(data) + 0x800)
40
    emcore.write(addr, header.ljust(0x800, "\0") + data)
40
    emcore.write(addr, header.ljust(0x800, "\0") + data)
41
    emcore.hmac_sha1(addr + 0x800, len(data), addr + 0x10)
41
    emcore.hmac_sha1(addr + 0x800, len(data), addr + 0x10)
42
    emcore.hmac_sha1(addr, 0x40, addr + 0x40)
42
    emcore.hmac_sha1(addr, 0x40, addr + 0x40)