SignedCms的Decode(byte[])这个方法时,报错,{"ASN1 遇到了不正确的标记值。\r\n"},是什么有关问题啊
SignedCms的Decode(byte[])这个方法时,报错,{"ASN1 遇到了不正确的标记值。\r\n"},是什么问题啊?
第一个参数是中国银行反馈我的加密好的字符串,我需要把字符串转为byte[]数组
第二个参数是我自己按照中国银行的明文规则拼凑的字符串,也需要转为byte[]数组
第三个参数可无
现在我不知道是我转byte[]的时候不对,还是哪个地方不对?
请教大家啊!!
------解决方案--------------------
#region 验证签名
public Boolean Verify(byte[] sig, byte[] msg, string dn)
{
Boolean b = true;
try
{
ContentInfo signedData = new ContentInfo(msg);
SignedCms cms = new SignedCms(signedData, true);
cms.Decode(sig);
//Check Signature
cms.CheckSignature(true);
//Check dn
//if (cms.Certificates.Count > 0 )
//{
// X509Certificate2 cert = cms.Certificates[0];
// if (!string.IsNullOrEmpty(dn) && !dn.Equals(cert.Subject))
// {
// b = false;
// }
//}
byte[] data = cms.Encode();
}
catch (Exception e)
{
b = false;
}
return b;
}
#endregion
第一个参数是中国银行反馈我的加密好的字符串,我需要把字符串转为byte[]数组
第二个参数是我自己按照中国银行的明文规则拼凑的字符串,也需要转为byte[]数组
第三个参数可无
现在我不知道是我转byte[]的时候不对,还是哪个地方不对?
请教大家啊!!
------解决方案--------------------