[英]Malformed content in certificate data format .p7b
我正在尝试对 PDF 进行数字签名,但出现错误Malformed Content
。 当我使用类CmsSignedData
并在构造函数中传递文件certificate.p7b
的FileStream
时,就会发生这种情况。
这是发生这种情况的一段代码:
public void Sign()
{
CmsSignedData certificateStore = new CmsSignedData(CertificateChain);
IX509Store x509Certs = certificateStore.GetCertificates("Collection");
ArrayList certificateArray = new ArrayList(x509Certs.GetMatches(null));
List<X509Certificate> certificates = new List<X509Certificate>();
foreach (var certificate in certificateArray)
{
certificates.Add((X509Certificate)certificate);
}
PdfReader pdfReader = new PdfReader(SourcePlainPdf);
StampingProperties stampingProperties = new StampingProperties();
stampingProperties.UseAppendMode();
PdfSigner pdfSigner = new PdfSigner(pdfReader,
new FileStream(DestinationSignedPdf, FileMode.OpenOrCreate), stampingProperties);
pdfSigner.GetSignatureAppearance().SetPageNumber(1).SetReason(Reason).SetLocation(Location);
pdfSigner.SetFieldName(SignatureFieldName);
IExternalSignature pks = new ServerSignature(SourcePlainPdf, AuthenticationToken,
QscdServerBaseAddress, CertificateAlias, Seed, Secret, HashAlgorithmOID);
pdfSigner.SignDetached(pks, certificates.ToArray(), null, null, null, 0, PdfSigner.CryptoStandard.CMS);
}
方法的第一行: CmsSignedData certificateStore = new CmsSignedData(CertificateChain);
是错误发生的地方。 我从网站下载了证书文件并将其存储在 C: 驱动器中。
我已经检查了另一个帖子的解决方案,但没有人直接谈到我的问题。 一篇非常广泛的帖子深入研究了密码学,但我什么也不懂。 我将 BouncyCastle 用于证书 API。
我怎么解决这个问题?
最后我解决了这个问题。 当我下载证书 .p7b 文件时,它给了我两个文件。 我流错了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.