【发布时间】:2019-04-17 16:26:48
【问题描述】:
客户端正在使用 OpenSSL 加密大文件 (~1MB)。他正在使用 SMIME:
openssl.exe smime -encrypt -des3 -in "plaintestFile.txt" -out "encryptedFile.txt" "certificate.pem" >> "log_encrypt.txt"
现在我需要在 C# 应用程序中做同样的事情。我找到了一个 .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。帮忙?
【问题讨论】:
-
SMIME 实际上是 PKCS #7(有些人放弃)。上次我检查 OpenSSL.Net 中有一个
PKCS7.cs。所以请参阅OpenSSL.NET How to implement PKCS7?、Sign file using .NET OpenSSL wrapper 等问题。