Org.BouncyCastle.X509.X509Certificate.CheckSignature C# (CSharp) Method

CheckSignature() protected method

protected CheckSignature ( AsymmetricKeyParameter publicKey, ISigner signature ) : void
publicKey Org.BouncyCastle.Crypto.AsymmetricKeyParameter
signature ISigner
return void
        protected virtual void CheckSignature(
            AsymmetricKeyParameter publicKey,
            ISigner signature)
        {
            if (!IsAlgIDEqual(c.SignatureAlgorithm, c.TbsCertificate.Signature))
                throw new CertificateException("signature algorithm in TBS cert not same as outer cert");

            Asn1Encodable parameters = c.SignatureAlgorithm.Parameters;

            X509SignatureUtilities.SetSignatureParameters(signature, parameters);

            signature.Init(false, publicKey);

            byte[] b = this.GetTbsCertificate();
            signature.BlockUpdate(b, 0, b.Length);

            byte[] sig = this.GetSignature();
            if (!signature.VerifySignature(sig))
            {
                throw new InvalidKeyException("Public key presented not for certificate signature");
            }
        }