} // End Function GenerateCertificate static bool ValidateSelfSignedCert( Org.BouncyCastle.X509.X509Certificate cert, Org.BouncyCastle.Crypto.ICipherParameters pubKey ) { cert.CheckValidity(System.DateTime.UtcNow); byte[] tbsCert = cert.GetTbsCertificate(); // (TBS is short for To Be Signed), see RFC5280 for all the gory details. byte[] sig = cert.GetSignature(); Org.BouncyCastle.Crypto.ISigner signer = Org.BouncyCastle.Security.SignerUtilities.GetSigner( cert.SigAlgName ); signer.Init(false, pubKey); signer.BlockUpdate(tbsCert, 0, tbsCert.Length); return(signer.VerifySignature(sig)); } // End Function ValidateSelfSignedCert