From f1fac3c25e6227ad81a0075a08f708b8c81a68b3 Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Thu, 8 Oct 2026 15:43:09 +0200 Subject: [PATCH] Revert "std.crypto: disable ML-KEM tests affected by llvm riscv64 miscompilations" This reverts commit 8eae4840be4972e92d94111b0ed4b908bd876504. --- lib/std/crypto/hybrid_kem.zig | 61 ----------------------------------- lib/std/crypto/ml_kem.zig | 8 ----- 2 files changed, 69 deletions(-) diff --git a/lib/std/crypto/hybrid_kem.zig b/lib/std/crypto/hybrid_kem.zig index 860bb8c44c0f56469d678e9bde0d5cbaff727f16..a811523f072266d69a789dbdb232f066929611b6 100644 --- a/lib/std/crypto/hybrid_kem.zig +++ b/lib/std/crypto/hybrid_kem.zig @@ -13,7 +13,6 @@ //! The combiner uses the C2PRI construction to derive the final shared secret //! from the component shared secrets, ciphertext, and public key. -const builtin = @import("builtin"); const std = @import("std"); const crypto = std.crypto; const fmt = std.fmt; @@ -371,8 +370,6 @@ test "MLKEM768-X25519 basic round trip" { } test "MLKEM768-X25519 test vector 0" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1216]u8 = undefined; var randomness: [64]u8 = undefined; @@ -397,8 +394,6 @@ test "MLKEM768-X25519 test vector 0" { } test "MLKEM768-X25519 test vector 1" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1216]u8 = undefined; var randomness: [64]u8 = undefined; @@ -423,8 +418,6 @@ test "MLKEM768-X25519 test vector 1" { } test "MLKEM768-X25519 test vector 2" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1216]u8 = undefined; var randomness: [64]u8 = undefined; @@ -449,8 +442,6 @@ test "MLKEM768-X25519 test vector 2" { } test "MLKEM768-X25519 test vector 3" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1216]u8 = undefined; var randomness: [64]u8 = undefined; @@ -475,8 +466,6 @@ test "MLKEM768-X25519 test vector 3" { } test "MLKEM768-X25519 test vector 4" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1216]u8 = undefined; var randomness: [64]u8 = undefined; @@ -501,8 +490,6 @@ test "MLKEM768-X25519 test vector 4" { } test "MLKEM768-X25519 test vector 5" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1216]u8 = undefined; var randomness: [64]u8 = undefined; @@ -527,8 +514,6 @@ test "MLKEM768-X25519 test vector 5" { } test "MLKEM768-X25519 test vector 6" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1216]u8 = undefined; var randomness: [64]u8 = undefined; @@ -553,8 +538,6 @@ test "MLKEM768-X25519 test vector 6" { } test "MLKEM768-X25519 test vector 7" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1216]u8 = undefined; var randomness: [64]u8 = undefined; @@ -579,8 +562,6 @@ test "MLKEM768-X25519 test vector 7" { } test "MLKEM768-X25519 test vector 8" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1216]u8 = undefined; var randomness: [64]u8 = undefined; @@ -605,8 +586,6 @@ test "MLKEM768-X25519 test vector 8" { } test "MLKEM768-X25519 test vector 9" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1216]u8 = undefined; var randomness: [64]u8 = undefined; @@ -631,8 +610,6 @@ test "MLKEM768-X25519 test vector 9" { } test "MLKEM768-P256 test vector 0" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1249]u8 = undefined; var randomness: [160]u8 = undefined; @@ -657,8 +634,6 @@ test "MLKEM768-P256 test vector 0" { } test "MLKEM768-P256 test vector 1" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1249]u8 = undefined; var randomness: [160]u8 = undefined; @@ -683,8 +658,6 @@ test "MLKEM768-P256 test vector 1" { } test "MLKEM768-P256 test vector 2" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1249]u8 = undefined; var randomness: [160]u8 = undefined; @@ -709,8 +682,6 @@ test "MLKEM768-P256 test vector 2" { } test "MLKEM768-P256 test vector 3" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1249]u8 = undefined; var randomness: [160]u8 = undefined; @@ -735,8 +706,6 @@ test "MLKEM768-P256 test vector 3" { } test "MLKEM768-P256 test vector 4" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1249]u8 = undefined; var randomness: [160]u8 = undefined; @@ -761,8 +730,6 @@ test "MLKEM768-P256 test vector 4" { } test "MLKEM768-P256 test vector 5" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1249]u8 = undefined; var randomness: [160]u8 = undefined; @@ -787,8 +754,6 @@ test "MLKEM768-P256 test vector 5" { } test "MLKEM768-P256 test vector 6" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1249]u8 = undefined; var randomness: [160]u8 = undefined; @@ -813,8 +778,6 @@ test "MLKEM768-P256 test vector 6" { } test "MLKEM768-P256 test vector 7" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1249]u8 = undefined; var randomness: [160]u8 = undefined; @@ -839,8 +802,6 @@ test "MLKEM768-P256 test vector 7" { } test "MLKEM768-P256 test vector 8" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1249]u8 = undefined; var randomness: [160]u8 = undefined; @@ -865,8 +826,6 @@ test "MLKEM768-P256 test vector 8" { } test "MLKEM768-P256 test vector 9" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1249]u8 = undefined; var randomness: [160]u8 = undefined; @@ -891,8 +850,6 @@ test "MLKEM768-P256 test vector 9" { } test "MLKEM1024-P384 test vector 0" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1665]u8 = undefined; var randomness: [80]u8 = undefined; @@ -917,8 +874,6 @@ test "MLKEM1024-P384 test vector 0" { } test "MLKEM1024-P384 test vector 1" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1665]u8 = undefined; var randomness: [80]u8 = undefined; @@ -943,8 +898,6 @@ test "MLKEM1024-P384 test vector 1" { } test "MLKEM1024-P384 test vector 2" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1665]u8 = undefined; var randomness: [80]u8 = undefined; @@ -969,8 +922,6 @@ test "MLKEM1024-P384 test vector 2" { } test "MLKEM1024-P384 test vector 3" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1665]u8 = undefined; var randomness: [80]u8 = undefined; @@ -995,8 +946,6 @@ test "MLKEM1024-P384 test vector 3" { } test "MLKEM1024-P384 test vector 4" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1665]u8 = undefined; var randomness: [80]u8 = undefined; @@ -1021,8 +970,6 @@ test "MLKEM1024-P384 test vector 4" { } test "MLKEM1024-P384 test vector 5" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1665]u8 = undefined; var randomness: [80]u8 = undefined; @@ -1047,8 +994,6 @@ test "MLKEM1024-P384 test vector 5" { } test "MLKEM1024-P384 test vector 6" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1665]u8 = undefined; var randomness: [80]u8 = undefined; @@ -1073,8 +1018,6 @@ test "MLKEM1024-P384 test vector 6" { } test "MLKEM1024-P384 test vector 7" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1665]u8 = undefined; var randomness: [80]u8 = undefined; @@ -1099,8 +1042,6 @@ test "MLKEM1024-P384 test vector 7" { } test "MLKEM1024-P384 test vector 8" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1665]u8 = undefined; var randomness: [80]u8 = undefined; @@ -1125,8 +1066,6 @@ test "MLKEM1024-P384 test vector 8" { } test "MLKEM1024-P384 test vector 9" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; var expected_ek: [1665]u8 = undefined; var randomness: [80]u8 = undefined; diff --git a/lib/std/crypto/ml_kem.zig b/lib/std/crypto/ml_kem.zig index 4385da81b475860687358b01539fdf1302cae92a..261b8f037f9b87131097e82e25db4ce31cc6af4d 100644 --- a/lib/std/crypto/ml_kem.zig +++ b/lib/std/crypto/ml_kem.zig @@ -1523,8 +1523,6 @@ test "Compression" { } test "noise" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - var seed: [32]u8 = undefined; for (&seed, 0..) |*s, i| { s.* = @as(u8, @intCast(i)); @@ -1658,20 +1656,14 @@ test "Test happy flow" { // Code to test NIST Known Answer Tests (KAT), see PQCgenKAT.c. test "NIST KAT test d00.Kyber512" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - try testNistKat(d00.Kyber512, "e9c2bd37133fcb40772f81559f14b1f58dccd1c816701be9ba6214d43baf4547"); } test "NIST KAT test d00.Kyber1024" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - try testNistKat(d00.Kyber1024, "89248f2f33f7f4f7051729111f3049c409a933ec904aedadf035f30fa5646cd5"); } test "NIST KAT test d00.Kyber768" { - if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128 - try testNistKat(d00.Kyber768, "a1e122cad3c24bc51622e4c242d8b8acbcd3f618fee4220400605ca8f9ea02c2"); } -- 2.54.0