File "sha2_8h_source.html"
Full Path: /home/attunedd/public_html/byp/izo/con7ext_sym404/rintoar.txt/opt/alt/ruby19/share/doc/ruby/html/db/d4d/sha2_8h_source.html
File size: 57.08 KB
MIME-type: text/html
Charset: utf-8
<!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.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Ruby: ext/digest/sha2/sha2.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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Ruby
 <span id="projectnumber">1.9.3p551(2014-11-13revision48407)</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('../../',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="../../dir_31cedd4509e06940f559c1ca2f722e02.html">ext</a></li><li class="navelem"><a class="el" href="../../dir_8462c367d9e69a7809faa14633ccfafa.html">digest</a></li><li class="navelem"><a class="el" href="../../dir_a9cf865355561749cfedd2e562ceb3d4.html">sha2</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">sha2.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="../../db/d4d/sha2_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> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * FILE: sha2.h</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * AUTHOR: Aaron D. Gifford - http://www.aarongifford.com/</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Copyright (c) 2000-2001, Aaron D. Gifford</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * All rights reserved.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * modification, are permitted provided that the following conditions</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * are met:</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * documentation and/or other materials provided with the distribution.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * 3. Neither the name of the copyright holder nor the names of contributors</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * may be used to endorse or promote products derived from this software</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * without specific prior written permission.</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> *</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTOR(S) ``AS IS'' AND</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTOR(S) BE LIABLE</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> * SUCH DAMAGE.</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> *</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> * $OrigId: sha2.h,v 1.1 2001/11/08 00:02:01 adg Exp adg $</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"> * $RoughId: sha2.h,v 1.3 2002/02/24 08:14:32 knu Exp $</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment"> * $Id: sha2.h 27437 2010-04-22 08:04:13Z nobu $</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment"> */</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#ifndef __SHA2_H__</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#define __SHA2_H__</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">/*</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"> * Import u_intXX_t size_t type definitions from system headers. You</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> * may need to change this, or define these things yourself in this</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> * file.</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"> */</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include <sys/types.h></span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#ifdef RUBY</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor"># ifdef HAVE_PROTOTYPES</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor"># undef NOPROTO</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor"># else</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"># define NOPROTO</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"># endif </span><span class="comment">/* HAVE_PROTOTYPES */</span><span class="preprocessor"></span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"># ifndef BYTE_ORDER</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"># define LITTLE_ENDIAN 1234</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"># define BIG_ENDIAN 4321</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"># ifdef WORDS_BIGENDIAN</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor"># define BYTE_ORDER BIG_ENDIAN</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor"># else</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor"># define BYTE_ORDER LITTLE_ENDIAN</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"># endif</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"># endif </span><span class="comment">/* BYTE_ORDER */</span><span class="preprocessor"></span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"># define SHA2_USE_INTTYPES_H</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#else </span><span class="comment">/* RUBY */</span><span class="preprocessor"></span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#ifdef SHA2_USE_INTTYPES_H</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor">#include <inttypes.h></span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#endif </span><span class="comment">/* SHA2_USE_INTTYPES_H */</span><span class="preprocessor"></span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#endif </span><span class="comment">/* RUBY */</span><span class="preprocessor"></span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment">/*** SHA-256/384/512 Various Length Definitions ***********************/</span></div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="../../db/d4d/sha2_8h.html#af7a1879c2d7cd5cf31c91c0eb91b0015"> 78</a></span> <span class="preprocessor">#define SHA256_BLOCK_LENGTH 64</span></div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="../../db/d4d/sha2_8h.html#aa9cf0abf87b30c4c63e9c7e89c590579"> 79</a></span> <span class="preprocessor">#define SHA256_DIGEST_LENGTH 32</span></div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="../../db/d4d/sha2_8h.html#a0c71de183b257bb9ef09a865ad1ddc29"> 80</a></span> <span class="preprocessor">#define SHA256_DIGEST_STRING_LENGTH (SHA256_DIGEST_LENGTH * 2 + 1)</span></div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="../../db/d4d/sha2_8h.html#a68d1fbbb5c00350da3e44c495607273e"> 81</a></span> <span class="preprocessor">#define SHA384_BLOCK_LENGTH 128</span></div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="../../db/d4d/sha2_8h.html#a5f90d25a54e963a3ae3d800fffddaa31"> 82</a></span> <span class="preprocessor">#define SHA384_DIGEST_LENGTH 48</span></div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="../../db/d4d/sha2_8h.html#a5e0cfb23f0ec75951994c93963b98f46"> 83</a></span> <span class="preprocessor">#define SHA384_DIGEST_STRING_LENGTH (SHA384_DIGEST_LENGTH * 2 + 1)</span></div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="../../db/d4d/sha2_8h.html#a768752124501032a219d4426b2ce3197"> 84</a></span> <span class="preprocessor">#define SHA512_BLOCK_LENGTH 128</span></div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="../../db/d4d/sha2_8h.html#a5a8416d0f8e1af6d7525114ef09be118"> 85</a></span> <span class="preprocessor">#define SHA512_DIGEST_LENGTH 64</span></div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="../../db/d4d/sha2_8h.html#a8c2f6b671b4f82d98f8f4fe856105f8a"> 86</a></span> <span class="preprocessor">#define SHA512_DIGEST_STRING_LENGTH (SHA512_DIGEST_LENGTH * 2 + 1)</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment">/*** SHA-256/384/512 Context Structures *******************************/</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment">/* NOTE: If your architecture does not define either u_intXX_t types or</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment"> * uintXX_t (from inttypes.h), you may need to define things by hand</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment"> * for your system:</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment"> */</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor">#ifndef SHA2_USE_INTTYPES_H</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor"># ifdef HAVE_U_INT8_T</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">typedef</span> u_int8_t <a class="code" href="../../db/d4d/sha2_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>; <span class="comment">/* 1-byte (8-bits) */</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">typedef</span> u_int32_t <a class="code" href="../../db/d4d/sha2_8h.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>; <span class="comment">/* 4-bytes (32-bits) */</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">typedef</span> u_int64_t <a class="code" href="../../db/d4d/sha2_8h.html#aaa5d1cd013383c889537491c3cfd9aad">uint64_t</a>; <span class="comment">/* 8-bytes (64-bits) */</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor"># else</span></div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="../../db/d4d/sha2_8h.html#aba7bc1797add20fe3efdf37ced1182c5"> 100</a></span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="../../db/d4d/sha2_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>; <span class="comment">/* 1-byte (8-bits) */</span></div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="../../db/d4d/sha2_8h.html#a435d1572bf3f880d55459d9805097f62"> 101</a></span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="../../db/d4d/sha2_8h.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>; <span class="comment">/* 4-bytes (32-bits) */</span></div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="../../db/d4d/sha2_8h.html#aaa5d1cd013383c889537491c3cfd9aad"> 102</a></span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="../../db/d4d/sha2_8h.html#aaa5d1cd013383c889537491c3cfd9aad">uint64_t</a>; <span class="comment">/* 8-bytes (64-bits) */</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor"># endif</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment">/*</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment"> * Most BSD systems already define u_intXX_t types, as does Linux.</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment"> * Some systems, however, like Compaq's Tru64 Unix instead can use</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment"> * uintXX_t types defined by very recent ANSI C standards and included</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment"> * in the file:</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment"> *</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment"> * #include <inttypes.h></span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment"> *</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment"> * If you choose to use <inttypes.h> then please define:</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment"> *</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment"> * #define SHA2_USE_INTTYPES_H</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment"> *</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment"> * Or on the command line during compile:</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment"> *</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment"> * cc -DSHA2_USE_INTTYPES_H ...</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment"> */</span></div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="../../d6/d4f/struct___s_h_a256___c_t_x.html"> 122</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="../../d6/d4f/struct___s_h_a256___c_t_x.html">_SHA256_CTX</a> {</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="../../d6/d4f/struct___s_h_a256___c_t_x.html#abd2d6cafcfc3bac16b0ed3004398441f"> 123</a></span>  <a class="code" href="../../db/d4d/sha2_8h.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a> <a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a>[8];</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="../../d6/d4f/struct___s_h_a256___c_t_x.html#a8c4fdecd6c096b7d1627720622d39a3d"> 124</a></span>  <a class="code" href="../../db/d4d/sha2_8h.html#aaa5d1cd013383c889537491c3cfd9aad">uint64_t</a> <a class="code" href="../../d6/d4f/struct___s_h_a256___c_t_x.html#a8c4fdecd6c096b7d1627720622d39a3d">bitcount</a>;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="../../d6/d4f/struct___s_h_a256___c_t_x.html#a3961040fe6b7982171684f77a7577572"> 125</a></span>  <a class="code" href="../../db/d4d/sha2_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="../../d6/d4f/struct___s_h_a256___c_t_x.html#a3961040fe6b7982171684f77a7577572">buffer</a>[<a class="code" href="../../db/d4d/sha2_8h.html#af7a1879c2d7cd5cf31c91c0eb91b0015">SHA256_BLOCK_LENGTH</a>];</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> } <a class="code" href="../../db/d4d/sha2_8h.html#a0e4ea9b43c30824ef17d9d4a108cb249">SHA256_CTX</a>;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="../../d1/d39/struct___s_h_a512___c_t_x.html"> 127</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="../../d1/d39/struct___s_h_a512___c_t_x.html">_SHA512_CTX</a> {</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="../../d1/d39/struct___s_h_a512___c_t_x.html#a9a53dc66589d57d3e34d68a983252fc9"> 128</a></span>  <a class="code" href="../../db/d4d/sha2_8h.html#aaa5d1cd013383c889537491c3cfd9aad">uint64_t</a> <a class="code" href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a>[8];</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="../../d1/d39/struct___s_h_a512___c_t_x.html#a6545d179b1f548c14adb1ee7f900de6a"> 129</a></span>  <a class="code" href="../../db/d4d/sha2_8h.html#aaa5d1cd013383c889537491c3cfd9aad">uint64_t</a> <a class="code" href="../../d1/d39/struct___s_h_a512___c_t_x.html#a6545d179b1f548c14adb1ee7f900de6a">bitcount</a>[2];</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="../../d1/d39/struct___s_h_a512___c_t_x.html#a218417630503a9591d36d0ee63eca048"> 130</a></span>  <a class="code" href="../../db/d4d/sha2_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> <a class="code" href="../../d1/d39/struct___s_h_a512___c_t_x.html#a218417630503a9591d36d0ee63eca048">buffer</a>[<a class="code" href="../../db/d4d/sha2_8h.html#a768752124501032a219d4426b2ce3197">SHA512_BLOCK_LENGTH</a>];</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> } <a class="code" href="../../db/d4d/sha2_8h.html#a1b070134506a05572bad212a90835314">SHA512_CTX</a>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="../../db/d4d/sha2_8h.html#aa5ada4d74bf5109a2ae863d156373bce"> 133</a></span> <span class="keyword">typedef</span> <a class="code" href="../../d1/d39/struct___s_h_a512___c_t_x.html">SHA512_CTX</a> <a class="code" href="../../db/d4d/sha2_8h.html#aa5ada4d74bf5109a2ae863d156373bce">SHA384_CTX</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment">/*** SHA-256/384/512 Function Prototypes ******************************/</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="preprocessor">#ifdef RUBY</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor">#define SHA256_Init rb_Digest_SHA256_Init</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="preprocessor">#define SHA256_Update rb_Digest_SHA256_Update</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="preprocessor">#define SHA256_Finish rb_Digest_SHA256_Finish</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor">#define SHA256_Data rb_Digest_SHA256_Data</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="preprocessor">#define SHA256_End rb_Digest_SHA256_End</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor">#define SHA256_Last rb_Digest_SHA256_Last</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="preprocessor">#define SHA256_Transform rb_Digest_SHA256_Transform</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor">#define SHA256_Final(d, c) SHA256_Finish(c, d)</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor">#define SHA384_Init rb_Digest_SHA384_Init</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor">#define SHA384_Update rb_Digest_SHA384_Update</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor">#define SHA384_Finish rb_Digest_SHA384_Finish</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor">#define SHA384_Data rb_Digest_SHA384_Data</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor">#define SHA384_End rb_Digest_SHA384_End</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="preprocessor">#define SHA384_Last rb_Digest_SHA384_Last</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="preprocessor">#define SHA384_Transform rb_Digest_SHA384_Transform</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="preprocessor">#define SHA384_Final(d, c) SHA384_Finish(c, d)</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor">#define SHA512_Init rb_Digest_SHA512_Init</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor">#define SHA512_Update rb_Digest_SHA512_Update</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="preprocessor">#define SHA512_Finish rb_Digest_SHA512_Finish</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="preprocessor">#define SHA512_Data rb_Digest_SHA512_Data</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="preprocessor">#define SHA512_End rb_Digest_SHA512_End</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="preprocessor">#define SHA512_Last rb_Digest_SHA512_Last</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="preprocessor">#define SHA512_Transform rb_Digest_SHA512_Transform</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor">#define SHA512_Final(d, c) SHA512_Finish(c, d)</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor">#endif </span><span class="comment">/* RUBY */</span><span class="preprocessor"></span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor">#ifndef NOPROTO</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d4d/sha2_8h.html#a93803a123d9a15154bb08739a9f2cc21">SHA256_Init</a>(<a class="code" href="../../d6/d4f/struct___s_h_a256___c_t_x.html">SHA256_CTX</a> *);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d4d/sha2_8h.html#aca3bef97c6039623ae8579be342ca6bb">SHA256_Update</a>(<a class="code" href="../../d6/d4f/struct___s_h_a256___c_t_x.html">SHA256_CTX</a>*, <span class="keyword">const</span> <a class="code" href="../../db/d4d/sha2_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>*, <span class="keywordtype">size_t</span>);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d4d/sha2_8h.html#a58a769df2ec82a5abd3582493172bade">SHA256_Final</a>(<a class="code" href="../../db/d4d/sha2_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>[<a class="code" href="../../db/d4d/sha2_8h.html#aa9cf0abf87b30c4c63e9c7e89c590579">SHA256_DIGEST_LENGTH</a>], <a class="code" href="../../d6/d4f/struct___s_h_a256___c_t_x.html">SHA256_CTX</a>*);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="keywordtype">char</span>* <a class="code" href="../../db/d4d/sha2_8h.html#aa7f63aa4653a45248769ab5bb80fe83e">SHA256_End</a>(<a class="code" href="../../d6/d4f/struct___s_h_a256___c_t_x.html">SHA256_CTX</a>*, <span class="keywordtype">char</span>[<a class="code" href="../../db/d4d/sha2_8h.html#a0c71de183b257bb9ef09a865ad1ddc29">SHA256_DIGEST_STRING_LENGTH</a>]);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keywordtype">char</span>* <a class="code" href="../../db/d4d/sha2_8h.html#a8e68f6162b136c60ef9d22312706e86b">SHA256_Data</a>(<span class="keyword">const</span> <a class="code" href="../../db/d4d/sha2_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>*, <span class="keywordtype">size_t</span>, <span class="keywordtype">char</span>[<a class="code" href="../../db/d4d/sha2_8h.html#a0c71de183b257bb9ef09a865ad1ddc29">SHA256_DIGEST_STRING_LENGTH</a>]);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d4d/sha2_8h.html#a22b8be94484e6a14e6e0a568f1c81e39">SHA384_Init</a>(<a class="code" href="../../d1/d39/struct___s_h_a512___c_t_x.html">SHA384_CTX</a>*);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d4d/sha2_8h.html#a06653380eb4c4fe96fa533430db6dfd3">SHA384_Update</a>(<a class="code" href="../../d1/d39/struct___s_h_a512___c_t_x.html">SHA384_CTX</a>*, <span class="keyword">const</span> <a class="code" href="../../db/d4d/sha2_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>*, <span class="keywordtype">size_t</span>);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d4d/sha2_8h.html#a9cb3f309f1c0bbff9c9fe9baeeeed89e">SHA384_Final</a>(<a class="code" href="../../db/d4d/sha2_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>[<a class="code" href="../../db/d4d/sha2_8h.html#a5f90d25a54e963a3ae3d800fffddaa31">SHA384_DIGEST_LENGTH</a>], <a class="code" href="../../d1/d39/struct___s_h_a512___c_t_x.html">SHA384_CTX</a>*);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keywordtype">char</span>* <a class="code" href="../../db/d4d/sha2_8h.html#a1c63dcbde878be6fc340f7e6cc617360">SHA384_End</a>(<a class="code" href="../../d1/d39/struct___s_h_a512___c_t_x.html">SHA384_CTX</a>*, <span class="keywordtype">char</span>[<a class="code" href="../../db/d4d/sha2_8h.html#a5e0cfb23f0ec75951994c93963b98f46">SHA384_DIGEST_STRING_LENGTH</a>]);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="keywordtype">char</span>* <a class="code" href="../../db/d4d/sha2_8h.html#aa0d9010af5ba26da23b6cd3fead59acd">SHA384_Data</a>(<span class="keyword">const</span> <a class="code" href="../../db/d4d/sha2_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>*, <span class="keywordtype">size_t</span>, <span class="keywordtype">char</span>[<a class="code" href="../../db/d4d/sha2_8h.html#a5e0cfb23f0ec75951994c93963b98f46">SHA384_DIGEST_STRING_LENGTH</a>]);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d4d/sha2_8h.html#ae56fdedcab2fae42b9dfd178f6a952ec">SHA512_Init</a>(<a class="code" href="../../d1/d39/struct___s_h_a512___c_t_x.html">SHA512_CTX</a>*);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d4d/sha2_8h.html#a742dbd3a8e5367f099579f49735d0a8c">SHA512_Update</a>(<a class="code" href="../../d1/d39/struct___s_h_a512___c_t_x.html">SHA512_CTX</a>*, <span class="keyword">const</span> <a class="code" href="../../db/d4d/sha2_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>*, <span class="keywordtype">size_t</span>);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d4d/sha2_8h.html#a3e971ef25ebfca0442619f96f2a5a0ab">SHA512_Final</a>(<a class="code" href="../../db/d4d/sha2_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>[<a class="code" href="../../db/d4d/sha2_8h.html#a5a8416d0f8e1af6d7525114ef09be118">SHA512_DIGEST_LENGTH</a>], <a class="code" href="../../d1/d39/struct___s_h_a512___c_t_x.html">SHA512_CTX</a>*);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keywordtype">char</span>* <a class="code" href="../../db/d4d/sha2_8h.html#a4c4a54ac91b60ad8c5c8c4e27e9ac46a">SHA512_End</a>(<a class="code" href="../../d1/d39/struct___s_h_a512___c_t_x.html">SHA512_CTX</a>*, <span class="keywordtype">char</span>[<a class="code" href="../../db/d4d/sha2_8h.html#a8c2f6b671b4f82d98f8f4fe856105f8a">SHA512_DIGEST_STRING_LENGTH</a>]);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="keywordtype">char</span>* <a class="code" href="../../db/d4d/sha2_8h.html#a2bc94905c5413606607b531619c79e5f">SHA512_Data</a>(<span class="keyword">const</span> <a class="code" href="../../db/d4d/sha2_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a>*, <span class="keywordtype">size_t</span>, <span class="keywordtype">char</span>[<a class="code" href="../../db/d4d/sha2_8h.html#a8c2f6b671b4f82d98f8f4fe856105f8a">SHA512_DIGEST_STRING_LENGTH</a>]);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="preprocessor">#else </span><span class="comment">/* NOPROTO */</span><span class="preprocessor"></span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d4d/sha2_8h.html#a93803a123d9a15154bb08739a9f2cc21">SHA256_Init</a>();</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d4d/sha2_8h.html#aca3bef97c6039623ae8579be342ca6bb">SHA256_Update</a>();</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="preprocessor">#ifdef RUBY</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d87/sha2ossl_8h.html#a444248603e1858aa0cd300cf5afa64e7">SHA256_Finish</a>();</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d4d/sha2_8h.html#a58a769df2ec82a5abd3582493172bade">SHA256_Final</a>();</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="preprocessor">#endif </span><span class="comment">/* RUBY */</span><span class="preprocessor"></span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keywordtype">char</span>* <a class="code" href="../../db/d4d/sha2_8h.html#aa7f63aa4653a45248769ab5bb80fe83e">SHA256_End</a>();</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="keywordtype">char</span>* <a class="code" href="../../db/d4d/sha2_8h.html#a8e68f6162b136c60ef9d22312706e86b">SHA256_Data</a>();</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d4d/sha2_8h.html#a22b8be94484e6a14e6e0a568f1c81e39">SHA384_Init</a>();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d4d/sha2_8h.html#a06653380eb4c4fe96fa533430db6dfd3">SHA384_Update</a>();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="preprocessor">#ifdef RUBY</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d87/sha2ossl_8h.html#aecdffa05fe86ab3b828a57e5adee3600">SHA384_Finish</a>();</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d4d/sha2_8h.html#a9cb3f309f1c0bbff9c9fe9baeeeed89e">SHA384_Final</a>();</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="preprocessor">#endif </span><span class="comment">/* RUBY */</span><span class="preprocessor"></span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="keywordtype">char</span>* <a class="code" href="../../db/d4d/sha2_8h.html#a1c63dcbde878be6fc340f7e6cc617360">SHA384_End</a>();</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="keywordtype">char</span>* <a class="code" href="../../db/d4d/sha2_8h.html#aa0d9010af5ba26da23b6cd3fead59acd">SHA384_Data</a>();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d4d/sha2_8h.html#ae56fdedcab2fae42b9dfd178f6a952ec">SHA512_Init</a>();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d4d/sha2_8h.html#a742dbd3a8e5367f099579f49735d0a8c">SHA512_Update</a>();</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="preprocessor">#ifdef RUBY</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d87/sha2ossl_8h.html#aea00181159a105c14a50b2fafd3f172c">SHA512_Finish</a>();</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="keywordtype">void</span> <a class="code" href="../../db/d4d/sha2_8h.html#a3e971ef25ebfca0442619f96f2a5a0ab">SHA512_Final</a>();</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="preprocessor">#endif </span><span class="comment">/* RUBY */</span><span class="preprocessor"></span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keywordtype">char</span>* <a class="code" href="../../db/d4d/sha2_8h.html#a4c4a54ac91b60ad8c5c8c4e27e9ac46a">SHA512_End</a>();</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="keywordtype">char</span>* <a class="code" href="../../db/d4d/sha2_8h.html#a2bc94905c5413606607b531619c79e5f">SHA512_Data</a>();</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="preprocessor">#endif </span><span class="comment">/* NOPROTO */</span><span class="preprocessor"></span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="preprocessor">#endif </span><span class="comment">/* __cplusplus */</span><span class="preprocessor"></span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="preprocessor">#endif </span><span class="comment">/* __SHA2_H__ */</span><span class="preprocessor"></span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div><div class="ttc" id="struct___s_h_a512___c_t_x_html"><div class="ttname"><a href="../../d1/d39/struct___s_h_a512___c_t_x.html">_SHA512_CTX</a></div><div class="ttdef"><b>Definition:</b> <a href="../../db/d4d/sha2_8h_source.html#l00127">sha2.h:127</a></div></div>
<div class="ttc" id="sha2_8h_html_a9cb3f309f1c0bbff9c9fe9baeeeed89e"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a9cb3f309f1c0bbff9c9fe9baeeeed89e">SHA384_Final</a></div><div class="ttdeci">void SHA384_Final(uint8_t[SHA384_DIGEST_LENGTH], SHA384_CTX *)</div></div>
<div class="ttc" id="sha2_8h_html_a1c63dcbde878be6fc340f7e6cc617360"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a1c63dcbde878be6fc340f7e6cc617360">SHA384_End</a></div><div class="ttdeci">char * SHA384_End(SHA384_CTX *, char[SHA384_DIGEST_STRING_LENGTH])</div></div>
<div class="ttc" id="sha2_8h_html_a0c71de183b257bb9ef09a865ad1ddc29"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a0c71de183b257bb9ef09a865ad1ddc29">SHA256_DIGEST_STRING_LENGTH</a></div><div class="ttdeci">#define SHA256_DIGEST_STRING_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d4d/sha2_8h_source.html#l00080">sha2.h:80</a></div></div>
<div class="ttc" id="sha2_8h_html_a4c4a54ac91b60ad8c5c8c4e27e9ac46a"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a4c4a54ac91b60ad8c5c8c4e27e9ac46a">SHA512_End</a></div><div class="ttdeci">char * SHA512_End(SHA512_CTX *, char[SHA512_DIGEST_STRING_LENGTH])</div></div>
<div class="ttc" id="sha2ossl_8h_html_aecdffa05fe86ab3b828a57e5adee3600"><div class="ttname"><a href="../../db/d87/sha2ossl_8h.html#aecdffa05fe86ab3b828a57e5adee3600">SHA384_Finish</a></div><div class="ttdeci">void SHA384_Finish(SHA384_CTX *ctx, char *buf)</div></div>
<div class="ttc" id="sha2_8h_html_a22b8be94484e6a14e6e0a568f1c81e39"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a22b8be94484e6a14e6e0a568f1c81e39">SHA384_Init</a></div><div class="ttdeci">void SHA384_Init(SHA384_CTX *)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d80/sha2_8c_source.html#l01001">sha2.c:1001</a></div></div>
<div class="ttc" id="sha2_8h_html_aa7f63aa4653a45248769ab5bb80fe83e"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#aa7f63aa4653a45248769ab5bb80fe83e">SHA256_End</a></div><div class="ttdeci">char * SHA256_End(SHA256_CTX *, char[SHA256_DIGEST_STRING_LENGTH])</div></div>
<div class="ttc" id="sha2_8h_html_af7a1879c2d7cd5cf31c91c0eb91b0015"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#af7a1879c2d7cd5cf31c91c0eb91b0015">SHA256_BLOCK_LENGTH</a></div><div class="ttdeci">#define SHA256_BLOCK_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d4d/sha2_8h_source.html#l00078">sha2.h:78</a></div></div>
<div class="ttc" id="struct___s_h_a512___c_t_x_html_a218417630503a9591d36d0ee63eca048"><div class="ttname"><a href="../../d1/d39/struct___s_h_a512___c_t_x.html#a218417630503a9591d36d0ee63eca048">_SHA512_CTX::buffer</a></div><div class="ttdeci">uint8_t buffer[SHA512_BLOCK_LENGTH]</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d4d/sha2_8h_source.html#l00130">sha2.h:130</a></div></div>
<div class="ttc" id="sha2_8h_html_a58a769df2ec82a5abd3582493172bade"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a58a769df2ec82a5abd3582493172bade">SHA256_Final</a></div><div class="ttdeci">void SHA256_Final(uint8_t[SHA256_DIGEST_LENGTH], SHA256_CTX *)</div></div>
<div class="ttc" id="sha2_8h_html_a1b070134506a05572bad212a90835314"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a1b070134506a05572bad212a90835314">SHA512_CTX</a></div><div class="ttdeci">struct _SHA512_CTX SHA512_CTX</div></div>
<div class="ttc" id="sha2_8h_html_aba7bc1797add20fe3efdf37ced1182c5"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a></div><div class="ttdeci">unsigned char uint8_t</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d4d/sha2_8h_source.html#l00100">sha2.h:100</a></div></div>
<div class="ttc" id="sha2_8h_html_a0e4ea9b43c30824ef17d9d4a108cb249"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a0e4ea9b43c30824ef17d9d4a108cb249">SHA256_CTX</a></div><div class="ttdeci">struct _SHA256_CTX SHA256_CTX</div></div>
<div class="ttc" id="sha2_8h_html_a93803a123d9a15154bb08739a9f2cc21"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a93803a123d9a15154bb08739a9f2cc21">SHA256_Init</a></div><div class="ttdeci">void SHA256_Init(SHA256_CTX *)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d80/sha2_8c_source.html#l00344">sha2.c:344</a></div></div>
<div class="ttc" id="sha2_8h_html_aaa5d1cd013383c889537491c3cfd9aad"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#aaa5d1cd013383c889537491c3cfd9aad">uint64_t</a></div><div class="ttdeci">unsigned long long uint64_t</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d4d/sha2_8h_source.html#l00102">sha2.h:102</a></div></div>
<div class="ttc" id="sha2_8h_html_a06653380eb4c4fe96fa533430db6dfd3"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a06653380eb4c4fe96fa533430db6dfd3">SHA384_Update</a></div><div class="ttdeci">void SHA384_Update(SHA384_CTX *, const uint8_t *, size_t)</div></div>
<div class="ttc" id="sha2_8h_html_aa0d9010af5ba26da23b6cd3fead59acd"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#aa0d9010af5ba26da23b6cd3fead59acd">SHA384_Data</a></div><div class="ttdeci">char * SHA384_Data(const uint8_t *, size_t, char[SHA384_DIGEST_STRING_LENGTH])</div></div>
<div class="ttc" id="sha2ossl_8h_html_aea00181159a105c14a50b2fafd3f172c"><div class="ttname"><a href="../../db/d87/sha2ossl_8h.html#aea00181159a105c14a50b2fafd3f172c">SHA512_Finish</a></div><div class="ttdeci">void SHA512_Finish(SHA512_CTX *ctx, char *buf)</div></div>
<div class="ttc" id="struct___s_h_a512___c_t_x_html_a6545d179b1f548c14adb1ee7f900de6a"><div class="ttname"><a href="../../d1/d39/struct___s_h_a512___c_t_x.html#a6545d179b1f548c14adb1ee7f900de6a">_SHA512_CTX::bitcount</a></div><div class="ttdeci">uint64_t bitcount[2]</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d4d/sha2_8h_source.html#l00129">sha2.h:129</a></div></div>
<div class="ttc" id="sha2_8h_html_a742dbd3a8e5367f099579f49735d0a8c"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a742dbd3a8e5367f099579f49735d0a8c">SHA512_Update</a></div><div class="ttdeci">void SHA512_Update(SHA512_CTX *, const uint8_t *, size_t)</div></div>
<div class="ttc" id="sha2_8h_html_a5f90d25a54e963a3ae3d800fffddaa31"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a5f90d25a54e963a3ae3d800fffddaa31">SHA384_DIGEST_LENGTH</a></div><div class="ttdeci">#define SHA384_DIGEST_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d4d/sha2_8h_source.html#l00082">sha2.h:82</a></div></div>
<div class="ttc" id="sha2_8h_html_aa5ada4d74bf5109a2ae863d156373bce"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#aa5ada4d74bf5109a2ae863d156373bce">SHA384_CTX</a></div><div class="ttdeci">SHA512_CTX SHA384_CTX</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d4d/sha2_8h_source.html#l00133">sha2.h:133</a></div></div>
<div class="ttc" id="sha2ossl_8h_html_a444248603e1858aa0cd300cf5afa64e7"><div class="ttname"><a href="../../db/d87/sha2ossl_8h.html#a444248603e1858aa0cd300cf5afa64e7">SHA256_Finish</a></div><div class="ttdeci">void SHA256_Finish(SHA256_CTX *ctx, char *buf)</div></div>
<div class="ttc" id="sha2_8h_html_a435d1572bf3f880d55459d9805097f62"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a></div><div class="ttdeci">unsigned int uint32_t</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d4d/sha2_8h_source.html#l00101">sha2.h:101</a></div></div>
<div class="ttc" id="sha2_8h_html_aa9cf0abf87b30c4c63e9c7e89c590579"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#aa9cf0abf87b30c4c63e9c7e89c590579">SHA256_DIGEST_LENGTH</a></div><div class="ttdeci">#define SHA256_DIGEST_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d4d/sha2_8h_source.html#l00079">sha2.h:79</a></div></div>
<div class="ttc" id="sha2_8h_html_a2bc94905c5413606607b531619c79e5f"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a2bc94905c5413606607b531619c79e5f">SHA512_Data</a></div><div class="ttdeci">char * SHA512_Data(const uint8_t *, size_t, char[SHA512_DIGEST_STRING_LENGTH])</div></div>
<div class="ttc" id="sha2_8h_html_ae56fdedcab2fae42b9dfd178f6a952ec"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#ae56fdedcab2fae42b9dfd178f6a952ec">SHA512_Init</a></div><div class="ttdeci">void SHA512_Init(SHA512_CTX *)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d80/sha2_8c_source.html#l00672">sha2.c:672</a></div></div>
<div class="ttc" id="sha2_8h_html_a3e971ef25ebfca0442619f96f2a5a0ab"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a3e971ef25ebfca0442619f96f2a5a0ab">SHA512_Final</a></div><div class="ttdeci">void SHA512_Final(uint8_t[SHA512_DIGEST_LENGTH], SHA512_CTX *)</div></div>
<div class="ttc" id="struct___s_h_a256___c_t_x_html"><div class="ttname"><a href="../../d6/d4f/struct___s_h_a256___c_t_x.html">_SHA256_CTX</a></div><div class="ttdef"><b>Definition:</b> <a href="../../db/d4d/sha2_8h_source.html#l00122">sha2.h:122</a></div></div>
<div class="ttc" id="sha2_8h_html_a5e0cfb23f0ec75951994c93963b98f46"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a5e0cfb23f0ec75951994c93963b98f46">SHA384_DIGEST_STRING_LENGTH</a></div><div class="ttdeci">#define SHA384_DIGEST_STRING_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d4d/sha2_8h_source.html#l00083">sha2.h:83</a></div></div>
<div class="ttc" id="sha2_8h_html_aca3bef97c6039623ae8579be342ca6bb"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#aca3bef97c6039623ae8579be342ca6bb">SHA256_Update</a></div><div class="ttdeci">void SHA256_Update(SHA256_CTX *, const uint8_t *, size_t)</div></div>
<div class="ttc" id="sha2_8h_html_a5a8416d0f8e1af6d7525114ef09be118"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a5a8416d0f8e1af6d7525114ef09be118">SHA512_DIGEST_LENGTH</a></div><div class="ttdeci">#define SHA512_DIGEST_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d4d/sha2_8h_source.html#l00085">sha2.h:85</a></div></div>
<div class="ttc" id="gb18030_8c_html_adc6e5733fc3c22f0a7b2914188c49c90"><div class="ttname"><a href="../../d5/d1d/gb18030_8c.html#adc6e5733fc3c22f0a7b2914188c49c90">state</a></div><div class="ttdeci">state</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d1d/gb18030_8c_source.html#l00213">gb18030.c:213</a></div></div>
<div class="ttc" id="sha2_8h_html_a8e68f6162b136c60ef9d22312706e86b"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a8e68f6162b136c60ef9d22312706e86b">SHA256_Data</a></div><div class="ttdeci">char * SHA256_Data(const uint8_t *, size_t, char[SHA256_DIGEST_STRING_LENGTH])</div></div>
<div class="ttc" id="sha2_8h_html_a768752124501032a219d4426b2ce3197"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a768752124501032a219d4426b2ce3197">SHA512_BLOCK_LENGTH</a></div><div class="ttdeci">#define SHA512_BLOCK_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d4d/sha2_8h_source.html#l00084">sha2.h:84</a></div></div>
<div class="ttc" id="struct___s_h_a256___c_t_x_html_a8c4fdecd6c096b7d1627720622d39a3d"><div class="ttname"><a href="../../d6/d4f/struct___s_h_a256___c_t_x.html#a8c4fdecd6c096b7d1627720622d39a3d">_SHA256_CTX::bitcount</a></div><div class="ttdeci">uint64_t bitcount</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d4d/sha2_8h_source.html#l00124">sha2.h:124</a></div></div>
<div class="ttc" id="struct___s_h_a256___c_t_x_html_a3961040fe6b7982171684f77a7577572"><div class="ttname"><a href="../../d6/d4f/struct___s_h_a256___c_t_x.html#a3961040fe6b7982171684f77a7577572">_SHA256_CTX::buffer</a></div><div class="ttdeci">uint8_t buffer[SHA256_BLOCK_LENGTH]</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d4d/sha2_8h_source.html#l00125">sha2.h:125</a></div></div>
<div class="ttc" id="sha2_8h_html_a8c2f6b671b4f82d98f8f4fe856105f8a"><div class="ttname"><a href="../../db/d4d/sha2_8h.html#a8c2f6b671b4f82d98f8f4fe856105f8a">SHA512_DIGEST_STRING_LENGTH</a></div><div class="ttdeci">#define SHA512_DIGEST_STRING_LENGTH</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d4d/sha2_8h_source.html#l00086">sha2.h:86</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>