I've enabled FIPS compliance mode in Windows 7, but now my code fails to compile with the following error:
Source file 'whatever.cs' could not be opened ('This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.')
I'm using SHA1 (hashing) and TripleDes (encryption) encryption. I also tried SHA512 and AES (256 bit key).
I can't get the project to build any more, but I need to compile it to use FIPS Compliant algorithms.
Try making a blank C# app and compiling it, it should fail for the same reason. Ultimately the problem is Visual Studio, not your code. Follow the instructions here and add this to your IDE's config file (Devenv.exe.config
/VCSExpress.exe.config
/vbexpress.exe.config
):
<enforceFIPSPolicy enabled="false"/>
This doesn't mean that your app isn't running in FIPS compliant mode, it means that Visual Studio isn't now. Non-compliant code will still compile but if it tries to execute you'll receive an System.InvalidOperationException
exception.
I think, but don't know for sure, that the algorithms that VS uses to generate certain hashes in libraries isn't actually FIPS compliant.