Ejemplo n.º 1
0
        /// <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;
        }
Ejemplo n.º 2
0
        /// <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;
        }
Ejemplo n.º 3
0
        /// <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;
        }
Ejemplo n.º 4
0
 /// <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)
 {
 }