GetEnumerator() public méthode

public GetEnumerator ( ) : IEnumerator
Résultat IEnumerator
        public SemanticsInformation(
			Asn1Sequence seq)
        {
            if (seq.Count < 1)
            {
                throw new ArgumentException("no objects in SemanticsInformation");
            }

            IEnumerator e = seq.GetEnumerator();
            e.MoveNext();
            object obj = e.Current;
            if (obj is DerObjectIdentifier)
            {
                semanticsIdentifier = DerObjectIdentifier.GetInstance(obj);
                if (e.MoveNext())
                {
                    obj  = e.Current;
                }
                else
                {
                    obj  = null;
                }
            }

            if (obj  != null)
            {
                Asn1Sequence generalNameSeq = Asn1Sequence.GetInstance(obj );
                nameRegistrationAuthorities = new GeneralName[generalNameSeq.Count];
                for (int i= 0; i < generalNameSeq.Count; i++)
                {
                    nameRegistrationAuthorities[i] = GeneralName.GetInstance(generalNameSeq[i]);
                }
            }
        }
		private LdsSecurityObject(
			Asn1Sequence seq)
		{
			if (seq == null || seq.Count == 0)
				throw new ArgumentException("null or empty sequence passed.");

			IEnumerator e = seq.GetEnumerator();

			// version
			e.MoveNext();
			version = DerInteger.GetInstance(e.Current);
			// digestAlgorithmIdentifier
			e.MoveNext();
			digestAlgorithmIdentifier = AlgorithmIdentifier.GetInstance(e.Current);

			e.MoveNext();
			Asn1Sequence datagroupHashSeq = Asn1Sequence.GetInstance(e.Current);

			if (version.Value.Equals(BigInteger.One))
			{
				e.MoveNext();
				versionInfo = LdsVersionInfo.GetInstance(e.Current);
			}

			CheckDatagroupHashSeqSize(datagroupHashSeq.Count);

			datagroupHash = new DataGroupHash[datagroupHashSeq.Count];
			for (int i= 0; i< datagroupHashSeq.Count; i++)
			{
				datagroupHash[i] = DataGroupHash.GetInstance(datagroupHashSeq[i]);
			}
		}
Exemple #3
0
        public static Asn1Set GetInstance(Asn1TaggedObject obj, bool explicitly)
        {
            //IL_0017: Unknown result type (might be due to invalid IL or missing references)
            //IL_00c6: Unknown result type (might be due to invalid IL or missing references)
            Asn1Object @object = obj.GetObject();

            if (explicitly)
            {
                if (!obj.IsExplicit())
                {
                    throw new ArgumentException("object implicit - explicit expected.");
                }
                return((Asn1Set)@object);
            }
            if (obj.IsExplicit())
            {
                return(new DerSet(@object));
            }
            if (@object is Asn1Set)
            {
                return((Asn1Set)@object);
            }
            if (@object is Asn1Sequence)
            {
                Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector();
                Asn1Sequence        asn1Sequence        = (Asn1Sequence)@object;
                {
                    global::System.Collections.IEnumerator enumerator = asn1Sequence.GetEnumerator();
                    try
                    {
                        while (enumerator.MoveNext())
                        {
                            Asn1Encodable asn1Encodable = (Asn1Encodable)enumerator.get_Current();
                            asn1EncodableVector.Add(asn1Encodable);
                        }
                    }
                    finally
                    {
                        global::System.IDisposable disposable = enumerator as global::System.IDisposable;
                        if (disposable != null)
                        {
                            disposable.Dispose();
                        }
                    }
                }
                return(new DerSet(asn1EncodableVector, needsSorting: false));
            }
            throw new ArgumentException("Unknown object in GetInstance: " + Platform.GetTypeName(obj), "obj");
        }
		public DHParameter(
            Asn1Sequence seq)
        {
            IEnumerator e = seq.GetEnumerator();

			e.MoveNext();
            p = (DerInteger)e.Current;

			e.MoveNext();
            g = (DerInteger)e.Current;

			if (e.MoveNext())
            {
                l = (DerInteger) e.Current;
            }
        }
