客户端使用OpenSSL加密大文件(约1MB)。他正在使用SMIME:
openssl.exe smime -encrypt -des3 -in "plaintestFile.txt" -out "encryptedFile.txt" "certificate.pem" >> "log_encrypt.txt"
现在我需要在C#app中做同样的事情。我找到了一个.Net OpenSSL包装器:https://github.com/openssl-net/openssl-net
到目前为止,我有这个,从文件中加载PEM证书:
public static void getCert()
{
OpenSSL.X509.Configuration cfg = new OpenSSL.X509.Configuration(@"D:\openssl-0.9.8k_X64\openssl.cnf");
string rootcerts = System.IO.File.ReadAllText(@"D:\cert.pem");
BIO certbio = new BIO(rootcerts);
OpenSSL.X509.X509Certificate cert = new OpenSSL.X509.X509Certificate(certbio);
}
但是我无法在这个包装器中找到如何使用SMIME。帮忙?
答案 0 :(得分:1)
这可以通过商业产品OpenSSL Library for .NET中的 OpenSslSmime类完成:
DidiSoft.OpenSsl.Cms.OpenSslSmime smime = new DidiSoft.OpenSsl.Cms.OpenSslSmime();
smime.EncryptFile("plaintestFile.txt", "certificate.pem", @"encryptedFile.txt", CmsCipherAlgorithm.Des3);
免责声明:我为DidiSoft工作