我在用
SignedCms.CheckSignature(certColl, true)
(在 certColl 中只有一个证书)来验证 pkcs-7 消息的签名。我的问题是,我不想在签名者更新他的证书后更改我的服务器上的(公共部分)签名者证书:-(在签名者更新他的证书后,公钥、颁发者和主题保持不变!所以这个必须工作 - 至少在我看来,即使我不是加密极客 :-)
..但是,不幸的是,.NET-Framework 抛出了一个加密异常“找不到原始签名者”,就像堆栈跟踪所说的那样:
SignerInfo.CheckSignature(X509Certificate2Collection extraStore,布尔型 verifySignatureOnly)
这一定是因为签名者证书的序列号已更改,并且 SignerIdentifier 属性为只读且设置为 IssuerAndSerialNumber。
有谁知道如何解决这个问题?
或者我是否必须实现一个“手工”签名验证,例如:signedMessage.ComputeSignature(signer, false)?
提前感谢和愉快的编程,Krile