-
Notifications
You must be signed in to change notification settings - Fork 0
/
base64_8hpp_source.html
133 lines (131 loc) · 19.5 KB
/
base64_8hpp_source.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>tlx: tlx/string/base64.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">tlx
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File List</span></a></li>
<li><a href="globals.html"><span>File Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('base64_8hpp_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">base64.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="base64_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*******************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * tlx/string/base64.hpp</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Part of tlx - http://panthema.net/tlx</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Copyright (C) 2007-2017 Timo Bingmann <[email protected]></span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * All rights reserved. Published under the Boost Software License, Version 1.0</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> ******************************************************************************/</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#ifndef TLX_STRING_BASE64_HEADER</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#define TLX_STRING_BASE64_HEADER</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">namespace </span><a class="code" href="namespacetlx.html">tlx</a> {</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">//! \addtogroup tlx_string</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">//! \{</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//! \name Base64 Encoding and Decoding</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//! \{</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/******************************************************************************/</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">// Base64 Encoding and Decoding</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">/*!</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Encode the given binary data into base64 representation as described in RFC</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> * 2045 or RFC 3548. The output string contains only characters [A-Za-z0-9+/]</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> * and is roughly 33% longer than the input. The output string can be broken</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> * into lines after n characters, where n must be a multiple of 4.</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> *</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> * \param data input data to encode</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"> * \param size size of input data to encode</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment"> * \param line_break break the output string every n characters</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment"> * \return base64 encoded string</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment"> */</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> std::string <a class="code" href="group__tlx__string.html#ga691477f59c8496eec65e994ce3f6e6e5">base64_encode</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* data, <span class="keywordtype">size_t</span> size, <span class="keywordtype">size_t</span> line_break = 0);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment"></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">/*!</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment"> * Encode the given binary string into base64 representation as described in RFC</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment"> * 2045 or RFC 3548. The output string contains only characters [A-Za-z0-9+/]</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment"> * and is roughly 33% longer than the input. The output string can be broken</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment"> * into lines after n characters, where n must be a multiple of 4.</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> *</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> * \param str input string to encode</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> * \param line_break break the output string every n characters</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> * \return base64 encoded string</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> */</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> std::string <a class="code" href="group__tlx__string.html#ga691477f59c8496eec65e994ce3f6e6e5">base64_encode</a>(<span class="keyword">const</span> std::string& str, <span class="keywordtype">size_t</span> line_break = 0);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"></span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">/*!</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment"> * Decode a string in base64 representation as described in RFC 2045 or RFC 3548</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"> * and return the original data. If a non-whitespace invalid base64 character is</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment"> * encountered _and_ the parameter "strict" is true, then this function will</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment"> * throw a std::runtime_error. If "strict" is false, the character is silently</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment"> * ignored.</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment"> *</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment"> * \param data input data to decode</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment"> * \param size size of input data to decode</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment"> * \param strict throw exception on invalid character</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment"> * \return decoded binary data</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment"> */</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> std::string <a class="code" href="group__tlx__string.html#gac2775fbea220f27325aba0f8af1cc9a8">base64_decode</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* data, <span class="keywordtype">size_t</span> size, <span class="keywordtype">bool</span> strict = <span class="keyword">true</span>);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment"></span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment">/*!</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment"> * Decode a string in base64 representation as described in RFC 2045 or RFC 3548</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment"> * and return the original data. If a non-whitespace invalid base64 character is</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment"> * encountered _and_ the parameter "strict" is true, then this function will</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment"> * throw a std::runtime_error. If "strict" is false, the character is silently</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment"> * ignored.</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment"> *</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment"> * \param str input string to encode</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment"> * \param strict throw exception on invalid character</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"> * \return decoded binary data</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"> */</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> std::string <a class="code" href="group__tlx__string.html#gac2775fbea220f27325aba0f8af1cc9a8">base64_decode</a>(<span class="keyword">const</span> std::string& str, <span class="keywordtype">bool</span> strict = <span class="keyword">true</span>);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"></span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment">//! \}</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment">//! \}</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment"></span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> } <span class="comment">// namespace tlx</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor">#endif // !TLX_STRING_BASE64_HEADER</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment">/******************************************************************************/</span></div><div class="ttc" id="group__tlx__string_html_gac2775fbea220f27325aba0f8af1cc9a8"><div class="ttname"><a href="group__tlx__string.html#gac2775fbea220f27325aba0f8af1cc9a8">tlx::base64_decode</a></div><div class="ttdeci">std::string base64_decode(const void *data, size_t size, bool strict)</div><div class="ttdoc">Decode a string in base64 representation as described in RFC 2045 or RFC 3548 and return the original...</div><div class="ttdef"><b>Definition:</b> <a href="base64_8cpp_source.html#l00108">base64.cpp:108</a></div></div>
<div class="ttc" id="namespacetlx_html"><div class="ttname"><a href="namespacetlx.html">tlx</a></div><div class="ttdef"><b>Definition:</b> <a href="exclusive__scan_8hpp_source.html#l00017">exclusive_scan.hpp:17</a></div></div>
<div class="ttc" id="group__tlx__string_html_ga691477f59c8496eec65e994ce3f6e6e5"><div class="ttname"><a href="group__tlx__string.html#ga691477f59c8496eec65e994ce3f6e6e5">tlx::base64_encode</a></div><div class="ttdeci">std::string base64_encode(const void *data, size_t size, size_t line_break)</div><div class="ttdoc">Encode the given binary data into base64 representation as described in RFC 2045 or RFC 3548...</div><div class="ttdef"><b>Definition:</b> <a href="base64_8cpp_source.html#l00025">base64.cpp:25</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_8b4d4685f7eaf29e53aad23645930303.html">tlx</a></li><li class="navelem"><a class="el" href="dir_45a7f11e1a4af18f182d54b603484851.html">string</a></li><li class="navelem"><a class="el" href="base64_8hpp.html">base64.hpp</a></li>
<li class="footer">Generated on Sat Oct 2 2021 20:29:00 for tlx by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
</ul>
</div>
</body>
</html>