我在我的方法中收到一个XML文档作为字符串参数.XML文档是:
<Document>
<ZipContainer> Zip_File_In_Base64 </ZipContainer>
<X509Certificate> Certificate_In_Base64 </X509Certificate>
</Document>
Run Code Online (Sandbox Code Playgroud)
从这个字符串中我提取了base64格式的ZIP文件和base64格式的X509Certificate2证书.ZIP文件包含:
将ZIP文件的内容描述为XML(文件packageDescription.xml)的文件;
包含传输文件内容的文件(例如*.doc文件);
具有分离数字签名内容的*.p7s文件(文件 - 分离的数字签名);
从归档应该提取签名的签名文件(分离的数字签名可能不止一个).分离的数字签名存储在具有.p7s扩展名的文件中.必须完成每个签名以检查其与数字签名的协议,用户使用该签名登录到门户.
必须包括两个步骤:
请参阅方法certificateValidator()(请参阅下面的此方法):这是一个分离的签名,包含在.p7s文件中,其中包含相应的签名文件,这些*.P7S-文件.
例如:一对相关文件:ZayavUL_3594c921f545406d9b8734bbe28bf894.doc_1.p7s和
ZayavUL_3594c921f545406d9b8734bbe28bf894.doc.
请参阅方法certificateValidator():此方法验证来自文件.p7s的证书,该证书具有从XML文档输入字符串中提取的证书.
该方法signatureValidator(请参阅下面的此方法)当前未使用文件的分离签名.p7s.我试过了,但没有成功.如何正确验证.p7s其相应文件的文件的分离签名?
在该方法中certificateValidator(请参阅下面的此方法),如何验证从.p7s文件中提取的证书与从Base64格式的输入字符串中提取的证书的一致性?
代码行foreach (X509Certificate2 x509 in signCms.Certificates) { }--->证书集合总是空的.为什么?
Dictionary <string, byte[]> dictP7SFiles (key - 文件名*.p7s,value - 字节数组,表示*.p7s文件)
Dictionary <string, byte[]> dictNotP7SFiles (key - 使用*.p7s文件中的分离签名签名的文件的名称,value …