upgrade rpm version to 4.14.1
[platform/upstream/rpm.git] / rpmio / rpmbase64.h
1 /* base64 encoder/decoder based on public domain implementation
2  * by Chris Venter */
3
4 /** \ingroup rpmio
5  * \file rpmio/rpmbase64.h
6  *
7  * Base64 encoding and decoding API
8  */
9
10 #include <sys/types.h>
11
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15
16 /* returns malloced base64 encoded string
17  * lines are split with \n characters to be nearest lower multiple of linelen
18  * if linelen/4 == 0 lines are not split
19  * if linelen < 0 default line length (64) is used
20  * the returned string is empty when len == 0
21  * returns NULL on failures
22  */
23 char *rpmBase64Encode(const void *data, size_t len, int linelen);
24
25 /* decodes from zero terminated base64 encoded string to a newly malloced buffer
26  * ignores whitespace characters in the input string
27  * return values:
28  *  0 - OK
29  *  1 - input is NULL
30  *  2 - invalid length
31  *  3 - invalid characters on input
32  *  4 - malloc failed
33  */
34 int rpmBase64Decode(const char *in, void **out, size_t *outlen);
35
36 /* counts CRC24 and base64 encodes it in a malloced string
37  * returns NULL on failures
38  */
39 char *rpmBase64CRC(const unsigned char *data, size_t len);
40
41 #ifdef __cplusplus
42 }
43 #endif