I wrote a SSL client by C#.NET Win-Forms. I added my certificate (public key) to system root store (by .NET code or manually via Internet Explorer, both works) and it works fine on Windows XP , but on Windows 7 has the following AuthenticationException when trying to AuthenticateAsClient() :
"The client and server cannot communicate, because they do not possess a common algorithm"
Microsoft support documents of list some registry keys and say something about protocols / ciphers / algorithms that are enabled (new strong ones) or disabled (old obsolete ones) by default in Windows 7, so we can enable/disable them by editing the registry. Here's those links:
How to restrict the use of certain cryptographic algorithms and protocols in Schannel.dll TLS/SSL Cryptographic Enhancements
As far as I'm not good at cryptography , I can't understand which registry key matches with my case. Here comes properties of the X509Certificate object I'm using as client:
SignatureAlgorithm.FriendlyName : "sha1RSA"
Version : 3
Could someone please help?