日期:2014-05-17  浏览次数:21231 次

SignedCms的Decode(byte[])这个方法时,报错,{"ASN1 遇到了不正确的标记值。\r\n"},是什么问题啊?

 #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[]的时候不对,还是哪个地方不对?
请教大家啊!!

------解决方案--------------------
引用:
1. X509Certificate2  这你可以给 返回成 true 模