|
@@ -91,20 +91,20 @@ const struct ltc_cipher_descriptor aes_enc_desc =
|
|
|
|
|
|
static ulong32 setup_mix(ulong32 temp)
|
|
|
{
|
|
|
- return (Te4_3[byte(temp, 2)]) ^
|
|
|
- (Te4_2[byte(temp, 1)]) ^
|
|
|
- (Te4_1[byte(temp, 0)]) ^
|
|
|
- (Te4_0[byte(temp, 3)]);
|
|
|
+ return (Te4_3[LTC_BYTE(temp, 2)]) ^
|
|
|
+ (Te4_2[LTC_BYTE(temp, 1)]) ^
|
|
|
+ (Te4_1[LTC_BYTE(temp, 0)]) ^
|
|
|
+ (Te4_0[LTC_BYTE(temp, 3)]);
|
|
|
}
|
|
|
|
|
|
#ifndef ENCRYPT_ONLY
|
|
|
#ifdef LTC_SMALL_CODE
|
|
|
static ulong32 setup_mix2(ulong32 temp)
|
|
|
{
|
|
|
- return Td0(255 & Te4[byte(temp, 3)]) ^
|
|
|
- Td1(255 & Te4[byte(temp, 2)]) ^
|
|
|
- Td2(255 & Te4[byte(temp, 1)]) ^
|
|
|
- Td3(255 & Te4[byte(temp, 0)]);
|
|
|
+ return Td0(255 & Te4[LTC_BYTE(temp, 3)]) ^
|
|
|
+ Td1(255 & Te4[LTC_BYTE(temp, 2)]) ^
|
|
|
+ Td2(255 & Te4[LTC_BYTE(temp, 1)]) ^
|
|
|
+ Td3(255 & Te4[LTC_BYTE(temp, 0)]);
|
|
|
}
|
|
|
#endif
|
|
|
#endif
|
|
@@ -235,28 +235,28 @@ int SETUP(const unsigned char *key, int keylen, int num_rounds, symmetric_key *s
|
|
|
#else
|
|
|
temp = rrk[0];
|
|
|
rk[0] =
|
|
|
- Tks0[byte(temp, 3)] ^
|
|
|
- Tks1[byte(temp, 2)] ^
|
|
|
- Tks2[byte(temp, 1)] ^
|
|
|
- Tks3[byte(temp, 0)];
|
|
|
+ Tks0[LTC_BYTE(temp, 3)] ^
|
|
|
+ Tks1[LTC_BYTE(temp, 2)] ^
|
|
|
+ Tks2[LTC_BYTE(temp, 1)] ^
|
|
|
+ Tks3[LTC_BYTE(temp, 0)];
|
|
|
temp = rrk[1];
|
|
|
rk[1] =
|
|
|
- Tks0[byte(temp, 3)] ^
|
|
|
- Tks1[byte(temp, 2)] ^
|
|
|
- Tks2[byte(temp, 1)] ^
|
|
|
- Tks3[byte(temp, 0)];
|
|
|
+ Tks0[LTC_BYTE(temp, 3)] ^
|
|
|
+ Tks1[LTC_BYTE(temp, 2)] ^
|
|
|
+ Tks2[LTC_BYTE(temp, 1)] ^
|
|
|
+ Tks3[LTC_BYTE(temp, 0)];
|
|
|
temp = rrk[2];
|
|
|
rk[2] =
|
|
|
- Tks0[byte(temp, 3)] ^
|
|
|
- Tks1[byte(temp, 2)] ^
|
|
|
- Tks2[byte(temp, 1)] ^
|
|
|
- Tks3[byte(temp, 0)];
|
|
|
+ Tks0[LTC_BYTE(temp, 3)] ^
|
|
|
+ Tks1[LTC_BYTE(temp, 2)] ^
|
|
|
+ Tks2[LTC_BYTE(temp, 1)] ^
|
|
|
+ Tks3[LTC_BYTE(temp, 0)];
|
|
|
temp = rrk[3];
|
|
|
rk[3] =
|
|
|
- Tks0[byte(temp, 3)] ^
|
|
|
- Tks1[byte(temp, 2)] ^
|
|
|
- Tks2[byte(temp, 1)] ^
|
|
|
- Tks3[byte(temp, 0)];
|
|
|
+ Tks0[LTC_BYTE(temp, 3)] ^
|
|
|
+ Tks1[LTC_BYTE(temp, 2)] ^
|
|
|
+ Tks2[LTC_BYTE(temp, 1)] ^
|
|
|
+ Tks3[LTC_BYTE(temp, 0)];
|
|
|
#endif
|
|
|
|
|
|
}
|
|
@@ -311,28 +311,28 @@ int ECB_ENC(const unsigned char *pt, unsigned char *ct, const symmetric_key *ske
|
|
|
for (r = 0; ; r++) {
|
|
|
rk += 4;
|
|
|
t0 =
|
|
|
- Te0(byte(s0, 3)) ^
|
|
|
- Te1(byte(s1, 2)) ^
|
|
|
- Te2(byte(s2, 1)) ^
|
|
|
- Te3(byte(s3, 0)) ^
|
|
|
+ Te0(LTC_BYTE(s0, 3)) ^
|
|
|
+ Te1(LTC_BYTE(s1, 2)) ^
|
|
|
+ Te2(LTC_BYTE(s2, 1)) ^
|
|
|
+ Te3(LTC_BYTE(s3, 0)) ^
|
|
|
rk[0];
|
|
|
t1 =
|
|
|
- Te0(byte(s1, 3)) ^
|
|
|
- Te1(byte(s2, 2)) ^
|
|
|
- Te2(byte(s3, 1)) ^
|
|
|
- Te3(byte(s0, 0)) ^
|
|
|
+ Te0(LTC_BYTE(s1, 3)) ^
|
|
|
+ Te1(LTC_BYTE(s2, 2)) ^
|
|
|
+ Te2(LTC_BYTE(s3, 1)) ^
|
|
|
+ Te3(LTC_BYTE(s0, 0)) ^
|
|
|
rk[1];
|
|
|
t2 =
|
|
|
- Te0(byte(s2, 3)) ^
|
|
|
- Te1(byte(s3, 2)) ^
|
|
|
- Te2(byte(s0, 1)) ^
|
|
|
- Te3(byte(s1, 0)) ^
|
|
|
+ Te0(LTC_BYTE(s2, 3)) ^
|
|
|
+ Te1(LTC_BYTE(s3, 2)) ^
|
|
|
+ Te2(LTC_BYTE(s0, 1)) ^
|
|
|
+ Te3(LTC_BYTE(s1, 0)) ^
|
|
|
rk[2];
|
|
|
t3 =
|
|
|
- Te0(byte(s3, 3)) ^
|
|
|
- Te1(byte(s0, 2)) ^
|
|
|
- Te2(byte(s1, 1)) ^
|
|
|
- Te3(byte(s2, 0)) ^
|
|
|
+ Te0(LTC_BYTE(s3, 3)) ^
|
|
|
+ Te1(LTC_BYTE(s0, 2)) ^
|
|
|
+ Te2(LTC_BYTE(s1, 1)) ^
|
|
|
+ Te3(LTC_BYTE(s2, 0)) ^
|
|
|
rk[3];
|
|
|
if (r == Nr-2) {
|
|
|
break;
|
|
@@ -349,28 +349,28 @@ int ECB_ENC(const unsigned char *pt, unsigned char *ct, const symmetric_key *ske
|
|
|
r = Nr >> 1;
|
|
|
for (;;) {
|
|
|
t0 =
|
|
|
- Te0(byte(s0, 3)) ^
|
|
|
- Te1(byte(s1, 2)) ^
|
|
|
- Te2(byte(s2, 1)) ^
|
|
|
- Te3(byte(s3, 0)) ^
|
|
|
+ Te0(LTC_BYTE(s0, 3)) ^
|
|
|
+ Te1(LTC_BYTE(s1, 2)) ^
|
|
|
+ Te2(LTC_BYTE(s2, 1)) ^
|
|
|
+ Te3(LTC_BYTE(s3, 0)) ^
|
|
|
rk[4];
|
|
|
t1 =
|
|
|
- Te0(byte(s1, 3)) ^
|
|
|
- Te1(byte(s2, 2)) ^
|
|
|
- Te2(byte(s3, 1)) ^
|
|
|
- Te3(byte(s0, 0)) ^
|
|
|
+ Te0(LTC_BYTE(s1, 3)) ^
|
|
|
+ Te1(LTC_BYTE(s2, 2)) ^
|
|
|
+ Te2(LTC_BYTE(s3, 1)) ^
|
|
|
+ Te3(LTC_BYTE(s0, 0)) ^
|
|
|
rk[5];
|
|
|
t2 =
|
|
|
- Te0(byte(s2, 3)) ^
|
|
|
- Te1(byte(s3, 2)) ^
|
|
|
- Te2(byte(s0, 1)) ^
|
|
|
- Te3(byte(s1, 0)) ^
|
|
|
+ Te0(LTC_BYTE(s2, 3)) ^
|
|
|
+ Te1(LTC_BYTE(s3, 2)) ^
|
|
|
+ Te2(LTC_BYTE(s0, 1)) ^
|
|
|
+ Te3(LTC_BYTE(s1, 0)) ^
|
|
|
rk[6];
|
|
|
t3 =
|
|
|
- Te0(byte(s3, 3)) ^
|
|
|
- Te1(byte(s0, 2)) ^
|
|
|
- Te2(byte(s1, 1)) ^
|
|
|
- Te3(byte(s2, 0)) ^
|
|
|
+ Te0(LTC_BYTE(s3, 3)) ^
|
|
|
+ Te1(LTC_BYTE(s0, 2)) ^
|
|
|
+ Te2(LTC_BYTE(s1, 1)) ^
|
|
|
+ Te3(LTC_BYTE(s2, 0)) ^
|
|
|
rk[7];
|
|
|
|
|
|
rk += 8;
|
|
@@ -379,28 +379,28 @@ int ECB_ENC(const unsigned char *pt, unsigned char *ct, const symmetric_key *ske
|
|
|
}
|
|
|
|
|
|
s0 =
|
|
|
- Te0(byte(t0, 3)) ^
|
|
|
- Te1(byte(t1, 2)) ^
|
|
|
- Te2(byte(t2, 1)) ^
|
|
|
- Te3(byte(t3, 0)) ^
|
|
|
+ Te0(LTC_BYTE(t0, 3)) ^
|
|
|
+ Te1(LTC_BYTE(t1, 2)) ^
|
|
|
+ Te2(LTC_BYTE(t2, 1)) ^
|
|
|
+ Te3(LTC_BYTE(t3, 0)) ^
|
|
|
rk[0];
|
|
|
s1 =
|
|
|
- Te0(byte(t1, 3)) ^
|
|
|
- Te1(byte(t2, 2)) ^
|
|
|
- Te2(byte(t3, 1)) ^
|
|
|
- Te3(byte(t0, 0)) ^
|
|
|
+ Te0(LTC_BYTE(t1, 3)) ^
|
|
|
+ Te1(LTC_BYTE(t2, 2)) ^
|
|
|
+ Te2(LTC_BYTE(t3, 1)) ^
|
|
|
+ Te3(LTC_BYTE(t0, 0)) ^
|
|
|
rk[1];
|
|
|
s2 =
|
|
|
- Te0(byte(t2, 3)) ^
|
|
|
- Te1(byte(t3, 2)) ^
|
|
|
- Te2(byte(t0, 1)) ^
|
|
|
- Te3(byte(t1, 0)) ^
|
|
|
+ Te0(LTC_BYTE(t2, 3)) ^
|
|
|
+ Te1(LTC_BYTE(t3, 2)) ^
|
|
|
+ Te2(LTC_BYTE(t0, 1)) ^
|
|
|
+ Te3(LTC_BYTE(t1, 0)) ^
|
|
|
rk[2];
|
|
|
s3 =
|
|
|
- Te0(byte(t3, 3)) ^
|
|
|
- Te1(byte(t0, 2)) ^
|
|
|
- Te2(byte(t1, 1)) ^
|
|
|
- Te3(byte(t2, 0)) ^
|
|
|
+ Te0(LTC_BYTE(t3, 3)) ^
|
|
|
+ Te1(LTC_BYTE(t0, 2)) ^
|
|
|
+ Te2(LTC_BYTE(t1, 1)) ^
|
|
|
+ Te3(LTC_BYTE(t2, 0)) ^
|
|
|
rk[3];
|
|
|
}
|
|
|
|
|
@@ -411,31 +411,31 @@ int ECB_ENC(const unsigned char *pt, unsigned char *ct, const symmetric_key *ske
|
|
|
* map cipher state to byte array block:
|
|
|
*/
|
|
|
s0 =
|
|
|
- (Te4_3[byte(t0, 3)]) ^
|
|
|
- (Te4_2[byte(t1, 2)]) ^
|
|
|
- (Te4_1[byte(t2, 1)]) ^
|
|
|
- (Te4_0[byte(t3, 0)]) ^
|
|
|
+ (Te4_3[LTC_BYTE(t0, 3)]) ^
|
|
|
+ (Te4_2[LTC_BYTE(t1, 2)]) ^
|
|
|
+ (Te4_1[LTC_BYTE(t2, 1)]) ^
|
|
|
+ (Te4_0[LTC_BYTE(t3, 0)]) ^
|
|
|
rk[0];
|
|
|
STORE32H(s0, ct);
|
|
|
s1 =
|
|
|
- (Te4_3[byte(t1, 3)]) ^
|
|
|
- (Te4_2[byte(t2, 2)]) ^
|
|
|
- (Te4_1[byte(t3, 1)]) ^
|
|
|
- (Te4_0[byte(t0, 0)]) ^
|
|
|
+ (Te4_3[LTC_BYTE(t1, 3)]) ^
|
|
|
+ (Te4_2[LTC_BYTE(t2, 2)]) ^
|
|
|
+ (Te4_1[LTC_BYTE(t3, 1)]) ^
|
|
|
+ (Te4_0[LTC_BYTE(t0, 0)]) ^
|
|
|
rk[1];
|
|
|
STORE32H(s1, ct+4);
|
|
|
s2 =
|
|
|
- (Te4_3[byte(t2, 3)]) ^
|
|
|
- (Te4_2[byte(t3, 2)]) ^
|
|
|
- (Te4_1[byte(t0, 1)]) ^
|
|
|
- (Te4_0[byte(t1, 0)]) ^
|
|
|
+ (Te4_3[LTC_BYTE(t2, 3)]) ^
|
|
|
+ (Te4_2[LTC_BYTE(t3, 2)]) ^
|
|
|
+ (Te4_1[LTC_BYTE(t0, 1)]) ^
|
|
|
+ (Te4_0[LTC_BYTE(t1, 0)]) ^
|
|
|
rk[2];
|
|
|
STORE32H(s2, ct+8);
|
|
|
s3 =
|
|
|
- (Te4_3[byte(t3, 3)]) ^
|
|
|
- (Te4_2[byte(t0, 2)]) ^
|
|
|
- (Te4_1[byte(t1, 1)]) ^
|
|
|
- (Te4_0[byte(t2, 0)]) ^
|
|
|
+ (Te4_3[LTC_BYTE(t3, 3)]) ^
|
|
|
+ (Te4_2[LTC_BYTE(t0, 2)]) ^
|
|
|
+ (Te4_1[LTC_BYTE(t1, 1)]) ^
|
|
|
+ (Te4_0[LTC_BYTE(t2, 0)]) ^
|
|
|
rk[3];
|
|
|
STORE32H(s3, ct+12);
|
|
|
|
|
@@ -490,28 +490,28 @@ int ECB_DEC(const unsigned char *ct, unsigned char *pt, const symmetric_key *ske
|
|
|
for (r = 0; ; r++) {
|
|
|
rk += 4;
|
|
|
t0 =
|
|
|
- Td0(byte(s0, 3)) ^
|
|
|
- Td1(byte(s3, 2)) ^
|
|
|
- Td2(byte(s2, 1)) ^
|
|
|
- Td3(byte(s1, 0)) ^
|
|
|
+ Td0(LTC_BYTE(s0, 3)) ^
|
|
|
+ Td1(LTC_BYTE(s3, 2)) ^
|
|
|
+ Td2(LTC_BYTE(s2, 1)) ^
|
|
|
+ Td3(LTC_BYTE(s1, 0)) ^
|
|
|
rk[0];
|
|
|
t1 =
|
|
|
- Td0(byte(s1, 3)) ^
|
|
|
- Td1(byte(s0, 2)) ^
|
|
|
- Td2(byte(s3, 1)) ^
|
|
|
- Td3(byte(s2, 0)) ^
|
|
|
+ Td0(LTC_BYTE(s1, 3)) ^
|
|
|
+ Td1(LTC_BYTE(s0, 2)) ^
|
|
|
+ Td2(LTC_BYTE(s3, 1)) ^
|
|
|
+ Td3(LTC_BYTE(s2, 0)) ^
|
|
|
rk[1];
|
|
|
t2 =
|
|
|
- Td0(byte(s2, 3)) ^
|
|
|
- Td1(byte(s1, 2)) ^
|
|
|
- Td2(byte(s0, 1)) ^
|
|
|
- Td3(byte(s3, 0)) ^
|
|
|
+ Td0(LTC_BYTE(s2, 3)) ^
|
|
|
+ Td1(LTC_BYTE(s1, 2)) ^
|
|
|
+ Td2(LTC_BYTE(s0, 1)) ^
|
|
|
+ Td3(LTC_BYTE(s3, 0)) ^
|
|
|
rk[2];
|
|
|
t3 =
|
|
|
- Td0(byte(s3, 3)) ^
|
|
|
- Td1(byte(s2, 2)) ^
|
|
|
- Td2(byte(s1, 1)) ^
|
|
|
- Td3(byte(s0, 0)) ^
|
|
|
+ Td0(LTC_BYTE(s3, 3)) ^
|
|
|
+ Td1(LTC_BYTE(s2, 2)) ^
|
|
|
+ Td2(LTC_BYTE(s1, 1)) ^
|
|
|
+ Td3(LTC_BYTE(s0, 0)) ^
|
|
|
rk[3];
|
|
|
if (r == Nr-2) {
|
|
|
break;
|
|
@@ -529,28 +529,28 @@ int ECB_DEC(const unsigned char *ct, unsigned char *pt, const symmetric_key *ske
|
|
|
for (;;) {
|
|
|
|
|
|
t0 =
|
|
|
- Td0(byte(s0, 3)) ^
|
|
|
- Td1(byte(s3, 2)) ^
|
|
|
- Td2(byte(s2, 1)) ^
|
|
|
- Td3(byte(s1, 0)) ^
|
|
|
+ Td0(LTC_BYTE(s0, 3)) ^
|
|
|
+ Td1(LTC_BYTE(s3, 2)) ^
|
|
|
+ Td2(LTC_BYTE(s2, 1)) ^
|
|
|
+ Td3(LTC_BYTE(s1, 0)) ^
|
|
|
rk[4];
|
|
|
t1 =
|
|
|
- Td0(byte(s1, 3)) ^
|
|
|
- Td1(byte(s0, 2)) ^
|
|
|
- Td2(byte(s3, 1)) ^
|
|
|
- Td3(byte(s2, 0)) ^
|
|
|
+ Td0(LTC_BYTE(s1, 3)) ^
|
|
|
+ Td1(LTC_BYTE(s0, 2)) ^
|
|
|
+ Td2(LTC_BYTE(s3, 1)) ^
|
|
|
+ Td3(LTC_BYTE(s2, 0)) ^
|
|
|
rk[5];
|
|
|
t2 =
|
|
|
- Td0(byte(s2, 3)) ^
|
|
|
- Td1(byte(s1, 2)) ^
|
|
|
- Td2(byte(s0, 1)) ^
|
|
|
- Td3(byte(s3, 0)) ^
|
|
|
+ Td0(LTC_BYTE(s2, 3)) ^
|
|
|
+ Td1(LTC_BYTE(s1, 2)) ^
|
|
|
+ Td2(LTC_BYTE(s0, 1)) ^
|
|
|
+ Td3(LTC_BYTE(s3, 0)) ^
|
|
|
rk[6];
|
|
|
t3 =
|
|
|
- Td0(byte(s3, 3)) ^
|
|
|
- Td1(byte(s2, 2)) ^
|
|
|
- Td2(byte(s1, 1)) ^
|
|
|
- Td3(byte(s0, 0)) ^
|
|
|
+ Td0(LTC_BYTE(s3, 3)) ^
|
|
|
+ Td1(LTC_BYTE(s2, 2)) ^
|
|
|
+ Td2(LTC_BYTE(s1, 1)) ^
|
|
|
+ Td3(LTC_BYTE(s0, 0)) ^
|
|
|
rk[7];
|
|
|
|
|
|
rk += 8;
|
|
@@ -560,28 +560,28 @@ int ECB_DEC(const unsigned char *ct, unsigned char *pt, const symmetric_key *ske
|
|
|
|
|
|
|
|
|
s0 =
|
|
|
- Td0(byte(t0, 3)) ^
|
|
|
- Td1(byte(t3, 2)) ^
|
|
|
- Td2(byte(t2, 1)) ^
|
|
|
- Td3(byte(t1, 0)) ^
|
|
|
+ Td0(LTC_BYTE(t0, 3)) ^
|
|
|
+ Td1(LTC_BYTE(t3, 2)) ^
|
|
|
+ Td2(LTC_BYTE(t2, 1)) ^
|
|
|
+ Td3(LTC_BYTE(t1, 0)) ^
|
|
|
rk[0];
|
|
|
s1 =
|
|
|
- Td0(byte(t1, 3)) ^
|
|
|
- Td1(byte(t0, 2)) ^
|
|
|
- Td2(byte(t3, 1)) ^
|
|
|
- Td3(byte(t2, 0)) ^
|
|
|
+ Td0(LTC_BYTE(t1, 3)) ^
|
|
|
+ Td1(LTC_BYTE(t0, 2)) ^
|
|
|
+ Td2(LTC_BYTE(t3, 1)) ^
|
|
|
+ Td3(LTC_BYTE(t2, 0)) ^
|
|
|
rk[1];
|
|
|
s2 =
|
|
|
- Td0(byte(t2, 3)) ^
|
|
|
- Td1(byte(t1, 2)) ^
|
|
|
- Td2(byte(t0, 1)) ^
|
|
|
- Td3(byte(t3, 0)) ^
|
|
|
+ Td0(LTC_BYTE(t2, 3)) ^
|
|
|
+ Td1(LTC_BYTE(t1, 2)) ^
|
|
|
+ Td2(LTC_BYTE(t0, 1)) ^
|
|
|
+ Td3(LTC_BYTE(t3, 0)) ^
|
|
|
rk[2];
|
|
|
s3 =
|
|
|
- Td0(byte(t3, 3)) ^
|
|
|
- Td1(byte(t2, 2)) ^
|
|
|
- Td2(byte(t1, 1)) ^
|
|
|
- Td3(byte(t0, 0)) ^
|
|
|
+ Td0(LTC_BYTE(t3, 3)) ^
|
|
|
+ Td1(LTC_BYTE(t2, 2)) ^
|
|
|
+ Td2(LTC_BYTE(t1, 1)) ^
|
|
|
+ Td3(LTC_BYTE(t0, 0)) ^
|
|
|
rk[3];
|
|
|
}
|
|
|
#endif
|
|
@@ -591,31 +591,31 @@ int ECB_DEC(const unsigned char *ct, unsigned char *pt, const symmetric_key *ske
|
|
|
* map cipher state to byte array block:
|
|
|
*/
|
|
|
s0 =
|
|
|
- (Td4[byte(t0, 3)] & 0xff000000) ^
|
|
|
- (Td4[byte(t3, 2)] & 0x00ff0000) ^
|
|
|
- (Td4[byte(t2, 1)] & 0x0000ff00) ^
|
|
|
- (Td4[byte(t1, 0)] & 0x000000ff) ^
|
|
|
+ (Td4[LTC_BYTE(t0, 3)] & 0xff000000) ^
|
|
|
+ (Td4[LTC_BYTE(t3, 2)] & 0x00ff0000) ^
|
|
|
+ (Td4[LTC_BYTE(t2, 1)] & 0x0000ff00) ^
|
|
|
+ (Td4[LTC_BYTE(t1, 0)] & 0x000000ff) ^
|
|
|
rk[0];
|
|
|
STORE32H(s0, pt);
|
|
|
s1 =
|
|
|
- (Td4[byte(t1, 3)] & 0xff000000) ^
|
|
|
- (Td4[byte(t0, 2)] & 0x00ff0000) ^
|
|
|
- (Td4[byte(t3, 1)] & 0x0000ff00) ^
|
|
|
- (Td4[byte(t2, 0)] & 0x000000ff) ^
|
|
|
+ (Td4[LTC_BYTE(t1, 3)] & 0xff000000) ^
|
|
|
+ (Td4[LTC_BYTE(t0, 2)] & 0x00ff0000) ^
|
|
|
+ (Td4[LTC_BYTE(t3, 1)] & 0x0000ff00) ^
|
|
|
+ (Td4[LTC_BYTE(t2, 0)] & 0x000000ff) ^
|
|
|
rk[1];
|
|
|
STORE32H(s1, pt+4);
|
|
|
s2 =
|
|
|
- (Td4[byte(t2, 3)] & 0xff000000) ^
|
|
|
- (Td4[byte(t1, 2)] & 0x00ff0000) ^
|
|
|
- (Td4[byte(t0, 1)] & 0x0000ff00) ^
|
|
|
- (Td4[byte(t3, 0)] & 0x000000ff) ^
|
|
|
+ (Td4[LTC_BYTE(t2, 3)] & 0xff000000) ^
|
|
|
+ (Td4[LTC_BYTE(t1, 2)] & 0x00ff0000) ^
|
|
|
+ (Td4[LTC_BYTE(t0, 1)] & 0x0000ff00) ^
|
|
|
+ (Td4[LTC_BYTE(t3, 0)] & 0x000000ff) ^
|
|
|
rk[2];
|
|
|
STORE32H(s2, pt+8);
|
|
|
s3 =
|
|
|
- (Td4[byte(t3, 3)] & 0xff000000) ^
|
|
|
- (Td4[byte(t2, 2)] & 0x00ff0000) ^
|
|
|
- (Td4[byte(t1, 1)] & 0x0000ff00) ^
|
|
|
- (Td4[byte(t0, 0)] & 0x000000ff) ^
|
|
|
+ (Td4[LTC_BYTE(t3, 3)] & 0xff000000) ^
|
|
|
+ (Td4[LTC_BYTE(t2, 2)] & 0x00ff0000) ^
|
|
|
+ (Td4[LTC_BYTE(t1, 1)] & 0x0000ff00) ^
|
|
|
+ (Td4[LTC_BYTE(t0, 0)] & 0x000000ff) ^
|
|
|
rk[3];
|
|
|
STORE32H(s3, pt+12);
|
|
|
|