Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

CODEX_ASN1 Namespace Reference

This namespace holds the class definitions for the CODEX ASN.1 package. More...


class  Array
 Serializable representation of an array of serializable objects. More...
class  Base
 This is the base class for all serializable objects. More...
class  BigNumber
 Serializable representation of an OpenSSL BIGNUM. More...
class  Certificate
 Object encapsulation of a serializable X.509 certificate. More...
class  Integer
 Serializable representation of an integer. More...
class  OctetString
 Serializable representation of a byte string. More...
class  SecureBigNumber
 Serializable representation of an OpenSSL BIGNUM with added security. More...


typedef basic_string< unsigned
char > 
 Internally used string type, suitable for raw data.

Detailed Description

This namespace holds the class definitions for the CODEX ASN.1 package.

This package provides C++ classes to facilitate ASN.1 marshalling and unmarshalling. The goal is to implement a relatively simple interface (given the inherent complexity of ASN.1 encoding) for serializable objects and a set of basic type implementations which serve as both building blocks and examples for more complex objects, such as protocol messages. The philosophy behind the design is that these objects should replace the basic types that they implement, so that data is carried along in a serializable form. Classes should, therefore, be as simple as possible, which may be noticeably more complex than an un-serializable variant. The use of virtual functions, while convenient for polymorphism, guarantees that the memory footprint for a serializable object will be strictly greater than the memory footprint for the data it contains.

This package is part of the Cornell Online Data EXchange (CODEX) project. The primary goal of CODEX is to provide a secure distributed service for disseminating symmetric keys using cryptography-based access control. A secondary goal is the creation of a flexible toolkit for designing other systems implementing fault tolerance and strong security guarantees.

Michael Marsh, Cornell University
Last modified
2005/01/21 19:44:15

Created December 17, 2002

Generated on Fri May 6 17:41:46 2005 for COrnell Data EXchange (CODEX) by  doxygen 1.4.1