diff options
Diffstat (limited to 'crypto/src/cmp/CertificateStatus.cs')
-rw-r--r-- | crypto/src/cmp/CertificateStatus.cs | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/crypto/src/cmp/CertificateStatus.cs b/crypto/src/cmp/CertificateStatus.cs index 55292329a..4df7e0cf5 100644 --- a/crypto/src/cmp/CertificateStatus.cs +++ b/crypto/src/cmp/CertificateStatus.cs @@ -1,5 +1,6 @@ using System; +using Org.BouncyCastle.Asn1; using Org.BouncyCastle.Asn1.Cmp; using Org.BouncyCastle.Asn1.X509; using Org.BouncyCastle.Math; @@ -32,17 +33,16 @@ namespace Org.BouncyCastle.Cmp public virtual BigInteger CertRequestID => m_certStatus.CertReqID.Value; - public virtual bool IsVerified(X509Certificate cert) - { - var signatureName = cert.SigAlgName; - - var signatureAlgorithm = DefaultSignatureAlgorithmFinder.Instance.Find(signatureName) - ?? throw new CmpException("cannot find algorithm identifier for signature name"); + public virtual bool IsVerified(X509Certificate cert) => + IsVerified(new CmpCertificate(cert.CertificateStructure), cert.SignatureAlgorithm); - var digestAlgorithm = m_digestAlgorithmFinder.Find(signatureAlgorithm) - ?? throw new CmpException("cannot find algorithm for digest from signature " + signatureName); + public virtual bool IsVerified(CmpCertificate cmpCertificate, AlgorithmIdentifier signatureAlgorithm) + { + AlgorithmIdentifier digestAlgorithm = m_digestAlgorithmFinder.Find(signatureAlgorithm) + ?? throw new CmpException("cannot find algorithm for digest from signature"); - byte[] digest = DigestUtilities.CalculateDigest(digestAlgorithm.Algorithm, cert.GetEncoded()); + byte[] digest = DigestUtilities.CalculateDigest(digestAlgorithm.Algorithm, + cmpCertificate.GetEncoded(Asn1Encodable.Der)); return Arrays.FixedTimeEquals(m_certStatus.CertHash.GetOctets(), digest); } |