public static uint[] prepare_key(uint[] a)
{
int i, j, r;
var pkey = new uint[] { 0x93C467E3, 0x7DB0C7A4, 0xD1BE3F81, 0x0152CB56 };
for (r = 65536; r-- > 0; )
{
for (j = 0; j < a.Length; j += 4)
{
var key = new uint[] { 0, 0, 0, 0 };
for (i = 0; i < 4; i++)
{
if (i + j < a.Length)
{
key[i] = a[i + j];
}
}
var aes = new Sjcl.Cipher.Aes(key);
pkey = aes.Encrypt(pkey);
}
}
return pkey;
}