From the code below if get RSA key from Stakeholders Certificate which is the file that I load from file with a password.
The code below does not work in two cases the first is rsaPrivateKey.ExportParameters(false) the privateKey!.SignHash(hash, oid) gives me errors
when i set signHash using the above code i get exeception
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1]
An unhandled exception has occurred while executing the request.
System.Security.Cryptography.CryptographicException: Object contains only the public half of a key pair. A private key must also be provided.
But if I set it to true rsaPrivateKey.ExportParameters(false) I get exceptions
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1]
An unhandled exception has occurred while executing the request.
System.Security.Cryptography.CryptographicException: The requested operation is not supported.
at System.Security.Cryptography.CngKey.Export(CngKeyBlobFormat format)
at System.Security.Cryptography.RSACng.ExportParameters(Boolean includePrivateParameters)
How can I make it work in Windows 10 and dotnet 8 project i want to SignHash data using RSACryptoServiceProvider.
RSA rsaPrivateKey = this.StakeHolderCert.GetRSAPrivateKey();
RSAParameters rsaParams = rsaPrivateKey.ExportParameters(true);
var privateKey = new RSACryptoServiceProvider();
privateKey.ImportParameters(rsaParams);
byte[] fullArray = privateKey!.SignHash(hash, oid);
string _base64String3 = Convert.ToBase64String(fullArray);