The classes provided in this package can be used to encode and decode Abstract Syntax Notation One (ASN.1) object types using BER (Basic Encding Rules).

Abstract Syntax Notation One (ASN.1) is the language used by the OSI protocols for describing abstract syntax. ASN.1 as defined in ISO documents 8824.2 and 8825.2.

Basic Encoding Rules or BER are historically the original encoding rules for ASN.1. The LDAP protocol uses the BER encoding format and this package includes classes that allow ASN.1 to be encoded and decoded into the BER format.

However the classes have been built to be flexible enought to allow an application to provide its own ASN1 Encoder class. This class could encode data into any encoding format.

For example a particular application might want to use PER (Packed Encoding Rules) to encode the supported ASN.1 objects. This application would however be required to supply its own PER Encoder and PER Decoder classes. These application provided classes will need to implement the ASN1Encoder and ASN1Decoder interfaces defined in this package.

Note that LDAP uses BER encoding and the Novell provided package already includes a BEREncoder and BERDEcoder class.

These classes can be used by 3rd party developers that wish to develop new LDAP controls or extensions. These classes could also be used by an arbitrary JAVA applcation that wishes to encode and decode data as defined in the ASN.1 format.

## Package Specification

This package is designed to work on LDAPv3 servers. It has not been tested for backwards compatibility with LDAPv2 servers.