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

XSECCryptoBase64 Class Reference
[Cryptographic Abstraction Layer]

Base64 encode/decode handler. More...

#include <XSECCryptoBase64.hpp>

Inheritance diagram for XSECCryptoBase64:

Inheritance graph
[legend]
List of all members.

Public Methods

 XSECCryptoBase64 ()
virtual ~XSECCryptoBase64 ()
Decoding Functions
virtual void decodeInit (void)=0
 Initialise the base64 object. More...

virtual unsigned int decode (unsigned char *inData, unsigned int inLength, unsigned char *outData, unsigned int outLength)=0
 Decode some passed in data. More...

virtual unsigned int decodeFinish (unsigned char *outData, unsigned int outLength)=0
 Finish off a decode. More...

Encoding Functions
virtual void encodeInit (void)=0
 Initialise the base64 object for encoding. More...

virtual unsigned int encode (unsigned char *inData, unsigned int inLength, unsigned char *outData, unsigned int outLength)=0
 Encode some passed in data. More...

virtual unsigned int encodeFinish (unsigned char *outData, unsigned int outLength)=0
 Finish off an encode. More...


Detailed Description

Base64 encode/decode handler.

The XSEC library will use this class for translating bytes to/from base64 encoding.

There are many places where XML DSIG uses Base64 encoding for embedding data in the <Signature> structure. In some cases this object is used. In other cases, the library passes base64 code directly to the cryptographic handler.

Note:
The library may re-use Base64 objects. However it will always call the ??Init function prior to re-use. In addtion, the object does not need to be able to handle concurrent encode/decode operations.


Constructor & Destructor Documentation

XSECCryptoBase64::XSECCryptoBase64   [inline]
 

virtual XSECCryptoBase64::~XSECCryptoBase64   [inline, virtual]
 


Member Function Documentation

virtual unsigned int XSECCryptoBase64::decode unsigned char *    inData,
unsigned int    inLength,
unsigned char *    outData,
unsigned int    outLength
[pure virtual]
 

Decode some passed in data.

The XSEC library will pass a block of data into the decoder and request that as much as possible be decoded into the outData buffer.

Due to the nature of base64, there may be data that cannot be fully decoded (not enough encoding through yet). The implementation is expected to keep this in memory until another call to decode() or a call to decodeFinish().

Parameters:
inData  Pointer to the buffer holding encoded data.
inLength  Length of the encoded data in the buffer
outData  Buffer to place decoded data into
outLength  Maximum amount of data that can be placed in the buffer.
Returns:
The number of bytes placed in the outData buffer.

Implemented in OpenSSLCryptoBase64.

virtual unsigned int XSECCryptoBase64::decodeFinish unsigned char *    outData,
unsigned int    outLength
[pure virtual]
 

Finish off a decode.

The library will call this when there is no more base64 data for the current decode.

Parameters:
outData  Buffer to place any remaining decoded data
outLength  Max amount of data to be placed in the buffer.
Returns:
Amount of data placed in the outData buffer

Implemented in OpenSSLCryptoBase64.

virtual void XSECCryptoBase64::decodeInit void    [pure virtual]
 

Initialise the base64 object.

The XSEC library will always call this function prior to decoding any data. This function will also be called when one decode (or encode) has been completed and the library wishes to re-use the object for another decode operation.

Implemented in OpenSSLCryptoBase64.

virtual unsigned int XSECCryptoBase64::encode unsigned char *    inData,
unsigned int    inLength,
unsigned char *    outData,
unsigned int    outLength
[pure virtual]
 

Encode some passed in data.

The XSEC library will pass a block of data into the Encoder and request that as much as possible be encoded into the outData buffer.

Due to the nature of the implementation, there may be data that cannot be fully encoded (not enough data through yet). The implementation is expected to keep this in memory until another call to encode() or a call to encodeFinish().

Parameters:
inData  Pointer to the buffer holding data to be encoded.
inLength  Length of the data in the buffer
outData  Buffer to place encoded data into
outLength  Maximum amount of data that can be placed in the buffer.
Returns:
The number of bytes placed in the outData buffer.

Implemented in OpenSSLCryptoBase64.

virtual unsigned int XSECCryptoBase64::encodeFinish unsigned char *    outData,
unsigned int    outLength
[pure virtual]
 

Finish off an encode.

The library will call this when there is no more data for the current encode operation.

Parameters:
outData  Buffer to place any remaining encoded data
outLength  Max amount of data to be placed in the buffer.
Returns:
Amount of data placed in the outData buffer

Implemented in OpenSSLCryptoBase64.

virtual void XSECCryptoBase64::encodeInit void    [pure virtual]
 

Initialise the base64 object for encoding.

The XSEC library will always call this function prior to encoding any data. This function will also be called when one encode (or decode) has been completed and the library wishes to re-use the object for another encode operation.

Implemented in OpenSSLCryptoBase64.


The documentation for this class was generated from the following file:
Generated on Sat Jan 11 20:35:28 2003 for XML-Security-C by doxygen1.2.15