File tree Expand file tree Collapse file tree 2 files changed +34
-42
lines changed
core/src/main/java/org/bouncycastle/crypto Expand file tree Collapse file tree 2 files changed +34
-42
lines changed Original file line number Diff line number Diff line change @@ -149,7 +149,7 @@ public void reset()
149149
150150 void PHOTON_Permutation ()
151151 {
152- int i , j , k , l ;
152+ int i , j , k ;
153153 for (i = 0 ; i < DSquare ; i ++)
154154 {
155155 state_2d [i >>> Dq ][i & Dr ] = (byte )(((state [i >> 1 ] & 0xFF ) >>> (4 * (i & 1 ))) & 0xf );
@@ -181,29 +181,25 @@ void PHOTON_Permutation()
181181 {
182182 for (i = 0 ; i < D ; i ++)
183183 {
184- byte sum = 0 ;
184+ int sum = 0 ;
185+
185186 for (k = 0 ; k < D ; k ++)
186187 {
187- int x = MixColMatrix [i ][k ], ret = 0 , b = state_2d [k ][j ];
188- for (l = 0 ; l < S ; l ++)
189- {
190- if (((b >>> l ) & 1 ) != 0 )
191- {
192- ret ^= x ;
193- }
194- if (((x >>> S_1 ) & 1 ) != 0 )
195- {
196- x <<= 1 ;
197- x ^= 0x3 ;
198- }
199- else
200- {
201- x <<= 1 ;
202- }
203- }
204- sum ^= ret & 15 ;
188+ int x = MixColMatrix [i ][k ], b = state_2d [k ][j ];
189+
190+ sum ^= x * (b & 1 );
191+ sum ^= x * (b & 2 );
192+ sum ^= x * (b & 4 );
193+ sum ^= x * (b & 8 );
205194 }
206- state [i ] = sum ;
195+
196+ int t0 = sum >>> 4 ;
197+ sum = (sum & 15 ) ^ t0 ^ (t0 << 1 );
198+
199+ int t1 = sum >>> 4 ;
200+ sum = (sum & 15 ) ^ t1 ^ (t1 << 1 );
201+
202+ state [i ] = (byte )sum ;
207203 }
208204 for (i = 0 ; i < D ; i ++)
209205 {
Original file line number Diff line number Diff line change @@ -306,7 +306,7 @@ private void reset(boolean clearMac)
306306
307307 private void PHOTON_Permutation ()
308308 {
309- int i , j , k , l ;
309+ int i , j , k ;
310310 for (i = 0 ; i < DSquare ; i ++)
311311 {
312312 state_2d [i >>> Dq ][i & Dr ] = (byte )(((state [i >> 1 ] & 0xFF ) >>> (4 * (i & 1 ))) & 0xf );
@@ -338,29 +338,25 @@ private void PHOTON_Permutation()
338338 {
339339 for (i = 0 ; i < D ; i ++)
340340 {
341- byte sum = 0 ;
341+ int sum = 0 ;
342+
342343 for (k = 0 ; k < D ; k ++)
343344 {
344- int x = MixColMatrix [i ][k ], ret = 0 , b = state_2d [k ][j ];
345- for (l = 0 ; l < S ; l ++)
346- {
347- if (((b >>> l ) & 1 ) != 0 )
348- {
349- ret ^= x ;
350- }
351- if (((x >>> S_1 ) & 1 ) != 0 )
352- {
353- x <<= 1 ;
354- x ^= 0x3 ;
355- }
356- else
357- {
358- x <<= 1 ;
359- }
360- }
361- sum ^= ret & 15 ;
345+ int x = MixColMatrix [i ][k ], b = state_2d [k ][j ];
346+
347+ sum ^= x * (b & 1 );
348+ sum ^= x * (b & 2 );
349+ sum ^= x * (b & 4 );
350+ sum ^= x * (b & 8 );
362351 }
363- state [i ] = sum ;
352+
353+ int t0 = sum >>> 4 ;
354+ sum = (sum & 15 ) ^ t0 ^ (t0 << 1 );
355+
356+ int t1 = sum >>> 4 ;
357+ sum = (sum & 15 ) ^ t1 ^ (t1 << 1 );
358+
359+ state [i ] = (byte )sum ;
364360 }
365361 for (i = 0 ; i < D ; i ++)
366362 {
You can’t perform that action at this time.
0 commit comments