Provided by: asn1c_0.9.24+dfsg-1_amd64 bug


       unber - ASN.1 BER Decoder


       unber [-1] [-iindent] [-m] [-p] [-sskip] [-thex-string] [-] [infile...]


       unber  presents  the  internal  structure  of BER-encoded files as human readable text.  A
       single dash denotes the standard input.

       (The DER and CER formats are subsets of the BER and are also supported.)


       -1     Do not attempt to read the next BER structure after the first  one.   This  may  be
              useful  if  the  input  contains garbage past the single BER sequence.  By default,
              unber continues decoding until the end of file (input stream).

       -i indent
              Use the specified number of spaces for output indentation. Default is 4 spaces.

       -m     Generate shorter output while still preserving BER encoding information.

       -p     Do not attempt pretty-printing of  known  ASN.1  types  (BOOLEAN,  INTEGER,  OBJECT
              IDENTIFIER,  etc).  By  default,  some  ASN.1  types  are  converted  into the text
              representation. This option is required for enber(1).

       -s skip
              Ignore the first skip bytes in the input stream; useful  for  stripping  off  lower
              level protocol framing data.

       -t hex-string
              Interpret the hex-string as a sequence of hexadecimal values representing the start
              of BER TLV encoding. Print the human readable explanation.


       unber dumps the output in the regular XML format which preserves most of  the  information
       from the underlying binary encoding.

       The XML opening tag format is as follows:

       <tform O="off" T="tag" TL="tl_len" V="{Indefinite|v_len}" [A="type"] [F]>


       tform  Encoding  form the value is in: primitive ("P") or constructed ("C") or constructed
              with indefinite length ("I")

       off    Offset of the encoded element in the unber input stream.

       tag    The tag class and value in human readable form.

       tl_len The length of the TL (BER Tag and Length) encoding.

       v_len  The length of the value (V, encoded by the L), may be "Indefinite".

       type   Likely name of the underlying ASN.1 type (for UNIVERSAL tags).

       [F]    Indicates that the value was reformatted (pretty-printed). This will  never  appear
              in the output produced using -p command line option.

       Sample XML output:

       <I O="0" T="[UNIVERSAL 16]" TL="2" V="Indefinite" A="SEQUENCE">
         <P O="2" T="[UNIVERSAL 19]" TL="2" V="2" A="PrintableString">US</P>
         <C O="6" T="[UNIVERSAL 16]" TL="2" V="6" A="SEQUENCE">
           <P O="8" T="[UNIVERSAL 2]" TL="2" V="4" A="INTEGER" F>832970823</P>
         </C O="14" T="[UNIVERSAL 16]" A="SEQUENCE" L="8">
       </I O="14" T="[UNIVERSAL 0]" TL="2" L="16">


       Decode the given Tag/Length sequence specified in hexadecimal form:

           unber  -t "bf 20"

       Decode the DER file using two-spaces indentation:

           unber  -i 2   filename.der

       Decode the binary stream taken from the standard input:

           cat ... | unber -

       Decode the binary stream and encode it back into an identical stream (see enber(1)):

           cat ... | unber -p - | enber - > filename.ber


       The constructed XML output is not necessarily well-formed.

       When  indefinite  length encoding is being used, the BER sequence, which is not terminated
       with the end-of-content octets, will cause the terminating  </I>  XML  tag  to  disappear.
       Thus, invalid BER framing directly causes invalid XML output.

       The enber(1) utility understands such XML correctly.


       enber(1), asn1c(1)


       Lev Walkin <>