В настоящее время я использую эту команду для создания подписи для моего запроса:
printf '%s' <json string> | openssl dgst -sha256 -sign <private key path> | base64
Есть ли в C# эквивалент для этой команды? Я искал в Интернете весь день, но не повезло.
В настоящее время у меня есть это:
private static string SignClaim(string claim)
{
var claimBytes = Encoding.UTF8.GetBytes(claim);
var cert = new X509Certificate2(Convert.FromBase64String(PrivateKey));
using var rsa = (RSACryptoServiceProvider)cert.PrivateKey;
var signedBytes = rsa.SignData(claimBytes, new SHA256CryptoServiceProvider());
return Convert.ToBase64String(signedBytes);
}
Но в конструкторе X509 он говорит "не может найти запрошенный объект"