我正在使用
SignedCms.CheckSignature(certColl,true)
(在certColl中只有一个证书)来验证pkcs-7消息的签名。我的问题是,我不想在签名者更新他的证书后更改我的服务器上的签名者证书(公共部分) :-(公钥,颁发者和主题在签名者更新证书后保持不变!)因此,这必须有效-至少在我看来,即使我不是一个加密极客:-)
..but,不幸的是,.NET框架抛出了一个加密异常“找不到原始的签名者”,就像堆栈跟踪所说的那样:
SignerInfo.CheckSignature(X509Certificate2Collection extraStore,布尔型verifySignatureOnly)
这一定是因为签名者证书的序列号已更改,并且SignerIdentifier属性为只读并设置为IssuerAndSerialNumber。
有人知道如何解决这个问题吗?
或者我必须实现一个“手工”的签名验证,比如: signedMessage.ComputeSignature(signer,false)?
感谢提前和快乐的编程,Krile
发布于 2009-12-15 21:27:19
对于所有对这个问题感兴趣的人:
有人告诉我,这是由于PKCS7规范,该规范规定SubjectKeyIdentifier始终设置为IssuerAndSerialNumber。
https://stackoverflow.com/questions/1839596
复制相似问题