# Package org.bouncycastle.asn1

A library for parsing and writing ASN.1 objects. Support is provided for DER and BER encoding.

- Interface Summary
  Interface | Description
  --- | ---
  ASN1ApplicationSpecificParser | Interface to parse ASN.1 ApplicationSpecific objects.
  ASN1Choice | Marker interface for CHOICE objects - if you implement this in a role your own object any attempt to tag the object implicitly will convert the tag to an explicit one as the encoding rules require.
  ASN1Encodable | Basic interface to produce serialisers for ASN.1 encodings.
  ASN1Encoding | Supported encoding formats.
  ASN1OctetStringParser | A basic parser for an OCTET STRING object
  ASN1SequenceParser | A basic parser for a SEQUENCE object
  ASN1SetParser | A basic parser for a SET object
  ASN1String | General interface implemented by ASN.1 STRING objects for extracting the content String.
  ASN1TaggedObjectParser | Interface for the parsing of a generic tagged ASN.1 object.
  BERTags |
  InMemoryRepresentable | Interface implemented by objects that can be converted from streaming to in-memory objects.

- Class Summary
  Class | Description
  --- | ---
  ASN1ApplicationSpecific | Base class for an ASN.1 ApplicationSpecific object
  ASN1BitString | Base class for BIT STRING objects
  ASN1Boolean | Public facade of ASN.1 Boolean data.
  ASN1EncodableVector | Mutable class for building ASN.1 constructed objects such as SETs or SEQUENCEs.
  ASN1Enumerated | Class representing the ASN.1 ENUMERATED type.
  ASN1External | Class representing the DER-type External
  ASN1GeneralizedTime | Base class representing the ASN.1 GeneralizedTime type.
  ASN1Generator | Basic class for streaming generators.
  ASN1InputStream | A general purpose ASN.1 decoder - note: this class differs from the others in that it returns null after it has read the last object in the stream.
  ASN1Integer | Class representing the ASN.1 INTEGER type.
  ASN1Null | A NULL object - use DERNull.INSTANCE for populating structures.
  ASN1Object | Base class for defining an ASN.1 object.
  ASN1ObjectIdentifier | Class representing the ASN.1 OBJECT IDENTIFIER type.
  ASN1OctetString | Abstract base for the ASN.1 OCTET STRING data type
  ASN1OutputStream | Stream that produces output based on the default encoding for the passed in objects.
  ASN1Primitive | Base class for ASN.1 primitive objects.
  ASN1Sequence | ASN.1 `SEQUENCE` and `SEQUENCE OF` constructs.
  ASN1Set | ASN.1 `SET` and `SET OF` constructs.
  ASN1StreamParser | A parser for ASN.1 streams which also returns, where possible, parsers for the objects it encounters.
  ASN1TaggedObject | ASN.1 TaggedObject - in ASN.1 notation this is any object preceded by a [n] where n is some number - these are assumed to follow the construction rules (as with sequences).
  ASN1UTCTime | - * UTC time object.
  BERApplicationSpecific | An indefinite-length encoding version of an ASN.1 ApplicationSpecific object.
  BERApplicationSpecificParser | A parser for indefinite-length ASN.1 ApplicationSpecific objects.
  BERGenerator | Base class for generators for indefinite-length structures.
  BEROctetString | ASN.1 OctetStrings, with indefinite length rules, and constructed form support.
  BEROctetStringGenerator | A generator for indefinite-length OCTET STRINGs
  BEROctetStringParser | A parser for indefinite-length OCTET STRINGs.
  BERSequence | Indefinite length SEQUENCE of objects.
  BERSequenceGenerator | A stream generator for DER SEQUENCEs
  BERSequenceParser | Parser for indefinite-length SEQUENCEs.
  BERSet | Indefinite length `SET` and `SET OF` constructs.
  BERSetParser | Parser for indefinite-length SETs.
  BERTaggedObject | BER TaggedObject - in ASN.1 notation this is any object preceded by a [n] where n is some number - these are assumed to follow the construction rules (as with sequences).
  BERTaggedObjectParser | Parser for indefinite-length tagged objects.
  DERApplicationSpecific | A DER encoding version of an application specific object.
  DERBitString | A BIT STRING with DER encoding - the first byte contains the count of padding bits included in the byte array's last byte.
  DERBMPString | DER BMPString object encodes BMP (Basic Multilingual Plane) subset (aka UCS-2) of UNICODE (ISO 10646) characters in codepoints 0 to 65535.
  DERBoolean | Deprecated. use ASN1Boolean
  DEREnumerated | Deprecated. Use ASN1Enumerated instead of this.
  DERExternal | Class representing the DER-type External
  DERExternalParser | Parser DER EXTERNAL tagged objects.
  DERGeneralizedTime | DER Generalized time object.
  DERGeneralString | ASN.1 GENERAL-STRING data type.
  DERGenerator | Basic class for streaming DER encoding generators.
  DERGraphicString |
  DERIA5String | DER IA5String object - this is a ISO 646 (ASCII) string encoding code points 0 to 127.
  DERInteger | Deprecated. Use ASN1Integer instead of this,
  DERNull | An ASN.1 DER NULL object.
  DERNumericString | DER NumericString object - this is an ascii string of characters {0,1,2,3,4,5,6,7,8,9, }.
  DERObjectIdentifier | Deprecated. Use ASN1ObjectIdentifier instead of this,
  DEROctetString | Carrier class for a DER encoding OCTET STRING
  DEROctetStringParser | Parser for DER encoded OCTET STRINGS
  DEROutputStream | Stream that outputs encoding based on distinguished encoding rules.
  DERPrintableString | DER PrintableString object.
  DERSequence | Definite length SEQUENCE, encoding tells explicit number of bytes that the content of this sequence occupies.
  DERSequenceGenerator | A stream generator for DER SEQUENCEs
  DERSet | A DER encoded SET object
  DERT61String | DER T61String (also the teletex string), try not to use this if you don't need to.
  DERTaggedObject | DER TaggedObject - in ASN.1 notation this is any object preceded by a [n] where n is some number - these are assumed to follow the construction rules (as with sequences).
  DERUniversalString | DER UniversalString object - encodes UNICODE (ISO 10646) characters using 32-bit format.
  DERUTCTime | DER UTC time object.
  DERUTF8String | DER UTF8String object.
  DERVideotexString |
  DERVisibleString | DER VisibleString object encoding ISO 646 (ASCII) character code points 32 to 126.
  DLApplicationSpecific | A DER encoding version of an application specific object.
  DLBitString | A Definite length BIT STRING
  DLExternal | Class representing the Definite-Length-type External
  DLSequence | The DLSequence encodes a SEQUENCE using definite length form.
  DLSequenceParser | Parser class for DL SEQUENCEs.
  DLSet | The DLSet encodes ASN.1 SET value without element ordering, and always using definite length form.
  DLSetParser | Parser class for DL SETs.
  DLTaggedObject | Definite Length TaggedObject - in ASN.1 notation this is any object preceded by a [n] where n is some number - these are assumed to follow the construction rules (as with sequences).
  OIDTokenizer | Class for breaking up an OID into it's component tokens, ala java.util.StringTokenizer.

- Exception Summary
  Exception | Description
  --- | ---
  ASN1Exception | Exception thrown in cases of corrupted or unexpected data in a stream.
  ASN1ParsingException | Exception thrown when correctly encoded, but unexpected data is found in a stream while building an object.