/// <param name="cert"></param> /// <returns></returns> public virtual CertificateStatus GetCertificateStatusFromContext(CertificateAndContext cert) { if (cert.GetCertificateSource() == CertificateSourceType.TRUSTED_LIST) { CertificateStatus status = new CertificateStatus(); status.Validity = CertificateValidity.VALID; status.StatusSourceType = ValidatorSourceType.TRUSTED_LIST; status.Certificate = cert.GetCertificate(); return(status); } CertificateAndContext issuer = GetIssuerCertificateFromThisContext(cert); if (issuer == null) { return(null); } IOcspSource ocspSource = new ListOCSPSource(neededOCSPResp); ICrlSource crlSource = new ListCRLSource(neededCRL); OCSPAndCRLCertificateVerifier verifier = new OCSPAndCRLCertificateVerifier(); verifier.SetCrlSource(crlSource); verifier.SetOcspSource(ocspSource); return(verifier.Check(cert.GetCertificate(), issuer.GetCertificate(), GetValidationDate ())); }
private CertificateStatus GetCertificateValidity(CertificateAndContext cert, CertificateAndContext potentialIssuer, DateTime validationDate, ICrlSource optionalCRLSource, IOcspSource optionalOCSPSource) { if (optionalCRLSource != null || optionalOCSPSource != null) { LOG.Info("Verify with offline services"); OCSPAndCRLCertificateVerifier verifier = new OCSPAndCRLCertificateVerifier(); verifier.SetCrlSource(optionalCRLSource); verifier.SetOcspSource(optionalOCSPSource); CertificateStatus status = verifier.Check(cert.GetCertificate(), potentialIssuer. GetCertificate(), validationDate); if (status != null) { return(status); } } LOG.Info("Verify with online services"); OCSPAndCRLCertificateVerifier onlineVerifier = new OCSPAndCRLCertificateVerifier( ); onlineVerifier.SetCrlSource(crlSource); onlineVerifier.SetOcspSource(ocspSource); return(onlineVerifier.Check(cert.GetCertificate(), potentialIssuer.GetCertificate (), validationDate)); }