Botan 1.10.17
base64.h
Go to the documentation of this file.
1/*
2* Base64 Encoding and Decoding
3* (C) 2010 Jack Lloyd
4*
5* Distributed under the terms of the Botan license
6*/
7
8#ifndef BOTAN_BASE64_CODEC_H__
9#define BOTAN_BASE64_CODEC_H__
10
11#include <botan/secmem.h>
12#include <string>
13
14namespace Botan {
15
16/**
17* Perform base64 encoding
18* @param output an array of at least input_length*4/3 bytes
19* @param input is some binary data
20* @param input_length length of input in bytes
21* @param input_consumed is an output parameter which says how many
22* bytes of input were actually consumed. If less than
23* input_length, then the range input[consumed:length]
24* should be passed in later along with more input.
25* @param final_inputs true iff this is the last input, in which case
26 padding chars will be applied if needed
27* @return number of bytes written to output
28*/
29size_t BOTAN_DLL base64_encode(char output[],
30 const byte input[],
31 size_t input_length,
32 size_t& input_consumed,
33 bool final_inputs);
34
35/**
36* Perform base64 encoding
37* @param input some input
38* @param input_length length of input in bytes
39* @return base64adecimal representation of input
40*/
41std::string BOTAN_DLL base64_encode(const byte input[],
42 size_t input_length);
43
44/**
45* Perform base64 encoding
46* @param input some input
47* @return base64adecimal representation of input
48*/
49std::string BOTAN_DLL base64_encode(const MemoryRegion<byte>& input);
50
51/**
52* Perform base64 decoding
53* @param output an array of at least input_length*3/4 bytes
54* @param input some base64 input
55* @param input_length length of input in bytes
56* @param input_consumed is an output parameter which says how many
57* bytes of input were actually consumed. If less than
58* input_length, then the range input[consumed:length]
59* should be passed in later along with more input.
60* @param final_inputs true iff this is the last input, in which case
61 padding is allowed
62* @param ignore_ws ignore whitespace on input; if false, throw an
63 exception if whitespace is encountered
64* @return number of bytes written to output
65*/
66size_t BOTAN_DLL base64_decode(byte output[],
67 const char input[],
68 size_t input_length,
69 size_t& input_consumed,
70 bool final_inputs,
71 bool ignore_ws = true);
72
73/**
74* Perform base64 decoding
75* @param output an array of at least input_length*3/4 bytes
76* @param input some base64 input
77* @param input_length length of input in bytes
78* @param ignore_ws ignore whitespace on input; if false, throw an
79 exception if whitespace is encountered
80* @return number of bytes written to output
81*/
82size_t BOTAN_DLL base64_decode(byte output[],
83 const char input[],
84 size_t input_length,
85 bool ignore_ws = true);
86
87/**
88* Perform base64 decoding
89* @param output an array of at least input_length/3*4 bytes
90* @param input some base64 input
91* @param ignore_ws ignore whitespace on input; if false, throw an
92 exception if whitespace is encountered
93* @return number of bytes written to output
94*/
95size_t BOTAN_DLL base64_decode(byte output[],
96 const std::string& input,
97 bool ignore_ws = true);
98
99/**
100* Perform base64 decoding
101* @param input some base64 input
102* @param input_length the length of input in bytes
103* @param ignore_ws ignore whitespace on input; if false, throw an
104 exception if whitespace is encountered
105* @return decoded base64 output
106*/
107SecureVector<byte> BOTAN_DLL base64_decode(const char input[],
108 size_t input_length,
109 bool ignore_ws = true);
110
111/**
112* Perform base64 decoding
113* @param input some base64 input
114* @param ignore_ws ignore whitespace on input; if false, throw an
115 exception if whitespace is encountered
116* @return decoded base64 output
117*/
118SecureVector<byte> BOTAN_DLL base64_decode(const std::string& input,
119 bool ignore_ws = true);
120
121}
122
123#endif
size_t base64_encode(char out[], const byte in[], size_t input_length, size_t &input_consumed, bool final_inputs)
Definition base64.cpp:36
size_t base64_decode(byte output[], const char input[], size_t input_length, size_t &input_consumed, bool final_inputs, bool ignore_ws)
Definition base64.cpp:100