Cryptix ASN.1 Kit

Version 0.1.10 - Build 29

Table of Contents

  1. What is it?
  2. What are the pre-requisites?
  3. How to install?
  4. Are there any examples on how to use it?
  5. Where is the API documentation?
  6. Are there any good references on ASN.1?
  7. How much does it cost?
  8. What sort of licence is it under?
  9. Changes since last release
  10. Known limitations
  11. Roadmap

1. What is it?

The Cryptix ASN.1 Kit is a collection of software programs -collectively referred to as Software- that allows a programmer to:

The Software aims at facilitating the task programmers face in coding, accessing and generating java-bound both types and values defined as ASN.1 constructs or encoded as such. At the same time, the Software demonstrates the power of ASN.1 in separating the notation from its encoding(s). The test classes, included in the distribution, use a DER encoder/decoder as well as a XER encoder to demonstrate how one can:

  1. Define an ASN.1 construct, from a given specifications file; ie. parse that file, generate the .java classes and compile them;
  2. Decode an instance from a DER input data stream,
  3. Encode the same to an XML output data stream.

2. What are the pre-requisites?

As a User

The Kit uses the following tools in addition to a JDK 2 (this release has been tested with the JDK 1.3.1):

  1. The SableCC compiler's compiler tool, hosted at SourceForge,
  2. The log4j logging framework: an Apache project,
  3. The java-getopt package from Aaron Renn.

As a Developer

This software is being developed, tested and maintained using the following tools:

  1. The Jikes Java compiler,
  2. The GNU Cygwin Tools, especially bash and make.
  3. The JUnit regression test framework from junit.org.

This project is hosted on SourceForge Logo .

To actively participate in its on-going development, register as a developer and e-mail me your user name and ID.

3. How to install?

  1. Unpack the distribution to a directory;
  2. Get copies of the required software, extract the relevant .jar from each of them and put it in the lib folder inside the installation directory / folder.
  3. For the getopt package only, just rename the .jar file to java-getopt.jar.

4. Are there any examples on how to use it?

There are two examples included in the distribution. They are part of the test package (located in src/test in the distribution folder). Both test classes assume that the .java classes for an ASN.1 specifications file (cryptix.asn in the etc folder inside the installation folder) have been already generated and compiled --The Makefile test target does just that:

5. Where is the API documentation?

To access the on-line version of the documentation, click here.

The Javadoc API documentation can be generated from the source files which are included in the distribution. If you have installed the GNU Cygwin Tools then:

If you have already generated the documentation as described earlier, then click here to browse your local copy.

If you are not a developer, then the only additional documentation is how to use the Main tool of the distribution which is effectively the Java code generator. To view a usage of the tool, type the following at your console:

   java -jar lib/cryptix-asn1.jar -h
or
   java -jar lib/cryptix-asn1.jar --help

you should see something like the following displayed on your console:

Cryptix ASN.1 Kit ASN.1-to-Java compiler
Copyright (C) 1997-2001 The Cryptix Foundation Limited.
All rights reserved.

Revision:
Date:

Usage:
  java -jar cryptix-asn1.jar [options] [--] specification...
or
  java cryptix.asn1.tools.Main [options] [--] specification...

Where options are:
  -h
  --help
     Prints this text.
  -D[
directory]
  --Destination=[
directory]
     The name of the destination directory for generated sources.
     If unspecified, then the current directory is assumed.
  -P 
module-name=
package-name
  -P

module-name=
package-name=

  --Package=

module-name=
package-name
     The name of a package to map an ASN.1 module name to. This may
     be repeated as many times as required. If no mapping is found,
     the ASN.1 module name will be used as the package name.
  specification
     A non-empty, space separated, list of ASN.1 specifications
     file(s) to process.

Example:
  java -jar cryptix-asn1.jar \
     -Dtmp \
     -P CryptixUsefulDefinitions=cryptix.asn1.common \
     -P PKCS-6=cryptix.asn1.pkc6 \
     cryptix.asn pkcs6

6. Are there any good references on ASN.1?

7. How much does it cost?

The Software is free for commercial and non-commercial use. The Software also includes the .java source files.

8. What sort of licence is it under?

The Software is licensed under the Cryptix General Licence (CGL). A copy of the CGL is included in the distribution. It is also available from the Cryptix home page.

9. Changes since last release

The complete list of changes is detailed in the ChangeLog file included in the distribution.

The major change though is the use of SableCC instead of JavaCC for the underlying compiler-generator tool.

10. Known limitations

11. Roadmap

Contact

The maintainer of this project is Raif S. Naffah.