void m_decode(Byte[] rawData)
        {
            CrossCertDistributionPoints = new X509AlternativeNameCollection();

            Asn1Reader asn = new Asn1Reader(rawData);

            if (asn.Tag != 48)
            {
                throw new ArgumentException("The data is invalid");
            }
            asn.MoveNext();
            if (asn.Tag == (Byte)Asn1Type.INTEGER)
            {
                DeltaSyncTimeInSeconds = (Int32)Asn1Utils.DecodeInteger(asn.GetTagRawData());
                asn.MoveNext();
            }
            asn.MoveNext();
            do
            {
                var altNames = new X509AlternativeNameCollection();
                altNames.Decode(asn.GetTagRawData());
                CrossCertDistributionPoints.AddRange(altNames);
            } while (asn.MoveNextCurrentLevel());
            CrossCertDistributionPoints.Close();
        }
        void m_initialize(X509AlternativeNameCollection permittedSubtree, X509AlternativeNameCollection excludedSubtree)
        {
            Oid      = _oid;
            Critical = true;

            var rawData = new List <Byte>();

            if (permittedSubtree != null)
            {
                _permittedSubtree.AddRange(encodeAltNames(permittedSubtree, rawData, 0xa0));
            }
            if (excludedSubtree != null)
            {
                _excludedSubtree.AddRange(encodeAltNames(excludedSubtree, rawData, 0xa1));
            }
            RawData = Asn1Utils.Encode(rawData.ToArray(), 48);
        }