如何解决如何解决C#中的“无法为空内容创建CMS签名”错误?
全部交易。
我正在创建纯文本的PKCS#7签名消息。
我的C#来源在下面。
byte[] _SignPkcs7_Windows(byte[] Message,bool IncludeSignDate)
{
byte[] _ret = new byte[0];
try
{
using (var _pub = this.PublicKey.X509Certificate2)
{
using (RSA _rsa = PKCS8.PrivateKeyInfo.DecodeRSA(this.PrivateKey.PrivateKeyInfo.PrivateKey))
{
using (var _pri = _pub.CopyWithPrivateKey(_rsa))
{
var _infoContenido = new System.Security.Cryptography.Pkcs.ContentInfo(Message);
SignedCms _cmsFirmado = new SignedCms(_infoContenido);
CmsSigner _cmssigner = new CmsSigner(_pri);
if (IncludeSignDate)
{
_cmssigner.SignedAttributes.Add(new Pkcs9SigningTime(DateTime.Now));
}
_cmssigner.IncludeOption = X509IncludeOption.EndCertOnly;
// Sign message PKCS #7
_cmsFirmado.ComputeSignature(_cmssigner);
_ret = _cmsFirmado.Encode();
}
}
}
}
catch
{
throw;
}
return _ret;
}
效果完美。 但是我的某些Windows应用程序还创建了具有空内容的PKCS#7签名消息,因此,签名消息的ASN.1格式如下所示。
如您所见,要签名的内容为空,长度为0。
他们如何签署空白内容?
当我尝试使用C#源对空白内容进行签名时,它提示我“无法为CMS创建CMS签名 空内容”错误。
如果有人可以给我任何线索,将不胜感激。
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。