在C#中使用ASN.1 DER编码CMS signedfile

时间:2013-11-06 13:41:40

标签: c# cryptography asn.1 der

我对加密几乎是新手。到目前为止,我成功生成了一个封装的CMS文件。但在此之后,我需要使用ASN.1 DER格式对CMS签名和加密的数据文件进行编码,但不知道如何操作?请给我一些建议。

下面的

我粘贴我的代码以获得更多光线;

var content = File.ReadAllBytes(@"E:\Miscellaneous\Pacs.zip");

var contentInfo1 = new ContentInfo(content);
var signedCms = new SignedCms(contentInfo1);
var cmsSigner = new CmsSigner(GetSignerCert()) { IncludeOption = X509IncludeOption.None };

signedCms.ComputeSignature(cmsSigner);

var contentInfo = new ContentInfo(signedCms.Encode());

//  RSA_DES_EDE3_CBC.
var envelopedCms = new EnvelopedCms(contentInfo);

var recip1 = new CmsRecipient(
    SubjectIdentifierType.IssuerAndSerialNumber,
    GetRecipientCert());

envelopedCms.Encrypt(recip1);

File.WriteAllBytes(@"E:\signedfile", envelopedCms.Encode());
// need code to encode signedfile using ASN.1 DER

1 个答案:

答案 0 :(得分:0)

指定

EnvelopedCms.Encode()来创建字节,但唯一的方法是使用编码方法。大约99%确定编码 ASN.1 BER或DER。因此,您很可能已经完成了目标。