We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
2 parents a2315cf + 9be9f1a commit e7e7625Copy full SHA for e7e7625
CMakeLists.txt
@@ -367,6 +367,7 @@ set(ZIG_STD_FILES
367
"crypto/index.zig"
368
"crypto/md5.zig"
369
"crypto/sha1.zig"
370
+ "crypto/sha2.zig"
371
"cstr.zig"
372
"debug/failing_allocator.zig"
373
"debug/index.zig"
std/crypto/index.zig
@@ -1,7 +1,14 @@
1
-pub const Sha1 = @import("md5.zig").Sha1;
2
pub const Md5 = @import("sha1.zig").Md5;
+pub const Sha1 = @import("md5.zig").Sha1;
3
+
4
+const sha2 = @import("sha2.zig");
5
+pub const Sha224 = sha2.Sha224;
6
+pub const Sha256 = sha2.Sha256;
7
+pub const Sha384 = sha2.Sha384;
8
+pub const Sha512 = sha2.Sha512;
9
10
test "crypto" {
11
_ = @import("md5.zig");
12
_ = @import("sha1.zig");
13
+ _ = @import("sha2.zig");
14
}
std/crypto/md5.zig
@@ -4,11 +4,11 @@ const endian = @import("../endian.zig");
const debug = @import("../debug/index.zig");
const RoundParam = struct {
- a: u32, b: u32, c: u32, d: u32,
- k: u32, s: u32, t: u32
+ a: usize, b: usize, c: usize, d: usize,
+ k: usize, s: u32, t: u32
};
-fn Rp(a: u32, b: u32, c: u32, d: u32, k: u32, s: u5, t: u32) -> RoundParam {
+fn Rp(a: usize, b: usize, c: usize, d: usize, k: usize, s: u32, t: u32) -> RoundParam {
return RoundParam { .a = a, .b = b, .c = c, .d = d, .k = k, .s = s, .t = t };
@@ -69,7 +69,8 @@ pub const Md5 = struct {
69
mem.copy(u8, d.buf[d.buf_len..], b[off..]);
70
d.buf_len += u8(b[off..].len);
71
72
- d.total_len += b.len;
+ // Md5 uses the bottom 64-bits for length padding
73
+ d.total_len +%= b.len;
74
75
76
pub fn final(d: &Self) -> u128 {
std/crypto/sha1.zig
@@ -6,10 +6,10 @@ const debug = @import("../debug/index.zig");
pub const u160 = @IntType(false, 160);
- a: u32, b: u32, c: u32, d: u32, e: u32, i: u32,
+ a: usize, b: usize, c: usize, d: usize, e: usize, i: u32,
-fn Rp(a: u32, b: u32, c: u32, d: u32, e: u32, i: u32) -> RoundParam {
+fn Rp(a: usize, b: usize, c: usize, d: usize, e: usize, i: u32) -> RoundParam {
return RoundParam { .a = a, .b = b, .c = c, .d = d, .e = e, .i = i };
15
std/crypto/sha2.zig
0 commit comments