Main Page   Modules   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages  

Cryptographic Abstraction Layer


Modules

OpenSSL Interface

Compounds

class  XSECCryptoBase64
 Base64 encode/decode handler. More...

class  XSECCryptoException
 Exception class used by the cryptographic modules. More...

class  XSECCryptoHash
 Interface definition for Hash functions. More...

class  XSECCryptoProvider
 The base class that all *CryptoProviders need to implement. More...


Defines

#define CRYPTO_MAX_HASH_SIZE   128
 Maximum length (in bytes) of any expected Digest results. More...


Variables

const char * XSECCryptoExceptionStrings []
 Exception strings. More...


Detailed Description

The interface layer between the cryptographic modules and the XML Security library. It has been created to allow users to easily integrate other cryptographic libraries into the XML-Security library.

The XML-Security-C library itself makes calls to this interface layer to perform all cryptographic procedures. In order to instantiate the correct object (i.e. the object that belongs to the correct crypto library), XSEC makes calls to the virtual class XSECCryptoProvider, which returns pointers to particular virtual class objects.

The particular instantiation of XSECCryptoProvider that is to be used is set via the XSECPlatformUtils::Initialise() function call. If no provider is passed in, the Initialise function generates an OpenSSLCryptoProvider class for use.

The provider is kept in a global variable, and is used by all signature objects created by a particular application. At this time there is no way to have different signature objects use different CryptoProviders

Note:
This abstraction layer is currently under construction and is very subject to change. In particular, the layer currently has calls to do things like extract keys from X509 certificates. This is not strictly necessary for the library to work correctly and may be removed - or made optional.

Todo:
Add an ability to handle "optional" functions. The library should make a call to the provider to see whether an optional function (e.g. extract key from X509) has been provided.

Note:
The virtual classes (XSECCrypto*) only describe the functions necessary for the library to work. Other functions need to also be implemented to allow applications to setup and manipulate the objects appropriately. These functions have not been defined as the manner in which they work is likely to be impacted by the particular cryptographic library being used.
\

Define Documentation

#define CRYPTO_MAX_HASH_SIZE   128
 

Maximum length (in bytes) of any expected Digest results.

This constant defines the maximum length (in bytes) of HASH returns.

Todo:
This should really come from each of the providers and should be implemented as a function call to *CryptoProvider


Variable Documentation

const char* XSECCryptoExceptionStrings[]
 

Exception strings.

Global array of strings that can be looked up using the type element of an XSECCryptoException to determine a default string for the erro


Generated on Sat Jan 11 20:35:32 2003 for XML-Security-C by doxygen1.2.15