diff --git a/lib/std/crypto/hybrid_kem.zig b/lib/std/crypto/hybrid_kem.zig index a811523f072266d69a789dbdb232f066929611b6..860bb8c44c0f56469d678e9bde0d5cbaff727f16 100644 --- a/lib/std/crypto/hybrid_kem.zig +++ b/lib/std/crypto/hybrid_kem.zig @@ -13,6 +13,7 @@ //! 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; @@ -370,6 +371,8 @@ 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; @@ -394,6 +397,8 @@ 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; @@ -418,6 +423,8 @@ 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; @@ -442,6 +449,8 @@ 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; @@ -466,6 +475,8 @@ 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; @@ -490,6 +501,8 @@ 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; @@ -514,6 +527,8 @@ 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; @@ -538,6 +553,8 @@ 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; @@ -562,6 +579,8 @@ 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; @@ -586,6 +605,8 @@ 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; @@ -610,6 +631,8 @@ 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; @@ -634,6 +657,8 @@ 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; @@ -658,6 +683,8 @@ 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; @@ -682,6 +709,8 @@ 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; @@ -706,6 +735,8 @@ 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; @@ -730,6 +761,8 @@ 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; @@ -754,6 +787,8 @@ 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; @@ -778,6 +813,8 @@ 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; @@ -802,6 +839,8 @@ 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; @@ -826,6 +865,8 @@ 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; @@ -850,6 +891,8 @@ 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; @@ -874,6 +917,8 @@ 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; @@ -898,6 +943,8 @@ 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; @@ -922,6 +969,8 @@ 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; @@ -946,6 +995,8 @@ 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; @@ -970,6 +1021,8 @@ 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; @@ -994,6 +1047,8 @@ 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; @@ -1018,6 +1073,8 @@ 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; @@ -1042,6 +1099,8 @@ 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; @@ -1066,6 +1125,8 @@ 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 f758576a2d45171018be2b2620a5292a2643be8e..65d4c81ec9744f75123b89f31e6e00ae357c6845 100644 --- a/lib/std/crypto/ml_kem.zig +++ b/lib/std/crypto/ml_kem.zig @@ -1522,6 +1522,8 @@ 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)); @@ -1655,14 +1657,20 @@ 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"); }