Exemple #5
0
        public Pbkdf2Params(
			Asn1Sequence seq)
        {
            IEnumerator e = seq.GetEnumerator();

            e.MoveNext();
            octStr = (Asn1OctetString) e.Current;

            e.MoveNext();
            iterationCount = (DerInteger) e.Current;

            if (e.MoveNext())
            {
                keyLength = (DerInteger) e.Current;
            }
        }
Exemple #6
0
        private SignedData(
            Asn1Sequence seq)
        {
            IEnumerator e = seq.GetEnumerator();

            e.MoveNext();
            version = (DerInteger)e.Current;

            e.MoveNext();
            digestAlgorithms = ((Asn1Set)e.Current);

            e.MoveNext();
            contentInfo = ContentInfo.GetInstance(e.Current);

            while (e.MoveNext())
            {
                Asn1Object o = (Asn1Object)e.Current;

                //
                // an interesting feature of SignedData is that there appear
                // to be varying implementations...
                // for the moment we ignore anything which doesn't fit.
                //
                if (o is Asn1TaggedObject)
                {
                    Asn1TaggedObject tagged = (Asn1TaggedObject)o;

                    switch (tagged.TagNo)
                    {
                        case 0:
                            certBer = tagged is BerTaggedObject;
                            certificates = Asn1Set.GetInstance(tagged, false);
                            break;
                        case 1:
                            crlsBer = tagged is BerTaggedObject;
                            crls = Asn1Set.GetInstance(tagged, false);
                            break;
                        default:
                            throw new ArgumentException("unknown tag value " + tagged.TagNo);
                    }
                }
                else
                {
                    signerInfos = (Asn1Set) o;
                }
            }
        }
        public SignerInfo(
            Asn1Sequence seq)
        {
            IEnumerator e = seq.GetEnumerator();

            e.MoveNext();
            version = (DerInteger) e.Current;

            e.MoveNext();
            sid = SignerIdentifier.GetInstance(e.Current);

            e.MoveNext();
            digAlgorithm = AlgorithmIdentifier.GetInstance(e.Current);

            e.MoveNext();
            object obj = e.Current;

            if (obj is Asn1TaggedObject)
            {
                authenticatedAttributes = Asn1Set.GetInstance((Asn1TaggedObject) obj, false);

                e.MoveNext();
                digEncryptionAlgorithm = AlgorithmIdentifier.GetInstance(e.Current);
            }
            else
            {
                authenticatedAttributes = null;
                digEncryptionAlgorithm = AlgorithmIdentifier.GetInstance(obj);
            }

            e.MoveNext();
            encryptedDigest = DerOctetString.GetInstance(e.Current);

            if (e.MoveNext())
            {
                unauthenticatedAttributes = Asn1Set.GetInstance((Asn1TaggedObject) e.Current, false);
            }
            else
            {
                unauthenticatedAttributes = null;
            }
        }
Exemple #8
0
 public static BerOctetString FromSequence(Asn1Sequence seq)
 {
     global::System.Collections.IList       list       = Platform.CreateArrayList();
     global::System.Collections.IEnumerator enumerator = seq.GetEnumerator();
     try
     {
         while (enumerator.MoveNext())
         {
             Asn1Encodable asn1Encodable = (Asn1Encodable)enumerator.get_Current();
             list.Add((object)asn1Encodable);
         }
     }
     finally
     {
         global::System.IDisposable disposable = enumerator as global::System.IDisposable;
         if (disposable != null)
         {
             disposable.Dispose();
         }
     }
     return(new BerOctetString((global::System.Collections.IEnumerable)list));
 }
