diff -r 000000000000 -r 2c201484c85f cryptoservices/certificateandkeymgmt/docs/doxygen_docs/crypto_DLL.dox --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cryptoservices/certificateandkeymgmt/docs/doxygen_docs/crypto_DLL.dox Wed Jul 08 11:25:26 2009 +0100 @@ -0,0 +1,48 @@ +/** + +
+ +@page crypto_DLL_overview Crypto.dll overview + +The Crypto component (\c crypto.dll) is provided for general use in certificate management: any certificate specification +will use some or all of its functionality. + +Elements of a @ref certificate which are common across different certificate formats are implemented in this DLL as a set +of abstract base classes. Thus DLLs implementing a particular certificate specification such as @ref X509 "X.509" or @ref WTLS +(i.e. \c X509.dll, \c WTLSCert.dll) are expected to link to this DLL and derive its own specific classes from these, as +well as adding any classes that only exist in that specification (X.509 extensions for example). + +Classes defined here are agnostic about the particular encoding scheme used for objects so do not include any constructors +for initialisation from binary data. So derived classes for a given specification will add constructors to initialise the +objects from encoded binary data. + +This DLL also helps localise the interface between certificate management and the cryptographic algorithms supporting +it. It is called \c crypto.dll rather than \c cert.dll because its role expands beyond certificates. + +Public classes are defined in the header file \c signed.h. Of the classes defined there, the following are intended for direct +use by client code: + +@li \c TAlgorithmId -- an enumeration of the @ref asymmetric and digest algorithms supported. + +@li \c CValidityPeriod -- consists of a start time and an end time, with accessors for each. + +@li \c CAlgorithmIdentifier -- includes the \c TAlgorithmId for the algorithm and the parameters in their encoded form. Also + implements an equality operator. + +@li \c CSigningAlgorithmIdentifier -- consists of two \c CAlgorithmIdentifier classes, one for the digest algorithm and one for + the @ref asymmetric algorithm. Also implements an equality operator. + +@li \c CSubjectPublicKeyInfo -- consists of an algorithm identifier and the encoded key. + +@li \c CSignedObject -- this class implements a function to verify its signature given an encoded key. It also implements an + \c ExternalizeL() function which simply streams out the encoding of the entire object which enables the fingerprint (and + the signed data) to be regenerated on restoring. Accessors are provided to return pointer descriptors to the encoding + of the signed data, the encoding of the signature, the fingerprint and the signing algorithm used. The fingerprint + returned is the @ref MD5 @ref hash of the encoding of the entire object. + +@li \c CCertificate -- this is a subclass of \c CSignedObject. It adds a serial number, validity period and subject public key + along with corresponding accessors. + + + +*/ \ No newline at end of file