2019-05-27 09:55:01 +03:00
/* SPDX-License-Identifier: GPL-2.0-or-later */
2015-02-22 11:59:43 +03:00
/ *
* 4 K A E S t a b l e s f o r P P C A E S i m p l e m e n t a t i o n
*
* Copyright ( c ) 2 0 1 5 M a r k u s S t o c k h a u s e n < s t o c k h a u s e n @collogia.de>
* /
/ *
* These b i g e n d i a n A E S e n c r y p t i o n / d e c r y p t i o n t a b l e s h a v e b e e n t a k e n f r o m
* crypto/ a e s _ g e n e r i c . c a n d a r e d e s i g n e d t o b e s i m p l y a c c e s s e d b y a c o m b i n a t i o n
* of r l w i m i / l w z i n s t r u c t i o n s w i t h a m i n i m u m o f t a b l e r e g i s t e r s ( u s u a l l y o n l y
* one r e q u i r e d ) . T h u s t h e y a r e a l i g n e d t o 4 K . T h e l o c a l i t y o f r o t a t e d v a l u e s
* is d e r i v e d f r o m t h e r e d u c e d o f f s e t s t h a t a r e a v a i l a b l e i n t h e S P E l o a d
* instructions. E . g . e v l d w , e v l w w s p l a t , . . .
*
* For t h e s a f e t y - c o n s c i o u s i t h a s t o b e n o t e d t h a t t h e y m i g h t b e v u l n e r a b l e
* to c a c h e t i m i n g a t t a c k s b e c a u s e o f t h e i r s i z e . N e v e r t h e l e s s i n c o n t r a s t t o
* the g e n e r i c t a b l e s t h e y h a v e b e e n r e d u c e d f r o m 1 6 K B t o 8 K B + 2 5 6 b y t e s .
* This i s a q u i t e g o o d t r a d e o f f f o r l o w p o w e r d e v i c e s ( e . g . r o u t e r s ) w i t h o u t
* dedicated e n c r y p t i o n h a r d w a r e w h e r e w e u s u a l l y h a v e n o m u l t i u s e r
* environment.
*
* /
# define R ( a , b , c , d ) \
0 x## a # # b # # c # # d , 0 x ## d # # a # # b # # c , 0 x ## c # # d # # a # # b , 0 x ## b # # c # # d # # a
.data
.align 12
.globl PPC_AES_4K_ENCTAB
PPC_AES_4K_ENCTAB :
/* encryption table, same as crypto_ft_tab in crypto/aes-generic.c */
.long R( c6 , 6 3 , 6 3 , a5 ) , R ( f8 , 7 c , 7 c , 8 4 )
.long R( e e , 7 7 , 7 7 , 9 9 ) , R ( f6 , 7 b , 7 b , 8 d )
.long R( f f , f2 , f2 , 0 d ) , R ( d6 , 6 b , 6 b , b d )
.long R( d e , 6 f , 6 f , b1 ) , R ( 9 1 , c5 , c5 , 5 4 )
.long R( 6 0 , 3 0 , 3 0 , 5 0 ) , R ( 0 2 , 0 1 , 0 1 , 0 3 )
.long R( c e , 6 7 , 6 7 , a9 ) , R ( 5 6 , 2 b , 2 b , 7 d )
.long R( e 7 , f e , f e , 1 9 ) , R ( b5 , d7 , d7 , 6 2 )
.long R( 4 d , a b , a b , e 6 ) , R ( e c , 7 6 , 7 6 , 9 a )
.long R( 8 f , c a , c a , 4 5 ) , R ( 1 f , 8 2 , 8 2 , 9 d )
.long R( 8 9 , c9 , c9 , 4 0 ) , R ( f a , 7 d , 7 d , 8 7 )
.long R( e f , f a , f a , 1 5 ) , R ( b2 , 5 9 , 5 9 , e b )
.long R( 8 e , 4 7 , 4 7 , c9 ) , R ( f b , f0 , f0 , 0 b )
.long R( 4 1 , a d , a d , e c ) , R ( b3 , d4 , d4 , 6 7 )
.long R( 5 f , a2 , a2 , f d ) , R ( 4 5 , a f , a f , e a )
.long R( 2 3 , 9 c , 9 c , b f ) , R ( 5 3 , a4 , a4 , f7 )
.long R( e 4 , 7 2 , 7 2 , 9 6 ) , R ( 9 b , c0 , c0 , 5 b )
.long R( 7 5 , b7 , b7 , c2 ) , R ( e 1 , f d , f d , 1 c )
.long R( 3 d , 9 3 , 9 3 , a e ) , R ( 4 c , 2 6 , 2 6 , 6 a )
.long R( 6 c , 3 6 , 3 6 , 5 a ) , R ( 7 e , 3 f , 3 f , 4 1 )
.long R( f5 , f7 , f7 , 0 2 ) , R ( 8 3 , c c , c c , 4 f )
.long R( 6 8 , 3 4 , 3 4 , 5 c ) , R ( 5 1 , a5 , a5 , f4 )
.long R( d1 , e 5 , e 5 , 3 4 ) , R ( f9 , f1 , f1 , 0 8 )
.long R( e 2 , 7 1 , 7 1 , 9 3 ) , R ( a b , d8 , d8 , 7 3 )
.long R( 6 2 , 3 1 , 3 1 , 5 3 ) , R ( 2 a , 1 5 , 1 5 , 3 f )
.long R( 0 8 , 0 4 , 0 4 , 0 c ) , R ( 9 5 , c7 , c7 , 5 2 )
.long R( 4 6 , 2 3 , 2 3 , 6 5 ) , R ( 9 d , c3 , c3 , 5 e )
.long R( 3 0 , 1 8 , 1 8 , 2 8 ) , R ( 3 7 , 9 6 , 9 6 , a1 )
.long R( 0 a , 0 5 , 0 5 , 0 f ) , R ( 2 f , 9 a , 9 a , b5 )
.long R( 0 e , 0 7 , 0 7 , 0 9 ) , R ( 2 4 , 1 2 , 1 2 , 3 6 )
.long R( 1 b , 8 0 , 8 0 , 9 b ) , R ( d f , e 2 , e 2 , 3 d )
.long R( c d , e b , e b , 2 6 ) , R ( 4 e , 2 7 , 2 7 , 6 9 )
.long R( 7 f , b2 , b2 , c d ) , R ( e a , 7 5 , 7 5 , 9 f )
.long R( 1 2 , 0 9 , 0 9 , 1 b ) , R ( 1 d , 8 3 , 8 3 , 9 e )
.long R( 5 8 , 2 c , 2 c , 7 4 ) , R ( 3 4 , 1 a , 1 a , 2 e )
.long R( 3 6 , 1 b , 1 b , 2 d ) , R ( d c , 6 e , 6 e , b2 )
.long R( b4 , 5 a , 5 a , e e ) , R ( 5 b , a0 , a0 , f b )
.long R( a4 , 5 2 , 5 2 , f6 ) , R ( 7 6 , 3 b , 3 b , 4 d )
.long R( b7 , d6 , d6 , 6 1 ) , R ( 7 d , b3 , b3 , c e )
.long R( 5 2 , 2 9 , 2 9 , 7 b ) , R ( d d , e 3 , e 3 , 3 e )
.long R( 5 e , 2 f , 2 f , 7 1 ) , R ( 1 3 , 8 4 , 8 4 , 9 7 )
.long R( a6 , 5 3 , 5 3 , f5 ) , R ( b9 , d1 , d1 , 6 8 )
.long R( 0 0 , 0 0 , 0 0 , 0 0 ) , R ( c1 , e d , e d , 2 c )
.long R( 4 0 , 2 0 , 2 0 , 6 0 ) , R ( e 3 , f c , f c , 1 f )
.long R( 7 9 , b1 , b1 , c8 ) , R ( b6 , 5 b , 5 b , e d )
.long R( d4 , 6 a , 6 a , b e ) , R ( 8 d , c b , c b , 4 6 )
.long R( 6 7 , b e , b e , d9 ) , R ( 7 2 , 3 9 , 3 9 , 4 b )
.long R( 9 4 , 4 a , 4 a , d e ) , R ( 9 8 , 4 c , 4 c , d4 )
.long R( b0 , 5 8 , 5 8 , e 8 ) , R ( 8 5 , c f , c f , 4 a )
.long R( b b , d0 , d0 , 6 b ) , R ( c5 , e f , e f , 2 a )
.long R( 4 f , a a , a a , e 5 ) , R ( e d , f b , f b , 1 6 )
.long R( 8 6 , 4 3 , 4 3 , c5 ) , R ( 9 a , 4 d , 4 d , d7 )
.long R( 6 6 , 3 3 , 3 3 , 5 5 ) , R ( 1 1 , 8 5 , 8 5 , 9 4 )
.long R( 8 a , 4 5 , 4 5 , c f ) , R ( e 9 , f9 , f9 , 1 0 )
.long R( 0 4 , 0 2 , 0 2 , 0 6 ) , R ( f e , 7 f , 7 f , 8 1 )
.long R( a0 , 5 0 , 5 0 , f0 ) , R ( 7 8 , 3 c , 3 c , 4 4 )
.long R( 2 5 , 9 f , 9 f , b a ) , R ( 4 b , a8 , a8 , e 3 )
.long R( a2 , 5 1 , 5 1 , f3 ) , R ( 5 d , a3 , a3 , f e )
.long R( 8 0 , 4 0 , 4 0 , c0 ) , R ( 0 5 , 8 f , 8 f , 8 a )
.long R( 3 f , 9 2 , 9 2 , a d ) , R ( 2 1 , 9 d , 9 d , b c )
.long R( 7 0 , 3 8 , 3 8 , 4 8 ) , R ( f1 , f5 , f5 , 0 4 )
.long R( 6 3 , b c , b c , d f ) , R ( 7 7 , b6 , b6 , c1 )
.long R( a f , d a , d a , 7 5 ) , R ( 4 2 , 2 1 , 2 1 , 6 3 )
.long R( 2 0 , 1 0 , 1 0 , 3 0 ) , R ( e 5 , f f , f f , 1 a )
.long R( f d , f3 , f3 , 0 e ) , R ( b f , d2 , d2 , 6 d )
.long R( 8 1 , c d , c d , 4 c ) , R ( 1 8 , 0 c , 0 c , 1 4 )
.long R( 2 6 , 1 3 , 1 3 , 3 5 ) , R ( c3 , e c , e c , 2 f )
.long R( b e , 5 f , 5 f , e 1 ) , R ( 3 5 , 9 7 , 9 7 , a2 )
.long R( 8 8 , 4 4 , 4 4 , c c ) , R ( 2 e , 1 7 , 1 7 , 3 9 )
.long R( 9 3 , c4 , c4 , 5 7 ) , R ( 5 5 , a7 , a7 , f2 )
.long R( f c , 7 e , 7 e , 8 2 ) , R ( 7 a , 3 d , 3 d , 4 7 )
.long R( c8 , 6 4 , 6 4 , a c ) , R ( b a , 5 d , 5 d , e 7 )
.long R( 3 2 , 1 9 , 1 9 , 2 b ) , R ( e 6 , 7 3 , 7 3 , 9 5 )
.long R( c0 , 6 0 , 6 0 , a0 ) , R ( 1 9 , 8 1 , 8 1 , 9 8 )
.long R( 9 e , 4 f , 4 f , d1 ) , R ( a3 , d c , d c , 7 f )
.long R( 4 4 , 2 2 , 2 2 , 6 6 ) , R ( 5 4 , 2 a , 2 a , 7 e )
.long R( 3 b , 9 0 , 9 0 , a b ) , R ( 0 b , 8 8 , 8 8 , 8 3 )
.long R( 8 c , 4 6 , 4 6 , c a ) , R ( c7 , e e , e e , 2 9 )
.long R( 6 b , b8 , b8 , d3 ) , R ( 2 8 , 1 4 , 1 4 , 3 c )
.long R( a7 , d e , d e , 7 9 ) , R ( b c , 5 e , 5 e , e 2 )
.long R( 1 6 , 0 b , 0 b , 1 d ) , R ( a d , d b , d b , 7 6 )
.long R( d b , e 0 , e 0 , 3 b ) , R ( 6 4 , 3 2 , 3 2 , 5 6 )
.long R( 7 4 , 3 a , 3 a , 4 e ) , R ( 1 4 , 0 a , 0 a , 1 e )
.long R( 9 2 , 4 9 , 4 9 , d b ) , R ( 0 c , 0 6 , 0 6 , 0 a )
.long R( 4 8 , 2 4 , 2 4 , 6 c ) , R ( b8 , 5 c , 5 c , e 4 )
.long R( 9 f , c2 , c2 , 5 d ) , R ( b d , d3 , d3 , 6 e )
.long R( 4 3 , a c , a c , e f ) , R ( c4 , 6 2 , 6 2 , a6 )
.long R( 3 9 , 9 1 , 9 1 , a8 ) , R ( 3 1 , 9 5 , 9 5 , a4 )
.long R( d3 , e 4 , e 4 , 3 7 ) , R ( f2 , 7 9 , 7 9 , 8 b )
.long R( d5 , e 7 , e 7 , 3 2 ) , R ( 8 b , c8 , c8 , 4 3 )
.long R( 6 e , 3 7 , 3 7 , 5 9 ) , R ( d a , 6 d , 6 d , b7 )
.long R( 0 1 , 8 d , 8 d , 8 c ) , R ( b1 , d5 , d5 , 6 4 )
.long R( 9 c , 4 e , 4 e , d2 ) , R ( 4 9 , a9 , a9 , e 0 )
.long R( d8 , 6 c , 6 c , b4 ) , R ( a c , 5 6 , 5 6 , f a )
.long R( f3 , f4 , f4 , 0 7 ) , R ( c f , e a , e a , 2 5 )
.long R( c a , 6 5 , 6 5 , a f ) , R ( f4 , 7 a , 7 a , 8 e )
.long R( 4 7 , a e , a e , e 9 ) , R ( 1 0 , 0 8 , 0 8 , 1 8 )
.long R( 6 f , b a , b a , d5 ) , R ( f0 , 7 8 , 7 8 , 8 8 )
.long R( 4 a , 2 5 , 2 5 , 6 f ) , R ( 5 c , 2 e , 2 e , 7 2 )
.long R( 3 8 , 1 c , 1 c , 2 4 ) , R ( 5 7 , a6 , a6 , f1 )
.long R( 7 3 , b4 , b4 , c7 ) , R ( 9 7 , c6 , c6 , 5 1 )
.long R( c b , e 8 , e 8 , 2 3 ) , R ( a1 , d d , d d , 7 c )
.long R( e 8 , 7 4 , 7 4 , 9 c ) , R ( 3 e , 1 f , 1 f , 2 1 )
.long R( 9 6 , 4 b , 4 b , d d ) , R ( 6 1 , b d , b d , d c )
.long R( 0 d , 8 b , 8 b , 8 6 ) , R ( 0 f , 8 a , 8 a , 8 5 )
.long R( e 0 , 7 0 , 7 0 , 9 0 ) , R ( 7 c , 3 e , 3 e , 4 2 )
.long R( 7 1 , b5 , b5 , c4 ) , R ( c c , 6 6 , 6 6 , a a )
.long R( 9 0 , 4 8 , 4 8 , d8 ) , R ( 0 6 , 0 3 , 0 3 , 0 5 )
.long R( f7 , f6 , f6 , 0 1 ) , R ( 1 c , 0 e , 0 e , 1 2 )
.long R( c2 , 6 1 , 6 1 , a3 ) , R ( 6 a , 3 5 , 3 5 , 5 f )
.long R( a e , 5 7 , 5 7 , f9 ) , R ( 6 9 , b9 , b9 , d0 )
.long R( 1 7 , 8 6 , 8 6 , 9 1 ) , R ( 9 9 , c1 , c1 , 5 8 )
.long R( 3 a , 1 d , 1 d , 2 7 ) , R ( 2 7 , 9 e , 9 e , b9 )
.long R( d9 , e 1 , e 1 , 3 8 ) , R ( e b , f8 , f8 , 1 3 )
.long R( 2 b , 9 8 , 9 8 , b3 ) , R ( 2 2 , 1 1 , 1 1 , 3 3 )
.long R( d2 , 6 9 , 6 9 , b b ) , R ( a9 , d9 , d9 , 7 0 )
.long R( 0 7 , 8 e , 8 e , 8 9 ) , R ( 3 3 , 9 4 , 9 4 , a7 )
.long R( 2 d , 9 b , 9 b , b6 ) , R ( 3 c , 1 e , 1 e , 2 2 )
.long R( 1 5 , 8 7 , 8 7 , 9 2 ) , R ( c9 , e 9 , e 9 , 2 0 )
.long R( 8 7 , c e , c e , 4 9 ) , R ( a a , 5 5 , 5 5 , f f )
.long R( 5 0 , 2 8 , 2 8 , 7 8 ) , R ( a5 , d f , d f , 7 a )
.long R( 0 3 , 8 c , 8 c , 8 f ) , R ( 5 9 , a1 , a1 , f8 )
.long R( 0 9 , 8 9 , 8 9 , 8 0 ) , R ( 1 a , 0 d , 0 d , 1 7 )
.long R( 6 5 , b f , b f , d a ) , R ( d7 , e 6 , e 6 , 3 1 )
.long R( 8 4 , 4 2 , 4 2 , c6 ) , R ( d0 , 6 8 , 6 8 , b8 )
.long R( 8 2 , 4 1 , 4 1 , c3 ) , R ( 2 9 , 9 9 , 9 9 , b0 )
.long R( 5 a , 2 d , 2 d , 7 7 ) , R ( 1 e , 0 f , 0 f , 1 1 )
.long R( 7 b , b0 , b0 , c b ) , R ( a8 , 5 4 , 5 4 , f c )
.long R( 6 d , b b , b b , d6 ) , R ( 2 c , 1 6 , 1 6 , 3 a )
.globl PPC_AES_4K_DECTAB
PPC_AES_4K_DECTAB :
/* decryption table, same as crypto_it_tab in crypto/aes-generic.c */
.long R( 5 1 , f4 , a7 , 5 0 ) , R ( 7 e , 4 1 , 6 5 , 5 3 )
.long R( 1 a , 1 7 , a4 , c3 ) , R ( 3 a , 2 7 , 5 e , 9 6 )
.long R( 3 b , a b , 6 b , c b ) , R ( 1 f , 9 d , 4 5 , f1 )
.long R( a c , f a , 5 8 , a b ) , R ( 4 b , e 3 , 0 3 , 9 3 )
.long R( 2 0 , 3 0 , f a , 5 5 ) , R ( a d , 7 6 , 6 d , f6 )
.long R( 8 8 , c c , 7 6 , 9 1 ) , R ( f5 , 0 2 , 4 c , 2 5 )
.long R( 4 f , e 5 , d7 , f c ) , R ( c5 , 2 a , c b , d7 )
.long R( 2 6 , 3 5 , 4 4 , 8 0 ) , R ( b5 , 6 2 , a3 , 8 f )
.long R( d e , b1 , 5 a , 4 9 ) , R ( 2 5 , b a , 1 b , 6 7 )
.long R( 4 5 , e a , 0 e , 9 8 ) , R ( 5 d , f e , c0 , e 1 )
.long R( c3 , 2 f , 7 5 , 0 2 ) , R ( 8 1 , 4 c , f0 , 1 2 )
.long R( 8 d , 4 6 , 9 7 , a3 ) , R ( 6 b , d3 , f9 , c6 )
.long R( 0 3 , 8 f , 5 f , e 7 ) , R ( 1 5 , 9 2 , 9 c , 9 5 )
.long R( b f , 6 d , 7 a , e b ) , R ( 9 5 , 5 2 , 5 9 , d a )
.long R( d4 , b e , 8 3 , 2 d ) , R ( 5 8 , 7 4 , 2 1 , d3 )
.long R( 4 9 , e 0 , 6 9 , 2 9 ) , R ( 8 e , c9 , c8 , 4 4 )
.long R( 7 5 , c2 , 8 9 , 6 a ) , R ( f4 , 8 e , 7 9 , 7 8 )
.long R( 9 9 , 5 8 , 3 e , 6 b ) , R ( 2 7 , b9 , 7 1 , d d )
.long R( b e , e 1 , 4 f , b6 ) , R ( f0 , 8 8 , a d , 1 7 )
.long R( c9 , 2 0 , a c , 6 6 ) , R ( 7 d , c e , 3 a , b4 )
.long R( 6 3 , d f , 4 a , 1 8 ) , R ( e 5 , 1 a , 3 1 , 8 2 )
.long R( 9 7 , 5 1 , 3 3 , 6 0 ) , R ( 6 2 , 5 3 , 7 f , 4 5 )
.long R( b1 , 6 4 , 7 7 , e 0 ) , R ( b b , 6 b , a e , 8 4 )
.long R( f e , 8 1 , a0 , 1 c ) , R ( f9 , 0 8 , 2 b , 9 4 )
.long R( 7 0 , 4 8 , 6 8 , 5 8 ) , R ( 8 f , 4 5 , f d , 1 9 )
.long R( 9 4 , d e , 6 c , 8 7 ) , R ( 5 2 , 7 b , f8 , b7 )
.long R( a b , 7 3 , d3 , 2 3 ) , R ( 7 2 , 4 b , 0 2 , e 2 )
.long R( e 3 , 1 f , 8 f , 5 7 ) , R ( 6 6 , 5 5 , a b , 2 a )
.long R( b2 , e b , 2 8 , 0 7 ) , R ( 2 f , b5 , c2 , 0 3 )
.long R( 8 6 , c5 , 7 b , 9 a ) , R ( d3 , 3 7 , 0 8 , a5 )
.long R( 3 0 , 2 8 , 8 7 , f2 ) , R ( 2 3 , b f , a5 , b2 )
.long R( 0 2 , 0 3 , 6 a , b a ) , R ( e d , 1 6 , 8 2 , 5 c )
.long R( 8 a , c f , 1 c , 2 b ) , R ( a7 , 7 9 , b4 , 9 2 )
.long R( f3 , 0 7 , f2 , f0 ) , R ( 4 e , 6 9 , e 2 , a1 )
.long R( 6 5 , d a , f4 , c d ) , R ( 0 6 , 0 5 , b e , d5 )
.long R( d1 , 3 4 , 6 2 , 1 f ) , R ( c4 , a6 , f e , 8 a )
.long R( 3 4 , 2 e , 5 3 , 9 d ) , R ( a2 , f3 , 5 5 , a0 )
.long R( 0 5 , 8 a , e 1 , 3 2 ) , R ( a4 , f6 , e b , 7 5 )
.long R( 0 b , 8 3 , e c , 3 9 ) , R ( 4 0 , 6 0 , e f , a a )
.long R( 5 e , 7 1 , 9 f , 0 6 ) , R ( b d , 6 e , 1 0 , 5 1 )
.long R( 3 e , 2 1 , 8 a , f9 ) , R ( 9 6 , d d , 0 6 , 3 d )
.long R( d d , 3 e , 0 5 , a e ) , R ( 4 d , e 6 , b d , 4 6 )
.long R( 9 1 , 5 4 , 8 d , b5 ) , R ( 7 1 , c4 , 5 d , 0 5 )
.long R( 0 4 , 0 6 , d4 , 6 f ) , R ( 6 0 , 5 0 , 1 5 , f f )
.long R( 1 9 , 9 8 , f b , 2 4 ) , R ( d6 , b d , e 9 , 9 7 )
.long R( 8 9 , 4 0 , 4 3 , c c ) , R ( 6 7 , d9 , 9 e , 7 7 )
.long R( b0 , e 8 , 4 2 , b d ) , R ( 0 7 , 8 9 , 8 b , 8 8 )
.long R( e 7 , 1 9 , 5 b , 3 8 ) , R ( 7 9 , c8 , e e , d b )
.long R( a1 , 7 c , 0 a , 4 7 ) , R ( 7 c , 4 2 , 0 f , e 9 )
.long R( f8 , 8 4 , 1 e , c9 ) , R ( 0 0 , 0 0 , 0 0 , 0 0 )
.long R( 0 9 , 8 0 , 8 6 , 8 3 ) , R ( 3 2 , 2 b , e d , 4 8 )
.long R( 1 e , 1 1 , 7 0 , a c ) , R ( 6 c , 5 a , 7 2 , 4 e )
.long R( f d , 0 e , f f , f b ) , R ( 0 f , 8 5 , 3 8 , 5 6 )
.long R( 3 d , a e , d5 , 1 e ) , R ( 3 6 , 2 d , 3 9 , 2 7 )
.long R( 0 a , 0 f , d9 , 6 4 ) , R ( 6 8 , 5 c , a6 , 2 1 )
.long R( 9 b , 5 b , 5 4 , d1 ) , R ( 2 4 , 3 6 , 2 e , 3 a )
.long R( 0 c , 0 a , 6 7 , b1 ) , R ( 9 3 , 5 7 , e 7 , 0 f )
.long R( b4 , e e , 9 6 , d2 ) , R ( 1 b , 9 b , 9 1 , 9 e )
.long R( 8 0 , c0 , c5 , 4 f ) , R ( 6 1 , d c , 2 0 , a2 )
.long R( 5 a , 7 7 , 4 b , 6 9 ) , R ( 1 c , 1 2 , 1 a , 1 6 )
.long R( e 2 , 9 3 , b a , 0 a ) , R ( c0 , a0 , 2 a , e 5 )
.long R( 3 c , 2 2 , e 0 , 4 3 ) , R ( 1 2 , 1 b , 1 7 , 1 d )
.long R( 0 e , 0 9 , 0 d , 0 b ) , R ( f2 , 8 b , c7 , a d )
.long R( 2 d , b6 , a8 , b9 ) , R ( 1 4 , 1 e , a9 , c8 )
.long R( 5 7 , f1 , 1 9 , 8 5 ) , R ( a f , 7 5 , 0 7 , 4 c )
.long R( e e , 9 9 , d d , b b ) , R ( a3 , 7 f , 6 0 , f d )
.long R( f7 , 0 1 , 2 6 , 9 f ) , R ( 5 c , 7 2 , f5 , b c )
.long R( 4 4 , 6 6 , 3 b , c5 ) , R ( 5 b , f b , 7 e , 3 4 )
.long R( 8 b , 4 3 , 2 9 , 7 6 ) , R ( c b , 2 3 , c6 , d c )
.long R( b6 , e d , f c , 6 8 ) , R ( b8 , e 4 , f1 , 6 3 )
.long R( d7 , 3 1 , d c , c a ) , R ( 4 2 , 6 3 , 8 5 , 1 0 )
.long R( 1 3 , 9 7 , 2 2 , 4 0 ) , R ( 8 4 , c6 , 1 1 , 2 0 )
.long R( 8 5 , 4 a , 2 4 , 7 d ) , R ( d2 , b b , 3 d , f8 )
.long R( a e , f9 , 3 2 , 1 1 ) , R ( c7 , 2 9 , a1 , 6 d )
.long R( 1 d , 9 e , 2 f , 4 b ) , R ( d c , b2 , 3 0 , f3 )
.long R( 0 d , 8 6 , 5 2 , e c ) , R ( 7 7 , c1 , e 3 , d0 )
.long R( 2 b , b3 , 1 6 , 6 c ) , R ( a9 , 7 0 , b9 , 9 9 )
.long R( 1 1 , 9 4 , 4 8 , f a ) , R ( 4 7 , e 9 , 6 4 , 2 2 )
.long R( a8 , f c , 8 c , c4 ) , R ( a0 , f0 , 3 f , 1 a )
.long R( 5 6 , 7 d , 2 c , d8 ) , R ( 2 2 , 3 3 , 9 0 , e f )
.long R( 8 7 , 4 9 , 4 e , c7 ) , R ( d9 , 3 8 , d1 , c1 )
.long R( 8 c , c a , a2 , f e ) , R ( 9 8 , d4 , 0 b , 3 6 )
.long R( a6 , f5 , 8 1 , c f ) , R ( a5 , 7 a , d e , 2 8 )
.long R( d a , b7 , 8 e , 2 6 ) , R ( 3 f , a d , b f , a4 )
.long R( 2 c , 3 a , 9 d , e 4 ) , R ( 5 0 , 7 8 , 9 2 , 0 d )
.long R( 6 a , 5 f , c c , 9 b ) , R ( 5 4 , 7 e , 4 6 , 6 2 )
.long R( f6 , 8 d , 1 3 , c2 ) , R ( 9 0 , d8 , b8 , e 8 )
.long R( 2 e , 3 9 , f7 , 5 e ) , R ( 8 2 , c3 , a f , f5 )
.long R( 9 f , 5 d , 8 0 , b e ) , R ( 6 9 , d0 , 9 3 , 7 c )
.long R( 6 f , d5 , 2 d , a9 ) , R ( c f , 2 5 , 1 2 , b3 )
.long R( c8 , a c , 9 9 , 3 b ) , R ( 1 0 , 1 8 , 7 d , a7 )
.long R( e 8 , 9 c , 6 3 , 6 e ) , R ( d b , 3 b , b b , 7 b )
.long R( c d , 2 6 , 7 8 , 0 9 ) , R ( 6 e , 5 9 , 1 8 , f4 )
.long R( e c , 9 a , b7 , 0 1 ) , R ( 8 3 , 4 f , 9 a , a8 )
.long R( e 6 , 9 5 , 6 e , 6 5 ) , R ( a a , f f , e 6 , 7 e )
.long R( 2 1 , b c , c f , 0 8 ) , R ( e f , 1 5 , e 8 , e 6 )
.long R( b a , e 7 , 9 b , d9 ) , R ( 4 a , 6 f , 3 6 , c e )
.long R( e a , 9 f , 0 9 , d4 ) , R ( 2 9 , b0 , 7 c , d6 )
.long R( 3 1 , a4 , b2 , a f ) , R ( 2 a , 3 f , 2 3 , 3 1 )
.long R( c6 , a5 , 9 4 , 3 0 ) , R ( 3 5 , a2 , 6 6 , c0 )
.long R( 7 4 , 4 e , b c , 3 7 ) , R ( f c , 8 2 , c a , a6 )
.long R( e 0 , 9 0 , d0 , b0 ) , R ( 3 3 , a7 , d8 , 1 5 )
.long R( f1 , 0 4 , 9 8 , 4 a ) , R ( 4 1 , e c , d a , f7 )
.long R( 7 f , c d , 5 0 , 0 e ) , R ( 1 7 , 9 1 , f6 , 2 f )
.long R( 7 6 , 4 d , d6 , 8 d ) , R ( 4 3 , e f , b0 , 4 d )
.long R( c c , a a , 4 d , 5 4 ) , R ( e 4 , 9 6 , 0 4 , d f )
.long R( 9 e , d1 , b5 , e 3 ) , R ( 4 c , 6 a , 8 8 , 1 b )
.long R( c1 , 2 c , 1 f , b8 ) , R ( 4 6 , 6 5 , 5 1 , 7 f )
.long R( 9 d , 5 e , e a , 0 4 ) , R ( 0 1 , 8 c , 3 5 , 5 d )
.long R( f a , 8 7 , 7 4 , 7 3 ) , R ( f b , 0 b , 4 1 , 2 e )
.long R( b3 , 6 7 , 1 d , 5 a ) , R ( 9 2 , d b , d2 , 5 2 )
.long R( e 9 , 1 0 , 5 6 , 3 3 ) , R ( 6 d , d6 , 4 7 , 1 3 )
.long R( 9 a , d7 , 6 1 , 8 c ) , R ( 3 7 , a1 , 0 c , 7 a )
.long R( 5 9 , f8 , 1 4 , 8 e ) , R ( e b , 1 3 , 3 c , 8 9 )
.long R( c e , a9 , 2 7 , e e ) , R ( b7 , 6 1 , c9 , 3 5 )
.long R( e 1 , 1 c , e 5 , e d ) , R ( 7 a , 4 7 , b1 , 3 c )
.long R( 9 c , d2 , d f , 5 9 ) , R ( 5 5 , f2 , 7 3 , 3 f )
.long R( 1 8 , 1 4 , c e , 7 9 ) , R ( 7 3 , c7 , 3 7 , b f )
.long R( 5 3 , f7 , c d , e a ) , R ( 5 f , f d , a a , 5 b )
.long R( d f , 3 d , 6 f , 1 4 ) , R ( 7 8 , 4 4 , d b , 8 6 )
.long R( c a , a f , f3 , 8 1 ) , R ( b9 , 6 8 , c4 , 3 e )
.long R( 3 8 , 2 4 , 3 4 , 2 c ) , R ( c2 , a3 , 4 0 , 5 f )
.long R( 1 6 , 1 d , c3 , 7 2 ) , R ( b c , e 2 , 2 5 , 0 c )
.long R( 2 8 , 3 c , 4 9 , 8 b ) , R ( f f , 0 d , 9 5 , 4 1 )
.long R( 3 9 , a8 , 0 1 , 7 1 ) , R ( 0 8 , 0 c , b3 , d e )
.long R( d8 , b4 , e 4 , 9 c ) , R ( 6 4 , 5 6 , c1 , 9 0 )
.long R( 7 b , c b , 8 4 , 6 1 ) , R ( d5 , 3 2 , b6 , 7 0 )
.long R( 4 8 , 6 c , 5 c , 7 4 ) , R ( d0 , b8 , 5 7 , 4 2 )
.globl PPC_AES_4K_DECTAB2
PPC_AES_4K_DECTAB2 :
/* decryption table, same as crypto_il_tab in crypto/aes-generic.c */
.byte 0 x5 2 , 0 x09 , 0 x6 a , 0 x d5 , 0 x30 , 0 x36 , 0 x a5 , 0 x38
.byte 0 xbf, 0 x40 , 0 x a3 , 0 x9 e , 0 x81 , 0 x f3 , 0 x d7 , 0 x f b
.byte 0 x7 c , 0 x e 3 , 0 x39 , 0 x82 , 0 x9 b , 0 x2 f , 0 x f f , 0 x87
.byte 0 x3 4 , 0 x8 e , 0 x43 , 0 x44 , 0 x c4 , 0 x d e , 0 x e 9 , 0 x c b
.byte 0 x5 4 , 0 x7 b , 0 x94 , 0 x32 , 0 x a6 , 0 x c2 , 0 x23 , 0 x3 d
.byte 0 xee, 0 x4 c , 0 x95 , 0 x0 b , 0 x42 , 0 x f a , 0 x c3 , 0 x4 e
.byte 0 x0 8 , 0 x2 e , 0 x a1 , 0 x66 , 0 x28 , 0 x d9 , 0 x24 , 0 x b2
.byte 0 x7 6 , 0 x5 b , 0 x a2 , 0 x49 , 0 x6 d , 0 x8 b , 0 x d1 , 0 x25
.byte 0 x7 2 , 0 x f8 , 0 x f6 , 0 x64 , 0 x86 , 0 x68 , 0 x98 , 0 x16
.byte 0 xd4 , 0 x a4 , 0 x5 c , 0 x c c , 0 x5 d , 0 x65 , 0 x b6 , 0 x92
.byte 0 x6 c , 0 x70 , 0 x48 , 0 x50 , 0 x f d , 0 x e d , 0 x b9 , 0 x d a
.byte 0 x5 e , 0 x15 , 0 x46 , 0 x57 , 0 x a7 , 0 x8 d , 0 x9 d , 0 x84
.byte 0 x9 0 , 0 x d8 , 0 x a b , 0 x00 , 0 x8 c , 0 x b c , 0 x d3 , 0 x0 a
.byte 0 xf7 , 0 x e 4 , 0 x58 , 0 x05 , 0 x b8 , 0 x b3 , 0 x45 , 0 x06
.byte 0 xd0 , 0 x2 c , 0 x1 e , 0 x8 f , 0 x c a , 0 x3 f , 0 x0 f , 0 x02
.byte 0 xc1 , 0 x a f , 0 x b d , 0 x03 , 0 x01 , 0 x13 , 0 x8 a , 0 x6 b
.byte 0 x3 a , 0 x91 , 0 x11 , 0 x41 , 0 x4 f , 0 x67 , 0 x d c , 0 x e a
.byte 0 x9 7 , 0 x f2 , 0 x c f , 0 x c e , 0 x f0 , 0 x b4 , 0 x e 6 , 0 x73
.byte 0 x9 6 , 0 x a c , 0 x74 , 0 x22 , 0 x e 7 , 0 x a d , 0 x35 , 0 x85
.byte 0 xe2 , 0 x f9 , 0 x37 , 0 x e 8 , 0 x1 c , 0 x75 , 0 x d f , 0 x6 e
.byte 0 x4 7 , 0 x f1 , 0 x1 a , 0 x71 , 0 x1 d , 0 x29 , 0 x c5 , 0 x89
.byte 0 x6 f , 0 x b7 , 0 x62 , 0 x0 e , 0 x a a , 0 x18 , 0 x b e , 0 x1 b
.byte 0 xfc, 0 x56 , 0 x3 e , 0 x4 b , 0 x c6 , 0 x d2 , 0 x79 , 0 x20
.byte 0 x9 a , 0 x d b , 0 x c0 , 0 x f e , 0 x78 , 0 x c d , 0 x5 a , 0 x f4
.byte 0 x1 f , 0 x d d , 0 x a8 , 0 x33 , 0 x88 , 0 x07 , 0 x c7 , 0 x31
.byte 0 xb1 , 0 x12 , 0 x10 , 0 x59 , 0 x27 , 0 x80 , 0 x e c , 0 x5 f
.byte 0 x6 0 , 0 x51 , 0 x7 f , 0 x a9 , 0 x19 , 0 x b5 , 0 x4 a , 0 x0 d
.byte 0 x2 d , 0 x e 5 , 0 x7 a , 0 x9 f , 0 x93 , 0 x c9 , 0 x9 c , 0 x e f
.byte 0 xa0 , 0 x e 0 , 0 x3 b , 0 x4 d , 0 x a e , 0 x2 a , 0 x f5 , 0 x b0
.byte 0 xc8 , 0 x e b , 0 x b b , 0 x3 c , 0 x83 , 0 x53 , 0 x99 , 0 x61
.byte 0 x1 7 , 0 x2 b , 0 x04 , 0 x7 e , 0 x b a , 0 x77 , 0 x d6 , 0 x26
.byte 0 xe1 , 0 x69 , 0 x14 , 0 x63 , 0 x55 , 0 x21 , 0 x0 c , 0 x7 d