私は使っている
SignedCms.CheckSignature(certColl, true)
(certColl に証明書が 1 つだけある場合) pkcs-7 メッセージの署名を検証します。私の問題は、署名者が証明書を更新した後、サーバー上の署名者証明書 (の公開部分) を変更したくないということです:-( 署名者が証明書を更新した後、公開鍵、発行者、サブジェクトは変更されません!動作する必要があります-少なくとも私の意見では、たとえ私が暗号マニアでなくても:-)
..しかし、残念ながら、スタックトレースが正確に言うように、.NETフレームワークは暗号化例外「元の署名者が見つかりません」をスローします:
SignerInfo.CheckSignature(X509Certificate2Collection extraStore, Boolean verifySignatureOnly)
これは、署名者証明書のシリアル番号が変更され、SignerIdentifier プロパティが読み取り専用で、IssuerAndSerialNumber に設定されているためです。
これを回避する方法を知っている人はいますか?
または、signedMessage.ComputeSignature(signer, false) のような sth で検証する「手作りの」署名を実装する必要がありますか?
前もって感謝し、幸せなプログラミング、Krile