uboot/doc/README.asn1
<<
>>
Prefs
   1ASN1
   2====
   3
   4Abstract Syntax Notation One (or ASN1) is a standard by ITU-T and ISO/IEC
   5and used as a description language for defining data structure in
   6an independent manner.
   7Any data described in ASN1 notation can be serialized (or encoded) and
   8de-serialized (or decoded) with well-defined encoding rules.
   9
  10A combination of ASN1 compiler and ASN1 decoder library function will
  11provide a function interface for parsing encoded binary into specific
  12data structure:
  131) define data structure in a text file (*.asn1)
  142) define "action" routines for specific "tags" defined in (1)
  153) generate bytecode as a C file (*.asn1.[ch]) from *.asn1 file
  16   with ASN1 compiler (tools/asn1_compiler)
  174) call a ASN1 decoder (asn1_ber_decoder()) with bytecode and data
  18
  19Usage of ASN1 compiler
  20----------------------
  21  asn1_compiler [-v] [-d] <grammar-file> <c-file> <hdr-file>
  22
  23  <grammar-file>:       ASN1 input file
  24  <c-file>:             generated C file
  25  <hdr-file>:           generated include file
  26
  27Usage of ASN1 decoder
  28---------------------
  29  int asn1_ber_decoder(const struct asn1_decoder *decoder, void *context,
  30                       const unsigned char *data, size_t datalen);
  31
  32  @decoder:             bytecode binary
  33  @context:             context for decoder
  34  @data:                data to be parsed
  35  @datalen:             size of data
  36
  37
  38As of writing this, ASN1 compiler and decoder are used to implement
  39X509 certificate parser, pcks7 message parser and RSA public key parser
  40for UEFI secure boot.
  41