<!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.5"/> <title>PolarSSL v1.3.8: cipher.h 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="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 style="padding-left: 0.5em;"> <div id="projectname">PolarSSL v1.3.8 </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.5 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></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>Globals</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_6a9bbd12bf4e19a18c45e270f8fae3fd.html">include</a></li><li class="navelem"><a class="el" href="dir_04272d44da4745cf8b8bfc767d6c6523.html">polarssl</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">cipher.h</div> </div> </div><!--header--> <div class="contents"> <a href="cipher_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div> <div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#ifndef POLARSSL_CIPHER_H</span></div> <div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"></span><span class="preprocessor">#define POLARSSL_CIPHER_H</span></div> <div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#if !defined(POLARSSL_CONFIG_FILE)</span></div> <div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="config_8h.html">config.h</a>"</span></div> <div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#else</span></div> <div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"></span><span class="preprocessor">#include POLARSSL_CONFIG_FILE</span></div> <div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#if defined(POLARSSL_GCM_C) || defined(POLARSSL_CCM_C)</span></div> <div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="cipher_8h.html#a98537bee3c712431f7dce5c154e89164"> 40</a></span> <span class="preprocessor"></span><span class="preprocessor">#define POLARSSL_CIPHER_MODE_AEAD</span></div> <div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#if defined(POLARSSL_CIPHER_MODE_CBC)</span></div> <div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="cipher_8h.html#a5347e7fd4e1fbf8968317a34dd67bb9d"> 44</a></span> <span class="preprocessor"></span><span class="preprocessor">#define POLARSSL_CIPHER_MODE_WITH_PADDING</span></div> <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> <div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include <string.h></span></div> <div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div> <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#if defined(_MSC_VER) && !defined(inline)</span></div> <div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"></span><span class="preprocessor">#define inline _inline</span></div> <div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div> <div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"></span><span class="preprocessor">#if defined(__ARMCC_VERSION) && !defined(inline)</span></div> <div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"></span><span class="preprocessor">#define inline __inline</span></div> <div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* __ARMCC_VERSION */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/*_MSC_VER */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="cipher_8h.html#a8625e259f484845e8fe6103f14f14f85"> 57</a></span> <span class="preprocessor">#define POLARSSL_ERR_CIPHER_FEATURE_UNAVAILABLE -0x6080 </span></div> <div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="cipher_8h.html#a7078656ad138756ee9991f15d529d3bb"> 58</a></span> <span class="preprocessor">#define POLARSSL_ERR_CIPHER_BAD_INPUT_DATA -0x6100 </span></div> <div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="cipher_8h.html#ab4d8385421d4fb4a71f2a00734487688"> 59</a></span> <span class="preprocessor">#define POLARSSL_ERR_CIPHER_ALLOC_FAILED -0x6180 </span></div> <div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="cipher_8h.html#a87777f84d48de3a0d48b252d85c8adc3"> 60</a></span> <span class="preprocessor">#define POLARSSL_ERR_CIPHER_INVALID_PADDING -0x6200 </span></div> <div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="cipher_8h.html#ae92e3caeb14ac7b0a3ac63aa49d88e9e"> 61</a></span> <span class="preprocessor">#define POLARSSL_ERR_CIPHER_FULL_BLOCK_EXPECTED -0x6280 </span></div> <div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="cipher_8h.html#a0ed0acc64ce4edbb029dd1d7fd1c8710"> 62</a></span> <span class="preprocessor">#define POLARSSL_ERR_CIPHER_AUTH_FAILED -0x6300 </span></div> <div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="cipher_8h.html#af1930bcb6327197ff0980aed8bfc3736"> 64</a></span> <span class="preprocessor">#define POLARSSL_CIPHER_VARIABLE_IV_LEN 0x01 </span></div> <div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="cipher_8h.html#a49772688b048b1048944402c3429bf41"> 65</a></span> <span class="preprocessor">#define POLARSSL_CIPHER_VARIABLE_KEY_LEN 0x02 </span></div> <div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#ifdef __cplusplus</span></div> <div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div> <div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560"> 71</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div> <div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a18bc87fe56e4f9fcb83c2a59829915d8"> 72</a></span>  <a class="code" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a18bc87fe56e4f9fcb83c2a59829915d8">POLARSSL_CIPHER_ID_NONE</a> = 0,</div> <div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560aad5ebb9bbbb1a70f117da429c31f1850"> 73</a></span>  <a class="code" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560aad5ebb9bbbb1a70f117da429c31f1850">POLARSSL_CIPHER_ID_NULL</a>,</div> <div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a7f2185b07190a2ea88e864155bbec21d"> 74</a></span>  <a class="code" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a7f2185b07190a2ea88e864155bbec21d">POLARSSL_CIPHER_ID_AES</a>,</div> <div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a54c7640a78cff246c1c9557d23ff5fa6"> 75</a></span>  <a class="code" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a54c7640a78cff246c1c9557d23ff5fa6">POLARSSL_CIPHER_ID_DES</a>,</div> <div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a945e095b835040add01d72e8a24e0047"> 76</a></span>  <a class="code" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a945e095b835040add01d72e8a24e0047">POLARSSL_CIPHER_ID_3DES</a>,</div> <div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a4e4271ec0a459bae7d6f4a0a825bddc9"> 77</a></span>  <a class="code" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a4e4271ec0a459bae7d6f4a0a825bddc9">POLARSSL_CIPHER_ID_CAMELLIA</a>,</div> <div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a4156bba2b3f3f98a5ef5ee212a6ce992"> 78</a></span>  <a class="code" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a4156bba2b3f3f98a5ef5ee212a6ce992">POLARSSL_CIPHER_ID_BLOWFISH</a>,</div> <div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a3c1f6cf1191ddfb115467769ddff4851"> 79</a></span>  <a class="code" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a3c1f6cf1191ddfb115467769ddff4851">POLARSSL_CIPHER_ID_ARC4</a>,</div> <div class="line"><a name="l00080"></a><span class="lineno"> 80</span> } <a class="code" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560">cipher_id_t</a>;</div> <div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div> <div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6"> 82</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div> <div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6af46e4d5256f808678490a13ab72c1006"> 83</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6af46e4d5256f808678490a13ab72c1006">POLARSSL_CIPHER_NONE</a> = 0,</div> <div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a26b732304711bc77fbd4984f59719461"> 84</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a26b732304711bc77fbd4984f59719461">POLARSSL_CIPHER_NULL</a>,</div> <div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a425c63dfadae3b8dd2eea5cad19832ab"> 85</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a425c63dfadae3b8dd2eea5cad19832ab">POLARSSL_CIPHER_AES_128_ECB</a>,</div> <div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6adef0dc398d25e9e354ec08c64066f8e7"> 86</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6adef0dc398d25e9e354ec08c64066f8e7">POLARSSL_CIPHER_AES_192_ECB</a>,</div> <div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6adb00f9e0c03029ce6536979ba41fe1a5"> 87</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6adb00f9e0c03029ce6536979ba41fe1a5">POLARSSL_CIPHER_AES_256_ECB</a>,</div> <div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a8d4e003be055910575927334574d81e2"> 88</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a8d4e003be055910575927334574d81e2">POLARSSL_CIPHER_AES_128_CBC</a>,</div> <div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6adf8f7062a1324652e90eedd7d986a15a"> 89</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6adf8f7062a1324652e90eedd7d986a15a">POLARSSL_CIPHER_AES_192_CBC</a>,</div> <div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a383bff04387b7fbb14fdf526688a87c4"> 90</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a383bff04387b7fbb14fdf526688a87c4">POLARSSL_CIPHER_AES_256_CBC</a>,</div> <div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a7f02d410ddbed8cf2d14900cf3574409"> 91</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a7f02d410ddbed8cf2d14900cf3574409">POLARSSL_CIPHER_AES_128_CFB128</a>,</div> <div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6aad917e3c424e563fc088827959c88868"> 92</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6aad917e3c424e563fc088827959c88868">POLARSSL_CIPHER_AES_192_CFB128</a>,</div> <div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a69e28d61d887dea757badae6bb5cc1c5"> 93</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a69e28d61d887dea757badae6bb5cc1c5">POLARSSL_CIPHER_AES_256_CFB128</a>,</div> <div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a76fa4f3edfc079d0d9e40356d5827c7b"> 94</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a76fa4f3edfc079d0d9e40356d5827c7b">POLARSSL_CIPHER_AES_128_CTR</a>,</div> <div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a5aca9e36e3bf9a29724bd867dfc7550f"> 95</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a5aca9e36e3bf9a29724bd867dfc7550f">POLARSSL_CIPHER_AES_192_CTR</a>,</div> <div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6abaeb5cf2ebe24189a042f999151468ae"> 96</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6abaeb5cf2ebe24189a042f999151468ae">POLARSSL_CIPHER_AES_256_CTR</a>,</div> <div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a2d0bc2d755adbd6dba51be94893e296d"> 97</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a2d0bc2d755adbd6dba51be94893e296d">POLARSSL_CIPHER_AES_128_GCM</a>,</div> <div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a916a07fd9b1787be9f9bf4d55e92a2a8"> 98</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a916a07fd9b1787be9f9bf4d55e92a2a8">POLARSSL_CIPHER_AES_192_GCM</a>,</div> <div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a5113b084db48bacfe7f8773a8f709a30"> 99</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a5113b084db48bacfe7f8773a8f709a30">POLARSSL_CIPHER_AES_256_GCM</a>,</div> <div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6afb71c594cdaf3411cf7768ff57431125"> 100</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6afb71c594cdaf3411cf7768ff57431125">POLARSSL_CIPHER_CAMELLIA_128_ECB</a>,</div> <div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a971ae82c98df3922c99ac98983cf3a86"> 101</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a971ae82c98df3922c99ac98983cf3a86">POLARSSL_CIPHER_CAMELLIA_192_ECB</a>,</div> <div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a89d049ae306bffa6d89431b51c8a786b"> 102</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a89d049ae306bffa6d89431b51c8a786b">POLARSSL_CIPHER_CAMELLIA_256_ECB</a>,</div> <div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a7fbc06c11043b1283a2f0c37063025ef"> 103</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a7fbc06c11043b1283a2f0c37063025ef">POLARSSL_CIPHER_CAMELLIA_128_CBC</a>,</div> <div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a25d8a914e19a95d2f95ecb764058d49c"> 104</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a25d8a914e19a95d2f95ecb764058d49c">POLARSSL_CIPHER_CAMELLIA_192_CBC</a>,</div> <div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ad1b4dfdab416de3a5e384e13d622a7a6"> 105</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ad1b4dfdab416de3a5e384e13d622a7a6">POLARSSL_CIPHER_CAMELLIA_256_CBC</a>,</div> <div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a8193cb4f12803423fc303f3f804038a4"> 106</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a8193cb4f12803423fc303f3f804038a4">POLARSSL_CIPHER_CAMELLIA_128_CFB128</a>,</div> <div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a9924eac692478f079e815869556553d2"> 107</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a9924eac692478f079e815869556553d2">POLARSSL_CIPHER_CAMELLIA_192_CFB128</a>,</div> <div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a634d2a1fff658d083c07a21175ca6c8e"> 108</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a634d2a1fff658d083c07a21175ca6c8e">POLARSSL_CIPHER_CAMELLIA_256_CFB128</a>,</div> <div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a771ce38dd356f676da95c91c86ac3b2d"> 109</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a771ce38dd356f676da95c91c86ac3b2d">POLARSSL_CIPHER_CAMELLIA_128_CTR</a>,</div> <div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a8ff89c9e9e41ec779b9424f51bfa2fba"> 110</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a8ff89c9e9e41ec779b9424f51bfa2fba">POLARSSL_CIPHER_CAMELLIA_192_CTR</a>,</div> <div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a25905ecd711ed8af6d78bd38b19790de"> 111</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a25905ecd711ed8af6d78bd38b19790de">POLARSSL_CIPHER_CAMELLIA_256_CTR</a>,</div> <div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a4802ed2b8f0b2201a35bbee4779ca40b"> 112</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a4802ed2b8f0b2201a35bbee4779ca40b">POLARSSL_CIPHER_CAMELLIA_128_GCM</a>,</div> <div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a8355e93505e089dbe9fb391e901d6d44"> 113</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a8355e93505e089dbe9fb391e901d6d44">POLARSSL_CIPHER_CAMELLIA_192_GCM</a>,</div> <div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a028f9f32aacd390889b29f67c6d9fdcd"> 114</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a028f9f32aacd390889b29f67c6d9fdcd">POLARSSL_CIPHER_CAMELLIA_256_GCM</a>,</div> <div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a14e0f405590439261729bac7ed0be6d4"> 115</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a14e0f405590439261729bac7ed0be6d4">POLARSSL_CIPHER_DES_ECB</a>,</div> <div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6af14528a0b54195461babbaec8181913c"> 116</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6af14528a0b54195461babbaec8181913c">POLARSSL_CIPHER_DES_CBC</a>,</div> <div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a148083389736dc34ee2d729515482d85"> 117</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a148083389736dc34ee2d729515482d85">POLARSSL_CIPHER_DES_EDE_ECB</a>,</div> <div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a8ce984017149df219b49fcc1d506ce10"> 118</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a8ce984017149df219b49fcc1d506ce10">POLARSSL_CIPHER_DES_EDE_CBC</a>,</div> <div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a79352d8566dcb0eb1395d0f4ce4ba0b2"> 119</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a79352d8566dcb0eb1395d0f4ce4ba0b2">POLARSSL_CIPHER_DES_EDE3_ECB</a>,</div> <div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ae6ab208bff4f88dbba3277a05686b0a9"> 120</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ae6ab208bff4f88dbba3277a05686b0a9">POLARSSL_CIPHER_DES_EDE3_CBC</a>,</div> <div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ade30c0ba8f3b4c0149dc711f595c32a9"> 121</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ade30c0ba8f3b4c0149dc711f595c32a9">POLARSSL_CIPHER_BLOWFISH_ECB</a>,</div> <div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a38daa50cfa1c23ffda451ea940474a3f"> 122</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a38daa50cfa1c23ffda451ea940474a3f">POLARSSL_CIPHER_BLOWFISH_CBC</a>,</div> <div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ad678b6ae83820aaa338fdd8a9888904d"> 123</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ad678b6ae83820aaa338fdd8a9888904d">POLARSSL_CIPHER_BLOWFISH_CFB64</a>,</div> <div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a0da001217dca5276686d3fe73939bb77"> 124</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a0da001217dca5276686d3fe73939bb77">POLARSSL_CIPHER_BLOWFISH_CTR</a>,</div> <div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ab7f25ac8ae942ca9cfbe97a65d56ce2e"> 125</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ab7f25ac8ae942ca9cfbe97a65d56ce2e">POLARSSL_CIPHER_ARC4_128</a>,</div> <div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ab613ba7e4b52c0cdc64e93d314cd3fbf"> 126</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ab613ba7e4b52c0cdc64e93d314cd3fbf">POLARSSL_CIPHER_AES_128_CCM</a>,</div> <div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ab62b45d44176c1c74d0894f1245268ae"> 127</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ab62b45d44176c1c74d0894f1245268ae">POLARSSL_CIPHER_AES_192_CCM</a>,</div> <div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a2c83917c06819e0159c46d081beeed85"> 128</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a2c83917c06819e0159c46d081beeed85">POLARSSL_CIPHER_AES_256_CCM</a>,</div> <div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a2c9c1dabfa8c03b612dd7064fedc6540"> 129</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a2c9c1dabfa8c03b612dd7064fedc6540">POLARSSL_CIPHER_CAMELLIA_128_CCM</a>,</div> <div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a17e4803d634ea1ee4daa8f26500a6393"> 130</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a17e4803d634ea1ee4daa8f26500a6393">POLARSSL_CIPHER_CAMELLIA_192_CCM</a>,</div> <div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a80290044d0da4521376ed60d5edc8c67"> 131</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a80290044d0da4521376ed60d5edc8c67">POLARSSL_CIPHER_CAMELLIA_256_CCM</a>,</div> <div class="line"><a name="l00132"></a><span class="lineno"> 132</span> } <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6">cipher_type_t</a>;</div> <div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div> <div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179c"> 134</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div> <div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179ca12481621829a56c22c4620d5596feca5"> 135</a></span>  <a class="code" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179ca12481621829a56c22c4620d5596feca5">POLARSSL_MODE_NONE</a> = 0,</div> <div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179caaefd6ed34c1992d638129e161b28084a"> 136</a></span>  <a class="code" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179caaefd6ed34c1992d638129e161b28084a">POLARSSL_MODE_ECB</a>,</div> <div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179cabc642c3486ec5224ef3c13e53fc941d0"> 137</a></span>  <a class="code" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179cabc642c3486ec5224ef3c13e53fc941d0">POLARSSL_MODE_CBC</a>,</div> <div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179cafea74e56f89fafd334db1f5cb850e913"> 138</a></span>  <a class="code" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179cafea74e56f89fafd334db1f5cb850e913">POLARSSL_MODE_CFB</a>,</div> <div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179caa04d33ad2e38d6ef6996cd00c0e55730"> 139</a></span>  <a class="code" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179caa04d33ad2e38d6ef6996cd00c0e55730">POLARSSL_MODE_OFB</a>, <span class="comment">/* Unused! */</span></div> <div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179ca9c7b9959c0a1b08bed57d40edc27ffe9"> 140</a></span>  <a class="code" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179ca9c7b9959c0a1b08bed57d40edc27ffe9">POLARSSL_MODE_CTR</a>,</div> <div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179ca45d7a269317fef5880d5ae9c6dae13f9"> 141</a></span>  <a class="code" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179ca45d7a269317fef5880d5ae9c6dae13f9">POLARSSL_MODE_GCM</a>,</div> <div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179caf460bee5fb0bf8b383a1fe23099b6707"> 142</a></span>  <a class="code" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179caf460bee5fb0bf8b383a1fe23099b6707">POLARSSL_MODE_STREAM</a>,</div> <div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179cabf517e1e6d97cc0b58ae154f5a2a1265"> 143</a></span>  <a class="code" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179cabf517e1e6d97cc0b58ae154f5a2a1265">POLARSSL_MODE_CCM</a>,</div> <div class="line"><a name="l00144"></a><span class="lineno"> 144</span> } <a class="code" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179c">cipher_mode_t</a>;</div> <div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div> <div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="cipher_8h.html#acb17eb5d2106ba020a20b70d878aa7dd"> 146</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div> <div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="cipher_8h.html#acb17eb5d2106ba020a20b70d878aa7dda4a67d6bf4aec45912ee66f37a3cbb8a8"> 147</a></span>  <a class="code" href="cipher_8h.html#acb17eb5d2106ba020a20b70d878aa7dda4a67d6bf4aec45912ee66f37a3cbb8a8">POLARSSL_PADDING_PKCS7</a> = 0, </div> <div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="cipher_8h.html#acb17eb5d2106ba020a20b70d878aa7dda1500b0293a75a29cef21ea91ca279edc"> 148</a></span>  <a class="code" href="cipher_8h.html#acb17eb5d2106ba020a20b70d878aa7dda1500b0293a75a29cef21ea91ca279edc">POLARSSL_PADDING_ONE_AND_ZEROS</a>, </div> <div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="cipher_8h.html#acb17eb5d2106ba020a20b70d878aa7dda5610144cf3e2bf2289e0e52e3fe16aa2"> 149</a></span>  <a class="code" href="cipher_8h.html#acb17eb5d2106ba020a20b70d878aa7dda5610144cf3e2bf2289e0e52e3fe16aa2">POLARSSL_PADDING_ZEROS_AND_LEN</a>, </div> <div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="cipher_8h.html#acb17eb5d2106ba020a20b70d878aa7ddadba7dd52d3452542bba0d1391301b7d6"> 150</a></span>  <a class="code" href="cipher_8h.html#acb17eb5d2106ba020a20b70d878aa7ddadba7dd52d3452542bba0d1391301b7d6">POLARSSL_PADDING_ZEROS</a>, </div> <div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="cipher_8h.html#acb17eb5d2106ba020a20b70d878aa7ddaae558f0b4d848f4a29f0fae3fedbcf99"> 151</a></span>  <a class="code" href="cipher_8h.html#acb17eb5d2106ba020a20b70d878aa7ddaae558f0b4d848f4a29f0fae3fedbcf99">POLARSSL_PADDING_NONE</a>, </div> <div class="line"><a name="l00152"></a><span class="lineno"> 152</span> } <a class="code" href="cipher_8h.html#acb17eb5d2106ba020a20b70d878aa7dd">cipher_padding_t</a>;</div> <div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div> <div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="cipher_8h.html#a76a810650461f2062938ee9b82666b36"> 154</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div> <div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="cipher_8h.html#a76a810650461f2062938ee9b82666b36a878b38bff48702f7816ee15e6954b717"> 155</a></span>  <a class="code" href="cipher_8h.html#a76a810650461f2062938ee9b82666b36a878b38bff48702f7816ee15e6954b717">POLARSSL_OPERATION_NONE</a> = -1,</div> <div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="cipher_8h.html#a76a810650461f2062938ee9b82666b36ae99cd4d55b496dbb74727f7a6ed872c7"> 156</a></span>  <a class="code" href="cipher_8h.html#a76a810650461f2062938ee9b82666b36ae99cd4d55b496dbb74727f7a6ed872c7">POLARSSL_DECRYPT</a> = 0,</div> <div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="cipher_8h.html#a76a810650461f2062938ee9b82666b36ad8e41c0d381b23d7835dd322e511564f"> 157</a></span>  <a class="code" href="cipher_8h.html#a76a810650461f2062938ee9b82666b36ad8e41c0d381b23d7835dd322e511564f">POLARSSL_ENCRYPT</a>,</div> <div class="line"><a name="l00158"></a><span class="lineno"> 158</span> } <a class="code" href="cipher_8h.html#a76a810650461f2062938ee9b82666b36">operation_t</a>;</div> <div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div> <div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="keyword">enum</span> {</div> <div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="cipher_8h.html#a06fc87d81c62e9abb8790b6e5713c55badc72f57d8ab7a6ca11f7cf86c6899366"> 162</a></span>  <a class="code" href="cipher_8h.html#a06fc87d81c62e9abb8790b6e5713c55badc72f57d8ab7a6ca11f7cf86c6899366">POLARSSL_KEY_LENGTH_NONE</a> = 0,</div> <div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="cipher_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba47ee3dc5200730a429c1ec172e7d3a9d"> 164</a></span>  <a class="code" href="cipher_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba47ee3dc5200730a429c1ec172e7d3a9d">POLARSSL_KEY_LENGTH_DES</a> = 64,</div> <div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="cipher_8h.html#a06fc87d81c62e9abb8790b6e5713c55bac20e9716bcdadc5bddba0e6e6ebb133b"> 166</a></span>  <a class="code" href="cipher_8h.html#a06fc87d81c62e9abb8790b6e5713c55bac20e9716bcdadc5bddba0e6e6ebb133b">POLARSSL_KEY_LENGTH_DES_EDE</a> = 128,</div> <div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="cipher_8h.html#a06fc87d81c62e9abb8790b6e5713c55bae76d012453101c4c2abe7a807de47219"> 168</a></span>  <a class="code" href="cipher_8h.html#a06fc87d81c62e9abb8790b6e5713c55bae76d012453101c4c2abe7a807de47219">POLARSSL_KEY_LENGTH_DES_EDE3</a> = 192,</div> <div class="line"><a name="l00169"></a><span class="lineno"> 169</span> };</div> <div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div> <div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="cipher_8h.html#aded691b9d905920d9675e7b9828a237c"> 172</a></span> <span class="preprocessor">#define POLARSSL_MAX_IV_LENGTH 16</span></div> <div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="cipher_8h.html#aa2488bd674e8deee5938b1926f4868f0"> 174</a></span> <span class="preprocessor">#define POLARSSL_MAX_BLOCK_LENGTH 16</span></div> <div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="structcipher__base__t.html"> 179</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div> <div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div> <div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="structcipher__base__t.html#a539b9bf80fc122393affcc4cf8e1d3cc"> 182</a></span>  <a class="code" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560">cipher_id_t</a> <a class="code" href="structcipher__base__t.html#a539b9bf80fc122393affcc4cf8e1d3cc">cipher</a>;</div> <div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div> <div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="structcipher__base__t.html#af6992411c58361334758dfa5caeac2c1"> 185</a></span>  int (*ecb_func)( <span class="keywordtype">void</span> *ctx, <a class="code" href="cipher_8h.html#a76a810650461f2062938ee9b82666b36">operation_t</a> mode,</div> <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *input, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *output );</div> <div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div> <div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="structcipher__base__t.html#a72fe8be6c0c358fa81953db9251d482e"> 189</a></span>  int (*cbc_func)( <span class="keywordtype">void</span> *ctx, <a class="code" href="cipher_8h.html#a76a810650461f2062938ee9b82666b36">operation_t</a> mode, <span class="keywordtype">size_t</span> length,</div> <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *iv, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *input,</div> <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *output );</div> <div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div> <div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="structcipher__base__t.html#af6c613d58788fe5a9b52268a63f8b7fc"> 194</a></span>  int (*cfb_func)( <span class="keywordtype">void</span> *ctx, <a class="code" href="cipher_8h.html#a76a810650461f2062938ee9b82666b36">operation_t</a> mode, <span class="keywordtype">size_t</span> length, <span class="keywordtype">size_t</span> *iv_off,</div> <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *iv, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *input,</div> <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *output );</div> <div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div> <div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="structcipher__base__t.html#a52cf7e0f45be977a86dce9df04a38efa"> 199</a></span>  int (*ctr_func)( <span class="keywordtype">void</span> *ctx, <span class="keywordtype">size_t</span> length, <span class="keywordtype">size_t</span> *nc_off,</div> <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *nonce_counter, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *stream_block,</div> <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *input, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *output );</div> <div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div> <div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="structcipher__base__t.html#a2f751a12e583a0c1bdf4e35376e1a79b"> 204</a></span>  int (*stream_func)( <span class="keywordtype">void</span> *ctx, <span class="keywordtype">size_t</span> length,</div> <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *input, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *output );</div> <div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div> <div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="structcipher__base__t.html#a408d1cfbdf0e392052223e32dec2be3a"> 208</a></span>  int (*setkey_enc_func)( <span class="keywordtype">void</span> *ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key,</div> <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> key_length );</div> <div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div> <div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="structcipher__base__t.html#ad6e8bdd1fe87bc2fc1d83d5b84900d1f"> 212</a></span>  int (*setkey_dec_func)( <span class="keywordtype">void</span> *ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key,</div> <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> key_length);</div> <div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div> <div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="structcipher__base__t.html#a91741724a7a4e396e4a946d6d4f713c1"> 216</a></span>  <span class="keywordtype">void</span> * (*ctx_alloc_func)( void );</div> <div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div> <div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="structcipher__base__t.html#a8066218dfde7c5207d9b50458ee81ca6"> 219</a></span>  void (*ctx_free_func)( <span class="keywordtype">void</span> *ctx );</div> <div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div> <div class="line"><a name="l00221"></a><span class="lineno"> 221</span> } <a class="code" href="structcipher__base__t.html">cipher_base_t</a>;</div> <div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div> <div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="structcipher__info__t.html"> 226</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div> <div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="structcipher__info__t.html#a4cd6c957b0a94edbc002b5ab070dc0fe"> 228</a></span>  <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6">cipher_type_t</a> <a class="code" href="structcipher__info__t.html#a4cd6c957b0a94edbc002b5ab070dc0fe">type</a>;</div> <div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div> <div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="structcipher__info__t.html#a61c2ca01508859a6119d8b4c22e2edd2"> 231</a></span>  <a class="code" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179c">cipher_mode_t</a> <a class="code" href="structcipher__info__t.html#a61c2ca01508859a6119d8b4c22e2edd2">mode</a>;</div> <div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div> <div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="structcipher__info__t.html#a2a22ee6e5c529e10cbe6225d71460b26"> 235</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structcipher__info__t.html#a2a22ee6e5c529e10cbe6225d71460b26">key_length</a>;</div> <div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div> <div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="structcipher__info__t.html#a9b189d0ce9de3eada6b874f1ce8a7393"> 238</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="structcipher__info__t.html#a9b189d0ce9de3eada6b874f1ce8a7393">name</a>;</div> <div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div> <div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="structcipher__info__t.html#ae8fde413dc240da60f4062c3138eec0a"> 242</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structcipher__info__t.html#ae8fde413dc240da60f4062c3138eec0a">iv_size</a>;</div> <div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div> <div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="structcipher__info__t.html#ab3a9f706fa42f9a43a0e8d50ac54a959"> 245</a></span>  <span class="keywordtype">int</span> <a class="code" href="structcipher__info__t.html#ab3a9f706fa42f9a43a0e8d50ac54a959">flags</a>;</div> <div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div> <div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="structcipher__info__t.html#a7e21795685c79613b5125ca608b0c63b"> 248</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structcipher__info__t.html#a7e21795685c79613b5125ca608b0c63b">block_size</a>;</div> <div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div> <div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="structcipher__info__t.html#a12c80723dd2c354ff5596b0931d4fedb"> 251</a></span>  <span class="keyword">const</span> <a class="code" href="structcipher__base__t.html">cipher_base_t</a> *<a class="code" href="structcipher__info__t.html#a12c80723dd2c354ff5596b0931d4fedb">base</a>;</div> <div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div> <div class="line"><a name="l00253"></a><span class="lineno"> 253</span> } <a class="code" href="structcipher__info__t.html">cipher_info_t</a>;</div> <div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div> <div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="structcipher__context__t.html"> 258</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div> <div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="structcipher__context__t.html#a93c2ded51eb87ba78aa9ee10d8f476fb"> 260</a></span>  <span class="keyword">const</span> <a class="code" href="structcipher__info__t.html">cipher_info_t</a> *<a class="code" href="structcipher__context__t.html#a93c2ded51eb87ba78aa9ee10d8f476fb">cipher_info</a>;</div> <div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div> <div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="structcipher__context__t.html#ab101b4f205022bb29b5aa3e46ba9c79f"> 263</a></span>  <span class="keywordtype">int</span> <a class="code" href="structcipher__context__t.html#ab101b4f205022bb29b5aa3e46ba9c79f">key_length</a>;</div> <div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div> <div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="structcipher__context__t.html#a621cd7faaf726b227e2ad58e8b7b755d"> 266</a></span>  <a class="code" href="cipher_8h.html#a76a810650461f2062938ee9b82666b36">operation_t</a> <a class="code" href="structcipher__context__t.html#a621cd7faaf726b227e2ad58e8b7b755d">operation</a>;</div> <div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div> <div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="structcipher__context__t.html#a74f805b3f876cb363903b874e8f753d4"> 269</a></span>  void (*add_padding)( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *output, <span class="keywordtype">size_t</span> olen, <span class="keywordtype">size_t</span> data_len );</div> <div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="structcipher__context__t.html#a43140706e02a4b53d0bd3e048221f3e0"> 270</a></span>  int (*get_padding)( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *input, <span class="keywordtype">size_t</span> ilen, <span class="keywordtype">size_t</span> *data_len );</div> <div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div> <div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="structcipher__context__t.html#a972bc531a9d9b7779d42c433157ac908"> 273</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> unprocessed_data[<a class="code" href="cipher_8h.html#aa2488bd674e8deee5938b1926f4868f0">POLARSSL_MAX_BLOCK_LENGTH</a>];</div> <div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div> <div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="structcipher__context__t.html#a777d4a1f4f3951a475ec9ebbf2527a28"> 276</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="structcipher__context__t.html#a777d4a1f4f3951a475ec9ebbf2527a28">unprocessed_len</a>;</div> <div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div> <div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="structcipher__context__t.html#ade41d48b148134eebae1e5801b0cf426"> 279</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> iv[<a class="code" href="cipher_8h.html#aded691b9d905920d9675e7b9828a237c">POLARSSL_MAX_IV_LENGTH</a>];</div> <div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div> <div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="structcipher__context__t.html#a124f269c0d3b1ce1a74f5dcacf69b688"> 282</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="structcipher__context__t.html#a124f269c0d3b1ce1a74f5dcacf69b688">iv_size</a>;</div> <div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div> <div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="structcipher__context__t.html#aef2bf9abf15fb851faf69c1591790f29"> 285</a></span>  <span class="keywordtype">void</span> *<a class="code" href="structcipher__context__t.html#aef2bf9abf15fb851faf69c1591790f29">cipher_ctx</a>;</div> <div class="line"><a name="l00286"></a><span class="lineno"> 286</span> } <a class="code" href="structcipher__context__t.html">cipher_context_t</a>;</div> <div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div> <div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="keyword">const</span> <span class="keywordtype">int</span> *<a class="code" href="cipher_8h.html#a036719c5224e57cf8469ebf9daceb137">cipher_list</a>( <span class="keywordtype">void</span> );</div> <div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div> <div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="keyword">const</span> <a class="code" href="structcipher__info__t.html">cipher_info_t</a> *<a class="code" href="cipher_8h.html#a76763329d5579d862dfca01adf32c05b">cipher_info_from_string</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> *cipher_name );</div> <div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div> <div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="keyword">const</span> <a class="code" href="structcipher__info__t.html">cipher_info_t</a> *<a class="code" href="cipher_8h.html#a1a6dfa43a6758eb075dd2eb86b538900">cipher_info_from_type</a>( <span class="keyword">const</span> <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6">cipher_type_t</a> cipher_type );</div> <div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div> <div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="keyword">const</span> <a class="code" href="structcipher__info__t.html">cipher_info_t</a> *<a class="code" href="cipher_8h.html#a68fd6a4ea2c236dc4abcad76d73d5cac">cipher_info_from_values</a>( <span class="keyword">const</span> <a class="code" href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560">cipher_id_t</a> cipher_id,</div> <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keywordtype">int</span> key_length,</div> <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keyword">const</span> <a class="code" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179c">cipher_mode_t</a> mode );</div> <div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div> <div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="keywordtype">void</span> <a class="code" href="cipher_8h.html#a6a719708dc3b2f0d0e7beadccf871f4f">cipher_init</a>( <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx );</div> <div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div> <div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="keywordtype">void</span> <a class="code" href="cipher_8h.html#af27f8e4cd1fab59615c3d73c69d136c8">cipher_free</a>( <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx );</div> <div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div> <div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="keywordtype">int</span> <a class="code" href="cipher_8h.html#adc7c37e925193805884085ca87587f64">cipher_init_ctx</a>( <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx, <span class="keyword">const</span> <a class="code" href="structcipher__info__t.html">cipher_info_t</a> *cipher_info );</div> <div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div> <div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="keywordtype">int</span> <a class="code" href="cipher_8h.html#ac8abe3c96c800481697cfe8260cf829d">cipher_free_ctx</a>( <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx );</div> <div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div> <div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="cipher_8h.html#ac3ffcee4725c03638726f7211b31bcb7"> 384</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="cipher_8h.html#ac3ffcee4725c03638726f7211b31bcb7">cipher_get_block_size</a>( <span class="keyword">const</span> <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx )</div> <div class="line"><a name="l00385"></a><span class="lineno"> 385</span> {</div> <div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordflow">if</span>( NULL == ctx || NULL == ctx-><a class="code" href="structcipher__context__t.html#a93c2ded51eb87ba78aa9ee10d8f476fb">cipher_info</a> )</div> <div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keywordflow">return</span> 0;</div> <div class="line"><a name="l00388"></a><span class="lineno"> 388</span> </div> <div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordflow">return</span> ctx-><a class="code" href="structcipher__context__t.html#a93c2ded51eb87ba78aa9ee10d8f476fb">cipher_info</a>-><a class="code" href="structcipher__info__t.html#a7e21795685c79613b5125ca608b0c63b">block_size</a>;</div> <div class="line"><a name="l00390"></a><span class="lineno"> 390</span> }</div> <div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div> <div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="cipher_8h.html#a8cc9566954343cc25ab4432db0c3a353"> 401</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179c">cipher_mode_t</a> <a class="code" href="cipher_8h.html#a8cc9566954343cc25ab4432db0c3a353">cipher_get_cipher_mode</a>( <span class="keyword">const</span> <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx )</div> <div class="line"><a name="l00402"></a><span class="lineno"> 402</span> {</div> <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keywordflow">if</span>( NULL == ctx || NULL == ctx-><a class="code" href="structcipher__context__t.html#a93c2ded51eb87ba78aa9ee10d8f476fb">cipher_info</a> )</div> <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keywordflow">return</span> <a class="code" href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179ca12481621829a56c22c4620d5596feca5">POLARSSL_MODE_NONE</a>;</div> <div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div> <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keywordflow">return</span> ctx-><a class="code" href="structcipher__context__t.html#a93c2ded51eb87ba78aa9ee10d8f476fb">cipher_info</a>-><a class="code" href="structcipher__info__t.html#a61c2ca01508859a6119d8b4c22e2edd2">mode</a>;</div> <div class="line"><a name="l00407"></a><span class="lineno"> 407</span> }</div> <div class="line"><a name="l00408"></a><span class="lineno"> 408</span> </div> <div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="cipher_8h.html#a0555cab5391282ebcb61a899c00addec"> 418</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="cipher_8h.html#a0555cab5391282ebcb61a899c00addec">cipher_get_iv_size</a>( <span class="keyword">const</span> <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx )</div> <div class="line"><a name="l00419"></a><span class="lineno"> 419</span> {</div> <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keywordflow">if</span>( NULL == ctx || NULL == ctx-><a class="code" href="structcipher__context__t.html#a93c2ded51eb87ba78aa9ee10d8f476fb">cipher_info</a> )</div> <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordflow">return</span> 0;</div> <div class="line"><a name="l00422"></a><span class="lineno"> 422</span> </div> <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keywordflow">if</span>( ctx-><a class="code" href="structcipher__context__t.html#a124f269c0d3b1ce1a74f5dcacf69b688">iv_size</a> != 0 )</div> <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordflow">return</span> (<span class="keywordtype">int</span>) ctx-><a class="code" href="structcipher__context__t.html#a124f269c0d3b1ce1a74f5dcacf69b688">iv_size</a>;</div> <div class="line"><a name="l00425"></a><span class="lineno"> 425</span> </div> <div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordflow">return</span> ctx-><a class="code" href="structcipher__context__t.html#a93c2ded51eb87ba78aa9ee10d8f476fb">cipher_info</a>-><a class="code" href="structcipher__info__t.html#ae8fde413dc240da60f4062c3138eec0a">iv_size</a>;</div> <div class="line"><a name="l00427"></a><span class="lineno"> 427</span> }</div> <div class="line"><a name="l00428"></a><span class="lineno"> 428</span> </div> <div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="cipher_8h.html#a07c79d24f8381fade8fcad38b8351f79"> 437</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6">cipher_type_t</a> <a class="code" href="cipher_8h.html#a07c79d24f8381fade8fcad38b8351f79">cipher_get_type</a>( <span class="keyword">const</span> <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx )</div> <div class="line"><a name="l00438"></a><span class="lineno"> 438</span> {</div> <div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keywordflow">if</span>( NULL == ctx || NULL == ctx-><a class="code" href="structcipher__context__t.html#a93c2ded51eb87ba78aa9ee10d8f476fb">cipher_info</a> )</div> <div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keywordflow">return</span> <a class="code" href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6af46e4d5256f808678490a13ab72c1006">POLARSSL_CIPHER_NONE</a>;</div> <div class="line"><a name="l00441"></a><span class="lineno"> 441</span> </div> <div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">return</span> ctx-><a class="code" href="structcipher__context__t.html#a93c2ded51eb87ba78aa9ee10d8f476fb">cipher_info</a>-><a class="code" href="structcipher__info__t.html#a4cd6c957b0a94edbc002b5ab070dc0fe">type</a>;</div> <div class="line"><a name="l00443"></a><span class="lineno"> 443</span> }</div> <div class="line"><a name="l00444"></a><span class="lineno"> 444</span> </div> <div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="cipher_8h.html#ab13b86afbee6e045811edf5601dc5ce5"> 452</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="cipher_8h.html#ab13b86afbee6e045811edf5601dc5ce5">cipher_get_name</a>( <span class="keyword">const</span> <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx )</div> <div class="line"><a name="l00453"></a><span class="lineno"> 453</span> {</div> <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">if</span>( NULL == ctx || NULL == ctx-><a class="code" href="structcipher__context__t.html#a93c2ded51eb87ba78aa9ee10d8f476fb">cipher_info</a> )</div> <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keywordflow">return</span> 0;</div> <div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div> <div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keywordflow">return</span> ctx-><a class="code" href="structcipher__context__t.html#a93c2ded51eb87ba78aa9ee10d8f476fb">cipher_info</a>-><a class="code" href="structcipher__info__t.html#a9b189d0ce9de3eada6b874f1ce8a7393">name</a>;</div> <div class="line"><a name="l00458"></a><span class="lineno"> 458</span> }</div> <div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div> <div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="cipher_8h.html#a9534326eea78885a9b47ce0b0a3aa0d3"> 469</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="cipher_8h.html#a9534326eea78885a9b47ce0b0a3aa0d3">cipher_get_key_size</a> ( <span class="keyword">const</span> <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx )</div> <div class="line"><a name="l00470"></a><span class="lineno"> 470</span> {</div> <div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordflow">if</span>( NULL == ctx || NULL == ctx-><a class="code" href="structcipher__context__t.html#a93c2ded51eb87ba78aa9ee10d8f476fb">cipher_info</a> )</div> <div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keywordflow">return</span> <a class="code" href="cipher_8h.html#a06fc87d81c62e9abb8790b6e5713c55badc72f57d8ab7a6ca11f7cf86c6899366">POLARSSL_KEY_LENGTH_NONE</a>;</div> <div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div> <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="keywordflow">return</span> ctx-><a class="code" href="structcipher__context__t.html#a93c2ded51eb87ba78aa9ee10d8f476fb">cipher_info</a>-><a class="code" href="structcipher__info__t.html#a2a22ee6e5c529e10cbe6225d71460b26">key_length</a>;</div> <div class="line"><a name="l00475"></a><span class="lineno"> 475</span> }</div> <div class="line"><a name="l00476"></a><span class="lineno"> 476</span> </div> <div class="line"><a name="l00486"></a><span class="lineno"><a class="line" href="cipher_8h.html#ab6316d711155a6ba661d6dd18eaf3bf2"> 486</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="cipher_8h.html#a76a810650461f2062938ee9b82666b36">operation_t</a> <a class="code" href="cipher_8h.html#ab6316d711155a6ba661d6dd18eaf3bf2">cipher_get_operation</a>( <span class="keyword">const</span> <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx )</div> <div class="line"><a name="l00487"></a><span class="lineno"> 487</span> {</div> <div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="keywordflow">if</span>( NULL == ctx || NULL == ctx-><a class="code" href="structcipher__context__t.html#a93c2ded51eb87ba78aa9ee10d8f476fb">cipher_info</a> )</div> <div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keywordflow">return</span> <a class="code" href="cipher_8h.html#a76a810650461f2062938ee9b82666b36a878b38bff48702f7816ee15e6954b717">POLARSSL_OPERATION_NONE</a>;</div> <div class="line"><a name="l00490"></a><span class="lineno"> 490</span> </div> <div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keywordflow">return</span> ctx-><a class="code" href="structcipher__context__t.html#a621cd7faaf726b227e2ad58e8b7b755d">operation</a>;</div> <div class="line"><a name="l00492"></a><span class="lineno"> 492</span> }</div> <div class="line"><a name="l00493"></a><span class="lineno"> 493</span> </div> <div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="keywordtype">int</span> <a class="code" href="cipher_8h.html#a77355bddf2d69f68d55e2bd2374e9257">cipher_setkey</a>( <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key,</div> <div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="keywordtype">int</span> key_length, <span class="keyword">const</span> <a class="code" href="cipher_8h.html#a76a810650461f2062938ee9b82666b36">operation_t</a> operation );</div> <div class="line"><a name="l00511"></a><span class="lineno"> 511</span> </div> <div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="preprocessor">#if defined(POLARSSL_CIPHER_MODE_WITH_PADDING)</span></div> <div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="keywordtype">int</span> <a class="code" href="cipher_8h.html#abbc809fe32e1cce35834006d1edf1f2c">cipher_set_padding_mode</a>( <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx, <a class="code" href="cipher_8h.html#acb17eb5d2106ba020a20b70d878aa7dd">cipher_padding_t</a> mode );</div> <div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="preprocessor">#endif </span><span class="comment">/* POLARSSL_CIPHER_MODE_WITH_PADDING */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="keywordtype">int</span> <a class="code" href="cipher_8h.html#abca5954bfff4e62c5280267d2a97171d">cipher_set_iv</a>( <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx,</div> <div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *iv, <span class="keywordtype">size_t</span> iv_len );</div> <div class="line"><a name="l00543"></a><span class="lineno"> 543</span> </div> <div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <span class="keywordtype">int</span> <a class="code" href="cipher_8h.html#a0a55a8eeae5ebb2627c59257ffb202bc">cipher_reset</a>( <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx );</div> <div class="line"><a name="l00553"></a><span class="lineno"> 553</span> </div> <div class="line"><a name="l00554"></a><span class="lineno"> 554</span> <span class="preprocessor">#if defined(POLARSSL_GCM_C)</span></div> <div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="keywordtype">int</span> <a class="code" href="cipher_8h.html#a5b8cb1cff4b19e01849c84c67364500d">cipher_update_ad</a>( <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx,</div> <div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *ad, <span class="keywordtype">size_t</span> ad_len );</div> <div class="line"><a name="l00568"></a><span class="lineno"> 568</span> <span class="preprocessor">#endif </span><span class="comment">/* POLARSSL_GCM_C */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="keywordtype">int</span> <a class="code" href="cipher_8h.html#afca62e9b6e95da3a46fa6c95f0a09e38">cipher_update</a>( <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *input,</div> <div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keywordtype">size_t</span> ilen, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *output, <span class="keywordtype">size_t</span> *olen );</div> <div class="line"><a name="l00601"></a><span class="lineno"> 601</span> </div> <div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="keywordtype">int</span> <a class="code" href="cipher_8h.html#a12a036b9caa428f47dfb14c06753f14c">cipher_finish</a>( <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx,</div> <div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *output, <span class="keywordtype">size_t</span> *olen );</div> <div class="line"><a name="l00621"></a><span class="lineno"> 621</span> </div> <div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="preprocessor">#if defined(POLARSSL_GCM_C)</span></div> <div class="line"><a name="l00623"></a><span class="lineno"> 623</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="keywordtype">int</span> <a class="code" href="cipher_8h.html#a54a922d31e506aa36dd8ed7798ed2a41">cipher_write_tag</a>( <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx,</div> <div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *tag, <span class="keywordtype">size_t</span> tag_len );</div> <div class="line"><a name="l00636"></a><span class="lineno"> 636</span> </div> <div class="line"><a name="l00648"></a><span class="lineno"> 648</span> <span class="keywordtype">int</span> <a class="code" href="cipher_8h.html#a907de4e9c5331d3e0a7d58c887e9173a">cipher_check_tag</a>( <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx,</div> <div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *tag, <span class="keywordtype">size_t</span> tag_len );</div> <div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="preprocessor">#endif </span><span class="comment">/* POLARSSL_GCM_C */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="keywordtype">int</span> <a class="code" href="cipher_8h.html#aac61499800e5f1436c61fcdd8be5ba4b">cipher_crypt</a>( <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx,</div> <div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *iv, <span class="keywordtype">size_t</span> iv_len,</div> <div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *input, <span class="keywordtype">size_t</span> ilen,</div> <div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *output, <span class="keywordtype">size_t</span> *olen );</div> <div class="line"><a name="l00683"></a><span class="lineno"> 683</span> </div> <div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="preprocessor">#if defined(POLARSSL_CIPHER_MODE_AEAD)</span></div> <div class="line"><a name="l00685"></a><span class="lineno"> 685</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00707"></a><span class="lineno"> 707</span> <span class="keywordtype">int</span> <a class="code" href="cipher_8h.html#a30155c676722d3538392b32ac45e8f8a">cipher_auth_encrypt</a>( <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx,</div> <div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *iv, <span class="keywordtype">size_t</span> iv_len,</div> <div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *ad, <span class="keywordtype">size_t</span> ad_len,</div> <div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *input, <span class="keywordtype">size_t</span> ilen,</div> <div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *output, <span class="keywordtype">size_t</span> *olen,</div> <div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *tag, <span class="keywordtype">size_t</span> tag_len );</div> <div class="line"><a name="l00713"></a><span class="lineno"> 713</span> </div> <div class="line"><a name="l00741"></a><span class="lineno"> 741</span> <span class="keywordtype">int</span> <a class="code" href="cipher_8h.html#ad2f7c44697223ae63d7814fc7e8b9092">cipher_auth_decrypt</a>( <a class="code" href="structcipher__context__t.html">cipher_context_t</a> *ctx,</div> <div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *iv, <span class="keywordtype">size_t</span> iv_len,</div> <div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *ad, <span class="keywordtype">size_t</span> ad_len,</div> <div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *input, <span class="keywordtype">size_t</span> ilen,</div> <div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *output, <span class="keywordtype">size_t</span> *olen,</div> <div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *tag, <span class="keywordtype">size_t</span> tag_len );</div> <div class="line"><a name="l00747"></a><span class="lineno"> 747</span> <span class="preprocessor">#endif </span><span class="comment">/* POLARSSL_CIPHER_MODE_AEAD */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00748"></a><span class="lineno"> 748</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00754"></a><span class="lineno"> 754</span> <span class="keywordtype">int</span> <a class="code" href="cipher_8h.html#ae9adb04c9894c75bbf71189d25b1b988">cipher_self_test</a>( <span class="keywordtype">int</span> verbose );</div> <div class="line"><a name="l00755"></a><span class="lineno"> 755</span> </div> <div class="line"><a name="l00756"></a><span class="lineno"> 756</span> <span class="preprocessor">#ifdef __cplusplus</span></div> <div class="line"><a name="l00757"></a><span class="lineno"> 757</span> <span class="preprocessor"></span>}</div> <div class="line"><a name="l00758"></a><span class="lineno"> 758</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00759"></a><span class="lineno"> 759</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00760"></a><span class="lineno"> 760</span> <span class="preprocessor">#endif </span><span class="comment">/* POLARSSL_CIPHER_H */</span><span class="preprocessor"></span></div> <div class="ttc" id="structcipher__context__t_html_ab101b4f205022bb29b5aa3e46ba9c79f"><div class="ttname"><a href="structcipher__context__t.html#ab101b4f205022bb29b5aa3e46ba9c79f">cipher_context_t::key_length</a></div><div class="ttdeci">int key_length</div><div class="ttdoc">Key length to use. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00263">cipher.h:263</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a14e0f405590439261729bac7ed0be6d4"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a14e0f405590439261729bac7ed0be6d4">POLARSSL_CIPHER_DES_ECB</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00115">cipher.h:115</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a2d0bc2d755adbd6dba51be94893e296d"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a2d0bc2d755adbd6dba51be94893e296d">POLARSSL_CIPHER_AES_128_GCM</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00097">cipher.h:97</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a2c83917c06819e0159c46d081beeed85"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a2c83917c06819e0159c46d081beeed85">POLARSSL_CIPHER_AES_256_CCM</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00128">cipher.h:128</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6ad1b4dfdab416de3a5e384e13d622a7a6"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ad1b4dfdab416de3a5e384e13d622a7a6">POLARSSL_CIPHER_CAMELLIA_256_CBC</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00105">cipher.h:105</a></div></div> <div class="ttc" id="cipher_8h_html_a12a036b9caa428f47dfb14c06753f14c"><div class="ttname"><a href="cipher_8h.html#a12a036b9caa428f47dfb14c06753f14c">cipher_finish</a></div><div class="ttdeci">int cipher_finish(cipher_context_t *ctx, unsigned char *output, size_t *olen)</div><div class="ttdoc">Generic cipher finalisation function. </div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a148083389736dc34ee2d729515482d85"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a148083389736dc34ee2d729515482d85">POLARSSL_CIPHER_DES_EDE_ECB</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00117">cipher.h:117</a></div></div> <div class="ttc" id="cipher_8h_html_af65d0bd9b5c3504fd010cf54955b179cafea74e56f89fafd334db1f5cb850e913"><div class="ttname"><a href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179cafea74e56f89fafd334db1f5cb850e913">POLARSSL_MODE_CFB</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00138">cipher.h:138</a></div></div> <div class="ttc" id="cipher_8h_html_a0555cab5391282ebcb61a899c00addec"><div class="ttname"><a href="cipher_8h.html#a0555cab5391282ebcb61a899c00addec">cipher_get_iv_size</a></div><div class="ttdeci">static int cipher_get_iv_size(const cipher_context_t *ctx)</div><div class="ttdoc">Returns the size of the cipher&#39;s IV/NONCE in bytes. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00418">cipher.h:418</a></div></div> <div class="ttc" id="structcipher__context__t_html"><div class="ttname"><a href="structcipher__context__t.html">cipher_context_t</a></div><div class="ttdoc">Generic cipher context. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00258">cipher.h:258</a></div></div> <div class="ttc" id="cipher_8h_html_a06fc87d81c62e9abb8790b6e5713c55ba47ee3dc5200730a429c1ec172e7d3a9d"><div class="ttname"><a href="cipher_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba47ee3dc5200730a429c1ec172e7d3a9d">POLARSSL_KEY_LENGTH_DES</a></div><div class="ttdoc">Key length, in bits (including parity), for DES keys. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00164">cipher.h:164</a></div></div> <div class="ttc" id="cipher_8h_html_af65d0bd9b5c3504fd010cf54955b179cabf517e1e6d97cc0b58ae154f5a2a1265"><div class="ttname"><a href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179cabf517e1e6d97cc0b58ae154f5a2a1265">POLARSSL_MODE_CCM</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00143">cipher.h:143</a></div></div> <div class="ttc" id="cipher_8h_html_af65d0bd9b5c3504fd010cf54955b179cabc642c3486ec5224ef3c13e53fc941d0"><div class="ttname"><a href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179cabc642c3486ec5224ef3c13e53fc941d0">POLARSSL_MODE_CBC</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00137">cipher.h:137</a></div></div> <div class="ttc" id="structcipher__info__t_html_a4cd6c957b0a94edbc002b5ab070dc0fe"><div class="ttname"><a href="structcipher__info__t.html#a4cd6c957b0a94edbc002b5ab070dc0fe">cipher_info_t::type</a></div><div class="ttdeci">cipher_type_t type</div><div class="ttdoc">Full cipher identifier (e.g. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00228">cipher.h:228</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6af46e4d5256f808678490a13ab72c1006"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6af46e4d5256f808678490a13ab72c1006">POLARSSL_CIPHER_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00083">cipher.h:83</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a425c63dfadae3b8dd2eea5cad19832ab"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a425c63dfadae3b8dd2eea5cad19832ab">POLARSSL_CIPHER_AES_128_ECB</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00085">cipher.h:85</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6adef0dc398d25e9e354ec08c64066f8e7"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6adef0dc398d25e9e354ec08c64066f8e7">POLARSSL_CIPHER_AES_192_ECB</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00086">cipher.h:86</a></div></div> <div class="ttc" id="cipher_8h_html_a6a719708dc3b2f0d0e7beadccf871f4f"><div class="ttname"><a href="cipher_8h.html#a6a719708dc3b2f0d0e7beadccf871f4f">cipher_init</a></div><div class="ttdeci">void cipher_init(cipher_context_t *ctx)</div><div class="ttdoc">Initialize a cipher_context (as NONE) </div></div> <div class="ttc" id="cipher_8h_html_a8cc9566954343cc25ab4432db0c3a353"><div class="ttname"><a href="cipher_8h.html#a8cc9566954343cc25ab4432db0c3a353">cipher_get_cipher_mode</a></div><div class="ttdeci">static cipher_mode_t cipher_get_cipher_mode(const cipher_context_t *ctx)</div><div class="ttdoc">Returns the mode of operation for the cipher. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00401">cipher.h:401</a></div></div> <div class="ttc" id="cipher_8h_html_af65d0bd9b5c3504fd010cf54955b179caa04d33ad2e38d6ef6996cd00c0e55730"><div class="ttname"><a href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179caa04d33ad2e38d6ef6996cd00c0e55730">POLARSSL_MODE_OFB</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00139">cipher.h:139</a></div></div> <div class="ttc" id="cipher_8h_html_a54a922d31e506aa36dd8ed7798ed2a41"><div class="ttname"><a href="cipher_8h.html#a54a922d31e506aa36dd8ed7798ed2a41">cipher_write_tag</a></div><div class="ttdeci">int cipher_write_tag(cipher_context_t *ctx, unsigned char *tag, size_t tag_len)</div><div class="ttdoc">Write tag for AEAD ciphers. </div></div> <div class="ttc" id="cipher_8h_html_af65d0bd9b5c3504fd010cf54955b179caaefd6ed34c1992d638129e161b28084a"><div class="ttname"><a href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179caaefd6ed34c1992d638129e161b28084a">POLARSSL_MODE_ECB</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00136">cipher.h:136</a></div></div> <div class="ttc" id="structcipher__info__t_html"><div class="ttname"><a href="structcipher__info__t.html">cipher_info_t</a></div><div class="ttdoc">Cipher information. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00226">cipher.h:226</a></div></div> <div class="ttc" id="cipher_8h_html_acb17eb5d2106ba020a20b70d878aa7ddadba7dd52d3452542bba0d1391301b7d6"><div class="ttname"><a href="cipher_8h.html#acb17eb5d2106ba020a20b70d878aa7ddadba7dd52d3452542bba0d1391301b7d6">POLARSSL_PADDING_ZEROS</a></div><div class="ttdoc">zero padding (not reversible!) </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00150">cipher.h:150</a></div></div> <div class="ttc" id="cipher_8h_html_a1a6dfa43a6758eb075dd2eb86b538900"><div class="ttname"><a href="cipher_8h.html#a1a6dfa43a6758eb075dd2eb86b538900">cipher_info_from_type</a></div><div class="ttdeci">const cipher_info_t * cipher_info_from_type(const cipher_type_t cipher_type)</div><div class="ttdoc">Returns the cipher information structure associated with the given cipher type. </div></div> <div class="ttc" id="cipher_8h_html_ac3ffcee4725c03638726f7211b31bcb7"><div class="ttname"><a href="cipher_8h.html#ac3ffcee4725c03638726f7211b31bcb7">cipher_get_block_size</a></div><div class="ttdeci">static unsigned int cipher_get_block_size(const cipher_context_t *ctx)</div><div class="ttdoc">Returns the block size of the given cipher. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00384">cipher.h:384</a></div></div> <div class="ttc" id="cipher_8h_html_a76763329d5579d862dfca01adf32c05b"><div class="ttname"><a href="cipher_8h.html#a76763329d5579d862dfca01adf32c05b">cipher_info_from_string</a></div><div class="ttdeci">const cipher_info_t * cipher_info_from_string(const char *cipher_name)</div><div class="ttdoc">Returns the cipher information structure associated with the given cipher name. </div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6adf8f7062a1324652e90eedd7d986a15a"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6adf8f7062a1324652e90eedd7d986a15a">POLARSSL_CIPHER_AES_192_CBC</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00089">cipher.h:89</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a9924eac692478f079e815869556553d2"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a9924eac692478f079e815869556553d2">POLARSSL_CIPHER_CAMELLIA_192_CFB128</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00107">cipher.h:107</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a76fa4f3edfc079d0d9e40356d5827c7b"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a76fa4f3edfc079d0d9e40356d5827c7b">POLARSSL_CIPHER_AES_128_CTR</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00094">cipher.h:94</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a971ae82c98df3922c99ac98983cf3a86"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a971ae82c98df3922c99ac98983cf3a86">POLARSSL_CIPHER_CAMELLIA_192_ECB</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00101">cipher.h:101</a></div></div> <div class="ttc" id="config_8h_html"><div class="ttname"><a href="config_8h.html">config.h</a></div><div class="ttdoc">Configuration options (set of defines) </div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6ad678b6ae83820aaa338fdd8a9888904d"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ad678b6ae83820aaa338fdd8a9888904d">POLARSSL_CIPHER_BLOWFISH_CFB64</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00123">cipher.h:123</a></div></div> <div class="ttc" id="cipher_8h_html_af65d0bd9b5c3504fd010cf54955b179ca45d7a269317fef5880d5ae9c6dae13f9"><div class="ttname"><a href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179ca45d7a269317fef5880d5ae9c6dae13f9">POLARSSL_MODE_GCM</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00141">cipher.h:141</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6ab62b45d44176c1c74d0894f1245268ae"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ab62b45d44176c1c74d0894f1245268ae">POLARSSL_CIPHER_AES_192_CCM</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00127">cipher.h:127</a></div></div> <div class="ttc" id="cipher_8h_html_ab13b86afbee6e045811edf5601dc5ce5"><div class="ttname"><a href="cipher_8h.html#ab13b86afbee6e045811edf5601dc5ce5">cipher_get_name</a></div><div class="ttdeci">static const char * cipher_get_name(const cipher_context_t *ctx)</div><div class="ttdoc">Returns the name of the given cipher, as a string. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00452">cipher.h:452</a></div></div> <div class="ttc" id="cipher_8h_html_a07c79d24f8381fade8fcad38b8351f79"><div class="ttname"><a href="cipher_8h.html#a07c79d24f8381fade8fcad38b8351f79">cipher_get_type</a></div><div class="ttdeci">static cipher_type_t cipher_get_type(const cipher_context_t *ctx)</div><div class="ttdoc">Returns the type of the given cipher. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00437">cipher.h:437</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a5aca9e36e3bf9a29724bd867dfc7550f"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a5aca9e36e3bf9a29724bd867dfc7550f">POLARSSL_CIPHER_AES_192_CTR</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00095">cipher.h:95</a></div></div> <div class="ttc" id="cipher_8h_html_acb17eb5d2106ba020a20b70d878aa7dda1500b0293a75a29cef21ea91ca279edc"><div class="ttname"><a href="cipher_8h.html#acb17eb5d2106ba020a20b70d878aa7dda1500b0293a75a29cef21ea91ca279edc">POLARSSL_PADDING_ONE_AND_ZEROS</a></div><div class="ttdoc">ISO/IEC 7816-4 padding. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00148">cipher.h:148</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a25d8a914e19a95d2f95ecb764058d49c"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a25d8a914e19a95d2f95ecb764058d49c">POLARSSL_CIPHER_CAMELLIA_192_CBC</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00104">cipher.h:104</a></div></div> <div class="ttc" id="cipher_8h_html_aac61499800e5f1436c61fcdd8be5ba4b"><div class="ttname"><a href="cipher_8h.html#aac61499800e5f1436c61fcdd8be5ba4b">cipher_crypt</a></div><div class="ttdeci">int cipher_crypt(cipher_context_t *ctx, const unsigned char *iv, size_t iv_len, const unsigned char *input, size_t ilen, unsigned char *output, size_t *olen)</div><div class="ttdoc">Generic all-in-one encryption/decryption (for all ciphers except AEAD constructs). </div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6abaeb5cf2ebe24189a042f999151468ae"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6abaeb5cf2ebe24189a042f999151468ae">POLARSSL_CIPHER_AES_256_CTR</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00096">cipher.h:96</a></div></div> <div class="ttc" id="cipher_8h_html_a373f5d3a0a42c77ff4f5fe4fe7da0560a3c1f6cf1191ddfb115467769ddff4851"><div class="ttname"><a href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a3c1f6cf1191ddfb115467769ddff4851">POLARSSL_CIPHER_ID_ARC4</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00079">cipher.h:79</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a38daa50cfa1c23ffda451ea940474a3f"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a38daa50cfa1c23ffda451ea940474a3f">POLARSSL_CIPHER_BLOWFISH_CBC</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00122">cipher.h:122</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a69e28d61d887dea757badae6bb5cc1c5"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a69e28d61d887dea757badae6bb5cc1c5">POLARSSL_CIPHER_AES_256_CFB128</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00093">cipher.h:93</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a17e4803d634ea1ee4daa8f26500a6393"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a17e4803d634ea1ee4daa8f26500a6393">POLARSSL_CIPHER_CAMELLIA_192_CCM</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00130">cipher.h:130</a></div></div> <div class="ttc" id="cipher_8h_html_af65d0bd9b5c3504fd010cf54955b179caf460bee5fb0bf8b383a1fe23099b6707"><div class="ttname"><a href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179caf460bee5fb0bf8b383a1fe23099b6707">POLARSSL_MODE_STREAM</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00142">cipher.h:142</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a634d2a1fff658d083c07a21175ca6c8e"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a634d2a1fff658d083c07a21175ca6c8e">POLARSSL_CIPHER_CAMELLIA_256_CFB128</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00108">cipher.h:108</a></div></div> <div class="ttc" id="structcipher__context__t_html_a93c2ded51eb87ba78aa9ee10d8f476fb"><div class="ttname"><a href="structcipher__context__t.html#a93c2ded51eb87ba78aa9ee10d8f476fb">cipher_context_t::cipher_info</a></div><div class="ttdeci">const cipher_info_t * cipher_info</div><div class="ttdoc">Information about the associated cipher. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00260">cipher.h:260</a></div></div> <div class="ttc" id="cipher_8h_html_a76a810650461f2062938ee9b82666b36ad8e41c0d381b23d7835dd322e511564f"><div class="ttname"><a href="cipher_8h.html#a76a810650461f2062938ee9b82666b36ad8e41c0d381b23d7835dd322e511564f">POLARSSL_ENCRYPT</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00157">cipher.h:157</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a2c9c1dabfa8c03b612dd7064fedc6540"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a2c9c1dabfa8c03b612dd7064fedc6540">POLARSSL_CIPHER_CAMELLIA_128_CCM</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00129">cipher.h:129</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a8ff89c9e9e41ec779b9424f51bfa2fba"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a8ff89c9e9e41ec779b9424f51bfa2fba">POLARSSL_CIPHER_CAMELLIA_192_CTR</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00110">cipher.h:110</a></div></div> <div class="ttc" id="cipher_8h_html_a373f5d3a0a42c77ff4f5fe4fe7da0560a945e095b835040add01d72e8a24e0047"><div class="ttname"><a href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a945e095b835040add01d72e8a24e0047">POLARSSL_CIPHER_ID_3DES</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00076">cipher.h:76</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a8355e93505e089dbe9fb391e901d6d44"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a8355e93505e089dbe9fb391e901d6d44">POLARSSL_CIPHER_CAMELLIA_192_GCM</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00113">cipher.h:113</a></div></div> <div class="ttc" id="structcipher__context__t_html_a621cd7faaf726b227e2ad58e8b7b755d"><div class="ttname"><a href="structcipher__context__t.html#a621cd7faaf726b227e2ad58e8b7b755d">cipher_context_t::operation</a></div><div class="ttdeci">operation_t operation</div><div class="ttdoc">Operation that the context&#39;s key has been initialised for. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00266">cipher.h:266</a></div></div> <div class="ttc" id="cipher_8h_html_af65d0bd9b5c3504fd010cf54955b179c"><div class="ttname"><a href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179c">cipher_mode_t</a></div><div class="ttdeci">cipher_mode_t</div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00134">cipher.h:134</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6adb00f9e0c03029ce6536979ba41fe1a5"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6adb00f9e0c03029ce6536979ba41fe1a5">POLARSSL_CIPHER_AES_256_ECB</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00087">cipher.h:87</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6">cipher_type_t</a></div><div class="ttdeci">cipher_type_t</div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00082">cipher.h:82</a></div></div> <div class="ttc" id="cipher_8h_html_a373f5d3a0a42c77ff4f5fe4fe7da0560a54c7640a78cff246c1c9557d23ff5fa6"><div class="ttname"><a href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a54c7640a78cff246c1c9557d23ff5fa6">POLARSSL_CIPHER_ID_DES</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00075">cipher.h:75</a></div></div> <div class="ttc" id="cipher_8h_html_aa2488bd674e8deee5938b1926f4868f0"><div class="ttname"><a href="cipher_8h.html#aa2488bd674e8deee5938b1926f4868f0">POLARSSL_MAX_BLOCK_LENGTH</a></div><div class="ttdeci">#define POLARSSL_MAX_BLOCK_LENGTH</div><div class="ttdoc">Maximum block size of any cipher, in bytes. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00174">cipher.h:174</a></div></div> <div class="ttc" id="structcipher__context__t_html_a777d4a1f4f3951a475ec9ebbf2527a28"><div class="ttname"><a href="structcipher__context__t.html#a777d4a1f4f3951a475ec9ebbf2527a28">cipher_context_t::unprocessed_len</a></div><div class="ttdeci">size_t unprocessed_len</div><div class="ttdoc">Number of bytes that still need processing. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00276">cipher.h:276</a></div></div> <div class="ttc" id="cipher_8h_html_ac8abe3c96c800481697cfe8260cf829d"><div class="ttname"><a href="cipher_8h.html#ac8abe3c96c800481697cfe8260cf829d">cipher_free_ctx</a></div><div class="ttdeci">int cipher_free_ctx(cipher_context_t *ctx)</div><div class="ttdoc">Free the cipher-specific context of ctx. </div></div> <div class="ttc" id="cipher_8h_html_a5b8cb1cff4b19e01849c84c67364500d"><div class="ttname"><a href="cipher_8h.html#a5b8cb1cff4b19e01849c84c67364500d">cipher_update_ad</a></div><div class="ttdeci">int cipher_update_ad(cipher_context_t *ctx, const unsigned char *ad, size_t ad_len)</div><div class="ttdoc">Add additional data (for AEAD ciphers). </div></div> <div class="ttc" id="structcipher__info__t_html_a2a22ee6e5c529e10cbe6225d71460b26"><div class="ttname"><a href="structcipher__info__t.html#a2a22ee6e5c529e10cbe6225d71460b26">cipher_info_t::key_length</a></div><div class="ttdeci">unsigned int key_length</div><div class="ttdoc">Cipher key length, in bits (default length for variable sized ciphers) (Includes parity bits for ciph...</div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00235">cipher.h:235</a></div></div> <div class="ttc" id="cipher_8h_html_a76a810650461f2062938ee9b82666b36"><div class="ttname"><a href="cipher_8h.html#a76a810650461f2062938ee9b82666b36">operation_t</a></div><div class="ttdeci">operation_t</div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00154">cipher.h:154</a></div></div> <div class="ttc" id="cipher_8h_html_abca5954bfff4e62c5280267d2a97171d"><div class="ttname"><a href="cipher_8h.html#abca5954bfff4e62c5280267d2a97171d">cipher_set_iv</a></div><div class="ttdeci">int cipher_set_iv(cipher_context_t *ctx, const unsigned char *iv, size_t iv_len)</div><div class="ttdoc">Set the initialization vector (IV) or nonce. </div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6afb71c594cdaf3411cf7768ff57431125"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6afb71c594cdaf3411cf7768ff57431125">POLARSSL_CIPHER_CAMELLIA_128_ECB</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00100">cipher.h:100</a></div></div> <div class="ttc" id="cipher_8h_html_a30155c676722d3538392b32ac45e8f8a"><div class="ttname"><a href="cipher_8h.html#a30155c676722d3538392b32ac45e8f8a">cipher_auth_encrypt</a></div><div class="ttdeci">int cipher_auth_encrypt(cipher_context_t *ctx, const unsigned char *iv, size_t iv_len, const unsigned char *ad, size_t ad_len, const unsigned char *input, size_t ilen, unsigned char *output, size_t *olen, unsigned char *tag, size_t tag_len)</div><div class="ttdoc">Generic autenticated encryption (AEAD ciphers). </div></div> <div class="ttc" id="cipher_8h_html_afca62e9b6e95da3a46fa6c95f0a09e38"><div class="ttname"><a href="cipher_8h.html#afca62e9b6e95da3a46fa6c95f0a09e38">cipher_update</a></div><div class="ttdeci">int cipher_update(cipher_context_t *ctx, const unsigned char *input, size_t ilen, unsigned char *output, size_t *olen)</div><div class="ttdoc">Generic cipher update function. </div></div> <div class="ttc" id="cipher_8h_html_a76a810650461f2062938ee9b82666b36a878b38bff48702f7816ee15e6954b717"><div class="ttname"><a href="cipher_8h.html#a76a810650461f2062938ee9b82666b36a878b38bff48702f7816ee15e6954b717">POLARSSL_OPERATION_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00155">cipher.h:155</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a8ce984017149df219b49fcc1d506ce10"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a8ce984017149df219b49fcc1d506ce10">POLARSSL_CIPHER_DES_EDE_CBC</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00118">cipher.h:118</a></div></div> <div class="ttc" id="cipher_8h_html_a373f5d3a0a42c77ff4f5fe4fe7da0560aad5ebb9bbbb1a70f117da429c31f1850"><div class="ttname"><a href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560aad5ebb9bbbb1a70f117da429c31f1850">POLARSSL_CIPHER_ID_NULL</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00073">cipher.h:73</a></div></div> <div class="ttc" id="cipher_8h_html_ad2f7c44697223ae63d7814fc7e8b9092"><div class="ttname"><a href="cipher_8h.html#ad2f7c44697223ae63d7814fc7e8b9092">cipher_auth_decrypt</a></div><div class="ttdeci">int cipher_auth_decrypt(cipher_context_t *ctx, const unsigned char *iv, size_t iv_len, const unsigned char *ad, size_t ad_len, const unsigned char *input, size_t ilen, unsigned char *output, size_t *olen, const unsigned char *tag, size_t tag_len)</div><div class="ttdoc">Generic autenticated decryption (AEAD ciphers). </div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6af14528a0b54195461babbaec8181913c"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6af14528a0b54195461babbaec8181913c">POLARSSL_CIPHER_DES_CBC</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00116">cipher.h:116</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a8d4e003be055910575927334574d81e2"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a8d4e003be055910575927334574d81e2">POLARSSL_CIPHER_AES_128_CBC</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00088">cipher.h:88</a></div></div> <div class="ttc" id="cipher_8h_html_a06fc87d81c62e9abb8790b6e5713c55bae76d012453101c4c2abe7a807de47219"><div class="ttname"><a href="cipher_8h.html#a06fc87d81c62e9abb8790b6e5713c55bae76d012453101c4c2abe7a807de47219">POLARSSL_KEY_LENGTH_DES_EDE3</a></div><div class="ttdoc">Key length, in bits (including parity), for DES in three-key EDE. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00168">cipher.h:168</a></div></div> <div class="ttc" id="structcipher__info__t_html_a9b189d0ce9de3eada6b874f1ce8a7393"><div class="ttname"><a href="structcipher__info__t.html#a9b189d0ce9de3eada6b874f1ce8a7393">cipher_info_t::name</a></div><div class="ttdeci">const char * name</div><div class="ttdoc">Name of the cipher. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00238">cipher.h:238</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a916a07fd9b1787be9f9bf4d55e92a2a8"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a916a07fd9b1787be9f9bf4d55e92a2a8">POLARSSL_CIPHER_AES_192_GCM</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00098">cipher.h:98</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a771ce38dd356f676da95c91c86ac3b2d"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a771ce38dd356f676da95c91c86ac3b2d">POLARSSL_CIPHER_CAMELLIA_128_CTR</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00109">cipher.h:109</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a7fbc06c11043b1283a2f0c37063025ef"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a7fbc06c11043b1283a2f0c37063025ef">POLARSSL_CIPHER_CAMELLIA_128_CBC</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00103">cipher.h:103</a></div></div> <div class="ttc" id="cipher_8h_html_a373f5d3a0a42c77ff4f5fe4fe7da0560a7f2185b07190a2ea88e864155bbec21d"><div class="ttname"><a href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a7f2185b07190a2ea88e864155bbec21d">POLARSSL_CIPHER_ID_AES</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00074">cipher.h:74</a></div></div> <div class="ttc" id="cipher_8h_html_a373f5d3a0a42c77ff4f5fe4fe7da0560"><div class="ttname"><a href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560">cipher_id_t</a></div><div class="ttdeci">cipher_id_t</div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00071">cipher.h:71</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a8193cb4f12803423fc303f3f804038a4"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a8193cb4f12803423fc303f3f804038a4">POLARSSL_CIPHER_CAMELLIA_128_CFB128</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00106">cipher.h:106</a></div></div> <div class="ttc" id="cipher_8h_html_aded691b9d905920d9675e7b9828a237c"><div class="ttname"><a href="cipher_8h.html#aded691b9d905920d9675e7b9828a237c">POLARSSL_MAX_IV_LENGTH</a></div><div class="ttdeci">#define POLARSSL_MAX_IV_LENGTH</div><div class="ttdoc">Maximum length of any IV, in bytes. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00172">cipher.h:172</a></div></div> <div class="ttc" id="cipher_8h_html_a0a55a8eeae5ebb2627c59257ffb202bc"><div class="ttname"><a href="cipher_8h.html#a0a55a8eeae5ebb2627c59257ffb202bc">cipher_reset</a></div><div class="ttdeci">int cipher_reset(cipher_context_t *ctx)</div><div class="ttdoc">Finish preparation of the given context. </div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a4802ed2b8f0b2201a35bbee4779ca40b"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a4802ed2b8f0b2201a35bbee4779ca40b">POLARSSL_CIPHER_CAMELLIA_128_GCM</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00112">cipher.h:112</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6ab7f25ac8ae942ca9cfbe97a65d56ce2e"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ab7f25ac8ae942ca9cfbe97a65d56ce2e">POLARSSL_CIPHER_ARC4_128</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00125">cipher.h:125</a></div></div> <div class="ttc" id="structcipher__base__t_html_a539b9bf80fc122393affcc4cf8e1d3cc"><div class="ttname"><a href="structcipher__base__t.html#a539b9bf80fc122393affcc4cf8e1d3cc">cipher_base_t::cipher</a></div><div class="ttdeci">cipher_id_t cipher</div><div class="ttdoc">Base Cipher type (e.g. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00182">cipher.h:182</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a7f02d410ddbed8cf2d14900cf3574409"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a7f02d410ddbed8cf2d14900cf3574409">POLARSSL_CIPHER_AES_128_CFB128</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00091">cipher.h:91</a></div></div> <div class="ttc" id="cipher_8h_html_af27f8e4cd1fab59615c3d73c69d136c8"><div class="ttname"><a href="cipher_8h.html#af27f8e4cd1fab59615c3d73c69d136c8">cipher_free</a></div><div class="ttdeci">void cipher_free(cipher_context_t *ctx)</div><div class="ttdoc">Free and clear the cipher-specific context of ctx. </div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a89d049ae306bffa6d89431b51c8a786b"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a89d049ae306bffa6d89431b51c8a786b">POLARSSL_CIPHER_CAMELLIA_256_ECB</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00102">cipher.h:102</a></div></div> <div class="ttc" id="cipher_8h_html_abbc809fe32e1cce35834006d1edf1f2c"><div class="ttname"><a href="cipher_8h.html#abbc809fe32e1cce35834006d1edf1f2c">cipher_set_padding_mode</a></div><div class="ttdeci">int cipher_set_padding_mode(cipher_context_t *ctx, cipher_padding_t mode)</div><div class="ttdoc">Set padding mode, for cipher modes that use padding. </div></div> <div class="ttc" id="structcipher__info__t_html_a61c2ca01508859a6119d8b4c22e2edd2"><div class="ttname"><a href="structcipher__info__t.html#a61c2ca01508859a6119d8b4c22e2edd2">cipher_info_t::mode</a></div><div class="ttdeci">cipher_mode_t mode</div><div class="ttdoc">Cipher mode (e.g. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00231">cipher.h:231</a></div></div> <div class="ttc" id="cipher_8h_html_a76a810650461f2062938ee9b82666b36ae99cd4d55b496dbb74727f7a6ed872c7"><div class="ttname"><a href="cipher_8h.html#a76a810650461f2062938ee9b82666b36ae99cd4d55b496dbb74727f7a6ed872c7">POLARSSL_DECRYPT</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00156">cipher.h:156</a></div></div> <div class="ttc" id="cipher_8h_html_af65d0bd9b5c3504fd010cf54955b179ca12481621829a56c22c4620d5596feca5"><div class="ttname"><a href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179ca12481621829a56c22c4620d5596feca5">POLARSSL_MODE_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00135">cipher.h:135</a></div></div> <div class="ttc" id="cipher_8h_html_acb17eb5d2106ba020a20b70d878aa7dd"><div class="ttname"><a href="cipher_8h.html#acb17eb5d2106ba020a20b70d878aa7dd">cipher_padding_t</a></div><div class="ttdeci">cipher_padding_t</div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00146">cipher.h:146</a></div></div> <div class="ttc" id="cipher_8h_html_ab6316d711155a6ba661d6dd18eaf3bf2"><div class="ttname"><a href="cipher_8h.html#ab6316d711155a6ba661d6dd18eaf3bf2">cipher_get_operation</a></div><div class="ttdeci">static operation_t cipher_get_operation(const cipher_context_t *ctx)</div><div class="ttdoc">Returns the operation of the given cipher. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00486">cipher.h:486</a></div></div> <div class="ttc" id="cipher_8h_html_acb17eb5d2106ba020a20b70d878aa7dda4a67d6bf4aec45912ee66f37a3cbb8a8"><div class="ttname"><a href="cipher_8h.html#acb17eb5d2106ba020a20b70d878aa7dda4a67d6bf4aec45912ee66f37a3cbb8a8">POLARSSL_PADDING_PKCS7</a></div><div class="ttdoc">PKCS7 padding (default) </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00147">cipher.h:147</a></div></div> <div class="ttc" id="cipher_8h_html_adc7c37e925193805884085ca87587f64"><div class="ttname"><a href="cipher_8h.html#adc7c37e925193805884085ca87587f64">cipher_init_ctx</a></div><div class="ttdeci">int cipher_init_ctx(cipher_context_t *ctx, const cipher_info_t *cipher_info)</div><div class="ttdoc">Initialises and fills the cipher context structure with the appropriate values. </div></div> <div class="ttc" id="cipher_8h_html_a77355bddf2d69f68d55e2bd2374e9257"><div class="ttname"><a href="cipher_8h.html#a77355bddf2d69f68d55e2bd2374e9257">cipher_setkey</a></div><div class="ttdeci">int cipher_setkey(cipher_context_t *ctx, const unsigned char *key, int key_length, const operation_t operation)</div><div class="ttdoc">Set the key to use with the given context. </div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a0da001217dca5276686d3fe73939bb77"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a0da001217dca5276686d3fe73939bb77">POLARSSL_CIPHER_BLOWFISH_CTR</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00124">cipher.h:124</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6ab613ba7e4b52c0cdc64e93d314cd3fbf"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ab613ba7e4b52c0cdc64e93d314cd3fbf">POLARSSL_CIPHER_AES_128_CCM</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00126">cipher.h:126</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6aad917e3c424e563fc088827959c88868"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6aad917e3c424e563fc088827959c88868">POLARSSL_CIPHER_AES_192_CFB128</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00092">cipher.h:92</a></div></div> <div class="ttc" id="cipher_8h_html_acb17eb5d2106ba020a20b70d878aa7ddaae558f0b4d848f4a29f0fae3fedbcf99"><div class="ttname"><a href="cipher_8h.html#acb17eb5d2106ba020a20b70d878aa7ddaae558f0b4d848f4a29f0fae3fedbcf99">POLARSSL_PADDING_NONE</a></div><div class="ttdoc">never pad (full blocks only) </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00151">cipher.h:151</a></div></div> <div class="ttc" id="structcipher__base__t_html"><div class="ttname"><a href="structcipher__base__t.html">cipher_base_t</a></div><div class="ttdoc">Base cipher information. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00179">cipher.h:179</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a26b732304711bc77fbd4984f59719461"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a26b732304711bc77fbd4984f59719461">POLARSSL_CIPHER_NULL</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00084">cipher.h:84</a></div></div> <div class="ttc" id="structcipher__info__t_html_a12c80723dd2c354ff5596b0931d4fedb"><div class="ttname"><a href="structcipher__info__t.html#a12c80723dd2c354ff5596b0931d4fedb">cipher_info_t::base</a></div><div class="ttdeci">const cipher_base_t * base</div><div class="ttdoc">Base cipher information and functions. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00251">cipher.h:251</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a028f9f32aacd390889b29f67c6d9fdcd"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a028f9f32aacd390889b29f67c6d9fdcd">POLARSSL_CIPHER_CAMELLIA_256_GCM</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00114">cipher.h:114</a></div></div> <div class="ttc" id="cipher_8h_html_a036719c5224e57cf8469ebf9daceb137"><div class="ttname"><a href="cipher_8h.html#a036719c5224e57cf8469ebf9daceb137">cipher_list</a></div><div class="ttdeci">const int * cipher_list(void)</div><div class="ttdoc">Returns the list of ciphers supported by the generic cipher module. </div></div> <div class="ttc" id="cipher_8h_html_a06fc87d81c62e9abb8790b6e5713c55badc72f57d8ab7a6ca11f7cf86c6899366"><div class="ttname"><a href="cipher_8h.html#a06fc87d81c62e9abb8790b6e5713c55badc72f57d8ab7a6ca11f7cf86c6899366">POLARSSL_KEY_LENGTH_NONE</a></div><div class="ttdoc">Undefined key length. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00162">cipher.h:162</a></div></div> <div class="ttc" id="cipher_8h_html_a373f5d3a0a42c77ff4f5fe4fe7da0560a4e4271ec0a459bae7d6f4a0a825bddc9"><div class="ttname"><a href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a4e4271ec0a459bae7d6f4a0a825bddc9">POLARSSL_CIPHER_ID_CAMELLIA</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00077">cipher.h:77</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a383bff04387b7fbb14fdf526688a87c4"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a383bff04387b7fbb14fdf526688a87c4">POLARSSL_CIPHER_AES_256_CBC</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00090">cipher.h:90</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a80290044d0da4521376ed60d5edc8c67"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a80290044d0da4521376ed60d5edc8c67">POLARSSL_CIPHER_CAMELLIA_256_CCM</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00131">cipher.h:131</a></div></div> <div class="ttc" id="cipher_8h_html_acb17eb5d2106ba020a20b70d878aa7dda5610144cf3e2bf2289e0e52e3fe16aa2"><div class="ttname"><a href="cipher_8h.html#acb17eb5d2106ba020a20b70d878aa7dda5610144cf3e2bf2289e0e52e3fe16aa2">POLARSSL_PADDING_ZEROS_AND_LEN</a></div><div class="ttdoc">ANSI X.923 padding. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00149">cipher.h:149</a></div></div> <div class="ttc" id="structcipher__info__t_html_a7e21795685c79613b5125ca608b0c63b"><div class="ttname"><a href="structcipher__info__t.html#a7e21795685c79613b5125ca608b0c63b">cipher_info_t::block_size</a></div><div class="ttdeci">unsigned int block_size</div><div class="ttdoc">block size, in bytes </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00248">cipher.h:248</a></div></div> <div class="ttc" id="cipher_8h_html_af65d0bd9b5c3504fd010cf54955b179ca9c7b9959c0a1b08bed57d40edc27ffe9"><div class="ttname"><a href="cipher_8h.html#af65d0bd9b5c3504fd010cf54955b179ca9c7b9959c0a1b08bed57d40edc27ffe9">POLARSSL_MODE_CTR</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00140">cipher.h:140</a></div></div> <div class="ttc" id="structcipher__context__t_html_aef2bf9abf15fb851faf69c1591790f29"><div class="ttname"><a href="structcipher__context__t.html#aef2bf9abf15fb851faf69c1591790f29">cipher_context_t::cipher_ctx</a></div><div class="ttdeci">void * cipher_ctx</div><div class="ttdoc">Cipher-specific context. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00285">cipher.h:285</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6ade30c0ba8f3b4c0149dc711f595c32a9"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ade30c0ba8f3b4c0149dc711f595c32a9">POLARSSL_CIPHER_BLOWFISH_ECB</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00121">cipher.h:121</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a25905ecd711ed8af6d78bd38b19790de"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a25905ecd711ed8af6d78bd38b19790de">POLARSSL_CIPHER_CAMELLIA_256_CTR</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00111">cipher.h:111</a></div></div> <div class="ttc" id="cipher_8h_html_a9534326eea78885a9b47ce0b0a3aa0d3"><div class="ttname"><a href="cipher_8h.html#a9534326eea78885a9b47ce0b0a3aa0d3">cipher_get_key_size</a></div><div class="ttdeci">static int cipher_get_key_size(const cipher_context_t *ctx)</div><div class="ttdoc">Returns the key length of the cipher. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00469">cipher.h:469</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a5113b084db48bacfe7f8773a8f709a30"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a5113b084db48bacfe7f8773a8f709a30">POLARSSL_CIPHER_AES_256_GCM</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00099">cipher.h:99</a></div></div> <div class="ttc" id="cipher_8h_html_ae9adb04c9894c75bbf71189d25b1b988"><div class="ttname"><a href="cipher_8h.html#ae9adb04c9894c75bbf71189d25b1b988">cipher_self_test</a></div><div class="ttdeci">int cipher_self_test(int verbose)</div><div class="ttdoc">Checkup routine. </div></div> <div class="ttc" id="cipher_8h_html_a373f5d3a0a42c77ff4f5fe4fe7da0560a18bc87fe56e4f9fcb83c2a59829915d8"><div class="ttname"><a href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a18bc87fe56e4f9fcb83c2a59829915d8">POLARSSL_CIPHER_ID_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00072">cipher.h:72</a></div></div> <div class="ttc" id="structcipher__context__t_html_a124f269c0d3b1ce1a74f5dcacf69b688"><div class="ttname"><a href="structcipher__context__t.html#a124f269c0d3b1ce1a74f5dcacf69b688">cipher_context_t::iv_size</a></div><div class="ttdeci">size_t iv_size</div><div class="ttdoc">IV size in bytes (for ciphers with variable-length IVs) </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00282">cipher.h:282</a></div></div> <div class="ttc" id="cipher_8h_html_a373f5d3a0a42c77ff4f5fe4fe7da0560a4156bba2b3f3f98a5ef5ee212a6ce992"><div class="ttname"><a href="cipher_8h.html#a373f5d3a0a42c77ff4f5fe4fe7da0560a4156bba2b3f3f98a5ef5ee212a6ce992">POLARSSL_CIPHER_ID_BLOWFISH</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00078">cipher.h:78</a></div></div> <div class="ttc" id="structcipher__info__t_html_ab3a9f706fa42f9a43a0e8d50ac54a959"><div class="ttname"><a href="structcipher__info__t.html#ab3a9f706fa42f9a43a0e8d50ac54a959">cipher_info_t::flags</a></div><div class="ttdeci">int flags</div><div class="ttdoc">Flags for variable IV size, variable key size, etc. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00245">cipher.h:245</a></div></div> <div class="ttc" id="cipher_8h_html_a907de4e9c5331d3e0a7d58c887e9173a"><div class="ttname"><a href="cipher_8h.html#a907de4e9c5331d3e0a7d58c887e9173a">cipher_check_tag</a></div><div class="ttdeci">int cipher_check_tag(cipher_context_t *ctx, const unsigned char *tag, size_t tag_len)</div><div class="ttdoc">Check tag for AEAD ciphers. </div></div> <div class="ttc" id="structcipher__info__t_html_ae8fde413dc240da60f4062c3138eec0a"><div class="ttname"><a href="structcipher__info__t.html#ae8fde413dc240da60f4062c3138eec0a">cipher_info_t::iv_size</a></div><div class="ttdeci">unsigned int iv_size</div><div class="ttdoc">IV/NONCE size, in bytes. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00242">cipher.h:242</a></div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6a79352d8566dcb0eb1395d0f4ce4ba0b2"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6a79352d8566dcb0eb1395d0f4ce4ba0b2">POLARSSL_CIPHER_DES_EDE3_ECB</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00119">cipher.h:119</a></div></div> <div class="ttc" id="cipher_8h_html_a06fc87d81c62e9abb8790b6e5713c55bac20e9716bcdadc5bddba0e6e6ebb133b"><div class="ttname"><a href="cipher_8h.html#a06fc87d81c62e9abb8790b6e5713c55bac20e9716bcdadc5bddba0e6e6ebb133b">POLARSSL_KEY_LENGTH_DES_EDE</a></div><div class="ttdoc">Key length, in bits (including parity), for DES in two key EDE. </div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00166">cipher.h:166</a></div></div> <div class="ttc" id="cipher_8h_html_a68fd6a4ea2c236dc4abcad76d73d5cac"><div class="ttname"><a href="cipher_8h.html#a68fd6a4ea2c236dc4abcad76d73d5cac">cipher_info_from_values</a></div><div class="ttdeci">const cipher_info_t * cipher_info_from_values(const cipher_id_t cipher_id, int key_length, const cipher_mode_t mode)</div><div class="ttdoc">Returns the cipher information structure associated with the given cipher id, key size and mode...</div></div> <div class="ttc" id="cipher_8h_html_a806c82ed7e8b591dedc86093f38274e6ae6ab208bff4f88dbba3277a05686b0a9"><div class="ttname"><a href="cipher_8h.html#a806c82ed7e8b591dedc86093f38274e6ae6ab208bff4f88dbba3277a05686b0a9">POLARSSL_CIPHER_DES_EDE3_CBC</a></div><div class="ttdef"><b>Definition:</b> <a href="cipher_8h_source.html#l00120">cipher.h:120</a></div></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Thu Jul 31 2014 11:35:51 for PolarSSL v1.3.8 by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.5 </small></address> </body> </html>