mirror of
https://github.com/icsharpcode/ILSpy.git
synced 2026-10-12 02:15:58 +00:00
On FIPS-mode systems the platform crypto provider refuses to create SHA-1 instances (OpenSSL: error:03000098 invalid digest), so merely displaying a strong-named assembly's identity failed. The public-key token is a non-secret identity hash whose algorithm is fixed by ECMA-335, so the two token sites now use dotnet/runtime's managed Sha1ForNonSecretPurposes, vendored with its license header intact and shielded from the repo formatter via generated_code in .editorconfig so future upstream syncs diff cleanly. IncrementalHash was considered and rejected: like SHA1.Create(), it resolves the digest through the host crypto policy, and Roslyn's equivalent token code also relies on the platform SHA-1, so it offers no precedent for FIPS safety. Assisted-by: Claude:claude-fable-5:Claude Code