Subversion Repositories freemyipod

Rev

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

Rev 156 Rev 265
Line 49... Line 49...
49
            if (ptr >= (size >> 2)) break;
49
            if (ptr >= (size >> 2)) break;
50
            if (ptr != 0)
50
            if (ptr != 0)
51
                for (i = 0; i < 4; i++)
51
                for (i = 0; i < 4; i++)
52
                    ((uint32_t*)data)[ptr + i] ^= ((uint32_t*)data)[ptr + i - 4];
52
                    ((uint32_t*)data)[ptr + i] ^= ((uint32_t*)data)[ptr + i - 4];
53
        }
53
        }
54
        AESOUTADDR = (uint32_t)data + (ptr << 2);
54
        AESOUTADDR = (void*)((uint32_t)data + (ptr << 2));
55
        AESINADDR = (uint32_t)data + (ptr << 2);
55
        AESINADDR = (void*)((uint32_t)data + (ptr << 2));
56
        AESAUXADDR = (uint32_t)data + (ptr << 2);
56
        AESAUXADDR = (void*)((uint32_t)data + (ptr << 2));
57
	    clean_dcache();
57
	    clean_dcache();
58
        AESSTATUS = 6;
58
        AESSTATUS = 6;
59
        AESGO = go;
59
        AESGO = go;
60
        go = 3;
60
        go = 3;
61
        while ((AESSTATUS & 6) == 0) yield();
61
        while ((AESSTATUS & 6) == 0) sleep(100);
62
	    invalidate_dcache();
62
	    invalidate_dcache();
63
        if (direction == HWKEYAES_DECRYPT)
63
        if (direction == HWKEYAES_DECRYPT)
64
		{
64
		{
65
			if (!ptr) break;
65
			if (!ptr) break;
66
            for (i = 0; i < 4; i++)
66
            for (i = 0; i < 4; i++)