Files

72 lines
1.5 KiB
C#
Raw Permalink Normal View History

2026-08-27 10:55:23 -06:00
using System.Collections.Generic;
using System.Text;
namespace Intelix.Helper.Encrypted;
public class Asn1DerObject
{
public Asn1Der.Type Type { get; set; }
public int Lenght { get; set; }
public List<Asn1DerObject> Objects { get; }
public byte[] Data { get; set; }
public Asn1DerObject()
{
Objects = new List<Asn1DerObject>();
}
public override string ToString()
{
StringBuilder stringBuilder = new StringBuilder();
StringBuilder stringBuilder2 = new StringBuilder();
switch (Type)
{
case Asn1Der.Type.Sequence:
stringBuilder.AppendLine("SEQUENCE {");
break;
case Asn1Der.Type.Integer:
{
byte[] data = Data;
foreach (byte b3 in data)
{
stringBuilder2.AppendFormat("{0:X2}", b3);
}
stringBuilder.AppendLine("\tINTEGER " + stringBuilder2);
break;
}
case Asn1Der.Type.OctetString:
{
byte[] data = Data;
foreach (byte b2 in data)
{
stringBuilder2.AppendFormat("{0:X2}", b2);
}
stringBuilder.AppendLine("\tOCTETSTRING " + stringBuilder2);
break;
}
case Asn1Der.Type.ObjectIdentifier:
{
byte[] data = Data;
foreach (byte b in data)
{
stringBuilder2.AppendFormat("{0:X2}", b);
}
stringBuilder.AppendLine("\tOBJECTIDENTIFIER " + stringBuilder2);
break;
}
}
foreach (Asn1DerObject @object in Objects)
{
stringBuilder.Append(@object);
}
if (Type.Equals(Asn1Der.Type.Sequence))
{
stringBuilder.AppendLine("}");
}
return stringBuilder.ToString();
}
}