base64.h

Name

base64.h -- The BASE64 encode/decode functions.

Synopsis



xmlSecBase64CtxPtr xmlSecBase64CtxCreate    (int encode,
                                             int columns);
void        xmlSecBase64CtxDestroy          (xmlSecBase64CtxPtr ctx);
int         xmlSecBase64CtxUpdate           (xmlSecBase64CtxPtr ctx,
                                             unsigned char *in,
                                             size_t inLen,
                                             unsigned char *out,
                                             size_t outLen);
int         xmlSecBase64CtxFinal            (xmlSecBase64CtxPtr ctx,
                                             unsigned char *out,
                                             size_t outLen);
xmlChar*    xmlSecBase64Encode              (unsigned char *buf,
                                             size_t len,
                                             int columns);
int         xmlSecBase64Decode              (const xmlChar *str,
                                             unsigned char *buf,
                                             size_t len);

Description

Details

xmlSecBase64CtxCreate ()

xmlSecBase64CtxPtr xmlSecBase64CtxCreate    (int encode,
                                             int columns);

Creates new base64 context.

encode : the encode/decode flag (1 - encode, 0 - decode)
columns : the max line length.
Returns :a pointer to newly created xmlSecBase64Ctx structure or NULL if an error occurs.


xmlSecBase64CtxDestroy ()

void        xmlSecBase64CtxDestroy          (xmlSecBase64CtxPtr ctx);

Destroys base64 context.

ctx : the pointer to xmlSecBase64Ctx structure.


xmlSecBase64CtxUpdate ()

int         xmlSecBase64CtxUpdate           (xmlSecBase64CtxPtr ctx,
                                             unsigned char *in,
                                             size_t inLen,
                                             unsigned char *out,
                                             size_t outLen);

Encodes/decodes the next piece of data from input buffer.

ctx : the pointer to xmlSecBase64Ctx structure
in : the input buffer
inLen : the input buffer size
out : the output buffer
outLen : the output buffer size
Returns :the number of bytes written to output buffer or -1 if an error occurs.


xmlSecBase64CtxFinal ()

int         xmlSecBase64CtxFinal            (xmlSecBase64CtxPtr ctx,
                                             unsigned char *out,
                                             size_t outLen);

Encodes/decodes the last piece of data stored in the context and finalizes the result.

ctx : the pointer to xmlSecBase64Ctx structure
out : the output buffer
outLen : the output buffer size
Returns :the number of bytes written to output buffer or -1 if an error occurs.


xmlSecBase64Encode ()

xmlChar*    xmlSecBase64Encode              (unsigned char *buf,
                                             size_t len,
                                             int columns);

Encodes the data from input buffer and allocates the string for the result. The caller is responsible for freeing returned buffer using xmlFree() function.

buf : the input buffer.
len : the input buffer size.
columns : the output max line length (if 0 then no line breaks would be inserted)
Returns :newly allocated string with base64 encoded data or NULL if an error occurs.


xmlSecBase64Decode ()

int         xmlSecBase64Decode              (const xmlChar *str,
                                             unsigned char *buf,
                                             size_t len);

Decodes input base64 encoded string and puts result into the output buffer.

str : the input buffer with base64 encoded string
buf : the output buffer
len : the output buffer size
Returns :the number of bytes written to the output buffer or a negative value if an error occurs