XML Security Library Reference Manual
<<< Previous Page | Home | Up | Next Page >>>

# 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

<<< Previous Page | Home | Up | Next Page >>>
XML Security Library Internal Functions Reference | bn.h