crypto/sha512 — validation proof
Go’s own crypto/sha512 test suite, converted to C# by go2cs, built against the converted standard
library, run under the Go-semantics test host, and compared verdict for verdict against a clean
go test -json baseline of the same sources. This page is generated by the converter from that
comparison — it is the evidence behind the crypto/sha512 row in
Validated Test Packages.
Validated 2026-08-04 · converter f6e9c0cf0
36 matched · 1 disclosed — Go 1.23.1, windows/amd64, converted package
src/core/crypto/sha512.
Verdicts
| Test | go test |
go2cs |
|---|---|---|
TestAllocations |
pass | fail (disclosed) |
TestBlockGeneric |
pass | pass |
TestBlockSize |
pass | pass |
TestGolden |
pass | pass |
TestGoldenMarshal |
pass | pass |
TestGoldenMarshal/384 |
pass | pass |
TestGoldenMarshal/512 |
pass | pass |
TestGoldenMarshal/512/224 |
pass | pass |
TestGoldenMarshal/512/256 |
pass | pass |
TestLargeHashes |
pass | pass |
TestMarshalMismatch |
pass | pass |
TestSHA512Hash |
pass | pass |
TestSHA512Hash/SHA-384 |
pass | pass |
TestSHA512Hash/SHA-384/OutOfBoundsRead |
pass | pass |
TestSHA512Hash/SHA-384/ResetState |
pass | pass |
TestSHA512Hash/SHA-384/StatefulWrite |
pass | pass |
TestSHA512Hash/SHA-384/SumAppend |
pass | pass |
TestSHA512Hash/SHA-384/WriteWithoutError |
pass | pass |
TestSHA512Hash/SHA-512 |
pass | pass |
TestSHA512Hash/SHA-512/224 |
pass | pass |
TestSHA512Hash/SHA-512/224/OutOfBoundsRead |
pass | pass |
TestSHA512Hash/SHA-512/224/ResetState |
pass | pass |
TestSHA512Hash/SHA-512/224/StatefulWrite |
pass | pass |
TestSHA512Hash/SHA-512/224/SumAppend |
pass | pass |
TestSHA512Hash/SHA-512/224/WriteWithoutError |
pass | pass |
TestSHA512Hash/SHA-512/256 |
pass | pass |
TestSHA512Hash/SHA-512/256/OutOfBoundsRead |
pass | pass |
TestSHA512Hash/SHA-512/256/ResetState |
pass | pass |
TestSHA512Hash/SHA-512/256/StatefulWrite |
pass | pass |
TestSHA512Hash/SHA-512/256/SumAppend |
pass | pass |
TestSHA512Hash/SHA-512/256/WriteWithoutError |
pass | pass |
TestSHA512Hash/SHA-512/OutOfBoundsRead |
pass | pass |
TestSHA512Hash/SHA-512/ResetState |
pass | pass |
TestSHA512Hash/SHA-512/StatefulWrite |
pass | pass |
TestSHA512Hash/SHA-512/SumAppend |
pass | pass |
TestSHA512Hash/SHA-512/WriteWithoutError |
pass | pass |
TestSize |
pass | pass |
Disclosed divergences
A disclosed divergence is a specific Go assertion the managed CLR provably cannot satisfy — not
a skipped test and not a tolerance. Each one is pinned by exact failure signature in the package’s
hand-owned go2cs_test_disclosures.json;
a disclosed test that fails any other way is still a hard mismatch.
| Test | Class | Pinned reason |
|---|---|---|
TestAllocations |
alloc-profile |
want-zero AllocsPerRun assert: Sum copies the digest (d0 := *d) so the caller can keep writing, and that copy must deep-copy the digest’s [8]uint64 state and [128]byte block — golib’s array |
Excluded declarations
Declarations filtered from both sides of the comparison, and therefore not claimed above:
Benchmark, Fuzz and Example declarations the converted host does not execute, plus any
test requiring a capability the managed runtime does not provide — a testing member the host
has not implemented, or a platform behavior it provably cannot reproduce. Each is named with
the capability it needs.
- BenchmarkHash1K (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkHash8Bytes (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkHash8K (benchmark): benchmark execution is deferred to Phase 4D