CODEC is a Java package for encoding and decoding ASN.1 data structures which was developed as part of the SeMoA project. It is distributed as open source.

"CODEC" is an abbreviation for COder/DECoder. It supports the Basic Encoding Rules (BER) as well as the Distinguished Encoding Rules (DER).

Within CODEC there are following packages corresponding to the data types defined by the Public Key Cryptography family of Standards:

  • PKCS1: RSA Encryption Standard
  • PKCS7: Cryptographic Message Syntax Standard
  • PKCS8: Private-Key Information Syntax Standard
  • PKCS10: Certification Request Syntax Standard
  • PKCS12: Personal Information Exchange Syntax Standard

In addition, CODEC contains two packages according to the X.500 recommendation series of the International Telecommunication Union:

  • X.501: Directory-Model and
  • X.509: Directory-Authentication Framework.

CODEC includes classes to encode and decode according to Base64 and hexadecimal.

The CODEC tutorial gives an overview of CODEC and explains how to use CODEC to encode and/or decode ASN.1 structures with CODEC.

CODEC was developed and is maintained in collaboration with the Technische Universitšt Darmstadt.

The Java crypto-provider FlexiProvider which is developed at the TU Darmstadt is based on the CODEC ASN.1 package.