Classes | |
| 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... | |
Typedefs | |
|
typedef basic_string< unsigned char > | ustring |
| Internally used string type, suitable for raw data. | |
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.
Created December 17, 2002
1.4.1