FIPS 140-2 compliant algorithms in Enhanced RSA and AES Cryptographic Provider (Windows XP) We have a native C++ application that supports Windows XP SP3.

Recently we've decided to change our crypto algorithms to FIPS 140-2 compliant ones. We are planning to use the following algorithms in Enhanced RSA and AES Cryptographic Provider:


AES256 for encryption
SHA1 for hashing
RSA for key exchange with max key size


Is this setup going to work on WinXP SP3? Is it going to be FIPS 140-2 compliant? In my understanding, the answer to both questions in 'yes', but I want to be sure.
I can't help you with your Windows question, however I can chime in on FIPS:


  Is it going to be FIPS 140-2 compliant?


It might not be.  The problem is the "SHA1 for hashing"; SHA1 is no longer approved as a collision resistant hash function.  On the other hand, HMAC-SHA1 is still approved as a Message Authentication Code.

That is, if you are using SHA1 (within HMAC) to perform integrity checking, this is not an issue.  However, if you are using straight SHA1 as a part of (say) RSA signatures, this won't work; you'll need to switch to one of the SHA-2 algorithms (or SHA-3 when that is finalized).