C# Эквивалент команды openssl dgst -sha256 -sign - PullRequest
0 голосов
/ 24 января 2020

В настоящее время я использую эту команду для создания подписи для моего запроса:

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 он говорит "не может найти запрошенный объект"

...