@@ -22,10 +22,10 @@ pub(crate) unsafe fn smix(
22
22
p : u32 ,
23
23
t : u32 ,
24
24
flags : Flags ,
25
- v : * mut u32 ,
26
- xy : * mut u32 ,
25
+ v : & mut [ u32 ] ,
26
+ xy : & mut [ u32 ] ,
27
27
ctx : & mut [ PwxformCtx < ' _ > ] ,
28
- passwd : * mut u8 ,
28
+ passwd : & mut [ u8 ] ,
29
29
) {
30
30
let s = 32 * r;
31
31
@@ -86,7 +86,7 @@ pub(crate) unsafe fn smix(
86
86
} ;
87
87
88
88
let bs = & mut b[ ( i * s) ..] ;
89
- let vp = v. add ( vchunk as usize * s) ;
89
+ let vp = v. as_mut_ptr ( ) . add ( vchunk as usize * s) ;
90
90
91
91
// 17: if YESCRYPT_RW flag is set
92
92
let mut ctx_i = if flags. contains ( Flags :: RW ) {
@@ -111,9 +111,9 @@ pub(crate) unsafe fn smix(
111
111
HMAC_SHA256_Buf (
112
112
bs[ ( s - 16 ) ..] . as_ptr ( ) as * const u8 ,
113
113
64 ,
114
- passwd as * const u8 ,
114
+ passwd. as_ptr ( ) ,
115
115
32 ,
116
- passwd,
116
+ passwd. as_mut_ptr ( ) ,
117
117
) ;
118
118
}
119
119
@@ -156,7 +156,7 @@ pub(crate) unsafe fn smix(
156
156
n,
157
157
nloop_all - nloop_rw,
158
158
flags & !Flags :: RW ,
159
- v,
159
+ v. as_mut_ptr ( ) ,
160
160
xy,
161
161
& mut ctx_i,
162
162
) ;
@@ -173,41 +173,42 @@ unsafe fn smix1(
173
173
n : u64 ,
174
174
flags : Flags ,
175
175
v : * mut u32 ,
176
- xy : * mut u32 ,
176
+ xy : & mut [ u32 ] ,
177
177
ctx : & mut Option < & mut PwxformCtx < ' _ > > ,
178
178
) {
179
179
let s = 32 * r;
180
- let x = xy;
181
- let y = xy. add ( s) ;
180
+ let ( x, y) = xy. split_at_mut ( s) ;
182
181
183
182
// 1: X <-- B
184
183
for k in 0 ..( 2 * r) {
185
184
for i in 0 ..16 {
186
- * x. add ( k * 16 + i) = u32:: from_le ( * b. as_mut_ptr ( ) . add ( ( k * 16 ) + ( i * 5 % 16 ) ) ) ;
185
+ * x. as_mut_ptr ( ) . add ( k * 16 + i) =
186
+ u32:: from_le ( * b. as_mut_ptr ( ) . add ( ( k * 16 ) + ( i * 5 % 16 ) ) ) ;
187
187
}
188
188
}
189
189
190
190
// 2: for i = 0 to N - 1 do
191
191
for i in 0 ..n {
192
192
// 3: V_i <-- X
193
- blkcpy ( v. add ( usize:: try_from ( i) . unwrap ( ) * s) , x, s) ;
193
+ blkcpy ( v. add ( usize:: try_from ( i) . unwrap ( ) * s) , x. as_ptr ( ) , s) ;
194
194
if flags. contains ( Flags :: RW ) && i > 1 {
195
195
let n = prev_power_of_two ( i) ;
196
- let j = usize:: try_from ( ( integerify ( x, r) & ( n - 1 ) ) + ( i - n) ) . unwrap ( ) ;
197
- blkxor ( x, v. add ( j * s) , s) ;
196
+ let j = usize:: try_from ( ( integerify ( x. as_ptr ( ) , r) & ( n - 1 ) ) + ( i - n) ) . unwrap ( ) ;
197
+ blkxor ( x. as_mut_ptr ( ) , v. add ( j * s) , s) ;
198
198
}
199
199
200
200
// 4: X <-- H(X)
201
201
match ctx {
202
202
Some ( ctx) => ctx. blockmix_pwxform ( x, r) ,
203
- None => salsa20:: blockmix_salsa8 ( x, y, r) ,
203
+ None => salsa20:: blockmix_salsa8 ( x. as_mut_ptr ( ) , y. as_mut_ptr ( ) , r) ,
204
204
}
205
205
}
206
206
207
207
/* B' <-- X */
208
208
for k in 0 ..( 2 * r) {
209
209
for i in 0 ..16 {
210
- * b. as_mut_ptr ( ) . add ( ( k * 16 ) + ( ( i * 5 ) % 16 ) ) = ( * x. add ( k * 16 + i) ) . to_le ( ) ;
210
+ * b. as_mut_ptr ( ) . add ( ( k * 16 ) + ( ( i * 5 ) % 16 ) ) =
211
+ ( * x. as_mut_ptr ( ) . add ( k * 16 + i) ) . to_le ( ) ;
211
212
}
212
213
}
213
214
}
@@ -224,44 +225,44 @@ unsafe fn smix2(
224
225
nloop : u64 ,
225
226
flags : Flags ,
226
227
v : * mut u32 ,
227
- xy : * mut u32 ,
228
+ xy : & mut [ u32 ] ,
228
229
ctx : & mut Option < & mut PwxformCtx < ' _ > > ,
229
230
) {
230
231
let s = 32 * r;
231
- let x = xy;
232
- let y = xy. add ( s) ;
232
+ let ( x, y) = xy. split_at_mut ( s) ;
233
233
234
234
/* X <-- B */
235
235
for k in 0 ..( 2 * r) {
236
236
for i in 0 ..16usize {
237
- * x. add ( k * 16 + i) = u32:: from_le ( * b. as_mut_ptr ( ) . add ( ( k * 16 ) + ( i * 5 % 16 ) ) ) ;
237
+ * x. as_mut_ptr ( ) . add ( k * 16 + i) =
238
+ u32:: from_le ( * b. as_mut_ptr ( ) . add ( ( k * 16 ) + ( i * 5 % 16 ) ) ) ;
238
239
}
239
240
}
240
241
241
242
// 6: for i = 0 to N - 1 do
242
243
for _ in 0 ..nloop {
243
244
// 7: j <-- Integerify(X) mod N
244
- let j = usize:: try_from ( integerify ( x, r) & ( n - 1 ) ) . unwrap ( ) ;
245
+ let j = usize:: try_from ( integerify ( x. as_ptr ( ) , r) & ( n - 1 ) ) . unwrap ( ) ;
245
246
246
247
// 8.1: X <-- X xor V_j
247
- blkxor ( x, v. add ( j * s) , s) ;
248
+ blkxor ( x. as_mut_ptr ( ) , v. add ( j * s) , s) ;
248
249
249
250
// V_j <-- X
250
251
if flags. contains ( Flags :: RW ) {
251
- blkcpy ( v. add ( j * s) , x, s) ;
252
+ blkcpy ( v. add ( j * s) , x. as_mut_ptr ( ) , s) ;
252
253
}
253
254
254
255
// 8.2: X <-- H(X)
255
256
match ctx {
256
257
Some ( ctx) => ctx. blockmix_pwxform ( x, r) ,
257
- None => salsa20:: blockmix_salsa8 ( x, y, r) ,
258
+ None => salsa20:: blockmix_salsa8 ( x. as_mut_ptr ( ) , y. as_mut_ptr ( ) , r) ,
258
259
}
259
260
}
260
261
261
262
// 10: B' <-- X
262
263
for k in 0 ..( 2 * r) {
263
264
for i in 0 ..16 {
264
- * b. as_mut_ptr ( ) . add ( ( k * 16 ) + ( ( i * 5 ) % 16 ) ) = ( * x. add ( k * 16 + i) ) . to_le ( ) ;
265
+ * b. as_mut_ptr ( ) . add ( ( k * 16 ) + ( ( i * 5 ) % 16 ) ) = ( * x. as_ptr ( ) . add ( k * 16 + i) ) . to_le ( ) ;
265
266
}
266
267
}
267
268
}
0 commit comments