public string FormatValue() { if (Type == DERTagType.Universal) { UniversalTag tag = (UniversalTag)Tag; switch (tag) { case UniversalTag.GeneralString: return(ReadGeneralString()); case UniversalTag.OBJECT_IDENTIFIER: return(ReadObjID()); case UniversalTag.INTEGER: case UniversalTag.ENUMERATED: return(FormatInteger()); case UniversalTag.OCTET_STRING: return(BitConverter.ToString(Data)); case UniversalTag.BIT_STRING: return(string.Join(",", ReadBitString().Cast <bool>().Select(b => b ? 1 : 0))); case UniversalTag.UTF8String: case UniversalTag.IA5String: return(ReadString(tag)); case UniversalTag.GeneralizedTime: return(ReadGeneralizedTime()); } } return($"Len: {Data.Length:X}"); }
public string FormatValue() { if (Type == DERTagType.Universal) { UniversalTag tag = (UniversalTag)Tag; if (tag == UniversalTag.GeneralString) { return(ReadGeneralString()); } if (tag == UniversalTag.OBJECT_IDENTIFIER) { return(ReadObjID()); } if (tag == UniversalTag.INTEGER || tag == UniversalTag.ENUMERATED) { return(FormatInteger()); } if (tag == UniversalTag.OCTET_STRING) { return(BitConverter.ToString(Data)); } if (tag == UniversalTag.BIT_STRING) { return(string.Join(",", ReadBitString().Cast <bool>().Select(b => b ? 1 : 0))); } } return($"Len: {Data.Length:X}"); }
public string ReadString(UniversalTag tag_type) { if (!CheckPrimitive(tag_type)) { throw new InvalidDataException(); } switch (tag_type) { case UniversalTag.GeneralString: return(Encoding.ASCII.GetString(Data)); case UniversalTag.IA5String: return(Encoding.ASCII.GetString(Data)); case UniversalTag.UTF8String: return(Encoding.UTF8.GetString(Data)); case UniversalTag.GeneralizedTime: return(Encoding.ASCII.GetString(Data)); default: throw new InvalidDataException(); } }
public bool CheckPrimitive(UniversalTag tag) { return(Check(false, DERTagType.Universal, (int)tag)); }
public static void WriteUniversalValue(this BinaryWriter writer, bool constructed, UniversalTag tag, Action <BinaryWriter> data_builder) { MemoryStream stm = new MemoryStream(); data_builder(new BinaryWriter(stm)); WriteTaggedValue(writer, DERTagType.Universal, constructed, (int)tag, stm.ToArray()); }
public static void WriteUniversalValue(this BinaryWriter writer, bool constructed, UniversalTag tag, byte[] data) { WriteTaggedValue(writer, DERTagType.Universal, constructed, (int)tag, data); }
public ASN1PropertyAttribute(UniversalTag tag) : this(0, (int)tag) { }