c# - 签名和创建 asn1 签名消息 - BouncycaSTLe

标签 c# bouncycastle asn.1 pkcs#7

是否有任何关于如何使用 bouncycaSTLe 对文件进行签名并将其包装在 asn1 pkcs7 包中的好教程?

最佳答案

一段时间后,我在 bouncyCaSTLe 应用程序中的示例中找到了它是如何完成的。

它实际上比我在 IText 中发现的要简单和直接(没有去掉框架本身的友好性)。

代码是这样的:

        AsymmetricCipherKeyPair signaturePair;
        X509Certificate signatureCert;

        IList certList = new ArrayList();
        IList crlList = new ArrayList();
        CmsProcessable msg = new CmsProcessableByteArray(Encoding.ASCII.GetBytes("I hate hello world!"));

        certList.Add(signatureCert);
        certList.Add(OrigCert);

        crlList.Add(SignCrl);

        IX509Store x509Certs = X509StoreFactory.Create(
            "Certificate/Collection",
            new X509CollectionStoreParameters(certList));
        IX509Store x509Crls = X509StoreFactory.Create(
            "CRL/Collection",
            new X509CollectionStoreParameters(crlList));

        CmsSignedDataGenerator gen = new CmsSignedDataGenerator();

        gen.AddSigner(signaturePair.Private, signatureCert, CmsSignedDataGenerator.DigestSha1);

        gen.AddCertificates(x509Certs);
        gen.AddCrls(x509Crls);

        CmsSignedData signedData = gen.Generate(msg, true);

        //saving in BER encoding
        Stream stream = new MemoryStream(signedData.GetEncoded());

关于c# - 签名和创建 asn1 签名消息 - BouncycaSTLe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6335928/

相关文章:

c# - System.Management.Automation 与 .NET Core 3.1 不兼容

c# - JwtSecurityTokenHandler 返回小写声明类型

c# - 给定两个证书,我如何验证一个是用另一个的私钥签名的?

java - 使用工业级加密保护 Java 免受逆向工程

encryption - 为什么在加密的 AES key 的 Python 密码 RSA 解密中抛出错误?

tags - 我需要一个例子来理解 ASN.1 中的隐式标记

c# - 使用 Mono 的 Windows 集成身份验证

java - 在 Equinox 中安装签名的 jar

javascript - javascript中的RSA加密和Java中的解密

enumeration - ASN.1 枚举类型和选择类型有什么区别?