mirror of
https://github.com/transmission/transmission
synced 2024-12-27 01:57:52 +00:00
b928ae1ba8
Some crypto libraries (like CyaSSL, MatrixSSL and CommonCrypto) either don't have or expose this functionality at all, expose only part of it, or (like OpenSSL) have heavyweight API for it. Also, for the task as easy as BASE64 encoding and decoding it's much better to use small and simple specialized library.
32 lines
724 B
C
32 lines
724 B
C
/*
|
|
cencode.h - c header for a base64 encoding algorithm
|
|
|
|
This is part of the libb64 project, and has been placed in the public domain.
|
|
For details, see http://sourceforge.net/projects/libb64
|
|
*/
|
|
|
|
#ifndef BASE64_CENCODE_H
|
|
#define BASE64_CENCODE_H
|
|
|
|
typedef enum
|
|
{
|
|
step_A, step_B, step_C
|
|
} base64_encodestep;
|
|
|
|
typedef struct
|
|
{
|
|
base64_encodestep step;
|
|
char result;
|
|
int stepcount;
|
|
} base64_encodestate;
|
|
|
|
void base64_init_encodestate(base64_encodestate* state_in);
|
|
|
|
char base64_encode_value(char value_in);
|
|
|
|
int base64_encode_block(const char* plaintext_in, int length_in, char* code_out, base64_encodestate* state_in);
|
|
|
|
int base64_encode_blockend(char* code_out, base64_encodestate* state_in);
|
|
|
|
#endif /* BASE64_CENCODE_H */
|
|
|