title: SHA256 signing stops working in .NET 4.5
body: <p>We have a piece of code which creates a SigningCredentials object to use to sign xml document by using SHA256 algorithm. It works with .NET 3.5 perfectly. However, when we upgrade our codebase to .NET 4.5, it stops working. Same code, same certificate! I have spent hours on debugging and searching on the internet without any luck.</p>
  
  <p>Could anyone please tell me what the problem here is? Thank you in advance.</p>
  
  <p>Code to create SigningCredentials:</p>
  
  <pre><code>public SigningCredentials CreateSigningCredentials(X509Certificate2 cert)
  {
      var ski = new SecurityKeyIdentifier(new X509RawDataKeyIdentifierClause(cert));
      return new SigningCredentials(new X509AsymmetricSecurityKey(cert), "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256", "http://www.w3.org/2001/04/xmlenc#sha256", ski);
  }
  </code></pre>
  
  <p>Exception: </p>
  
  <pre><code>[CryptographicException: Invalid algorithm specified.
  ]
     System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) +41
     System.Security.Cryptography.Utils.SignValue(SafeKeyHandle hKey, Int32 keyNumber, Int32 calgKey, Int32 calgHash, Byte[] hash, Int32 cbHash, ObjectHandleOnStack retSignature) +0
     System.Security.Cryptography.Utils.SignValue(SafeKeyHandle hKey, Int32 keyNumber, Int32 calgKey, Int32 calgHash, Byte[] hash) +118
     System.Security.Cryptography.RSACryptoServiceProvider.SignHash(Byte[] rgbHash, Int32 calgHash) +334
     System.Security.Cryptography.RSAPKCS1SignatureFormatter.CreateSignature(Byte[] rgbHash) +321
     System.IdentityModel.SignedXml.ComputeSignature(HashAlgorithm hash, AsymmetricSignatureFormatter formatter, String signatureMethod) +323
     System.IdentityModel.SignedXml.ComputeSignature(SecurityKey signingKey) +690
     System.IdentityModel.EnvelopedSignatureWriter.ComputeSignature() +338
     System.IdentityModel.EnvelopedSignatureWriter.OnEndRootElement() +278
     System.IdentityModel.Metadata.MetadataSerializer.WriteEntityDescriptor(XmlWriter inputWriter, EntityDescriptor entityDescriptor) +1109
  </code></pre>