尝试使用BouncyCastle for .NET验证护照中数据的签名。其他应用程序已验证相同的护照签名是正确的。
以下代码是当前进度,结果返回false。
var asn1setdata = Asn1Set.FromByteArray(eContent); //Results in properly parsed dataset
var derEncodedASN1Set = asn1setdata.GetDerEncoded();
Org.BouncyCastle.X509.X509Certificate cert1 = new X509CertificateParser().ReadCertificate(documentSignerCertficateBytes); //Correct certificate attributes after parsing
RsaKeyParameters ecPublic = (RsaKeyParameters)cert1.GetPublicKey();
//create a signerutility with type SHA-256withRSA
ISigner signer = SignerUtilities.GetSigner("SHA256withRSA");
signer.Init(false, ecPublic);
signer.BlockUpdate(derEncodedASN1Set, 0, derEncodedASN1Set.Length);
var verified = signer.VerifySignature(documentSignatureBytes); //returns false
解析asn1set并在对象中提供适当的数据。
正确解析x509证书并显示SHA-256withRSA。
使用正确的算法创建签名者。
我使用的方法是否正确?