@@ -89,27 +89,14 @@ inline uint4 AES_Round_bittube2(const __local uint *AES0, const __local uint *AE
89
89
90
90
uint4 AES_Round (const __local uint * AES0 , const __local uint * AES1 , const __local uint * AES2 , const __local uint * AES3 , const uint4 X , uint4 key )
91
91
{
92
- key .s0 ^= AES0 [BYTE (X .s0 , 0 )];
93
- key .s1 ^= AES0 [BYTE (X .s1 , 0 )];
94
- key .s2 ^= AES0 [BYTE (X .s2 , 0 )];
95
- key .s3 ^= AES0 [BYTE (X .s3 , 0 )];
92
+ uint4 Y ;
93
+ Y .s0 = AES0 [BYTE (X .s0 , 0 )] ^ AES1 [BYTE (X .s1 , 1 )] ^ AES2 [BYTE (X .s2 , 2 )] ^ AES3 [BYTE (X .s3 , 3 )];
94
+ Y .s1 = AES0 [BYTE (X .s1 , 0 )] ^ AES1 [BYTE (X .s2 , 1 )] ^ AES2 [BYTE (X .s3 , 2 )] ^ AES3 [BYTE (X .s0 , 3 )];
95
+ Y .s2 = AES0 [BYTE (X .s2 , 0 )] ^ AES1 [BYTE (X .s3 , 1 )] ^ AES2 [BYTE (X .s0 , 2 )] ^ AES3 [BYTE (X .s1 , 3 )];
96
+ Y .s3 = AES0 [BYTE (X .s3 , 0 )] ^ AES1 [BYTE (X .s0 , 1 )] ^ AES2 [BYTE (X .s1 , 2 )] ^ AES3 [BYTE (X .s2 , 3 )];
97
+ Y ^= key ;
96
98
97
- key .s0 ^= AES2 [BYTE (X .s2 , 2 )];
98
- key .s1 ^= AES2 [BYTE (X .s3 , 2 )];
99
- key .s2 ^= AES2 [BYTE (X .s0 , 2 )];
100
- key .s3 ^= AES2 [BYTE (X .s1 , 2 )];
101
-
102
- key .s0 ^= AES1 [BYTE (X .s1 , 1 )];
103
- key .s1 ^= AES1 [BYTE (X .s2 , 1 )];
104
- key .s2 ^= AES1 [BYTE (X .s3 , 1 )];
105
- key .s3 ^= AES1 [BYTE (X .s0 , 1 )];
106
-
107
- key .s0 ^= AES3 [BYTE (X .s3 , 3 )];
108
- key .s1 ^= AES3 [BYTE (X .s0 , 3 )];
109
- key .s2 ^= AES3 [BYTE (X .s1 , 3 )];
110
- key .s3 ^= AES3 [BYTE (X .s2 , 3 )];
111
-
112
- return key ;
99
+ return (Y );
113
100
}
114
101
115
102
#endif
0 commit comments