目前,我希望使用C#中的库CryptoAPI对XML文件进行签名和加密。实际上,我希望使用以下命令行执行与OpenSSL相同的工作:
openssl smime -sign -in file.xml -out file.out -passin pass:test -binary -nodetach -inkey certificat.priv.pem -signer certificat.pub.pem
要在桌面应用程序上使用C#实现这一点,我刚刚使用了SignedXML的功能。不幸的是,Compact Framework中不存在这些功能!所以,我尝试使用CryptoAPI手工构建我的XML。我的代码工作正常,但我的XML与OpenSSL获得的不同。
这是我的XML摘要(已签名):
UNKNOWN STRING (in base 64, it begins by “MII…”)
<?xml version="1.0"?>
<test>
CONTENT OF MY XML
<signature>…</signature>
</test>
FIRST UNKNOWN string (perhaps the Public Key)
SECOND UNKNOWN string (in this string, there is the current date)
因此,使用CryptoAPI,我计算了摘要值和签名。使用XMLDocument函数,我已将这些信息插入到我的XML中。现在,我搜索了解上述未知字符串的组成。
你能解释一下这些未知字符串的内容吗?我已经完成了几次搜索,但我没有找到解释。
提前感谢您的帮助!
祝你好运