@@ -47,6 +47,7 @@ impl Poly1305 {
4747 poly
4848 }
4949
50+ #[ rustfmt:: skip]
5051 fn block ( & mut self , m : & [ u8 ] ) {
5152 let hibit: u32 = if self . finalized { 0 } else { 1 << 24 } ;
5253
@@ -75,51 +76,20 @@ impl Poly1305 {
7576 h4 += ( slice_to_le32 ( & m[ 12 ..16 ] ) >> 8 ) | hibit;
7677
7778 // h *= r
78- let d0 = ( h0 as u64 * r0 as u64 )
79- + ( h1 as u64 * s4 as u64 )
80- + ( h2 as u64 * s3 as u64 )
81- + ( h3 as u64 * s2 as u64 )
82- + ( h4 as u64 * s1 as u64 ) ;
83- let mut d1 = ( h0 as u64 * r1 as u64 )
84- + ( h1 as u64 * r0 as u64 )
85- + ( h2 as u64 * s4 as u64 )
86- + ( h3 as u64 * s3 as u64 )
87- + ( h4 as u64 * s2 as u64 ) ;
88- let mut d2 = ( h0 as u64 * r2 as u64 )
89- + ( h1 as u64 * r1 as u64 )
90- + ( h2 as u64 * r0 as u64 )
91- + ( h3 as u64 * s4 as u64 )
92- + ( h4 as u64 * s3 as u64 ) ;
93- let mut d3 = ( h0 as u64 * r3 as u64 )
94- + ( h1 as u64 * r2 as u64 )
95- + ( h2 as u64 * r1 as u64 )
96- + ( h3 as u64 * r0 as u64 )
97- + ( h4 as u64 * s4 as u64 ) ;
98- let mut d4 = ( h0 as u64 * r4 as u64 )
99- + ( h1 as u64 * r3 as u64 )
100- + ( h2 as u64 * r2 as u64 )
101- + ( h3 as u64 * r1 as u64 )
102- + ( h4 as u64 * r0 as u64 ) ;
79+ let d0 = ( h0 as u64 * r0 as u64 ) + ( h1 as u64 * s4 as u64 ) + ( h2 as u64 * s3 as u64 ) + ( h3 as u64 * s2 as u64 ) + ( h4 as u64 * s1 as u64 ) ;
80+ let mut d1 = ( h0 as u64 * r1 as u64 ) + ( h1 as u64 * r0 as u64 ) + ( h2 as u64 * s4 as u64 ) + ( h3 as u64 * s3 as u64 ) + ( h4 as u64 * s2 as u64 ) ;
81+ let mut d2 = ( h0 as u64 * r2 as u64 ) + ( h1 as u64 * r1 as u64 ) + ( h2 as u64 * r0 as u64 ) + ( h3 as u64 * s4 as u64 ) + ( h4 as u64 * s3 as u64 ) ;
82+ let mut d3 = ( h0 as u64 * r3 as u64 ) + ( h1 as u64 * r2 as u64 ) + ( h2 as u64 * r1 as u64 ) + ( h3 as u64 * r0 as u64 ) + ( h4 as u64 * s4 as u64 ) ;
83+ let mut d4 = ( h0 as u64 * r4 as u64 ) + ( h1 as u64 * r3 as u64 ) + ( h2 as u64 * r2 as u64 ) + ( h3 as u64 * r1 as u64 ) + ( h4 as u64 * r0 as u64 ) ;
10384
10485 // (partial) h %= p
10586 let mut c: u32 ;
106- c = ( d0 >> 26 ) as u32 ;
107- h0 = d0 as u32 & 0x3ffffff ;
108- d1 += c as u64 ;
109- c = ( d1 >> 26 ) as u32 ;
110- h1 = d1 as u32 & 0x3ffffff ;
111- d2 += c as u64 ;
112- c = ( d2 >> 26 ) as u32 ;
113- h2 = d2 as u32 & 0x3ffffff ;
114- d3 += c as u64 ;
115- c = ( d3 >> 26 ) as u32 ;
116- h3 = d3 as u32 & 0x3ffffff ;
117- d4 += c as u64 ;
118- c = ( d4 >> 26 ) as u32 ;
119- h4 = d4 as u32 & 0x3ffffff ;
120- h0 += c * 5 ;
121- c = h0 >> 26 ;
122- h0 = h0 & 0x3ffffff ;
87+ c = ( d0 >> 26 ) as u32 ; h0 = d0 as u32 & 0x3ffffff ;
88+ d1 += c as u64 ; c = ( d1 >> 26 ) as u32 ; h1 = d1 as u32 & 0x3ffffff ;
89+ d2 += c as u64 ; c = ( d2 >> 26 ) as u32 ; h2 = d2 as u32 & 0x3ffffff ;
90+ d3 += c as u64 ; c = ( d3 >> 26 ) as u32 ; h3 = d3 as u32 & 0x3ffffff ;
91+ d4 += c as u64 ; c = ( d4 >> 26 ) as u32 ; h4 = d4 as u32 & 0x3ffffff ;
92+ h0 += c * 5 ; c = h0 >> 26 ; h0 = h0 & 0x3ffffff ;
12393 h1 += c;
12494
12595 self . h [ 0 ] = h0;
@@ -129,6 +99,7 @@ impl Poly1305 {
12999 self . h [ 4 ] = h4;
130100 }
131101
102+ #[ rustfmt:: skip]
132103 pub fn finish ( & mut self ) {
133104 if self . leftover > 0 {
134105 self . buffer [ self . leftover ] = 1 ;
@@ -148,35 +119,18 @@ impl Poly1305 {
148119 let mut h4 = self . h [ 4 ] ;
149120
150121 let mut c: u32 ;
151- c = h1 >> 26 ;
152- h1 = h1 & 0x3ffffff ;
153- h2 += c;
154- c = h2 >> 26 ;
155- h2 = h2 & 0x3ffffff ;
156- h3 += c;
157- c = h3 >> 26 ;
158- h3 = h3 & 0x3ffffff ;
159- h4 += c;
160- c = h4 >> 26 ;
161- h4 = h4 & 0x3ffffff ;
162- h0 += c * 5 ;
163- c = h0 >> 26 ;
164- h0 = h0 & 0x3ffffff ;
122+ c = h1 >> 26 ; h1 = h1 & 0x3ffffff ;
123+ h2 += c; c = h2 >> 26 ; h2 = h2 & 0x3ffffff ;
124+ h3 += c; c = h3 >> 26 ; h3 = h3 & 0x3ffffff ;
125+ h4 += c; c = h4 >> 26 ; h4 = h4 & 0x3ffffff ;
126+ h0 += c * 5 ; c = h0 >> 26 ; h0 = h0 & 0x3ffffff ;
165127 h1 += c;
166128
167129 // compute h + -p
168- let mut g0 = h0. wrapping_add ( 5 ) ;
169- c = g0 >> 26 ;
170- g0 &= 0x3ffffff ;
171- let mut g1 = h1. wrapping_add ( c) ;
172- c = g1 >> 26 ;
173- g1 &= 0x3ffffff ;
174- let mut g2 = h2. wrapping_add ( c) ;
175- c = g2 >> 26 ;
176- g2 &= 0x3ffffff ;
177- let mut g3 = h3. wrapping_add ( c) ;
178- c = g3 >> 26 ;
179- g3 &= 0x3ffffff ;
130+ let mut g0 = h0. wrapping_add ( 5 ) ; c = g0 >> 26 ; g0 &= 0x3ffffff ;
131+ let mut g1 = h1. wrapping_add ( c) ; c = g1 >> 26 ; g1 &= 0x3ffffff ;
132+ let mut g2 = h2. wrapping_add ( c) ; c = g2 >> 26 ; g2 &= 0x3ffffff ;
133+ let mut g3 = h3. wrapping_add ( c) ; c = g3 >> 26 ; g3 &= 0x3ffffff ;
180134 let mut g4 = h4. wrapping_add ( c) . wrapping_sub ( 1 << 26 ) ;
181135
182136 // select h if h < p, or h + -p if h >= p
@@ -201,14 +155,10 @@ impl Poly1305 {
201155
202156 // h = mac = (h + pad) % (2^128)
203157 let mut f: u64 ;
204- f = h0 as u64 + self . pad [ 0 ] as u64 ;
205- h0 = f as u32 ;
206- f = h1 as u64 + self . pad [ 1 ] as u64 + ( f >> 32 ) ;
207- h1 = f as u32 ;
208- f = h2 as u64 + self . pad [ 2 ] as u64 + ( f >> 32 ) ;
209- h2 = f as u32 ;
210- f = h3 as u64 + self . pad [ 3 ] as u64 + ( f >> 32 ) ;
211- h3 = f as u32 ;
158+ f = h0 as u64 + self . pad [ 0 ] as u64 ; h0 = f as u32 ;
159+ f = h1 as u64 + self . pad [ 1 ] as u64 + ( f >> 32 ) ; h1 = f as u32 ;
160+ f = h2 as u64 + self . pad [ 2 ] as u64 + ( f >> 32 ) ; h2 = f as u32 ;
161+ f = h3 as u64 + self . pad [ 3 ] as u64 + ( f >> 32 ) ; h3 = f as u32 ;
212162
213163 self . h [ 0 ] = h0;
214164 self . h [ 1 ] = h1;
0 commit comments