Org.BouncyCastle.Pkix.PkixNameConstraintValidator.UnionDN C# (CSharp) Method

UnionDN() private method

private UnionDN ( ISet excluded, Asn1Sequence dn ) : ISet
excluded ISet
dn Org.BouncyCastle.Asn1.Asn1Sequence
return ISet
        private ISet UnionDN(ISet excluded, Asn1Sequence dn)
        {
            if (excluded.IsEmpty)
            {
                if (dn == null)
                {
                    return excluded;
                }
                excluded.Add(dn);

                return excluded;
            }
            else
            {
                ISet intersect = new HashSet();

                IEnumerator it = excluded.GetEnumerator();
                while (it.MoveNext())
                {
                    Asn1Sequence subtree = (Asn1Sequence)it.Current;

                    if (WithinDNSubtree(dn, subtree))
                    {
                        intersect.Add(subtree);
                    }
                    else if (WithinDNSubtree(subtree, dn))
                    {
                        intersect.Add(dn);
                    }
                    else
                    {
                        intersect.Add(subtree);
                        intersect.Add(dn);
                    }
                }

                return intersect;
            }
        }