Где я могу найти документацию на OpenSSL.Net - PullRequest
1 голос
/ 18 декабря 2011

Я обнаружил, что с DLL все в порядке, но у меня проблемы с поиском документации.

Я хочу использовать C # для расшифровки строки текста с использованием закрытого ключа RSA. Документация на OpenSSL.Net была бы отличной, информация о том, как это сделать, в частности, была бы удивительной!

Edit:

Сама строка была в Base64, а мой закрытый ключ хранится в файле * .pem. Мой последний метод ниже, на основе ответа LOSTCODER:

public string Decrypt(string textToDecrypt)
{
    byte[] payLoad = Convert.FromBase64String(textToDecrypt);

    StreamReader sr = new StreamReader("pemfilelocation.pem");
    string privateKey = sr.ReadToEnd();

    using (var key = CryptoKey.FromPrivateKey(privateKey, "myprivatekey"))
    {
        using (var rsa = key.GetRSA())
        {
            payLoad = rsa.PrivateDecrypt(payLoad, RSA.Padding.PKCS1);
        }
    }

    return Encoding.UTF8.GetString(payLoad);
}

Thankyou

1 Ответ

1 голос
/ 28 февраля 2012

Используйте следующую процедуру для дешифрования байта [] с помощью закрытого ключа RSA. Если вы хотите передать зашифрованную «строку текста», используйте System.Text.Encoding.ASCII.GetBytes() для преобразования ее в байт [] (предполагается, что текст в кодировке ASCII).

private static byte[] Decrypt(byte[] payLoad, string privateKey)
{
    using (var key = OpenSSL.Crypto.CryptoKey.FromPrivateKey(privateKey, null))
    {
        using (var rsa = key.GetRSA())
        {
            return rsa.PrivateDecrypt(payLoad, OpenSSL.Crypto.RSA.Padding.PKCS1);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...