我在哪里可以找到有关OpenSSL.Net的文档

问题描述:

我发现DLL没问题,但是我在查找文档时遇到了问题。我在哪里可以找到有关OpenSSL.Net的文档

我想使用C#使用私有RSA密钥解密一串文本。关于OpenSSL.Net的文档将非常棒,关于如何做到这一点的信息将会非常棒!

编辑:

本身是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); 
} 

三江源

+0

看看http://openssl-net.sourceforge.net/ – 2011-12-18 15:16:15

+1

高兴,如果它帮助:)但是我宁愿重构它保持IO功能了。事实上,你应该只读一次.pem文件,而不是每次解密一些文本。 – 2012-03-14 11:38:55

+0

当然,我在我的类中创建了一个私有只读字符串,然后将IO功能添加到了我的构造函数中! – JMK 2012-03-14 12:08:21

使用下列程序解密一个byte []使用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); 
     } 
    } 
}