【问题标题】:How to use SMIME OpenSSL.NET encryption如何使用 SMIME OpenSSL.NET 加密
【发布时间】: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。帮忙?

【问题讨论】:

标签: c# openssl


【解决方案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);

免责声明:我为滴滴软件工作

【讨论】:

    猜你喜欢
    • 2018-12-05
    • 2013-09-26
    • 1970-01-01
    • 2011-11-06
    • 2012-06-04
    • 1970-01-01
    • 2012-12-04
    • 2011-04-01
    • 1970-01-01
    相关资源
    最近更新 更多