FIPS is not a standard, but a wide range of standards.
"FIPS-compliant" is a redundant term - any implementation of an algorithm defined by FIPS is compatible, otherwise it will not interact with other implementations.
Now there is FIPS 140-2 - a set of rules (mostly administrative and IT-related, not just programming-related) that define what can be considered a โsecureโ environment.
Now we come closer ... The algorithm can be "FIPS certified", which is approved by a certified body that meets the requirements of various standards, including FIPS 140-2.
When you turn on FIPS mode, you actually only need to use Windows certified FIPS modules. And Windows does not have all certified cryptographic modules - certification is both expensive and time-consuming, therefore only a certain set of its own (unmanaged) modules is certified, and only certain versions of these modules are certified.
So, it's simple: the SHA512Managed class has not been certified, so it does not meet the requirements of the policy.
source share