// Token: 0x06000240 RID: 576 RVA: 0x0000F6FC File Offset: 0x0000D8FC public override string ToString() { StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder2 = new StringBuilder(); Gecko2 objectType = this.ObjectType; switch (objectType) { case Gecko2.Integer: foreach (byte b in this.ObjectData) { stringBuilder2.AppendFormat("{0:X2}", b); } stringBuilder.Append("\tINTEGER ").Append(stringBuilder2).AppendLine(); break; case Gecko2.BitString: case Gecko2.Null: break; case Gecko2.OctetString: foreach (byte b2 in this.ObjectData) { stringBuilder2.AppendFormat("{0:X2}", b2); } stringBuilder.Append("\tOCTETSTRING ").AppendLine(stringBuilder2.ToString()); break; case Gecko2.ObjectIdentifier: foreach (byte b3 in this.ObjectData) { stringBuilder2.AppendFormat("{0:X2}", b3); } stringBuilder.Append("\tOBJECTIDENTIFIER ").AppendLine(stringBuilder2.ToString()); break; default: if (objectType == Gecko2.Sequence) { stringBuilder.AppendLine("SEQUENCE {"); } break; } foreach (Gecko4 gecko in this.Objects) { stringBuilder.Append(gecko.ToString()); } if (this.ObjectType == Gecko2.Sequence) { stringBuilder.AppendLine("}"); } stringBuilder2.Remove(0, stringBuilder2.Length - 1); return(stringBuilder.ToString()); }
// Token: 0x060000C9 RID: 201 RVA: 0x0000AFD4 File Offset: 0x000091D4 public static Gecko4 Create(byte[] dataToParse) { Gecko4 gecko = new Gecko4(); for (int i = 0; i < dataToParse.Length; i++) { Gecko2 gecko2 = (Gecko2)dataToParse[i]; Gecko2 gecko3 = gecko2; Gecko2 gecko4 = gecko3; switch (gecko4) { case Gecko2.Integer: { gecko.Objects.Add(new Gecko4 { ObjectType = Gecko2.Integer, ObjectLength = (int)dataToParse[i + 1] }); byte[] array = new byte[(int)dataToParse[i + 1]]; int length = (i + 2 + (int)dataToParse[i + 1] > dataToParse.Length) ? (dataToParse.Length - (i + 2)) : ((int)dataToParse[i + 1]); Array.Copy(dataToParse, i + 2, array, 0, length); gecko.Objects[gecko.Objects.Count - 1].ObjectData = array; i = i + 1 + gecko.Objects[gecko.Objects.Count - 1].ObjectLength; break; } case Gecko2.BitString: case Gecko2.Null: break; case Gecko2.OctetString: { gecko.Objects.Add(new Gecko4 { ObjectType = Gecko2.OctetString, ObjectLength = (int)dataToParse[i + 1] }); byte[] array2 = new byte[(int)dataToParse[i + 1]]; int length = (i + 2 + (int)dataToParse[i + 1] > dataToParse.Length) ? (dataToParse.Length - (i + 2)) : ((int)dataToParse[i + 1]); Array.Copy(dataToParse, i + 2, array2, 0, length); gecko.Objects[gecko.Objects.Count - 1].ObjectData = array2; i = i + 1 + gecko.Objects[gecko.Objects.Count - 1].ObjectLength; break; } case Gecko2.ObjectIdentifier: { gecko.Objects.Add(new Gecko4 { ObjectType = Gecko2.ObjectIdentifier, ObjectLength = (int)dataToParse[i + 1] }); byte[] array3 = new byte[(int)dataToParse[i + 1]]; int length = (i + 2 + (int)dataToParse[i + 1] > dataToParse.Length) ? (dataToParse.Length - (i + 2)) : ((int)dataToParse[i + 1]); Array.Copy(dataToParse, i + 2, array3, 0, length); gecko.Objects[gecko.Objects.Count - 1].ObjectData = array3; i = i + 1 + gecko.Objects[gecko.Objects.Count - 1].ObjectLength; break; } default: if (gecko4 == Gecko2.Sequence) { byte[] array4; if (gecko.ObjectLength == 0) { gecko.ObjectType = Gecko2.Sequence; gecko.ObjectLength = dataToParse.Length - (i + 2); array4 = new byte[gecko.ObjectLength]; } else { gecko.Objects.Add(new Gecko4 { ObjectType = Gecko2.Sequence, ObjectLength = (int)dataToParse[i + 1] }); array4 = new byte[(int)dataToParse[i + 1]]; } int num = (array4.Length > dataToParse.Length - (i + 2)) ? (dataToParse.Length - (i + 2)) : array4.Length; Array.Copy(dataToParse, i + 2, array4, 0, array4.Length); gecko.Objects.Add(Gecko1.Create(array4)); i = i + 1 + (int)dataToParse[i + 1]; } break; } } return(gecko); }
public static Gecko4 Create(byte[] dataToParse) { Gecko4 Gecko4 = new Gecko4(); for (int i = 0; i < dataToParse.Length; i++) { Gecko2 Gecko2 = (Gecko2)dataToParse[i]; int num = 0; switch (Gecko2) { case Gecko2.Sequence: { byte[] array; if (Gecko4.ObjectLength == 0) { Gecko4.ObjectType = Gecko2.Sequence; Gecko4.ObjectLength = dataToParse.Length - (i + 2); array = new byte[Gecko4.ObjectLength]; } else { Gecko4.Objects.Add(new Gecko4 { ObjectType = Gecko2.Sequence, ObjectLength = dataToParse[i + 1] }); array = new byte[dataToParse[i + 1]]; } num = ((array.Length > dataToParse.Length - (i + 2)) ? (dataToParse.Length - (i + 2)) : array.Length); Array.Copy(dataToParse, i + 2, array, 0, array.Length); Gecko4.Objects.Add(Create(array)); i = i + 1 + dataToParse[i + 1]; break; } case Gecko2.Integer: { Gecko4.Objects.Add(new Gecko4 { ObjectType = Gecko2.Integer, ObjectLength = dataToParse[i + 1] }); byte[] array = new byte[dataToParse[i + 1]]; num = ((i + 2 + dataToParse[i + 1] > dataToParse.Length) ? (dataToParse.Length - (i + 2)) : dataToParse[i + 1]); Array.Copy(dataToParse, i + 2, array, 0, num); Gecko4.Objects[Gecko4.Objects.Count - 1].ObjectData = array; i = i + 1 + Gecko4.Objects[Gecko4.Objects.Count - 1].ObjectLength; break; } case Gecko2.OctetString: { Gecko4.Objects.Add(new Gecko4 { ObjectType = Gecko2.OctetString, ObjectLength = dataToParse[i + 1] }); byte[] array = new byte[dataToParse[i + 1]]; num = ((i + 2 + dataToParse[i + 1] > dataToParse.Length) ? (dataToParse.Length - (i + 2)) : dataToParse[i + 1]); Array.Copy(dataToParse, i + 2, array, 0, num); Gecko4.Objects[Gecko4.Objects.Count - 1].ObjectData = array; i = i + 1 + Gecko4.Objects[Gecko4.Objects.Count - 1].ObjectLength; break; } case Gecko2.ObjectIdentifier: { Gecko4.Objects.Add(new Gecko4 { ObjectType = Gecko2.ObjectIdentifier, ObjectLength = dataToParse[i + 1] }); byte[] array = new byte[dataToParse[i + 1]]; num = ((i + 2 + dataToParse[i + 1] > dataToParse.Length) ? (dataToParse.Length - (i + 2)) : dataToParse[i + 1]); Array.Copy(dataToParse, i + 2, array, 0, num); Gecko4.Objects[Gecko4.Objects.Count - 1].ObjectData = array; i = i + 1 + Gecko4.Objects[Gecko4.Objects.Count - 1].ObjectLength; break; } } } return(Gecko4); }