@@ -47,6 +47,7 @@ impl Poly1305 {
47
47
poly
48
48
}
49
49
50
+ #[ rustfmt:: skip]
50
51
fn block ( & mut self , m : & [ u8 ] ) {
51
52
let hibit: u32 = if self . finalized { 0 } else { 1 << 24 } ;
52
53
@@ -75,51 +76,20 @@ impl Poly1305 {
75
76
h4 += ( slice_to_le32 ( & m[ 12 ..16 ] ) >> 8 ) | hibit;
76
77
77
78
// 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 ) ;
103
84
104
85
// (partial) h %= p
105
86
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 ;
123
93
h1 += c;
124
94
125
95
self . h [ 0 ] = h0;
@@ -129,6 +99,7 @@ impl Poly1305 {
129
99
self . h [ 4 ] = h4;
130
100
}
131
101
102
+ #[ rustfmt:: skip]
132
103
pub fn finish ( & mut self ) {
133
104
if self . leftover > 0 {
134
105
self . buffer [ self . leftover ] = 1 ;
@@ -148,35 +119,18 @@ impl Poly1305 {
148
119
let mut h4 = self . h [ 4 ] ;
149
120
150
121
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 ;
165
127
h1 += c;
166
128
167
129
// 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 ;
180
134
let mut g4 = h4. wrapping_add ( c) . wrapping_sub ( 1 << 26 ) ;
181
135
182
136
// select h if h < p, or h + -p if h >= p
@@ -201,14 +155,10 @@ impl Poly1305 {
201
155
202
156
// h = mac = (h + pad) % (2^128)
203
157
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 ;
212
162
213
163
self . h [ 0 ] = h0;
214
164
self . h [ 1 ] = h1;
0 commit comments