Exemple #9
0
        public static BerOctetString FromSequence(Asn1Sequence seq)
        {
            IList       octets     = Platform.CreateArrayList();
            IEnumerator enumerator = seq.GetEnumerator();

            try
            {
                while (enumerator.MoveNext())
                {
                    Asn1Encodable current = (Asn1Encodable)enumerator.Current;
                    octets.Add(current);
                }
            }
            finally
            {
                if (enumerator is IDisposable disposable)
                {
                    IDisposable disposable;
                    disposable.Dispose();
                }
            }
            return(new BerOctetString(octets));
        }
Exemple #10
0
 /**
 * Constructs an X509 name
 * @param seq an Asn1 Sequence
 */
 public X509Name(Asn1Sequence seq) {
     IEnumerator e = seq.GetEnumerator();
     
     while (e.MoveNext()) {
         Asn1Set sett = (Asn1Set)e.Current;
         
         for (int i = 0; i < sett.Count; i++) {
             Asn1Sequence s = (Asn1Sequence)sett[i];
             String id = (String)DefaultSymbols[s[0]];
             if (id == null)
                 continue;
             ArrayList vs = (ArrayList)values[id];
             if (vs == null) {
                 vs = new ArrayList();
                 values[id] = vs;
             }
             vs.Add(((DerStringBase)s[1]).GetString());
         }
     }
 }
Exemple #11
0
 /**
 * Constructs an X509 name
 * @param seq an Asn1 Sequence
 */
 public X509Name(Asn1Sequence seq) {
     IEnumerator e = seq.GetEnumerator();
     
     while (e.MoveNext()) {
         Asn1Set sett = (Asn1Set)e.Current;
         
         for (int i = 0; i < sett.Count; i++) {
             Asn1Sequence s = (Asn1Sequence)sett[i];
             String id;
             if (!(s[0] is DerObjectIdentifier) || !DefaultSymbols.TryGetValue((DerObjectIdentifier)s[0], out id))
                 continue;
             List<string> vs;
             if (!values.TryGetValue(id, out vs)) {
                 vs = new List<string>();
                 values[id] = vs;
             }
             vs.Add(((DerStringBase)s[1]).GetString());
         }
     }
 }
        /**
         * Updates the permitted ISet of these name constraints with the intersection
         * with the given subtree.
         *
         * @param permitted The permitted subtrees
         */

        public void IntersectPermittedSubtree(Asn1Sequence permitted)
        {
            IDictionary subtreesMap = Platform.CreateHashtable();

            // group in ISets in a map ordered by tag no.
            for (IEnumerator e = permitted.GetEnumerator(); e.MoveNext(); )
            {
                GeneralSubtree subtree = GeneralSubtree.GetInstance(e.Current);

                int tagNo = subtree.Base.TagNo;
                if (subtreesMap[tagNo] == null)
                {
                    subtreesMap[tagNo] = new HashSet();
                }

                ((ISet)subtreesMap[tagNo]).Add(subtree);
            }

            for (IEnumerator it = subtreesMap.GetEnumerator(); it.MoveNext(); )
            {
                DictionaryEntry entry = (DictionaryEntry)it.Current;

                // go through all subtree groups
                switch ((int)entry.Key )
                {
                    case 1:
                        permittedSubtreesEmail = IntersectEmail(permittedSubtreesEmail,
                            (ISet)entry.Value);
                        break;
                    case 2:
                        permittedSubtreesDNS = intersectDNS(permittedSubtreesDNS,
                            (ISet)entry.Value);
                        break;
                    case 4:
                        permittedSubtreesDN = IntersectDN(permittedSubtreesDN,
                            (ISet)entry.Value);
                        break;
                    case 6:
                        permittedSubtreesURI = intersectURI(permittedSubtreesURI,
                            (ISet)entry.Value);
                        break;
                    case 7:
                        permittedSubtreesIP = IntersectIP(permittedSubtreesIP,
                            (ISet)entry.Value);
                        break;
                }
            }
        }