title: Invalid algorithm while creating rsa-sha512 signature
body: <p>I'm attempting to apply an rsa-sha512 signature to a message, using a certificate on the local HDD.
  The final SignData raises a cryptographic exception "Invalid algorithm specified".
  However, if I use SignData on a new instance of RSACryptoServiceProvider (created by importing an export of the original RSACryptoServiceProvider), I don't get that exception.
  Is there some reason that the original version raises the exception?  Since the "copy" is evidently different, I'd prefer to use the original.</p>
  
  <p>The c# code I'm using is as follows:</p>
  
  <pre><code>X509Certificate2 cert = new X509Certificate2("C:\\Certs\\" + certName + ".p12", certPassword, X509KeyStorageFlags.Exportable);
  RSACryptoServiceProvider csp = (RSACryptoServiceProvider)cert.PrivateKey;
  UTF8Encoding ByteConverter = new UTF8Encoding();
  byte[] unsignedBytes = ByteConverter.GetBytes(unsignedText);
  byte[] signature;
  
  //This raises an exception, "Invalid algorithm specified."
  signature = csp.SignData(unsignedBytes, new SHA512CryptoServiceProvider());
  
  //But if I make a copy of the RSACryptoServiceProvider, no exception is raised
  RSACryptoServiceProvider cspCopy = new RSACryptoServiceProvider();
  RSAParameters Key = csp.ExportParameters(true);
  cspCopy.ImportParameters(Key);
  signature = cspCopy.SignData(unsignedBytes, new SHA512CryptoServiceProvider());
  </code></pre>