# base64.h File Reference

## Detailed Description

Copyright (C) 2006-2009, Paul Bakker <polarssl_maintainer at polarssl.org> All rights reserved.

Joined copyright on original XySSL code with: Christophe Devine

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Definition in file base64.h.

Go to the source code of this file.

## Defines
#define | POLARSSL_ERR_BASE64_BUFFER_TOO_SMALL 0x0010
#define | POLARSSL_ERR_BASE64_INVALID_CHARACTER 0x0012
## Functions
int | base64_decode (unsigned char *dst, int *dlen, unsigned char *src, int slen)
| Decode a base64-formatted buffer.
int | base64_encode (unsigned char *dst, int *dlen, unsigned char *src, int slen)
| Encode a buffer into base64 format.
int | base64_self_test (int verbose)
| Checkup routine.

## Define Documentation

#define POLARSSL_ERR_BASE64_BUFFER_TOO_SMALL 0x0010

Definition at line 26 of file base64.h.

#define POLARSSL_ERR_BASE64_INVALID_CHARACTER 0x0012

Definition at line 27 of file base64.h.

## Function Documentation

int base64_decode | ( | unsigned char * | dst,
|  | int * | dlen,
|  | unsigned char * | src,
|  | int | slen |
| ) |  |  |

Decode a base64-formatted buffer.

Parameters:

  | dst | destination buffer
  | dlen | size of the buffer
  | src | source buffer
  | slen | amount of data to be decoded

Returns:
  0 if successful, POLARSSL_ERR_BASE64_BUFFER_TOO_SMALL, or POLARSSL_ERR_BASE64_INVALID_DATA if the input data is not correct. *dlen is always updated to reflect the amount of data that has (or would have) been written.

Note:
  Call this function with *dlen = 0 to obtain the required buffer size in *dlen

int base64_encode | ( | unsigned char * | dst,
|  | int * | dlen,
|  | unsigned char * | src,
|  | int | slen |
| ) |  |  |

Encode a buffer into base64 format.

Parameters:

  | dst | destination buffer
  | dlen | size of the buffer
  | src | source buffer
  | slen | amount of data to be encoded

Returns:
  0 if successful, or POLARSSL_ERR_BASE64_BUFFER_TOO_SMALL. *dlen is always updated to reflect the amount of data that has (or would have) been written.

Note:
  Call this function with *dlen = 0 to obtain the required buffer size in *dlen

int base64_self_test | ( | int | verbose | ) |

Checkup routine.

Returns:
  0 if successful, or 1 if the test failed