Subversion Repositories freemyipod

Rev

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

Rev 598 Rev 636
Line 56... Line 56...
56
                    ((uint32_t*)data)[ptr + i] ^= ((uint32_t*)data)[ptr + i - 4];
56
                    ((uint32_t*)data)[ptr + i] ^= ((uint32_t*)data)[ptr + i - 4];
57
        }
57
        }
58
        AESOUTADDR = (void*)((uint32_t)data + (ptr << 2));
58
        AESOUTADDR = (void*)((uint32_t)data + (ptr << 2));
59
        AESINADDR = (void*)((uint32_t)data + (ptr << 2));
59
        AESINADDR = (void*)((uint32_t)data + (ptr << 2));
60
        AESAUXADDR = (void*)((uint32_t)data + (ptr << 2));
60
        AESAUXADDR = (void*)((uint32_t)data + (ptr << 2));
61
	    clean_dcache();
61
	    invalidate_dcache();
62
        AESSTATUS = 6;
62
        AESSTATUS = 6;
63
        AESGO = go;
63
        AESGO = go;
64
        go = 3;
64
        go = 3;
65
        while ((AESSTATUS & 6) == 0);
65
        while ((AESSTATUS & 6) == 0);
66
	    invalidate_dcache();
-
 
67
        if (direction == HWKEYAES_DECRYPT)
66
        if (direction == HWKEYAES_DECRYPT)
68
		{
67
		{
69
			if (!ptr) break;
68
			if (!ptr) break;
70
            for (i = 0; i < 4; i++)
69
            for (i = 0; i < 4; i++)
71
                ((uint32_t*)data)[ptr + i] ^= ((uint32_t*)data)[ptr + i - 4];
70
                ((uint32_t*)data)[ptr + i] ^= ((uint32_t*)data)[ptr + i - 4];