/// <summary>
 /// Decodes an INTEGER value.
 /// </summary>
 /// <param name="Input">Input stream.</param>
 /// <returns>INTEGER value</returns>
 public long DecodeINTEGER(Stream Input)
 {
     return(BER.DecodeINTEGER(this.input));
 }
 /// <summary>
 /// Decodes an enumerated value.
 /// </summary>
 /// <typeparam name="T">Enumeration type.</typeparam>
 /// <param name="Input">Input stream.</param>
 /// <returns>Enumeration value</returns>
 public Enum DecodeEnum <T>(Stream Input)
     where T : Enum
 {
     return(BER.DecodeEnum <T>(this.input));
 }
 /// <summary>
 /// Decodes the length of a contents section.
 /// </summary>
 /// <param name="Input">Input stream.</param>
 /// <returns>Length of contents (if definite), or -1 (if indefinite, and determined by an end-of-contents section).</returns>
 public long DecodeLength(Stream Input)
 {
     return(BER.DecodeLength(this.input));
 }
 /// <summary>
 /// Decodes a BOOLEAN value.
 /// </summary>
 /// <param name="Input">Input stream.</param>
 /// <returns>BOOLEAN value</returns>
 public bool DecodeBOOLEAN(Stream Input)
 {
     return(BER.DecodeBOOLEAN(this.input));
 }
 /// <summary>
 /// Decodes a DURATION value.
 /// </summary>
 /// <param name="Input">Input stream.</param>
 /// <returns>DURATION value</returns>
 public Duration DecodeDuration(Stream Input)
 {
     return(BER.DecodeDuration(this.input));
 }
 /// <summary>
 /// Decodes an identifier from the stream.
 /// </summary>
 /// <param name="Constructed">If the identifier is constructed (true) or primitive (false)</param>
 /// <param name="Class">Class of tag.</param>
 /// <returns>TAG</returns>
 public long DecodeIdentifier(out bool Constructed, out TagClass Class)
 {
     return(BER.DecodeIdentifier(this.input, out Constructed, out Class));
 }
 /// <summary>
 /// Decodes a TIME-OF-DAY value.
 /// </summary>
 /// <param name="Input">Input stream.</param>
 /// <returns>TIME-OF-DAY value</returns>
 public TimeSpan DecodeTimeOfDay(Stream Input)
 {
     return(BER.DecodeTimeOfDay(this.input));
 }
 /// <summary>
 /// Decodes a NULL value.
 /// </summary>
 /// <param name="Input">Input stream.</param>
 /// <returns>NULL value</returns>
 public void DecodeNull(Stream Input)
 {
     BER.DecodeNull(this.input);
 }
 /// <summary>
 /// Decodes a PrintableString value.
 /// </summary>
 /// <param name="Input">Input stream.</param>
 /// <returns>PrintableString value</returns>
 public string DecodePrintableString(Stream Input)
 {
     return(BER.DecodePrintableString(this.input));
 }
 /// <summary>
 /// Decodes a NumericString value.
 /// </summary>
 /// <param name="Input">Input stream.</param>
 /// <returns>NumericString value</returns>
 public string DecodeNumericString(Stream Input)
 {
     return(BER.DecodeNumericString(this.input));
 }
 /// <summary>
 /// Decodes a UniversalString value.
 /// </summary>
 /// <param name="Input">Input stream.</param>
 /// <returns>UniversalString value</returns>
 public string DecodeUniversalString(Stream Input)
 {
     return(BER.DecodeUniversalString(this.input));
 }
 /// <summary>
 /// Decodes a Utf8String value.
 /// </summary>
 /// <param name="Input">Input stream.</param>
 /// <returns>Utf8String value</returns>
 public string DecodeUtf8String(Stream Input)
 {
     return(BER.DecodeUtf8String(this.input));
 }
 /// <summary>
 /// Decodes a RELATIVE-OID value.
 /// </summary>
 /// <param name="Input">Input stream.</param>
 /// <returns>RELATIVE-OID value</returns>
 public int[] DecodeRelativeObjectId(Stream Input)
 {
     return(BER.DecodeRelativeObjectId(this.input));
 }
 /// <summary>
 /// Decodes a REAL value.
 /// </summary>
 /// <param name="Input">Input stream.</param>
 /// <returns>REAL value</returns>
 public double DecodeREAL(Stream Input)
 {
     return(BER.DecodeREAL(this.input));
 }
 /// <summary>
 /// Decodes a DATE-TIME value.
 /// </summary>
 /// <param name="Input">Input stream.</param>
 /// <returns>DATE-TIME value</returns>
 public DateTime DecodeDateTime(Stream Input)
 {
     return(BER.DecodeDateTime(this.input));
 }
 /// <summary>
 /// Decodes a BIT STRING value.
 /// </summary>
 /// <param name="Input">Input stream.</param>
 /// <param name="NrUnusedBits">Number of unused bits.</param>
 /// <returns>BIT STRING value</returns>
 public byte[] DecodeBitString(Stream Input, out int NrUnusedBits)
 {
     return(BER.DecodeBitString(this.input, out NrUnusedBits));
 }
 /// <summary>
 /// Decodes a OCTET STRING value.
 /// </summary>
 /// <param name="Input">Input stream.</param>
 /// <returns>OCTET STRING value</returns>
 public byte[] DecodeOctetString(Stream Input)
 {
     return(BER.DecodeOctetString(this.input));
 }