问题描述
全部交易。
我正在创建纯文本的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 (将#修改为@)