public override void Validate(X509Certificate2 certificate) { var configiration = this._configurationProvider.GetConfiguration(); var context = new CertificateValidationContext(certificate); Func <CertificateValidationContext, Task> seed = x => Task.CompletedTask; var rules = CertificateValidationRulesFactory.GetRules(configiration); var validationDelegate = rules.Aggregate(seed, (f, next) => new Func <CertificateValidationContext, Task>(c => next.Validate(c, f))); var task = validationDelegate(context); task.Wait(); }
protected override void Internal(CertificateValidationContext context) { var certificate = context.Certificate; var expirationDateString = certificate.GetExpirationDateString(); DateTime date; DateTime.TryParse(expirationDateString, out date); if (date < DateTime.Now) { throw new InvalidOperationException("Certificate has expired"); } }
public override void Validate(X509Certificate2 certificate) { this._logProvider.LogMessage(String.Format("Validating certificate: {0}", certificate.Subject)); var configiration = this.GetConfiguration(); var context = new CertificateValidationContext(certificate); Func <CertificateValidationContext, Task> seed = x => Task.CompletedTask; var rules = CertificateValidationRulesFactory.GetRules(configiration); var validationDelegate = rules.Aggregate(seed, (f, next) => new Func <CertificateValidationContext, Task>(c => next.Validate(c, f))); var task = validationDelegate(context); task.Wait(); }
public Task Validate(CertificateValidationContext context, Func <CertificateValidationContext, Task> next) { if (context == null) { throw new ArgumentNullException("context"); } if (context.Certificate == null) { throw new ArgumentNullException("certificate"); } this.Internal(context); return(next(context)); }
protected override void Internal(CertificateValidationContext context) { base._logProvider.LogMessage(String.Format("Validating expiration date rule for context subject: {0}", context.Certificate.Subject)); var certificate = context.Certificate; var expirationDateString = certificate.GetExpirationDateString(); DateTimeOffset date; DateTimeOffset.TryParse(expirationDateString, out date); if (date < DateTimeOffset.Now) { base._logProvider.LogMessage(String.Format("Certificate has expired on: {0}", date)); throw new InvalidOperationException("Certificate has expired"); } base._logProvider.LogMessage(String.Format("Certificate is valid until: {0}", date)); }
protected override void Internal(CertificateValidationContext context) { base._logProvider.LogMessage(String.Format("Validating effective date rule for context subject: {0}", context.Certificate.Subject)); var certificate = context.Certificate; var effectiveDateString = certificate.GetEffectiveDateString(); DateTimeOffset date; DateTimeOffset.TryParse(effectiveDateString, out date); if (date > DateTimeOffset.Now) { base._logProvider.LogMessage(String.Format("Certificate has effective date in the future: {0}", date)); throw new InvalidOperationException("Certificate effective date."); } base._logProvider.LogMessage(String.Format("Certificate has effective date: {0}", date)); }
public async Task ExpirationDateRuleTest() { //ARRANGE var store = new X509Store("TestCertStore"); try { store.Open(OpenFlags.ReadOnly); var certificate = store.Certificates.Find(X509FindType.FindBySubjectName, "ApiraTestCertificate", false)[0]; var context = new CertificateValidationContext(certificate); var rule = new ExpirationDateRule(); //ACT await rule.Validate(context, c => Task.CompletedTask); //ASSERT } finally { store.Close(); store.Dispose(); } }
public async Task EffectiveDateRuleTest() { //ARRANGE var store = new X509Store("TestCertStore"); try { var logger = new LogProviderMock(); store.Open(OpenFlags.ReadOnly); var certificate = store.Certificates.Find(X509FindType.FindBySubjectName, "www.eca-international.com", false)[0]; var context = new CertificateValidationContext(certificate); var rule = new EffectiveDateRule(logger); //ACT await rule.Validate(context, c => Task.CompletedTask); //ASSERT } finally { store.Close(); store.Dispose(); } }
protected abstract void Internal(CertificateValidationContext context);
public Task Validate(CertificateValidationContext context, Func <CertificateValidationContext, Task> next) { return(next(context)); }
public Task Validate(CertificateValidationContext context, Func <CertificateValidationContext, Task> next) { throw new InvalidOperationException(); }
public Task Validate(CertificateValidationContext context, Func <CertificateValidationContext, Task> next) { this.Internal(context); return(next(context)); }