using System; using System.Collections; namespace Mono.Security.X509 { // Token: 0x020000BD RID: 189 [Serializable] internal class X509CertificateCollection : CollectionBase, IEnumerable { // Token: 0x06000A50 RID: 2640 RVA: 0x0002E1C4 File Offset: 0x0002C3C4 public X509CertificateCollection() { } // Token: 0x06000A51 RID: 2641 RVA: 0x0002E1CC File Offset: 0x0002C3CC public X509CertificateCollection(X509Certificate[] value) { this.AddRange(value); } // Token: 0x06000A52 RID: 2642 RVA: 0x0002E1DC File Offset: 0x0002C3DC public X509CertificateCollection(X509CertificateCollection value) { this.AddRange(value); } // Token: 0x06000A53 RID: 2643 RVA: 0x0002E1EC File Offset: 0x0002C3EC IEnumerator IEnumerable.GetEnumerator() { return base.InnerList.GetEnumerator(); } // Token: 0x1700014F RID: 335 public X509Certificate this[int index] { get { return (X509Certificate)base.InnerList[index]; } set { base.InnerList[index] = value; } } // Token: 0x06000A56 RID: 2646 RVA: 0x0002E220 File Offset: 0x0002C420 public int Add(X509Certificate value) { if (value == null) { throw new ArgumentNullException("value"); } return base.InnerList.Add(value); } // Token: 0x06000A57 RID: 2647 RVA: 0x0002E240 File Offset: 0x0002C440 public void AddRange(X509Certificate[] value) { if (value == null) { throw new ArgumentNullException("value"); } for (int i = 0; i < value.Length; i++) { base.InnerList.Add(value[i]); } } // Token: 0x06000A58 RID: 2648 RVA: 0x0002E284 File Offset: 0x0002C484 public void AddRange(X509CertificateCollection value) { if (value == null) { throw new ArgumentNullException("value"); } for (int i = 0; i < value.InnerList.Count; i++) { base.InnerList.Add(value[i]); } } // Token: 0x06000A59 RID: 2649 RVA: 0x0002E2D4 File Offset: 0x0002C4D4 public bool Contains(X509Certificate value) { return this.IndexOf(value) != -1; } // Token: 0x06000A5A RID: 2650 RVA: 0x0002E2E4 File Offset: 0x0002C4E4 public void CopyTo(X509Certificate[] array, int index) { base.InnerList.CopyTo(array, index); } // Token: 0x06000A5B RID: 2651 RVA: 0x0002E2F4 File Offset: 0x0002C4F4 public new X509CertificateCollection.X509CertificateEnumerator GetEnumerator() { return new X509CertificateCollection.X509CertificateEnumerator(this); } // Token: 0x06000A5C RID: 2652 RVA: 0x0002E2FC File Offset: 0x0002C4FC public override int GetHashCode() { return base.InnerList.GetHashCode(); } // Token: 0x06000A5D RID: 2653 RVA: 0x0002E30C File Offset: 0x0002C50C public int IndexOf(X509Certificate value) { if (value == null) { throw new ArgumentNullException("value"); } byte[] hash = value.Hash; for (int i = 0; i < base.InnerList.Count; i++) { X509Certificate x509Certificate = (X509Certificate)base.InnerList[i]; if (this.Compare(x509Certificate.Hash, hash)) { return i; } } return -1; } // Token: 0x06000A5E RID: 2654 RVA: 0x0002E374 File Offset: 0x0002C574 public void Insert(int index, X509Certificate value) { base.InnerList.Insert(index, value); } // Token: 0x06000A5F RID: 2655 RVA: 0x0002E384 File Offset: 0x0002C584 public void Remove(X509Certificate value) { base.InnerList.Remove(value); } // Token: 0x06000A60 RID: 2656 RVA: 0x0002E394 File Offset: 0x0002C594 private bool Compare(byte[] array1, byte[] array2) { if (array1 == null && array2 == null) { return true; } if (array1 == null || array2 == null) { return false; } if (array1.Length != array2.Length) { return false; } for (int i = 0; i < array1.Length; i++) { if (array1[i] != array2[i]) { return false; } } return true; } // Token: 0x020000BE RID: 190 public class X509CertificateEnumerator : IEnumerator { // Token: 0x06000A61 RID: 2657 RVA: 0x0002E3EC File Offset: 0x0002C5EC public X509CertificateEnumerator(X509CertificateCollection mappings) { this.enumerator = ((IEnumerable)mappings).GetEnumerator(); } // Token: 0x17000150 RID: 336 // (get) Token: 0x06000A62 RID: 2658 RVA: 0x0002E400 File Offset: 0x0002C600 object IEnumerator.Current { get { return this.enumerator.Current; } } // Token: 0x06000A63 RID: 2659 RVA: 0x0002E410 File Offset: 0x0002C610 bool IEnumerator.MoveNext() { return this.enumerator.MoveNext(); } // Token: 0x06000A64 RID: 2660 RVA: 0x0002E420 File Offset: 0x0002C620 void IEnumerator.Reset() { this.enumerator.Reset(); } // Token: 0x17000151 RID: 337 // (get) Token: 0x06000A65 RID: 2661 RVA: 0x0002E430 File Offset: 0x0002C630 public X509Certificate Current { get { return (X509Certificate)this.enumerator.Current; } } // Token: 0x06000A66 RID: 2662 RVA: 0x0002E444 File Offset: 0x0002C644 public bool MoveNext() { return this.enumerator.MoveNext(); } // Token: 0x06000A67 RID: 2663 RVA: 0x0002E454 File Offset: 0x0002C654 public void Reset() { this.enumerator.Reset(); } // Token: 0x040002AC RID: 684 private IEnumerator enumerator; } } }