@@ -14,19 +14,21 @@ struct State {
1414}
1515
1616impl State {
17+ #[ inline( always) ]
1718 fn update ( & mut self , d1 : AesBlock , d2 : AesBlock ) {
1819 let blocks = & mut self . blocks ;
1920 let tmp = blocks[ 7 ] ;
20- let mut i = 7 ;
21- while i > 0 {
22- blocks[ i ] = blocks[ i - 1 ] . round ( blocks[ i ] ) ;
23- i -= 1 ;
24- }
25- blocks[ 0 ] = tmp . round ( blocks[ 0 ] ) ;
26- blocks[ 0 ] = blocks[ 0 ] . xor ( d1 ) ;
27- blocks[ 4 ] = blocks[ 4 ] . xor ( d2 ) ;
21+ blocks [ 7 ] = blocks [ 6 ] . round ( blocks [ 7 ] ) ;
22+ blocks [ 6 ] = blocks [ 5 ] . round ( blocks [ 6 ] ) ;
23+ blocks[ 5 ] = blocks[ 4 ] . round ( blocks[ 5 ] ) ;
24+ blocks [ 4 ] = blocks [ 3 ] . round ( blocks [ 4 ] ) . xor ( d2 ) ;
25+ blocks [ 3 ] = blocks [ 2 ] . round ( blocks [ 3 ] ) ;
26+ blocks[ 2 ] = blocks [ 1 ] . round ( blocks[ 2 ] ) ;
27+ blocks[ 1 ] = blocks[ 0 ] . round ( blocks [ 1 ] ) ;
28+ blocks[ 0 ] = tmp . round ( blocks[ 0 ] ) . xor ( d1 ) ;
2829 }
2930
31+ #[ inline( always) ]
3032 pub fn new ( key : & Key , nonce : & Nonce ) -> Self {
3133 let c0 = AesBlock :: from_bytes ( & [
3234 0x00 , 0x01 , 0x01 , 0x02 , 0x03 , 0x05 , 0x08 , 0x0d , 0x15 , 0x22 , 0x37 , 0x59 , 0x90 , 0xe9 ,
@@ -62,6 +64,7 @@ impl State {
6264 self . update ( msg0, msg1) ;
6365 }
6466
67+ #[ inline( always) ]
6568 fn enc ( & mut self , dst : & mut [ u8 ; 32 ] , src : & [ u8 ; 32 ] ) {
6669 let blocks = & self . blocks ;
6770 let z0 = blocks[ 6 ] . xor ( blocks[ 1 ] ) . xor ( blocks[ 2 ] . and ( blocks[ 3 ] ) ) ;
@@ -75,6 +78,7 @@ impl State {
7578 self . update ( msg0, msg1) ;
7679 }
7780
81+ #[ inline( always) ]
7882 fn dec ( & mut self , dst : & mut [ u8 ; 32 ] , src : & [ u8 ; 32 ] ) {
7983 let blocks = & self . blocks ;
8084 let z0 = blocks[ 6 ] . xor ( blocks[ 1 ] ) . xor ( blocks[ 2 ] . and ( blocks[ 3 ] ) ) ;
@@ -86,6 +90,7 @@ impl State {
8690 self . update ( msg0, msg1) ;
8791 }
8892
93+ #[ inline( always) ]
8994 fn dec_partial ( & mut self , dst : & mut [ u8 ; 32 ] , src : & [ u8 ] ) {
9095 let len = src. len ( ) ;
9196 let mut src_padded = [ 0u8 ; 32 ] ;
@@ -106,6 +111,7 @@ impl State {
106111 self . update ( msg0, msg1) ;
107112 }
108113
114+ #[ inline( always) ]
109115 fn mac < const TAG_BYTES : usize > ( & mut self , adlen : usize , mlen : usize ) -> Tag < TAG_BYTES > {
110116 let tmp = {
111117 let blocks = & self . blocks ;
0 commit comments