authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-06-05 20:59:42+03:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-06-06 13:11:50-07:00
logbb84c87a4788ffed5478397549b363fe514658f3
tree3936ff56bd588cdac1623ea9598fe114fad3e7cd
parent15ec55406d4e29cb0b3a753ea76b912d789746d9

std: add necessary `@alignCast`s


1 files changed, 10 insertions(+), 10 deletions(-)

lib/std/crypto/scrypt.zig+10-10
...@@ -73,11 +73,11 @@ fn salsaXor(tmp: *align(16) [16]u32, in: []align(16) const u32, out: []align(16)...@@ -73,11 +73,11 @@ fn salsaXor(tmp: *align(16) [16]u32, in: []align(16) const u32, out: []align(16)
73}73}
7474
75fn blockMix(tmp: *align(16) [16]u32, in: []align(16) const u32, out: []align(16) u32, r: u30) void {75fn blockMix(tmp: *align(16) [16]u32, in: []align(16) const u32, out: []align(16) u32, r: u30) void {
76 blockCopy(tmp, in[(2 * r - 1) * 16 ..], 1);76 blockCopy(tmp, @alignCast(16, in[(2 * r - 1) * 16 ..]), 1);
77 var i: usize = 0;77 var i: usize = 0;
78 while (i < 2 * r) : (i += 2) {78 while (i < 2 * r) : (i += 2) {
79 salsaXor(tmp, in[i * 16 ..], out[i * 8 ..]);79 salsaXor(tmp, @alignCast(16, in[i * 16 ..]), @alignCast(16, out[i * 8 ..]));
80 salsaXor(tmp, in[i * 16 + 16 ..], out[i * 8 + r * 16 ..]);80 salsaXor(tmp, @alignCast(16, in[i * 16 + 16 ..]), @alignCast(16, out[i * 8 + r * 16 ..]));
81 }81 }
82}82}
8383
...@@ -87,8 +87,8 @@ fn integerify(b: []align(16) const u32, r: u30) u64 {...@@ -87,8 +87,8 @@ fn integerify(b: []align(16) const u32, r: u30) u64 {
87}87}
8888
89fn smix(b: []align(16) u8, r: u30, n: usize, v: []align(16) u32, xy: []align(16) u32) void {89fn smix(b: []align(16) u8, r: u30, n: usize, v: []align(16) u32, xy: []align(16) u32) void {
90 var x = xy[0 .. 32 * r];90 var x = @alignCast(16, xy[0 .. 32 * r]);
91 var y = xy[32 * r ..];91 var y = @alignCast(16, xy[32 * r ..]);
9292
93 for (x) |*v1, j| {93 for (x) |*v1, j| {
94 v1.* = mem.readIntSliceLittle(u32, b[4 * j ..]);94 v1.* = mem.readIntSliceLittle(u32, b[4 * j ..]);
...@@ -97,21 +97,21 @@ fn smix(b: []align(16) u8, r: u30, n: usize, v: []align(16) u32, xy: []align(16)...@@ -97,21 +97,21 @@ fn smix(b: []align(16) u8, r: u30, n: usize, v: []align(16) u32, xy: []align(16)
97 var tmp: [16]u32 align(16) = undefined;97 var tmp: [16]u32 align(16) = undefined;
98 var i: usize = 0;98 var i: usize = 0;
99 while (i < n) : (i += 2) {99 while (i < n) : (i += 2) {
100 blockCopy(v[i * (32 * r) ..], x, 2 * r);100 blockCopy(@alignCast(16, v[i * (32 * r) ..]), x, 2 * r);
101 blockMix(&tmp, x, y, r);101 blockMix(&tmp, x, y, r);
102102
103 blockCopy(v[(i + 1) * (32 * r) ..], y, 2 * r);103 blockCopy(@alignCast(16, v[(i + 1) * (32 * r) ..]), y, 2 * r);
104 blockMix(&tmp, y, x, r);104 blockMix(&tmp, y, x, r);
105 }105 }
106106
107 i = 0;107 i = 0;
108 while (i < n) : (i += 2) {108 while (i < n) : (i += 2) {
109 var j = @intCast(usize, integerify(x, r) & (n - 1));109 var j = @intCast(usize, integerify(x, r) & (n - 1));
110 blockXor(x, v[j * (32 * r) ..], 2 * r);110 blockXor(x, @alignCast(16, v[j * (32 * r) ..]), 2 * r);
111 blockMix(&tmp, x, y, r);111 blockMix(&tmp, x, y, r);
112112
113 j = @intCast(usize, integerify(y, r) & (n - 1));113 j = @intCast(usize, integerify(y, r) & (n - 1));
114 blockXor(y, v[j * (32 * r) ..], 2 * r);114 blockXor(y, @alignCast(16, v[j * (32 * r) ..]), 2 * r);
115 blockMix(&tmp, y, x, r);115 blockMix(&tmp, y, x, r);
116 }116 }
117117
...@@ -201,7 +201,7 @@ pub fn kdf(...@@ -201,7 +201,7 @@ pub fn kdf(
201 try pwhash.pbkdf2(dk, password, salt, 1, HmacSha256);201 try pwhash.pbkdf2(dk, password, salt, 1, HmacSha256);
202 var i: u32 = 0;202 var i: u32 = 0;
203 while (i < params.p) : (i += 1) {203 while (i < params.p) : (i += 1) {
204 smix(dk[i * 128 * params.r ..], params.r, n, v, xy);204 smix(@alignCast(16, dk[i * 128 * params.r ..]), params.r, n, v, xy);
205 }205 }
206 try pwhash.pbkdf2(derived_key, password, dk, 1, HmacSha256);206 try pwhash.pbkdf2(derived_key, password, dk, 1, HmacSha256);
207}207}