/// <summary> /// Initializes a new instance of the <see cref="CertificateValidator"/> class. /// </summary> /// <param name="rules">validation rules.</param> /// <param name="instrumentation">instrumentation to use</param> public CertificateValidator(IEnumerable <AbstractCertificateRule> rules, ICertificateRulesInstrumentation instrumentation = null) { if (instrumentation == null) { instrumentation = SslWrappingInstrumentation.NullInstrumentation; } this.instrumentation = instrumentation; if (rules == null) { rules = new AbstractCertificateRule[0]; } this.extraRulesTovalidateCertificates = rules.ToArray(); this.BaseRule = null; }
/// <summary> /// Initializes a new instance of the <see cref="CertificateValidator"/> class. /// </summary> /// <param name="rule">validation rule.</param> /// <param name="instrumentation">instrumentation to use</param> public CertificateValidator(AbstractCertificateRule rule, ICertificateRulesInstrumentation instrumentation = null) { if (instrumentation == null) { instrumentation = SslWrappingInstrumentation.NullInstrumentation; } this.instrumentation = instrumentation; this.extraRulesTovalidateCertificates = new List <AbstractCertificateRule>(); if (rule != null) { this.extraRulesTovalidateCertificates.Add(rule); } this.BaseRule = null; }
/// <summary> /// Initializes a new instance of the <see cref="CertificateValidator"/> class. /// </summary> /// <param name="identities">identities for this object</param> /// <param name="flags">flags for the SSL wrapper</param> /// <param name="modifySet">action to modify the default rule set</param> /// <param name="instrumentation">instrumentation to use</param> public CertificateValidator(CertIdentities identities, CertificateRulesFlags flags, Action <StandardValidationRuleSet> modifySet, ICertificateRulesInstrumentation instrumentation) { if (identities == null) { throw new ArgumentNullException("identities"); } if (instrumentation == null) { instrumentation = SslWrappingInstrumentation.NullInstrumentation; } this.instrumentation = instrumentation; StandardValidationRuleSet set = new StandardValidationRuleSet(); set.AddAcceptedCertificates(AbstractCertificateRule.RoleToApply.ClientCert, identities.IsClientCertificateIncluded); set.AddAcceptedCertificates(AbstractCertificateRule.RoleToApply.ServerCert, identities.IsServerCertificateIncluded); if (identities.IsClientWithNoCertificateAllowed) { set.AddBreakGlassCertificate(AbstractCertificateRule.RoleToApply.ClientCert, null); set.SetChainValidationRequired(AbstractCertificateRule.RoleToApply.ClientCert, false); } if (identities.IsServerWithNoCertificateAllowed) { set.AddBreakGlassCertificate(AbstractCertificateRule.RoleToApply.ServerCert, null); } if ((flags & CertificateRulesFlags.MustCheckCertificateTrustChain) == CertificateRulesFlags.None) { set.SetChainValidationRequired(AbstractCertificateRule.RoleToApply.AllCerts, false); } if (modifySet != null) { modifySet(set); } this.extraRulesTovalidateCertificates = set.Rules; this.BaseRule = null; }
/// <summary> /// Initializes a new instance of the <see cref="CertificateValidator"/> class. /// </summary> /// <param name="identities">identities for this object</param> /// <param name="flags">flags for the SSL wrapper</param> /// <param name="instrumentation">instrumentation to use</param> public CertificateValidator(CertIdentities identities, CertificateRulesFlags flags, ICertificateRulesInstrumentation instrumentation = null) : this(identities, flags, null, instrumentation) { }