Delphi 华为云接口签名
<p>delphi 华为云AKSK签名</p><p>难点主要是用的D7开发的,签名算法要求是rsa256 。网上找资料后是调用libeay32.dll 函数来实现签名。</p>
<p>从网上找到libeay32.pas </p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> <span style="color: rgba(0, 128, 0, 1)">(*</span><span style="color: rgba(0, 128, 0, 1)">*****************************************************************************
</span><span style="color: rgba(0, 128, 128, 1)"> 2</span> <span style="color: rgba(0, 128, 0, 1)"> Delphi import unit for OpenSSL libeay, version 0.7m, 2010-11-05
</span><span style="color: rgba(0, 128, 128, 1)"> 3</span>
<span style="color: rgba(0, 128, 128, 1)"> 4</span> <span style="color: rgba(0, 128, 0, 1)"> For OpenSSL libeay32.dll version 0.9.6b, DLL compiled by GnuWin32.
</span><span style="color: rgba(0, 128, 128, 1)"> 5</span> <span style="color: rgba(0, 128, 0, 1)"> Tested with Borland Delphi 6, 7 Personal
</span><span style="color: rgba(0, 128, 128, 1)"> 6</span>
<span style="color: rgba(0, 128, 128, 1)"> 7</span> <span style="color: rgba(0, 128, 0, 1)"> Copyright (C) 2002-2010, Marco Ferrante.
</span><span style="color: rgba(0, 128, 128, 1)"> 8</span> <span style="color: rgba(0, 128, 0, 1)"> 2002-2006, CSITA - Universit?di Genova (IT).
</span><span style="color: rgba(0, 128, 128, 1)"> 9</span> <span style="color: rgba(0, 128, 0, 1)"> http://www.csita.unige.it/.
</span><span style="color: rgba(0, 128, 128, 1)">10</span> <span style="color: rgba(0, 128, 0, 1)"> 2007-2009, DISI - Universit?di Genova (IT).
</span><span style="color: rgba(0, 128, 128, 1)">11</span> <span style="color: rgba(0, 128, 0, 1)"> http://www.disi.unige.it/.
</span><span style="color: rgba(0, 128, 128, 1)">12</span> <span style="color: rgba(0, 128, 0, 1)"> 2010, CSITA - Universit?di Genova (IT).
</span><span style="color: rgba(0, 128, 128, 1)">13</span> <span style="color: rgba(0, 128, 0, 1)"> http://www.csita.unige.it/.
</span><span style="color: rgba(0, 128, 128, 1)">14</span> <span style="color: rgba(0, 128, 0, 1)"> Thanks to:
</span><span style="color: rgba(0, 128, 128, 1)">15</span> <span style="color: rgba(0, 128, 0, 1)"> - Michal Hlavac (Slovakia)
</span><span style="color: rgba(0, 128, 128, 1)">16</span> <span style="color: rgba(0, 128, 0, 1)"> - Risto Tamme (Estonia)
</span><span style="color: rgba(0, 128, 128, 1)">17</span> <span style="color: rgba(0, 128, 0, 1)"> - Simon Sun (probably USA)
</span><span style="color: rgba(0, 128, 128, 1)">18</span>
<span style="color: rgba(0, 128, 128, 1)">19</span> <span style="color: rgba(0, 128, 0, 1)"> - Luis Carrasco, Bambu Code (Mexico)
</span><span style="color: rgba(0, 128, 128, 1)">20</span> <span style="color: rgba(0, 128, 0, 1)"> for contributes and fix
</span><span style="color: rgba(0, 128, 128, 1)">21</span>
<span style="color: rgba(0, 128, 128, 1)">22</span> <span style="color: rgba(0, 128, 0, 1)"> A small part of this work is inspired on MySSL, interface to OpenSSL for
</span><span style="color: rgba(0, 128, 128, 1)">23</span> <span style="color: rgba(0, 128, 0, 1)"> Delphi written by Jan Tomasek.
</span><span style="color: rgba(0, 128, 128, 1)">24</span>
<span style="color: rgba(0, 128, 128, 1)">25</span> <span style="color: rgba(0, 128, 0, 1)"> This product is related to cryptographic software written by Eric
</span><span style="color: rgba(0, 128, 128, 1)">26</span> <span style="color: rgba(0, 128, 0, 1)"> Young (eay@cryptsoft.com). This product is related to software written
</span><span style="color: rgba(0, 128, 128, 1)">27</span> <span style="color: rgba(0, 128, 0, 1)"> by Tim Hudson (tjh@cryptsoft.com)
</span><span style="color: rgba(0, 128, 128, 1)">28</span>
<span style="color: rgba(0, 128, 128, 1)">29</span> <span style="color: rgba(0, 128, 0, 1)"> == Changelog =======================================================
</span><span style="color: rgba(0, 128, 128, 1)">30</span>
<span style="color: rgba(0, 128, 128, 1)">31</span> <span style="color: rgba(0, 128, 0, 1)"> Version 0.7n, 2010-12-27
</span><span style="color: rgba(0, 128, 128, 1)">32</span> <span style="color: rgba(0, 128, 0, 1)"> - typo corrected
</span><span style="color: rgba(0, 128, 128, 1)">33</span>
<span style="color: rgba(0, 128, 128, 1)">34</span> <span style="color: rgba(0, 128, 0, 1)"> Version 0.7m, 2010-11-05
</span><span style="color: rgba(0, 128, 128, 1)">35</span> <span style="color: rgba(0, 128, 0, 1)"> - added support for PCKS#8 functions (contributed by Luis Carrasco - Bambu Code, Mexico),
</span><span style="color: rgba(0, 128, 128, 1)">36</span> <span style="color: rgba(0, 128, 0, 1)"> - redefinition of PChar as PCharacter to handle PChar and PAnsiChar types
</span><span style="color: rgba(0, 128, 128, 1)">37</span> <span style="color: rgba(0, 128, 0, 1)"> - basic AES support
</span><span style="color: rgba(0, 128, 128, 1)">38</span>
<span style="color: rgba(0, 128, 128, 1)">39</span> <span style="color: rgba(0, 128, 0, 1)"> Version 0.7h, 2009-02-25
</span><span style="color: rgba(0, 128, 128, 1)">40</span> <span style="color: rgba(0, 128, 0, 1)"> - added X509_sign(),
</span><span style="color: rgba(0, 128, 128, 1)">41</span>
<span style="color: rgba(0, 128, 128, 1)">42</span> <span style="color: rgba(0, 128, 0, 1)"> Version 0.7g, 2007-02-20
</span><span style="color: rgba(0, 128, 128, 1)">43</span> <span style="color: rgba(0, 128, 0, 1)"> - Bugfix: PKCS12_parse function uses a by-reference parameter
</span><span style="color: rgba(0, 128, 128, 1)">44</span> <span style="color: rgba(0, 128, 0, 1)"> - Bugfix: BIO_get_mem_data(). Thanks to Andrei
</span><span style="color: rgba(0, 128, 128, 1)">45</span> <span style="color: rgba(0, 128, 0, 1)"> - Removed redundant declarations
</span><span style="color: rgba(0, 128, 128, 1)">46</span>
<span style="color: rgba(0, 128, 128, 1)">47</span> <span style="color: rgba(0, 128, 0, 1)"> Version 0.7f, 2007-02-20
</span><span style="color: rgba(0, 128, 128, 1)">48</span> <span style="color: rgba(0, 128, 0, 1)"> - Bugfix: PEM_read_* function uses a by-reference parameter
</span><span style="color: rgba(0, 128, 128, 1)">49</span>
<span style="color: rgba(0, 128, 128, 1)">50</span> <span style="color: rgba(0, 128, 0, 1)"> Version 0.7e, 2007-02-11
</span><span style="color: rgba(0, 128, 128, 1)">51</span> <span style="color: rgba(0, 128, 0, 1)"> - Bugfix
</span><span style="color: rgba(0, 128, 128, 1)">52</span> <span style="color: rgba(0, 128, 0, 1)"> - Replace BN_mod import with a wrapper to BN_div, see man BN_mul(3)
</span><span style="color: rgba(0, 128, 128, 1)">53</span>
<span style="color: rgba(0, 128, 128, 1)">54</span> <span style="color: rgba(0, 128, 0, 1)"> Version 0.7d, 2006-12-15
</span><span style="color: rgba(0, 128, 128, 1)">55</span> <span style="color: rgba(0, 128, 0, 1)"> - Typos
</span><span style="color: rgba(0, 128, 128, 1)">56</span> <span style="color: rgba(0, 128, 0, 1)"> - Removed EVP_MD_size and EVP_MD_CTX_size: these functions are not defined in
</span><span style="color: rgba(0, 128, 128, 1)">57</span> <span style="color: rgba(0, 128, 0, 1)"> DLL and handle their parameter in a non-opaque way.
</span><span style="color: rgba(0, 128, 128, 1)">58</span>
<span style="color: rgba(0, 128, 128, 1)">59</span> <span style="color: rgba(0, 128, 0, 1)"> Version 0.7c, 2006-11-14
</span><span style="color: rgba(0, 128, 128, 1)">60</span> <span style="color: rgba(0, 128, 0, 1)"> - Add BIGNUM functions
</span><span style="color: rgba(0, 128, 128, 1)">61</span> <span style="color: rgba(0, 128, 0, 1)"> - Defined RSA record
</span><span style="color: rgba(0, 128, 128, 1)">62</span> <span style="color: rgba(0, 128, 0, 1)"> - Add missing EVP_VerifyFinal
</span><span style="color: rgba(0, 128, 128, 1)">63</span>
<span style="color: rgba(0, 128, 128, 1)">64</span> <span style="color: rgba(0, 128, 0, 1)"> Version 0.7b, 2006-11-05
</span><span style="color: rgba(0, 128, 128, 1)">65</span> <span style="color: rgba(0, 128, 0, 1)"> - Between 0.9.6h and 0.9.7, OpenSSL split OpenSSL_add_all_algorithms
</span><span style="color: rgba(0, 128, 128, 1)">66</span> <span style="color: rgba(0, 128, 0, 1)"> in two new functions. Some versions of libeay32.dll use old name,
</span><span style="color: rgba(0, 128, 128, 1)">67</span> <span style="color: rgba(0, 128, 0, 1)"> some use new one. See http://www.openssl.org/news/changelog.html
</span><span style="color: rgba(0, 128, 128, 1)">68</span> <span style="color: rgba(0, 128, 0, 1)"> In this unit, OpenSSL_add_all_algorithms is now a wrapper that
</span><span style="color: rgba(0, 128, 128, 1)">69</span> <span style="color: rgba(0, 128, 0, 1)"> dynamically loads appropriate function from DLL.
</span><span style="color: rgba(0, 128, 128, 1)">70</span>
<span style="color: rgba(0, 128, 128, 1)">71</span> <span style="color: rgba(0, 128, 0, 1)"> Version 0.7a, 2006-09-14
</span><span style="color: rgba(0, 128, 128, 1)">72</span> <span style="color: rgba(0, 128, 0, 1)"> - Bug fixes
</span><span style="color: rgba(0, 128, 128, 1)">73</span> <span style="color: rgba(0, 128, 0, 1)"> - Defined wrapper for OpenSSL memory management function
</span><span style="color: rgba(0, 128, 128, 1)">74</span>
<span style="color: rgba(0, 128, 128, 1)">75</span> <span style="color: rgba(0, 128, 0, 1)"> == License =========================================================
</span><span style="color: rgba(0, 128, 128, 1)">76</span> <span style="color: rgba(0, 128, 0, 1)"> Redistribution and use in source and binary forms, with or without
</span><span style="color: rgba(0, 128, 128, 1)">77</span> <span style="color: rgba(0, 128, 0, 1)"> modification, are permitted provided that the following conditions
</span><span style="color: rgba(0, 128, 128, 1)">78</span> <span style="color: rgba(0, 128, 0, 1)"> are met:
</span><span style="color: rgba(0, 128, 128, 1)">79</span>
<span style="color: rgba(0, 128, 128, 1)">80</span> <span style="color: rgba(0, 128, 0, 1)"> 1. Redistributions of source code must retain the above copyright
</span><span style="color: rgba(0, 128, 128, 1)">81</span> <span style="color: rgba(0, 128, 0, 1)"> notice, this list of conditions and the following disclaimer.
</span><span style="color: rgba(0, 128, 128, 1)">82</span>
<span style="color: rgba(0, 128, 128, 1)">83</span> <span style="color: rgba(0, 128, 0, 1)"> 2. Redistributions in binary form must reproduce the above copyright
</span><span style="color: rgba(0, 128, 128, 1)">84</span> <span style="color: rgba(0, 128, 0, 1)"> notice, this list of conditions and the following disclaimer in
</span><span style="color: rgba(0, 128, 128, 1)">85</span> <span style="color: rgba(0, 128, 0, 1)"> the documentation and/or other materials provided with the
</span><span style="color: rgba(0, 128, 128, 1)">86</span> <span style="color: rgba(0, 128, 0, 1)"> distribution.
</span><span style="color: rgba(0, 128, 128, 1)">87</span>
<span style="color: rgba(0, 128, 128, 1)">88</span> <span style="color: rgba(0, 128, 0, 1)"> 3. All advertising materials mentioning features or use of this
</span><span style="color: rgba(0, 128, 128, 1)">89</span> <span style="color: rgba(0, 128, 0, 1)"> software must display the following acknowledgment:
</span><span style="color: rgba(0, 128, 128, 1)">90</span> <span style="color: rgba(0, 128, 0, 1)"> "This product includes software developed by CSITA - University
</span><span style="color: rgba(0, 128, 128, 1)">91</span> <span style="color: rgba(0, 128, 0, 1)"> of Genoa (Italy) (http://www.unige.it/)"
</span><span style="color: rgba(0, 128, 128, 1)">92</span>
<span style="color: rgba(0, 128, 128, 1)">93</span> <span style="color: rgba(0, 128, 0, 1)"> 4. Redistributions of any form whatsoever must retain the following
</span><span style="color: rgba(0, 128, 128, 1)">94</span> <span style="color: rgba(0, 128, 0, 1)"> acknowledgment:
</span><span style="color: rgba(0, 128, 128, 1)">95</span> <span style="color: rgba(0, 128, 0, 1)"> "This product includes software developed by the University
</span><span style="color: rgba(0, 128, 128, 1)">96</span> <span style="color: rgba(0, 128, 0, 1)"> of Genoa (Italy) (http://www.unige.it/) and its contributors"
</span><span style="color: rgba(0, 128, 128, 1)">97</span>
<span style="color: rgba(0, 128, 128, 1)">98</span> <span style="color: rgba(0, 128, 0, 1)"> THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
</span><span style="color: rgba(0, 128, 128, 1)">99</span> <span style="color: rgba(0, 128, 0, 1)"> EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
</span><span style="color: rgba(0, 128, 128, 1)"> 100</span> <span style="color: rgba(0, 128, 0, 1)"> IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
</span><span style="color: rgba(0, 128, 128, 1)"> 101</span> <span style="color: rgba(0, 128, 0, 1)"> PURPOSE ARE DISCLAIMED.IN NO EVENT SHALL THE OpenSSL PROJECT OR
</span><span style="color: rgba(0, 128, 128, 1)"> 102</span> <span style="color: rgba(0, 128, 0, 1)"> ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
</span><span style="color: rgba(0, 128, 128, 1)"> 103</span> <span style="color: rgba(0, 128, 0, 1)"> SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
</span><span style="color: rgba(0, 128, 128, 1)"> 104</span> <span style="color: rgba(0, 128, 0, 1)"> NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
</span><span style="color: rgba(0, 128, 128, 1)"> 105</span> <span style="color: rgba(0, 128, 0, 1)"> LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
</span><span style="color: rgba(0, 128, 128, 1)"> 106</span> <span style="color: rgba(0, 128, 0, 1)"> HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
</span><span style="color: rgba(0, 128, 128, 1)"> 107</span> <span style="color: rgba(0, 128, 0, 1)"> STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
</span><span style="color: rgba(0, 128, 128, 1)"> 108</span> <span style="color: rgba(0, 128, 0, 1)"> ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
</span><span style="color: rgba(0, 128, 128, 1)"> 109</span> <span style="color: rgba(0, 128, 0, 1)"> OF THE POSSIBILITY OF SUCH DAMAGE.
</span><span style="color: rgba(0, 128, 128, 1)"> 110</span> <span style="color: rgba(0, 128, 0, 1)"> ====================================================================
</span><span style="color: rgba(0, 128, 128, 1)"> 111</span>
<span style="color: rgba(0, 128, 128, 1)"> 112</span> <span style="color: rgba(0, 128, 0, 1)"> *****************************************************************************</span><span style="color: rgba(0, 128, 0, 1)">*)</span>
<span style="color: rgba(0, 128, 128, 1)"> 113</span> <span style="color: rgba(0, 0, 255, 1)">unit</span><span style="color: rgba(0, 0, 0, 1)"> libeay32;
</span><span style="color: rgba(0, 128, 128, 1)"> 114</span>
<span style="color: rgba(0, 128, 128, 1)"> 115</span> <span style="color: rgba(0, 0, 255, 1)">interface</span>
<span style="color: rgba(0, 128, 128, 1)"> 116</span>
<span style="color: rgba(0, 128, 128, 1)"> 117</span> <span style="color: rgba(0, 0, 255, 1)">const</span>
<span style="color: rgba(0, 128, 128, 1)"> 118</span> _SSLEAY_VERSION = <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 119</span> _SSLEAY_CFLAGS = <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 120</span> _SSLEAY_BUILT_ON = <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 121</span> _SSLEAY_PLATFORM = <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 122</span>
<span style="color: rgba(0, 128, 128, 1)"> 123</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> PADDING constants</span>
<span style="color: rgba(0, 128, 128, 1)"> 124</span> RSA_PKCS1_PADDING = <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 125</span> RSA_SSLV23_PADDING = <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 126</span> RSA_NO_PADDING = <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 127</span> RSA_PKCS1_OAEP_PADDING = <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 128</span>
<span style="color: rgba(0, 128, 128, 1)"> 129</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ASN1 type constants</span>
<span style="color: rgba(0, 128, 128, 1)"> 130</span> NID_undef = <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 131</span> NID_rsaEncryption = <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 132</span> NID_pkcs7_signed = <span style="color: rgba(128, 0, 128, 1)">22</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 133</span> NID_pkcs7_signedAndEnveloped = <span style="color: rgba(128, 0, 128, 1)">24</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 134</span> NID_basic_constraints = <span style="color: rgba(128, 0, 128, 1)">87</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 135</span> NID_subject_alt_name = <span style="color: rgba(128, 0, 128, 1)">85</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 136</span>
<span style="color: rgba(0, 128, 128, 1)"> 137</span> V_ASN1_INTEGER = $<span style="color: rgba(128, 0, 128, 1)">02</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 138</span> V_ASN1_ENUMERATED = <span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 139</span> V_ASN1_NEG_INTEGER = $<span style="color: rgba(128, 0, 128, 1)">102</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 140</span> V_ASN1_UTCTIME = <span style="color: rgba(128, 0, 128, 1)">23</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 141</span> V_ASN1_GENERALIZEDTIME = <span style="color: rgba(128, 0, 128, 1)">24</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 142</span> V_ASN1_CONTEXT_SPECIFIC = $<span style="color: rgba(128, 0, 128, 1)">80</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 143</span>
<span style="color: rgba(0, 128, 128, 1)"> 144</span> B_ASN1_NUMERICSTRING = $<span style="color: rgba(128, 0, 128, 1)">0001</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 145</span> B_ASN1_PRINTABLESTRING = $<span style="color: rgba(128, 0, 128, 1)">0002</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 146</span> B_ASN1_T61STRING = $<span style="color: rgba(128, 0, 128, 1)">0004</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 147</span> B_ASN1_TELETEXSTRING = $<span style="color: rgba(128, 0, 128, 1)">0008</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 148</span> B_ASN1_VIDEOTEXSTRING = $<span style="color: rgba(128, 0, 128, 1)">0008</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 149</span> B_ASN1_IA5STRING = $<span style="color: rgba(128, 0, 128, 1)">0010</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 150</span> B_ASN1_GRAPHICSTRING = $<span style="color: rgba(128, 0, 128, 1)">0020</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 151</span> B_ASN1_ISO64STRING = $<span style="color: rgba(128, 0, 128, 1)">0040</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 152</span> B_ASN1_VISIBLESTRING = $<span style="color: rgba(128, 0, 128, 1)">0040</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 153</span> B_ASN1_GENERALSTRING = $<span style="color: rgba(128, 0, 128, 1)">0080</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 154</span> B_ASN1_UNIVERSALSTRING = $<span style="color: rgba(128, 0, 128, 1)">0100</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 155</span> B_ASN1_OCTET_STRING = $<span style="color: rgba(128, 0, 128, 1)">0200</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 156</span> B_ASN1_BIT_STRING = $<span style="color: rgba(128, 0, 128, 1)">0400</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 157</span> B_ASN1_BMPSTRING = $<span style="color: rgba(128, 0, 128, 1)">0800</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 158</span> B_ASN1_UNKNOWN = $<span style="color: rgba(128, 0, 128, 1)">1000</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 159</span> B_ASN1_UTF8STRING = $<span style="color: rgba(128, 0, 128, 1)">2000</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 160</span>
<span style="color: rgba(0, 128, 128, 1)"> 161</span> MBSTRING_FLAG = $<span style="color: rgba(128, 0, 128, 1)">1000</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 162</span> MBSTRING_ASC = MBSTRING_FLAG <span style="color: rgba(0, 0, 255, 1)">or</span> <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 163</span> MBSTRING_BMP = MBSTRING_FLAG <span style="color: rgba(0, 0, 255, 1)">or</span> <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 164</span> MBSTRING_UNIV = MBSTRING_FLAG <span style="color: rgba(0, 0, 255, 1)">or</span> <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 165</span> MBSTRING_UTF8 = MBSTRING_FLAG <span style="color: rgba(0, 0, 255, 1)">or</span> <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 166</span>
<span style="color: rgba(0, 128, 128, 1)"> 167</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> These are the 'types' of BIOs</span>
<span style="color: rgba(0, 128, 128, 1)"> 168</span> BIO_TYPE_NONE = $<span style="color: rgba(128, 0, 128, 1)">0000</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 169</span> BIO_TYPE_MEM = $<span style="color: rgba(128, 0, 128, 1)">0001</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0400</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 170</span> BIO_TYPE_FILE = $<span style="color: rgba(128, 0, 128, 1)">0002</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0400</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 171</span>
<span style="color: rgba(0, 128, 128, 1)"> 172</span> BIO_TYPE_FD = $<span style="color: rgba(128, 0, 128, 1)">0004</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0400</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0100</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 173</span> BIO_TYPE_SOCKET = $<span style="color: rgba(128, 0, 128, 1)">0005</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0400</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0100</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 174</span> BIO_TYPE_NULL = $<span style="color: rgba(128, 0, 128, 1)">0006</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0400</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 175</span> BIO_TYPE_SSL = $<span style="color: rgba(128, 0, 128, 1)">0007</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0200</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 176</span> BIO_TYPE_MD = $<span style="color: rgba(128, 0, 128, 1)">0008</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0200</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> passive filter</span>
<span style="color: rgba(0, 128, 128, 1)"> 177</span> BIO_TYPE_BUFFER = $<span style="color: rgba(128, 0, 128, 1)">0009</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0200</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> filter</span>
<span style="color: rgba(0, 128, 128, 1)"> 178</span> BIO_TYPE_CIPHER = $<span style="color: rgba(128, 0, 128, 1)">00010</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0200</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> filter</span>
<span style="color: rgba(0, 128, 128, 1)"> 179</span> BIO_TYPE_BASE64 = $<span style="color: rgba(128, 0, 128, 1)">00011</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0200</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> filter</span>
<span style="color: rgba(0, 128, 128, 1)"> 180</span> BIO_TYPE_CONNECT = $<span style="color: rgba(128, 0, 128, 1)">00012</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0400</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0100</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> socket - connect</span>
<span style="color: rgba(0, 128, 128, 1)"> 181</span> BIO_TYPE_ACCEPT = $<span style="color: rgba(128, 0, 128, 1)">00013</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0400</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0100</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> socket for accept</span>
<span style="color: rgba(0, 128, 128, 1)"> 182</span> BIO_TYPE_PROXY_CLIENT = $<span style="color: rgba(128, 0, 128, 1)">00014</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0200</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> client proxy BIO</span>
<span style="color: rgba(0, 128, 128, 1)"> 183</span> BIO_TYPE_PROXY_SERVER = $<span style="color: rgba(128, 0, 128, 1)">00015</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0200</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> server proxy BIO</span>
<span style="color: rgba(0, 128, 128, 1)"> 184</span> BIO_TYPE_NBIO_TEST = $<span style="color: rgba(128, 0, 128, 1)">00016</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0200</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> server proxy BIO</span>
<span style="color: rgba(0, 128, 128, 1)"> 185</span> BIO_TYPE_NULL_FILTER = $<span style="color: rgba(128, 0, 128, 1)">00017</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0200</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 186</span> BIO_TYPE_BER = $<span style="color: rgba(128, 0, 128, 1)">00018</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0200</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> BER -> bin filter</span>
<span style="color: rgba(0, 128, 128, 1)"> 187</span> BIO_TYPE_BIO = $<span style="color: rgba(128, 0, 128, 1)">00019</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0400</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> (half a; BIO pair</span>
<span style="color: rgba(0, 128, 128, 1)"> 188</span> BIO_TYPE_LINEBUFFER = $<span style="color: rgba(128, 0, 128, 1)">00020</span> <span style="color: rgba(0, 0, 255, 1)">or</span> $<span style="color: rgba(128, 0, 128, 1)">0200</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> filter</span>
<span style="color: rgba(0, 128, 128, 1)"> 189</span>
<span style="color: rgba(0, 128, 128, 1)"> 190</span> BIO_TYPE_DESCRIPTOR = $<span style="color: rgba(128, 0, 128, 1)">0100</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> socket, fd, connect or accept</span>
<span style="color: rgba(0, 128, 128, 1)"> 191</span> BIO_TYPE_FILTER= $<span style="color: rgba(128, 0, 128, 1)">0200</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 192</span> BIO_TYPE_SOURCE_SINK = $<span style="color: rgba(128, 0, 128, 1)">0400</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 193</span>
<span style="color: rgba(0, 128, 128, 1)"> 194</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> BIO ops constants</span>
<span style="color: rgba(0, 128, 128, 1)"> 195</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> BIO_FILENAME_READ|BIO_CLOSE to open or close on free.</span>
<span style="color: rgba(0, 128, 128, 1)"> 196</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> BIO_set_fp(in,stdin,BIO_NOCLOSE);</span>
<span style="color: rgba(0, 128, 128, 1)"> 197</span> BIO_NOCLOSE = $<span style="color: rgba(128, 0, 128, 1)">00</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 198</span> BIO_CLOSE = $<span style="color: rgba(128, 0, 128, 1)">01</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 199</span> BIO_FP_READ = $<span style="color: rgba(128, 0, 128, 1)">02</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 200</span> BIO_FP_WRITE = $<span style="color: rgba(128, 0, 128, 1)">04</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 201</span> BIO_FP_APPEND = $<span style="color: rgba(128, 0, 128, 1)">08</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 202</span> BIO_FP_TEXT = $<span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 203</span>
<span style="color: rgba(0, 128, 128, 1)"> 204</span> BIO_C_SET_FILENAME = <span style="color: rgba(128, 0, 128, 1)">108</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 205</span> BIO_CTRL_RESET = <span style="color: rgba(128, 0, 128, 1)">1</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> opt - rewind/zero etc</span>
<span style="color: rgba(0, 128, 128, 1)"> 206</span> BIO_CTRL_EOF = <span style="color: rgba(128, 0, 128, 1)">2</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> opt - are we at the eof</span>
<span style="color: rgba(0, 128, 128, 1)"> 207</span> BIO_CTRL_INFO = <span style="color: rgba(128, 0, 128, 1)">3</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> opt - extra tit-bits</span>
<span style="color: rgba(0, 128, 128, 1)"> 208</span> BIO_CTRL_SET = <span style="color: rgba(128, 0, 128, 1)">4</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> man - set the 'IO' type</span>
<span style="color: rgba(0, 128, 128, 1)"> 209</span> BIO_CTRL_GET = <span style="color: rgba(128, 0, 128, 1)">5</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> man - get the 'IO' type</span>
<span style="color: rgba(0, 128, 128, 1)"> 210</span> BIO_CTRL_PUSH = <span style="color: rgba(128, 0, 128, 1)">6</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> opt - internal, used to signify change</span>
<span style="color: rgba(0, 128, 128, 1)"> 211</span> BIO_CTRL_POP = <span style="color: rgba(128, 0, 128, 1)">7</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> opt - internal, used to signify change</span>
<span style="color: rgba(0, 128, 128, 1)"> 212</span> BIO_CTRL_GET_CLOSE = <span style="color: rgba(128, 0, 128, 1)">8</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> man - set the 'close' on free</span>
<span style="color: rgba(0, 128, 128, 1)"> 213</span> BIO_CTRL_SET_CLOSE = <span style="color: rgba(128, 0, 128, 1)">9</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> man - set the 'close' on free</span>
<span style="color: rgba(0, 128, 128, 1)"> 214</span> BIO_CTRL_PENDING = <span style="color: rgba(128, 0, 128, 1)">10</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> opt - is their more data buffered</span>
<span style="color: rgba(0, 128, 128, 1)"> 215</span> BIO_CTRL_FLUSH = <span style="color: rgba(128, 0, 128, 1)">11</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> opt - 'flush' buffered output</span>
<span style="color: rgba(0, 128, 128, 1)"> 216</span> BIO_CTRL_DUP = <span style="color: rgba(128, 0, 128, 1)">12</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> man - extra stuff for 'duped' BIO</span>
<span style="color: rgba(0, 128, 128, 1)"> 217</span> BIO_CTRL_WPENDING = <span style="color: rgba(128, 0, 128, 1)">13</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> opt - number of bytes still to write</span>
<span style="color: rgba(0, 128, 128, 1)"> 218</span>
<span style="color: rgba(0, 128, 128, 1)"> 219</span> BIO_C_GET_MD_CTX = <span style="color: rgba(128, 0, 128, 1)">120</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 220</span>
<span style="color: rgba(0, 128, 128, 1)"> 221</span> BN_CTX_NUM = <span style="color: rgba(128, 0, 128, 1)">16</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 222</span> BN_CTX_NUM_POS = <span style="color: rgba(128, 0, 128, 1)">12</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 223</span>
<span style="color: rgba(0, 128, 128, 1)"> 224</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> RSA key exponent</span>
<span style="color: rgba(0, 128, 128, 1)"> 225</span> RSA_<span style="color: rgba(128, 0, 128, 1)">3</span>: longint = $<span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 226</span> RSA_F4: longint = $<span style="color: rgba(128, 0, 128, 1)">10001</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 227</span>
<span style="color: rgba(0, 128, 128, 1)"> 228</span> FORMAT_UNDEF = <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 229</span> FORMAT_ASN1 = <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 230</span> FORMAT_TEXT = <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 231</span> FORMAT_PEM = <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 232</span> FORMAT_NETSCAPE = <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 233</span> FORMAT_PKCS12 = <span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 234</span> FORMAT_SMIME = <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 235</span> FORMAT_X509 = <span style="color: rgba(128, 0, 128, 1)">509</span>; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Not defined in original libeay</span>
<span style="color: rgba(0, 128, 128, 1)"> 236</span>
<span style="color: rgba(0, 128, 128, 1)"> 237</span> PKCS7_TEXT = $<span style="color: rgba(128, 0, 128, 1)">001</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 238</span> PKCS7_NOCERTS = $<span style="color: rgba(128, 0, 128, 1)">002</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 239</span> PKCS7_NOSIGS = $<span style="color: rgba(128, 0, 128, 1)">004</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 240</span> PKCS7_NOCHAIN = $<span style="color: rgba(128, 0, 128, 1)">008</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 241</span> PKCS7_NOINTERN = $<span style="color: rgba(128, 0, 128, 1)">010</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 242</span> PKCS7_NOVERIFY = $<span style="color: rgba(128, 0, 128, 1)">020</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 243</span> PKCS7_DETACHED = $<span style="color: rgba(128, 0, 128, 1)">040</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 244</span> PKCS7_BINARY = $<span style="color: rgba(128, 0, 128, 1)">080</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 245</span> PKCS7_NOATTR = $<span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 246</span> PKCS7_NOSMIMECAP = $<span style="color: rgba(128, 0, 128, 1)">200</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 247</span>
<span style="color: rgba(0, 128, 128, 1)"> 248</span> X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT = <span style="color: rgba(128, 0, 128, 1)">18</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 249</span>
<span style="color: rgba(0, 128, 128, 1)"> 250</span> SHA_DIGEST_LENGTH = <span style="color: rgba(128, 0, 128, 1)">20</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 251</span>
<span style="color: rgba(0, 128, 128, 1)"> 252</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">EVP_MAX_MD_SIZE = 16+20;// The SSLv3 md5+sha1 type</span>
<span style="color: rgba(0, 128, 128, 1)"> 253</span> EVP_MAX_MD_SIZE = <span style="color: rgba(128, 0, 128, 1)">64</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">longest known is SHA512</span>
<span style="color: rgba(0, 128, 128, 1)"> 254</span> EVP_PKEY_RSA =<span style="color: rgba(0, 0, 0, 1)"> NID_rsaEncryption;
</span><span style="color: rgba(0, 128, 128, 1)"> 255</span>
<span style="color: rgba(0, 128, 128, 1)"> 256</span> EXFLAG_KUSAGE = $<span style="color: rgba(128, 0, 128, 1)">02</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 257</span> EXFLAG_BCONS = $<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 258</span> EXFLAG_CA = $<span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 259</span> EXFLAG_SS = $<span style="color: rgba(128, 0, 128, 1)">20</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 260</span> EXFLAG_V1 = $<span style="color: rgba(128, 0, 128, 1)">40</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 261</span> KU_KEY_CERT_SIGN = $<span style="color: rgba(128, 0, 128, 1)">0004</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 262</span> V1_ROOT = EXFLAG_V1 <span style="color: rgba(0, 0, 255, 1)">or</span><span style="color: rgba(0, 0, 0, 1)"> EXFLAG_SS;
</span><span style="color: rgba(0, 128, 128, 1)"> 263</span>
<span style="color: rgba(0, 128, 128, 1)"> 264</span> GEN_OTHERNAME = <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(0, 0, 255, 1)">or</span><span style="color: rgba(0, 0, 0, 1)"> V_ASN1_CONTEXT_SPECIFIC;
</span><span style="color: rgba(0, 128, 128, 1)"> 265</span> GEN_EMAIL = <span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">or</span><span style="color: rgba(0, 0, 0, 1)"> V_ASN1_CONTEXT_SPECIFIC;
</span><span style="color: rgba(0, 128, 128, 1)"> 266</span> GEN_DNS = <span style="color: rgba(128, 0, 128, 1)">2</span> <span style="color: rgba(0, 0, 255, 1)">or</span><span style="color: rgba(0, 0, 0, 1)"> V_ASN1_CONTEXT_SPECIFIC;
</span><span style="color: rgba(0, 128, 128, 1)"> 267</span> GEN_X400 = <span style="color: rgba(128, 0, 128, 1)">3</span> <span style="color: rgba(0, 0, 255, 1)">or</span><span style="color: rgba(0, 0, 0, 1)"> V_ASN1_CONTEXT_SPECIFIC;
</span><span style="color: rgba(0, 128, 128, 1)"> 268</span> GEN_DIRNAME = <span style="color: rgba(128, 0, 128, 1)">4</span> <span style="color: rgba(0, 0, 255, 1)">or</span><span style="color: rgba(0, 0, 0, 1)"> V_ASN1_CONTEXT_SPECIFIC;
</span><span style="color: rgba(0, 128, 128, 1)"> 269</span> GEN_EDIPARTY = <span style="color: rgba(128, 0, 128, 1)">5</span> <span style="color: rgba(0, 0, 255, 1)">or</span><span style="color: rgba(0, 0, 0, 1)"> V_ASN1_CONTEXT_SPECIFIC;
</span><span style="color: rgba(0, 128, 128, 1)"> 270</span> GEN_URI = <span style="color: rgba(128, 0, 128, 1)">6</span> <span style="color: rgba(0, 0, 255, 1)">or</span><span style="color: rgba(0, 0, 0, 1)"> V_ASN1_CONTEXT_SPECIFIC;
</span><span style="color: rgba(0, 128, 128, 1)"> 271</span> GEN_IPADD = <span style="color: rgba(128, 0, 128, 1)">7</span> <span style="color: rgba(0, 0, 255, 1)">or</span><span style="color: rgba(0, 0, 0, 1)"> V_ASN1_CONTEXT_SPECIFIC;
</span><span style="color: rgba(0, 128, 128, 1)"> 272</span> GEN_RID = <span style="color: rgba(128, 0, 128, 1)">8</span> <span style="color: rgba(0, 0, 255, 1)">or</span><span style="color: rgba(0, 0, 0, 1)"> V_ASN1_CONTEXT_SPECIFIC;
</span><span style="color: rgba(0, 128, 128, 1)"> 273</span>
<span style="color: rgba(0, 128, 128, 1)"> 274</span>
<span style="color: rgba(0, 128, 128, 1)"> 275</span> AES_MAXNR = <span style="color: rgba(128, 0, 128, 1)">14</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 276</span>
<span style="color: rgba(0, 128, 128, 1)"> 277</span> HMAC_MAX_MD_CBLOCK = <span style="color: rgba(128, 0, 128, 1)">128</span>; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">* largest known is SHA512 */</span>
<span style="color: rgba(0, 128, 128, 1)"> 278</span>
<span style="color: rgba(0, 128, 128, 1)"> 279</span> <span style="color: rgba(0, 0, 255, 1)">type</span>
<span style="color: rgba(0, 128, 128, 1)"> 280</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Check the correct "Char" type to use according to the Delphi Version</span>
<span style="color: rgba(0, 128, 128, 1)"> 281</span> <span style="color: rgba(0, 128, 0, 1)">{</span><span style="color: rgba(0, 128, 0, 1)">$IF CompilerVersion >= 20</span><span style="color: rgba(0, 128, 0, 1)">}</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">Delphi 2009 - 20</span>
<span style="color: rgba(0, 128, 128, 1)"> 282</span> PCharacter =<span style="color: rgba(0, 0, 0, 1)"> PAnsiChar;
</span><span style="color: rgba(0, 128, 128, 1)"> 283</span> <span style="color: rgba(0, 128, 0, 1)">{</span><span style="color: rgba(0, 128, 0, 1)">$ELSE</span><span style="color: rgba(0, 128, 0, 1)">}</span>
<span style="color: rgba(0, 128, 128, 1)"> 284</span> PCharacter =<span style="color: rgba(0, 0, 0, 1)"> PChar;
</span><span style="color: rgba(0, 128, 128, 1)"> 285</span> <span style="color: rgba(0, 128, 0, 1)">{</span><span style="color: rgba(0, 128, 0, 1)">$IFEND</span><span style="color: rgba(0, 128, 0, 1)">}</span>
<span style="color: rgba(0, 128, 128, 1)"> 286</span>
<span style="color: rgba(0, 128, 128, 1)"> 287</span> pSTACK =<span style="color: rgba(0, 0, 0, 1)"> pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 288</span>
<span style="color: rgba(0, 128, 128, 1)"> 289</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ASN1 types</span>
<span style="color: rgba(0, 128, 128, 1)"> 290</span> pASN1_OBJECT =<span style="color: rgba(0, 0, 0, 1)"> pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 291</span> pASN1_STRING =<span style="color: rgba(0, 0, 0, 1)"> ^ASN1_STRING;
</span><span style="color: rgba(0, 128, 128, 1)"> 292</span> ASN1_STRING = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 293</span> <span style="color: rgba(0, 0, 0, 1)"> length: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 294</span> asn1_<span style="color: rgba(0, 0, 255, 1)">type</span><span style="color: rgba(0, 0, 0, 1)">: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 295</span> <span style="color: rgba(0, 0, 0, 1)"> data: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 296</span> <span style="color: rgba(0, 0, 0, 1)"> flags: longint;
</span><span style="color: rgba(0, 128, 128, 1)"> 297</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 298</span> pASN1_IA5STRING =<span style="color: rgba(0, 0, 0, 1)"> pASN1_STRING;
</span><span style="color: rgba(0, 128, 128, 1)"> 299</span> pASN1_INTEGER =<span style="color: rgba(0, 0, 0, 1)"> pASN1_STRING;
</span><span style="color: rgba(0, 128, 128, 1)"> 300</span> pASN1_ENUMERATED =<span style="color: rgba(0, 0, 0, 1)"> pASN1_STRING;
</span><span style="color: rgba(0, 128, 128, 1)"> 301</span> pASN1_TIME =<span style="color: rgba(0, 0, 0, 1)"> pASN1_STRING;
</span><span style="color: rgba(0, 128, 128, 1)"> 302</span> pASN1_OCTET_STRING =<span style="color: rgba(0, 0, 0, 1)"> pASN1_STRING;
</span><span style="color: rgba(0, 128, 128, 1)"> 303</span>
<span style="color: rgba(0, 128, 128, 1)"> 304</span> pBN_ULONG =<span style="color: rgba(0, 0, 0, 1)"> ^BN_ULONG;
</span><span style="color: rgba(0, 128, 128, 1)"> 305</span> BN_ULONG = <span style="color: rgba(0, 0, 255, 1)">array</span> <span style="color: rgba(0, 0, 255, 1)">of</span> byte; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> system dependent, consider it as a opaque pointer</span>
<span style="color: rgba(0, 128, 128, 1)"> 306</span> pBIGNUM =<span style="color: rgba(0, 0, 0, 1)"> ^BIGNUM;
</span><span style="color: rgba(0, 128, 128, 1)"> 307</span> BIGNUM = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 308</span> d: pBN_ULONG; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Pointer to an array of 'BN_BITS2' bit chunks.</span>
<span style="color: rgba(0, 128, 128, 1)"> 309</span> top: integer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Index of last used d +1.</span>
<span style="color: rgba(0, 128, 128, 1)"> 310</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> The next are internal book keeping for bn_expand.</span>
<span style="color: rgba(0, 128, 128, 1)"> 311</span> dmax: integer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Size of the d array.</span>
<span style="color: rgba(0, 128, 128, 1)"> 312</span> neg: integer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> one if the number is negative</span>
<span style="color: rgba(0, 128, 128, 1)"> 313</span> <span style="color: rgba(0, 0, 0, 1)"> flags: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 314</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 315</span>
<span style="color: rgba(0, 128, 128, 1)"> 316</span> pBN_CTX =<span style="color: rgba(0, 0, 0, 1)"> ^BN_CTX;
</span><span style="color: rgba(0, 128, 128, 1)"> 317</span> BN_CTX = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 318</span> <span style="color: rgba(0, 0, 0, 1)"> tos: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 319</span> bn: <span style="color: rgba(0, 0, 255, 1)">array</span> [<span style="color: rgba(128, 0, 128, 1)">0</span>..BN_CTX_NUM-<span style="color: rgba(128, 0, 128, 1)">1</span>] <span style="color: rgba(0, 0, 255, 1)">of</span><span style="color: rgba(0, 0, 0, 1)"> BIGNUM;
</span><span style="color: rgba(0, 128, 128, 1)"> 320</span> <span style="color: rgba(0, 0, 0, 1)"> flags: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 321</span> <span style="color: rgba(0, 0, 0, 1)"> depth: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 322</span> pos: <span style="color: rgba(0, 0, 255, 1)">array</span> [<span style="color: rgba(128, 0, 128, 1)">0</span>..BN_CTX_NUM_POS-<span style="color: rgba(128, 0, 128, 1)">1</span>] <span style="color: rgba(0, 0, 255, 1)">of</span><span style="color: rgba(0, 0, 0, 1)"> integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 323</span> <span style="color: rgba(0, 0, 0, 1)"> too_many: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 324</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 325</span>
<span style="color: rgba(0, 128, 128, 1)"> 326</span> pBN_BLINDING =<span style="color: rgba(0, 0, 0, 1)"> ^BN_BLINDING;
</span><span style="color: rgba(0, 128, 128, 1)"> 327</span> BN_BLINDING = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 328</span> <span style="color: rgba(0, 0, 0, 1)"> init: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 329</span> <span style="color: rgba(0, 0, 0, 1)"> A: pBIGNUM;
</span><span style="color: rgba(0, 128, 128, 1)"> 330</span> <span style="color: rgba(0, 0, 0, 1)"> Ai: pBIGNUM;
</span><span style="color: rgba(0, 128, 128, 1)"> 331</span> _<span style="color: rgba(0, 0, 255, 1)">mod</span>: pBIGNUM;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> just a reference (original name: mod)</span>
<span style="color: rgba(0, 128, 128, 1)"> 332</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 333</span>
<span style="color: rgba(0, 128, 128, 1)"> 334</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Used for montgomery multiplication</span>
<span style="color: rgba(0, 128, 128, 1)"> 335</span> pBN_MONT_CTX =<span style="color: rgba(0, 0, 0, 1)"> ^BN_MONT_CTX;
</span><span style="color: rgba(0, 128, 128, 1)"> 336</span> BN_MONT_CTX = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 337</span> ri: integer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> number of bits in R</span>
<span style="color: rgba(0, 128, 128, 1)"> 338</span> RR: BIGNUM; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> used to convert to montgomery form</span>
<span style="color: rgba(0, 128, 128, 1)"> 339</span> N: BIGNUM; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> The modulus</span>
<span style="color: rgba(0, 128, 128, 1)"> 340</span> Ni: BIGNUM; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> R*(1/R mod N) - N*Ni = 1</span>
<span style="color: rgba(0, 128, 128, 1)"> 341</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> (Ni is only stored for bignum algorithm)</span>
<span style="color: rgba(0, 128, 128, 1)"> 342</span> n0: BN_ULONG; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> least significant word of Ni</span>
<span style="color: rgba(0, 128, 128, 1)"> 343</span> <span style="color: rgba(0, 0, 0, 1)"> flags: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 344</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 345</span>
<span style="color: rgba(0, 128, 128, 1)"> 346</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Used for reciprocal division/mod functions</span>
<span style="color: rgba(0, 128, 128, 1)"> 347</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> It cannot be shared between threads</span>
<span style="color: rgba(0, 128, 128, 1)"> 348</span> pBN_RECP_CTX =<span style="color: rgba(0, 0, 0, 1)"> ^BN_RECP_CTX;
</span><span style="color: rgba(0, 128, 128, 1)"> 349</span> BN_RECP_CTX = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 350</span> N: BIGNUM; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> the divisor</span>
<span style="color: rgba(0, 128, 128, 1)"> 351</span> Nr: BIGNUM; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> the reciprocal</span>
<span style="color: rgba(0, 128, 128, 1)"> 352</span> <span style="color: rgba(0, 0, 0, 1)"> num_bits: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 353</span> <span style="color: rgba(0, 0, 0, 1)"> shift: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 354</span> <span style="color: rgba(0, 0, 0, 1)"> flags: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 355</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 356</span>
<span style="color: rgba(0, 128, 128, 1)"> 357</span> pX509_STORE_CTX =<span style="color: rgba(0, 0, 0, 1)"> pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 358</span>
<span style="color: rgba(0, 128, 128, 1)"> 359</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Password ask callback for I/O function prototipe</span>
<span style="color: rgba(0, 128, 128, 1)"> 360</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> It must fill buffer with password and return password length</span>
<span style="color: rgba(0, 128, 128, 1)"> 361</span> TPWCallbackFunction = <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(buffer: PCharacter; length: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 362</span> verify: integer; data: pointer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 363</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Progress callback function prototipe</span>
<span style="color: rgba(0, 128, 128, 1)"> 364</span> TProgressCallbackFunction = <span style="color: rgba(0, 0, 255, 1)">procedure</span><span style="color: rgba(0, 0, 0, 1)">(status: integer; progress: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 365</span> <span style="color: rgba(0, 0, 0, 1)"> data: pointer);
</span><span style="color: rgba(0, 128, 128, 1)"> 366</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Certificate verification callback</span>
<span style="color: rgba(0, 128, 128, 1)"> 367</span> TCertificateVerifyFunction = <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(ok: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 368</span> ctx: pX509_STORE_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 369</span>
<span style="color: rgba(0, 128, 128, 1)"> 370</span> pBIO =<span style="color: rgba(0, 0, 0, 1)"> pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 371</span> pBIO_METHOD =<span style="color: rgba(0, 0, 0, 1)"> pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 372</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">pBUF_MEM = pointer;</span>
<span style="color: rgba(0, 128, 128, 1)"> 373</span>
<span style="color: rgba(0, 128, 128, 1)"> 374</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/19 15:26</span>
<span style="color: rgba(0, 128, 128, 1)"> 375</span> buf_mem_st = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 376</span> length : Integer;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">TIdC_INT; // current number of bytes</span>
<span style="color: rgba(0, 128, 128, 1)"> 377</span> <span style="color: rgba(0, 0, 0, 1)"> data : PAnsiChar;
</span><span style="color: rgba(0, 128, 128, 1)"> 378</span> max: Integer;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">TIdC_INT; // size of buffer</span>
<span style="color: rgba(0, 128, 128, 1)"> 379</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 380</span> BUF_MEM =<span style="color: rgba(0, 0, 0, 1)"> buf_mem_st;
</span><span style="color: rgba(0, 128, 128, 1)"> 381</span> PBUF_MEM =<span style="color: rgba(0, 0, 0, 1)"> ^BUF_MEM;
</span><span style="color: rgba(0, 128, 128, 1)"> 382</span> PPBUF_MEM =<span style="color: rgba(0, 0, 0, 1)"> ^PBUF_MEM;
</span><span style="color: rgba(0, 128, 128, 1)"> 383</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">============================2016/02/19 15:26</span>
<span style="color: rgba(0, 128, 128, 1)"> 384</span>
<span style="color: rgba(0, 128, 128, 1)"> 385</span>
<span style="color: rgba(0, 128, 128, 1)"> 386</span>
<span style="color: rgba(0, 128, 128, 1)"> 387</span> des_cblock = <span style="color: rgba(0, 0, 255, 1)">array</span> [<span style="color: rgba(128, 0, 128, 1)">0</span>..<span style="color: rgba(128, 0, 128, 1)">7</span>] <span style="color: rgba(0, 0, 255, 1)">of</span><span style="color: rgba(0, 0, 0, 1)"> byte;
</span><span style="color: rgba(0, 128, 128, 1)"> 388</span> MD2_CTX = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 389</span> <span style="color: rgba(0, 0, 0, 1)"> num: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 390</span> data: <span style="color: rgba(0, 0, 255, 1)">array</span> [<span style="color: rgba(128, 0, 128, 1)">0</span>..<span style="color: rgba(128, 0, 128, 1)">15</span>] <span style="color: rgba(0, 0, 255, 1)">of</span><span style="color: rgba(0, 0, 0, 1)"> byte;
</span><span style="color: rgba(0, 128, 128, 1)"> 391</span> cksm: <span style="color: rgba(0, 0, 255, 1)">array</span> [<span style="color: rgba(128, 0, 128, 1)">0</span>..<span style="color: rgba(128, 0, 128, 1)">15</span>] <span style="color: rgba(0, 0, 255, 1)">of</span><span style="color: rgba(0, 0, 0, 1)"> cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 392</span> state: <span style="color: rgba(0, 0, 255, 1)">array</span> [<span style="color: rgba(128, 0, 128, 1)">0</span>..<span style="color: rgba(128, 0, 128, 1)">15</span>] <span style="color: rgba(0, 0, 255, 1)">of</span><span style="color: rgba(0, 0, 0, 1)"> cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 393</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 394</span> MD4_CTX = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 395</span> <span style="color: rgba(0, 0, 0, 1)"> A, B, C, D: cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 396</span> <span style="color: rgba(0, 0, 0, 1)"> Nl, Nh: cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 397</span> data: <span style="color: rgba(0, 0, 255, 1)">array</span> [<span style="color: rgba(128, 0, 128, 1)">0</span>..<span style="color: rgba(128, 0, 128, 1)">15</span>] <span style="color: rgba(0, 0, 255, 1)">of</span><span style="color: rgba(0, 0, 0, 1)"> cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 398</span> <span style="color: rgba(0, 0, 0, 1)"> num: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 399</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 400</span> MD5_CTX = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 401</span> <span style="color: rgba(0, 0, 0, 1)"> A, B, C, D: cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 402</span> <span style="color: rgba(0, 0, 0, 1)"> Nl, Nh: cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 403</span> data: <span style="color: rgba(0, 0, 255, 1)">array</span> [<span style="color: rgba(128, 0, 128, 1)">0</span>..<span style="color: rgba(128, 0, 128, 1)">15</span>] <span style="color: rgba(0, 0, 255, 1)">of</span><span style="color: rgba(0, 0, 0, 1)"> cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 404</span> <span style="color: rgba(0, 0, 0, 1)"> num: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 405</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 406</span> RIPEMD160_CTX = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 407</span> <span style="color: rgba(0, 0, 0, 1)"> A, B, C, D, E: cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 408</span> <span style="color: rgba(0, 0, 0, 1)"> Nl, Nh: cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 409</span> data: <span style="color: rgba(0, 0, 255, 1)">array</span> [<span style="color: rgba(128, 0, 128, 1)">0</span>..<span style="color: rgba(128, 0, 128, 1)">15</span>] <span style="color: rgba(0, 0, 255, 1)">of</span><span style="color: rgba(0, 0, 0, 1)"> cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 410</span> <span style="color: rgba(0, 0, 0, 1)"> num: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 411</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 412</span> SHA_CTX = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 413</span> <span style="color: rgba(0, 0, 0, 1)"> h0, h1, h2, h3, h4: cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 414</span> <span style="color: rgba(0, 0, 0, 1)"> Nl, Nh: cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 415</span> data: <span style="color: rgba(0, 0, 255, 1)">array</span> [<span style="color: rgba(128, 0, 128, 1)">0</span>..<span style="color: rgba(128, 0, 128, 1)">16</span>] <span style="color: rgba(0, 0, 255, 1)">of</span><span style="color: rgba(0, 0, 0, 1)"> cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 416</span> <span style="color: rgba(0, 0, 0, 1)"> num: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 417</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 418</span> MDC2_CTX = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 419</span> <span style="color: rgba(0, 0, 0, 1)"> num: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 420</span> data: <span style="color: rgba(0, 0, 255, 1)">array</span> [<span style="color: rgba(128, 0, 128, 1)">0</span>..<span style="color: rgba(128, 0, 128, 1)">7</span>] <span style="color: rgba(0, 0, 255, 1)">of</span><span style="color: rgba(0, 0, 0, 1)"> byte;
</span><span style="color: rgba(0, 128, 128, 1)"> 421</span> <span style="color: rgba(0, 0, 0, 1)"> h, hh: des_cblock;
</span><span style="color: rgba(0, 128, 128, 1)"> 422</span> pad_<span style="color: rgba(0, 0, 255, 1)">type</span>: integer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> either 1 or 2, default 1</span>
<span style="color: rgba(0, 128, 128, 1)"> 423</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 424</span>
<span style="color: rgba(0, 128, 128, 1)"> 425</span> CRYPTO_EX_DATA = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 426</span> <span style="color: rgba(0, 0, 0, 1)"> sk: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 427</span> <span style="color: rgba(0, 0, 0, 1)"> dummy: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 428</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 429</span>
<span style="color: rgba(0, 128, 128, 1)"> 430</span>
<span style="color: rgba(0, 128, 128, 1)"> 431</span>
<span style="color: rgba(0, 128, 128, 1)"> 432</span> AES_KEY = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 433</span> rd_key: <span style="color: rgba(0, 0, 255, 1)">array</span>[<span style="color: rgba(128, 0, 128, 1)">0</span>..(<span style="color: rgba(128, 0, 128, 1)">4</span> *(AES_MAXNR + <span style="color: rgba(128, 0, 128, 1)">1</span>)-<span style="color: rgba(128, 0, 128, 1)">1</span>)] <span style="color: rgba(0, 0, 255, 1)">of</span> Cardinal;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">TIdC_UINT;</span>
<span style="color: rgba(0, 128, 128, 1)"> 434</span> rounds : Cardinal;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">TIdC_INT;</span>
<span style="color: rgba(0, 128, 128, 1)"> 435</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 436</span> pAES_KEY = ^AES_KEY;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">pointer;</span>
<span style="color: rgba(0, 128, 128, 1)"> 437</span>
<span style="color: rgba(0, 128, 128, 1)"> 438</span> pRSA =<span style="color: rgba(0, 0, 0, 1)"> pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 439</span> pRSA_METHOD =<span style="color: rgba(0, 0, 0, 1)"> pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 440</span> RSA = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 441</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> The first parameter is used to pickup errors where</span>
<span style="color: rgba(0, 128, 128, 1)"> 442</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> this is passed instead of aEVP_PKEY, it is set to 0</span>
<span style="color: rgba(0, 128, 128, 1)"> 443</span> <span style="color: rgba(0, 0, 0, 1)"> pad: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 444</span> <span style="color: rgba(0, 0, 0, 1)"> version: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 445</span> <span style="color: rgba(0, 0, 0, 1)"> meth: pRSA_METHOD;
</span><span style="color: rgba(0, 128, 128, 1)"> 446</span> <span style="color: rgba(0, 0, 0, 1)"> n: pBIGNUM;
</span><span style="color: rgba(0, 128, 128, 1)"> 447</span> <span style="color: rgba(0, 0, 0, 1)"> e: pBIGNUM;
</span><span style="color: rgba(0, 128, 128, 1)"> 448</span> <span style="color: rgba(0, 0, 0, 1)"> d: pBIGNUM;
</span><span style="color: rgba(0, 128, 128, 1)"> 449</span> <span style="color: rgba(0, 0, 0, 1)"> p: pBIGNUM;
</span><span style="color: rgba(0, 128, 128, 1)"> 450</span> <span style="color: rgba(0, 0, 0, 1)"> q: pBIGNUM;
</span><span style="color: rgba(0, 128, 128, 1)"> 451</span> <span style="color: rgba(0, 0, 0, 1)"> dmp1: pBIGNUM;
</span><span style="color: rgba(0, 128, 128, 1)"> 452</span> <span style="color: rgba(0, 0, 0, 1)"> dmq1: pBIGNUM;
</span><span style="color: rgba(0, 128, 128, 1)"> 453</span> <span style="color: rgba(0, 0, 0, 1)"> iqmp: pBIGNUM;
</span><span style="color: rgba(0, 128, 128, 1)"> 454</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> be careful using this if the RSA structure is shared</span>
<span style="color: rgba(0, 128, 128, 1)"> 455</span> <span style="color: rgba(0, 0, 0, 1)"> ex_data: CRYPTO_EX_DATA;
</span><span style="color: rgba(0, 128, 128, 1)"> 456</span> <span style="color: rgba(0, 0, 0, 1)"> references: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 457</span> <span style="color: rgba(0, 0, 0, 1)"> flags: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 458</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Used to cache montgomery values</span>
<span style="color: rgba(0, 128, 128, 1)"> 459</span> _method_<span style="color: rgba(0, 0, 255, 1)">mod</span><span style="color: rgba(0, 0, 0, 1)">_n: pBN_MONT_CTX;
</span><span style="color: rgba(0, 128, 128, 1)"> 460</span> _method_<span style="color: rgba(0, 0, 255, 1)">mod</span><span style="color: rgba(0, 0, 0, 1)">_p: pBN_MONT_CTX;
</span><span style="color: rgba(0, 128, 128, 1)"> 461</span> _method_<span style="color: rgba(0, 0, 255, 1)">mod</span><span style="color: rgba(0, 0, 0, 1)">_q: pBN_MONT_CTX;
</span><span style="color: rgba(0, 128, 128, 1)"> 462</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> all BIGNUM values are actually in the following data, if it is not</span>
<span style="color: rgba(0, 128, 128, 1)"> 463</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> NULL</span>
<span style="color: rgba(0, 128, 128, 1)"> 464</span> <span style="color: rgba(0, 0, 0, 1)"> bignum_data: ^byte;
</span><span style="color: rgba(0, 128, 128, 1)"> 465</span> <span style="color: rgba(0, 0, 0, 1)"> blinding: ^BN_BLINDING;
</span><span style="color: rgba(0, 128, 128, 1)"> 466</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 467</span>
<span style="color: rgba(0, 128, 128, 1)"> 468</span> pDSA =<span style="color: rgba(0, 0, 0, 1)"> ^DSA;
</span><span style="color: rgba(0, 128, 128, 1)"> 469</span> DSA = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 470</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> This first variable is used to pick up errors where</span>
<span style="color: rgba(0, 128, 128, 1)"> 471</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> a DSA is passed instead of of a EVP_PKEY</span>
<span style="color: rgba(0, 128, 128, 1)"> 472</span> <span style="color: rgba(0, 0, 0, 1)"> pad: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 473</span> <span style="color: rgba(0, 0, 0, 1)"> version: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 474</span> <span style="color: rgba(0, 0, 255, 1)">write</span><span style="color: rgba(0, 0, 0, 1)">_params: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 475</span> <span style="color: rgba(0, 0, 0, 1)"> p: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 476</span> q: pointer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> = 20</span>
<span style="color: rgba(0, 128, 128, 1)"> 477</span> <span style="color: rgba(0, 0, 0, 1)"> g: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 478</span> pub_key: pointer;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> y public key</span>
<span style="color: rgba(0, 128, 128, 1)"> 479</span> priv_key: pointer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> x private key</span>
<span style="color: rgba(0, 128, 128, 1)"> 480</span> kinv: pointer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Signing pre-calc</span>
<span style="color: rgba(0, 128, 128, 1)"> 481</span> r: pointer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Signing pre-calc</span>
<span style="color: rgba(0, 128, 128, 1)"> 482</span> <span style="color: rgba(0, 0, 0, 1)"> flags: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 483</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Normally used to cache montgomery values</span>
<span style="color: rgba(0, 128, 128, 1)"> 484</span> <span style="color: rgba(0, 0, 0, 1)"> method_mont_p: PCharacter;
</span><span style="color: rgba(0, 128, 128, 1)"> 485</span> <span style="color: rgba(0, 0, 0, 1)"> references: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 486</span> ex_data: <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 487</span> <span style="color: rgba(0, 0, 0, 1)"> sk: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 488</span> <span style="color: rgba(0, 0, 0, 1)"> dummy: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 489</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 490</span> <span style="color: rgba(0, 0, 0, 1)"> meth: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 491</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 492</span>
<span style="color: rgba(0, 128, 128, 1)"> 493</span> pDH =<span style="color: rgba(0, 0, 0, 1)"> pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 494</span>
<span style="color: rgba(0, 128, 128, 1)"> 495</span> pEC_KEY =<span style="color: rgba(0, 0, 0, 1)"> pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 496</span>
<span style="color: rgba(0, 128, 128, 1)"> 497</span> pEVP_CIPHER =<span style="color: rgba(0, 0, 0, 1)"> pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 498</span>
<span style="color: rgba(0, 128, 128, 1)"> 499</span> pEVP_MD =<span style="color: rgba(0, 0, 0, 1)"> ^EVP_MD;
</span><span style="color: rgba(0, 128, 128, 1)"> 500</span> EVP_MD = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 501</span> _<span style="color: rgba(0, 0, 255, 1)">type</span><span style="color: rgba(0, 0, 0, 1)">: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 502</span> pkey_<span style="color: rgba(0, 0, 255, 1)">type</span><span style="color: rgba(0, 0, 0, 1)">: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 503</span> <span style="color: rgba(0, 0, 0, 1)"> md_size: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 504</span> <span style="color: rgba(0, 0, 0, 1)"> init: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 505</span> <span style="color: rgba(0, 0, 0, 1)"> update: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 506</span> <span style="color: rgba(0, 0, 0, 1)"> final: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 507</span> <span style="color: rgba(0, 0, 0, 1)"> sign: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 508</span> <span style="color: rgba(0, 0, 0, 1)"> verify: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 509</span> required_pkey_<span style="color: rgba(0, 0, 255, 1)">type</span>: <span style="color: rgba(0, 0, 255, 1)">array</span> [<span style="color: rgba(128, 0, 128, 1)">0</span>..<span style="color: rgba(128, 0, 128, 1)">4</span>] <span style="color: rgba(0, 0, 255, 1)">of</span><span style="color: rgba(0, 0, 0, 1)"> integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 510</span> <span style="color: rgba(0, 0, 0, 1)"> block_size: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 511</span> <span style="color: rgba(0, 0, 0, 1)"> ctx_size: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 512</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 513</span>
<span style="color: rgba(0, 128, 128, 1)"> 514</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Superfluo? No, in EVP_MD ci sono le dimensioni del risultato</span>
<span style="color: rgba(0, 128, 128, 1)"> 515</span> pEVP_MD_CTX =<span style="color: rgba(0, 0, 0, 1)"> ^EVP_MD_CTX;
</span><span style="color: rgba(0, 128, 128, 1)"> 516</span> EVP_MD_CTX = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 517</span> <span style="color: rgba(0, 0, 0, 1)"> digest: pEVP_MD;
</span><span style="color: rgba(0, 128, 128, 1)"> 518</span> <span style="color: rgba(0, 0, 255, 1)">case</span> integer <span style="color: rgba(0, 0, 255, 1)">of</span>
<span style="color: rgba(0, 128, 128, 1)"> 519</span> <span style="color: rgba(128, 0, 128, 1)">0</span>: (base: <span style="color: rgba(0, 0, 255, 1)">array</span> [<span style="color: rgba(128, 0, 128, 1)">0</span>..<span style="color: rgba(128, 0, 128, 1)">3</span>] <span style="color: rgba(0, 0, 255, 1)">of</span><span style="color: rgba(0, 0, 0, 1)"> byte);
</span><span style="color: rgba(0, 128, 128, 1)"> 520</span> <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">: (md2: MD2_CTX);
</span><span style="color: rgba(0, 128, 128, 1)"> 521</span> <span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">: (md4: MD4_CTX);
</span><span style="color: rgba(0, 128, 128, 1)"> 522</span> <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">: (md5: MD5_CTX);
</span><span style="color: rgba(0, 128, 128, 1)"> 523</span> <span style="color: rgba(128, 0, 128, 1)">16</span><span style="color: rgba(0, 0, 0, 1)">: (ripemd160: RIPEMD160_CTX);
</span><span style="color: rgba(0, 128, 128, 1)"> 524</span> <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">: (sha: SHA_CTX);
</span><span style="color: rgba(0, 128, 128, 1)"> 525</span> <span style="color: rgba(128, 0, 128, 1)">32</span><span style="color: rgba(0, 0, 0, 1)">: (mdc2: MDC2_CTX);
</span><span style="color: rgba(0, 128, 128, 1)"> 526</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 527</span>
<span style="color: rgba(0, 128, 128, 1)"> 528</span> pHMAC_CTX=<span style="color: rgba(0, 0, 0, 1)">^HMAC_CTX;
</span><span style="color: rgba(0, 128, 128, 1)"> 529</span> HMAC_CTX = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 530</span> <span style="color: rgba(0, 0, 0, 1)"> md : PEVP_MD;
</span><span style="color: rgba(0, 128, 128, 1)"> 531</span> <span style="color: rgba(0, 0, 0, 1)"> md_ctx : EVP_MD_CTX;
</span><span style="color: rgba(0, 128, 128, 1)"> 532</span> <span style="color: rgba(0, 0, 0, 1)"> i_ctx : EVP_MD_CTX;
</span><span style="color: rgba(0, 128, 128, 1)"> 533</span> <span style="color: rgba(0, 0, 0, 1)"> o_ctx : EVP_MD_CTX;
</span><span style="color: rgba(0, 128, 128, 1)"> 534</span> <span style="color: rgba(0, 0, 0, 1)"> key_length : Cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 535</span> key : <span style="color: rgba(0, 0, 255, 1)">array</span>[<span style="color: rgba(128, 0, 128, 1)">0</span>..(HMAC_MAX_MD_CBLOCK - <span style="color: rgba(128, 0, 128, 1)">1</span>)] <span style="color: rgba(0, 0, 255, 1)">of</span><span style="color: rgba(0, 0, 0, 1)"> byte;
</span><span style="color: rgba(0, 128, 128, 1)"> 536</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 537</span>
<span style="color: rgba(0, 128, 128, 1)"> 538</span>
<span style="color: rgba(0, 128, 128, 1)"> 539</span>
<span style="color: rgba(0, 128, 128, 1)"> 540</span> pX509_NAME_ENTRY =<span style="color: rgba(0, 0, 0, 1)"> ^X509_NAME_ENTRY;
</span><span style="color: rgba(0, 128, 128, 1)"> 541</span> X509_NAME_ENTRY = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 542</span> <span style="color: rgba(0, 0, 0, 1)"> obj: pASN1_OBJECT;
</span><span style="color: rgba(0, 128, 128, 1)"> 543</span> <span style="color: rgba(0, 0, 0, 1)"> value: pASN1_STRING;
</span><span style="color: rgba(0, 128, 128, 1)"> 544</span> _<span style="color: rgba(0, 0, 255, 1)">set</span><span style="color: rgba(0, 0, 0, 1)">: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 545</span> size: integer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> temp variable</span>
<span style="color: rgba(0, 128, 128, 1)"> 546</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 547</span>
<span style="color: rgba(0, 128, 128, 1)"> 548</span> pX509_NAME =<span style="color: rgba(0, 0, 0, 1)"> ^X509_NAME;
</span><span style="color: rgba(0, 128, 128, 1)"> 549</span> pDN =<span style="color: rgba(0, 0, 0, 1)"> ^X509_NAME;
</span><span style="color: rgba(0, 128, 128, 1)"> 550</span> X509_NAME = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 551</span> <span style="color: rgba(0, 0, 0, 1)"> entries: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 552</span> <span style="color: rgba(0, 0, 0, 1)"> modified: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 553</span> <span style="color: rgba(0, 0, 0, 1)"> bytes: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 554</span> <span style="color: rgba(0, 0, 0, 1)"> hash: cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 555</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 556</span>
<span style="color: rgba(0, 128, 128, 1)"> 557</span> pX509_VAL =<span style="color: rgba(0, 0, 0, 1)"> ^X509_VAL;
</span><span style="color: rgba(0, 128, 128, 1)"> 558</span> X509_VAL = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 559</span> <span style="color: rgba(0, 0, 0, 1)"> notBefore: pASN1_TIME;
</span><span style="color: rgba(0, 128, 128, 1)"> 560</span> <span style="color: rgba(0, 0, 0, 1)"> notAfter: pASN1_TIME;
</span><span style="color: rgba(0, 128, 128, 1)"> 561</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 562</span>
<span style="color: rgba(0, 128, 128, 1)"> 563</span> pX509_CINF =<span style="color: rgba(0, 0, 0, 1)"> ^X509_CINF;
</span><span style="color: rgba(0, 128, 128, 1)"> 564</span> X509_CINF = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 565</span> <span style="color: rgba(0, 0, 0, 1)"> version: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 566</span> <span style="color: rgba(0, 0, 0, 1)"> serialNumber: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 567</span> <span style="color: rgba(0, 0, 0, 1)"> signature: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 568</span> <span style="color: rgba(0, 0, 0, 1)"> issuer: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 569</span> <span style="color: rgba(0, 0, 0, 1)"> validity: pX509_VAL;
</span><span style="color: rgba(0, 128, 128, 1)"> 570</span> <span style="color: rgba(0, 0, 0, 1)"> subject: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 571</span> <span style="color: rgba(0, 0, 0, 1)"> key: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 572</span> <span style="color: rgba(0, 0, 0, 1)"> issuerUID: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 573</span> <span style="color: rgba(0, 0, 0, 1)"> subjectUID: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 574</span> <span style="color: rgba(0, 0, 0, 1)"> extensions: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 575</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 576</span>
<span style="color: rgba(0, 128, 128, 1)"> 577</span> pX509 =<span style="color: rgba(0, 0, 0, 1)"> ^X509;
</span><span style="color: rgba(0, 128, 128, 1)"> 578</span> X509 = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 579</span> <span style="color: rgba(0, 0, 0, 1)"> cert_info: pX509_CINF;
</span><span style="color: rgba(0, 128, 128, 1)"> 580</span> sig_alg: pointer;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^X509_ALGOR</span>
<span style="color: rgba(0, 128, 128, 1)"> 581</span> signature: pointer;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^ASN1_BIT_STRING</span>
<span style="color: rgba(0, 128, 128, 1)"> 582</span> <span style="color: rgba(0, 0, 0, 1)"> valid: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 583</span> <span style="color: rgba(0, 0, 0, 1)"> references: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 584</span> <span style="color: rgba(0, 0, 0, 1)"> name: PCharacter;
</span><span style="color: rgba(0, 128, 128, 1)"> 585</span> <span style="color: rgba(0, 0, 0, 1)"> ex_data: CRYPTO_EX_DATA;
</span><span style="color: rgba(0, 128, 128, 1)"> 586</span> <span style="color: rgba(0, 0, 0, 1)"> ex_pathlen: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 587</span> <span style="color: rgba(0, 0, 0, 1)"> ex_flags: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 588</span> <span style="color: rgba(0, 0, 0, 1)"> ex_kusage: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 589</span> <span style="color: rgba(0, 0, 0, 1)"> ex_xkusage: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 590</span> <span style="color: rgba(0, 0, 0, 1)"> ex_nscert: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 591</span> <span style="color: rgba(0, 0, 0, 1)"> skid: pASN1_OCTET_STRING;
</span><span style="color: rgba(0, 128, 128, 1)"> 592</span> akid: pointer;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ?</span>
<span style="color: rgba(0, 128, 128, 1)"> 593</span> sha1_hash: <span style="color: rgba(0, 0, 255, 1)">array</span> [<span style="color: rgba(128, 0, 128, 1)">0</span>..SHA_DIGEST_LENGTH-<span style="color: rgba(128, 0, 128, 1)">1</span>] <span style="color: rgba(0, 0, 255, 1)">of</span><span style="color: rgba(0, 0, 0, 1)"> char;
</span><span style="color: rgba(0, 128, 128, 1)"> 594</span> aux: pointer;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^X509_CERT_AUX</span>
<span style="color: rgba(0, 128, 128, 1)"> 595</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 596</span> pSTACK_OFX509 =<span style="color: rgba(0, 0, 0, 1)"> pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 597</span> pX509_STORE =<span style="color: rgba(0, 0, 0, 1)"> ^X509_STORE;
</span><span style="color: rgba(0, 128, 128, 1)"> 598</span> pX509_LOOKUP =<span style="color: rgba(0, 0, 0, 1)"> pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 599</span> pSTACK_OF509LOOKUP =<span style="color: rgba(0, 0, 0, 1)"> pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 600</span> pX509_LOOKUP_METHOD =<span style="color: rgba(0, 0, 0, 1)"> pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 601</span> X509_STORE = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 602</span> <span style="color: rgba(0, 0, 0, 1)"> cache: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 603</span> <span style="color: rgba(0, 0, 0, 1)"> objs: pSTACK_OFX509;
</span><span style="color: rgba(0, 128, 128, 1)"> 604</span> <span style="color: rgba(0, 0, 0, 1)"> get_cert_methods: pSTACK_OF509LOOKUP;
</span><span style="color: rgba(0, 128, 128, 1)"> 605</span> verify: pointer;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> function called to verify a certificate</span>
<span style="color: rgba(0, 128, 128, 1)"> 606</span> <span style="color: rgba(0, 0, 0, 1)"> verify_cb: TCertificateVerifyFunction;
</span><span style="color: rgba(0, 128, 128, 1)"> 607</span> <span style="color: rgba(0, 0, 0, 1)"> ex_data: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 608</span> <span style="color: rgba(0, 0, 0, 1)"> references: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 609</span> <span style="color: rgba(0, 0, 0, 1)"> depth: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 610</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 611</span>
<span style="color: rgba(0, 128, 128, 1)"> 612</span> pX509V3_CTX =<span style="color: rgba(0, 0, 0, 1)"> pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 613</span>
<span style="color: rgba(0, 128, 128, 1)"> 614</span> pX509_REQ =<span style="color: rgba(0, 0, 0, 1)"> ^X509_REQ;
</span><span style="color: rgba(0, 128, 128, 1)"> 615</span> pX509_REQ_INFO =<span style="color: rgba(0, 0, 0, 1)"> ^X509_REQ_INFO;
</span><span style="color: rgba(0, 128, 128, 1)"> 616</span> X509_REQ_INFO = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 617</span> <span style="color: rgba(0, 0, 0, 1)"> asn1: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 618</span> <span style="color: rgba(0, 0, 0, 1)"> length: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 619</span> <span style="color: rgba(0, 0, 0, 1)"> version: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 620</span> <span style="color: rgba(0, 0, 0, 1)"> subject: pX509_NAME;
</span><span style="color: rgba(0, 128, 128, 1)"> 621</span> <span style="color: rgba(0, 0, 0, 1)"> pubkey: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 622</span> <span style="color: rgba(0, 0, 0, 1)"> attributes: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 623</span> <span style="color: rgba(0, 0, 0, 1)"> req_kludge: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 624</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 625</span> X509_REQ = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 626</span> <span style="color: rgba(0, 0, 0, 1)"> req_info: pX509_REQ_INFO;
</span><span style="color: rgba(0, 128, 128, 1)"> 627</span> <span style="color: rgba(0, 0, 0, 1)"> sig_alg: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 628</span> <span style="color: rgba(0, 0, 0, 1)"> signature: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 629</span> <span style="color: rgba(0, 0, 0, 1)"> references: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 630</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 631</span>
<span style="color: rgba(0, 128, 128, 1)"> 632</span> pX509_EXTENSION =<span style="color: rgba(0, 0, 0, 1)"> ^X509_EXTENSION;
</span><span style="color: rgba(0, 128, 128, 1)"> 633</span> X509_EXTENSION = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 634</span> <span style="color: rgba(0, 0, 0, 1)"> obj: pASN1_OBJECT;
</span><span style="color: rgba(0, 128, 128, 1)"> 635</span> <span style="color: rgba(0, 0, 0, 1)"> critical: Smallint;
</span><span style="color: rgba(0, 128, 128, 1)"> 636</span> <span style="color: rgba(0, 0, 0, 1)"> netscape_hack: Smallint;
</span><span style="color: rgba(0, 128, 128, 1)"> 637</span> <span style="color: rgba(0, 0, 0, 1)"> value: pASN1_OCTET_STRING;
</span><span style="color: rgba(0, 128, 128, 1)"> 638</span> method: pointer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> struct v3_ext_method *: V3 method to use</span>
<span style="color: rgba(0, 128, 128, 1)"> 639</span> ext_val: pointer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> extension value</span>
<span style="color: rgba(0, 128, 128, 1)"> 640</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 641</span> pSTACK_OFX509_EXTENSION =<span style="color: rgba(0, 0, 0, 1)"> pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 642</span>
<span style="color: rgba(0, 128, 128, 1)"> 643</span> pX509_CRL =<span style="color: rgba(0, 0, 0, 1)"> pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 644</span>
<span style="color: rgba(0, 128, 128, 1)"> 645</span> pX509_SIG =<span style="color: rgba(0, 0, 0, 1)"> ^X509_SIG;
</span><span style="color: rgba(0, 128, 128, 1)"> 646</span> X509_SIG = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 647</span> algor: Pointer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> X509_ALGOR *algor;</span>
<span style="color: rgba(0, 128, 128, 1)"> 648</span> <span style="color: rgba(0, 0, 0, 1)"> digest: pASN1_OCTET_STRING;
</span><span style="color: rgba(0, 128, 128, 1)"> 649</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 650</span>
<span style="color: rgba(0, 128, 128, 1)"> 651</span> pBASIC_CONSTRAINTS =<span style="color: rgba(0, 0, 0, 1)"> ^BASIC_CONSTRAINTS;
</span><span style="color: rgba(0, 128, 128, 1)"> 652</span> BASIC_CONSTRAINTS = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 653</span> <span style="color: rgba(0, 0, 0, 1)"> ca: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 654</span> <span style="color: rgba(0, 0, 0, 1)"> pathlen: pASN1_INTEGER;
</span><span style="color: rgba(0, 128, 128, 1)"> 655</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 656</span> pOTHERNAME =<span style="color: rgba(0, 0, 0, 1)"> ^OTHERNAME;
</span><span style="color: rgba(0, 128, 128, 1)"> 657</span> OTHERNAME = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 658</span> <span style="color: rgba(0, 0, 255, 1)">type</span>_id: pASN1_OBJECT;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">There is a bug in x509v3/x509v3.h ?</span>
<span style="color: rgba(0, 128, 128, 1)"> 659</span> value: pointer;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">pASN1_TYPE;</span>
<span style="color: rgba(0, 128, 128, 1)"> 660</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 661</span> pGENERAL_NAME =<span style="color: rgba(0, 0, 0, 1)"> ^GENERAL_NAME ;
</span><span style="color: rgba(0, 128, 128, 1)"> 662</span> pGENERAL_NAMEDATA = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 663</span> <span style="color: rgba(0, 0, 255, 1)">case</span> integer <span style="color: rgba(0, 0, 255, 1)">of</span>
<span style="color: rgba(0, 128, 128, 1)"> 664</span> GEN_EMAIL: (ia5: pASN1_IA5STRING);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> also DNS and URI</span>
<span style="color: rgba(0, 128, 128, 1)"> 665</span> <span style="color: rgba(0, 0, 0, 1)"> GEN_IPADD: (ip: pASN1_OCTET_STRING);
</span><span style="color: rgba(0, 128, 128, 1)"> 666</span> <span style="color: rgba(0, 0, 0, 1)"> GEN_DIRNAME: (dirn: pX509_NAME);
</span><span style="color: rgba(0, 128, 128, 1)"> 667</span> <span style="color: rgba(0, 0, 0, 1)"> GEN_RID: (rid: pASN1_OBJECT);
</span><span style="color: rgba(0, 128, 128, 1)"> 668</span> <span style="color: rgba(0, 0, 0, 1)"> GEN_OTHERNAME: (otherName: pOTHERNAME);
</span><span style="color: rgba(0, 128, 128, 1)"> 669</span> GEN_X400: (other: pointer);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> also EDI</span>
<span style="color: rgba(0, 128, 128, 1)"> 670</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 671</span> GENERAL_NAME = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 672</span> <span style="color: rgba(0, 0, 0, 1)"> nametype: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 673</span> <span style="color: rgba(0, 0, 0, 1)"> d: pGENERAL_NAMEDATA;
</span><span style="color: rgba(0, 128, 128, 1)"> 674</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 675</span>
<span style="color: rgba(0, 128, 128, 1)"> 676</span> pEVP_PKEY =<span style="color: rgba(0, 0, 0, 1)"> ^EVP_PKEY;
</span><span style="color: rgba(0, 128, 128, 1)"> 677</span> EVP_PKEY_PKEY = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 678</span> <span style="color: rgba(0, 0, 255, 1)">case</span> integer <span style="color: rgba(0, 0, 255, 1)">of</span>
<span style="color: rgba(0, 128, 128, 1)"> 679</span> <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">: (ptr: PCharacter);
</span><span style="color: rgba(0, 128, 128, 1)"> 680</span> <span style="color: rgba(128, 0, 128, 1)">1</span>: (rsa: pRSA);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^rsa_st</span>
<span style="color: rgba(0, 128, 128, 1)"> 681</span> <span style="color: rgba(128, 0, 128, 1)">2</span>: (dsa: pDSA);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^dsa_st</span>
<span style="color: rgba(0, 128, 128, 1)"> 682</span> <span style="color: rgba(128, 0, 128, 1)">3</span>: (dh: pDH);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^dh_st</span>
<span style="color: rgba(0, 128, 128, 1)"> 683</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 684</span> EVP_PKEY = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 685</span> <span style="color: rgba(0, 0, 0, 1)"> ktype: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 686</span> save_<span style="color: rgba(0, 0, 255, 1)">type</span><span style="color: rgba(0, 0, 0, 1)">: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 687</span> <span style="color: rgba(0, 0, 0, 1)"> references: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 688</span> <span style="color: rgba(0, 0, 0, 1)"> pkey: EVP_PKEY_PKEY;
</span><span style="color: rgba(0, 128, 128, 1)"> 689</span> <span style="color: rgba(0, 0, 0, 1)"> save_parameters: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 690</span> <span style="color: rgba(0, 0, 0, 1)"> attributes: pSTACK_OFX509;
</span><span style="color: rgba(0, 128, 128, 1)"> 691</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 692</span>
<span style="color: rgba(0, 128, 128, 1)"> 693</span> pPKCS7_SIGNER_INFO =<span style="color: rgba(0, 0, 0, 1)"> pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 694</span> pSTACK_OFPKCS7_SIGNER_INFO =<span style="color: rgba(0, 0, 0, 1)"> pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 695</span> pPKCS7_signed =<span style="color: rgba(0, 0, 0, 1)"> ^PKCS7_signed;
</span><span style="color: rgba(0, 128, 128, 1)"> 696</span> PKCS7_signed = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 697</span> <span style="color: rgba(0, 0, 0, 1)"> version: pASN1_INTEGER;
</span><span style="color: rgba(0, 128, 128, 1)"> 698</span> md_algs: pointer;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^STACK_OF(X509_ALGOR)</span>
<span style="color: rgba(0, 128, 128, 1)"> 699</span> cert: pointer;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^STACK_OF(X509)</span>
<span style="color: rgba(0, 128, 128, 1)"> 700</span> crl: pointer;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^STACK_OF(X509_CRL)</span>
<span style="color: rgba(0, 128, 128, 1)"> 701</span> <span style="color: rgba(0, 0, 0, 1)"> signer_info: pSTACK_OFPKCS7_SIGNER_INFO;
</span><span style="color: rgba(0, 128, 128, 1)"> 702</span> contents: pointer;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^struct pkcs7_st</span>
<span style="color: rgba(0, 128, 128, 1)"> 703</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 704</span>
<span style="color: rgba(0, 128, 128, 1)"> 705</span> pPKCS7_signedandenveloped =<span style="color: rgba(0, 0, 0, 1)"> ^PKCS7_signedandenveloped;
</span><span style="color: rgba(0, 128, 128, 1)"> 706</span> PKCS7_signedandenveloped = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 707</span> <span style="color: rgba(0, 0, 0, 1)"> version: pASN1_INTEGER;
</span><span style="color: rgba(0, 128, 128, 1)"> 708</span> md_algs: pointer;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^STACK_OF(X509_ALGOR)</span>
<span style="color: rgba(0, 128, 128, 1)"> 709</span> cert: pointer;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^STACK_OF(X509)</span>
<span style="color: rgba(0, 128, 128, 1)"> 710</span> crl: pointer;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^STACK_OF(X509_CRL)</span>
<span style="color: rgba(0, 128, 128, 1)"> 711</span> <span style="color: rgba(0, 0, 0, 1)"> signer_info: pSTACK_OFPKCS7_SIGNER_INFO;
</span><span style="color: rgba(0, 128, 128, 1)"> 712</span> enc_data: pointer;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^PKCS7_ENC_CONTENT</span>
<span style="color: rgba(0, 128, 128, 1)"> 713</span> recipientinfo: pointer;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^STACK_OF(PKCS7_RECIP_INFO)</span>
<span style="color: rgba(0, 128, 128, 1)"> 714</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 715</span>
<span style="color: rgba(0, 128, 128, 1)"> 716</span> pPKCS7 =<span style="color: rgba(0, 0, 0, 1)"> ^PKCS7;
</span><span style="color: rgba(0, 128, 128, 1)"> 717</span> PKCS7 = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 718</span> <span style="color: rgba(0, 0, 0, 1)"> asn1: PCharacter;
</span><span style="color: rgba(0, 128, 128, 1)"> 719</span> <span style="color: rgba(0, 0, 0, 1)"> length: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 720</span> <span style="color: rgba(0, 0, 0, 1)"> state: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 721</span> <span style="color: rgba(0, 0, 0, 1)"> detached: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 722</span> asn1_<span style="color: rgba(0, 0, 255, 1)">type</span>: pointer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^ASN1_OBJECT</span>
<span style="color: rgba(0, 128, 128, 1)"> 723</span> <span style="color: rgba(0, 0, 255, 1)">case</span> integer <span style="color: rgba(0, 0, 255, 1)">of</span>
<span style="color: rgba(0, 128, 128, 1)"> 724</span> <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">: (ptr: pASN1_OCTET_STRING);
</span><span style="color: rgba(0, 128, 128, 1)"> 725</span> <span style="color: rgba(128, 0, 128, 1)">1</span>: (data: pointer);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^PKCS7_SIGNED</span>
<span style="color: rgba(0, 128, 128, 1)"> 726</span> <span style="color: rgba(128, 0, 128, 1)">2</span>: (sign: pPKCS7_signed);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^PKCS7_SIGNED</span>
<span style="color: rgba(0, 128, 128, 1)"> 727</span> <span style="color: rgba(128, 0, 128, 1)">3</span>: (enveloped: pointer);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^PKCS7_ENVELOPE</span>
<span style="color: rgba(0, 128, 128, 1)"> 728</span> <span style="color: rgba(128, 0, 128, 1)">4</span>: (signed_<span style="color: rgba(0, 0, 255, 1)">and</span><span style="color: rgba(0, 0, 0, 1)">_enveloped: pPKCS7_signedandenveloped);
</span><span style="color: rgba(0, 128, 128, 1)"> 729</span> <span style="color: rgba(128, 0, 128, 1)">5</span>: (digest: pointer);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^PKCS7_DIGEST</span>
<span style="color: rgba(0, 128, 128, 1)"> 730</span> <span style="color: rgba(128, 0, 128, 1)">6</span>: (encrypted: pointer);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^PKCS7_ENCRYPT</span>
<span style="color: rgba(0, 128, 128, 1)"> 731</span> <span style="color: rgba(128, 0, 128, 1)">7</span>: (other: pointer);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ^ASN1_TYPE</span>
<span style="color: rgba(0, 128, 128, 1)"> 732</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 733</span>
<span style="color: rgba(0, 128, 128, 1)"> 734</span> pPKCS8_Priv_Key_Info =<span style="color: rgba(0, 0, 0, 1)"> ^PKCS8_Priv_Key_Info;
</span><span style="color: rgba(0, 128, 128, 1)"> 735</span> PKCS8_Priv_Key_Info = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 736</span> broken: Integer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Flag for various broken formats */</span>
<span style="color: rgba(0, 128, 128, 1)"> 737</span> <span style="color: rgba(0, 0, 0, 1)"> version: pASN1_INTEGER;
</span><span style="color: rgba(0, 128, 128, 1)"> 738</span> pkeyalg: Pointer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> X509_ALGOR *pkeyalg;</span>
<span style="color: rgba(0, 128, 128, 1)"> 739</span> pkey: Pointer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ASN1_TYPE *pkey; /* Should be OCTET STRING but some are broken */</span>
<span style="color: rgba(0, 128, 128, 1)"> 740</span> attributes: Pointer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> STACK_OF(X509_ATTRIBUTE) *attributes;</span>
<span style="color: rgba(0, 128, 128, 1)"> 741</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 742</span>
<span style="color: rgba(0, 128, 128, 1)"> 743</span> pPKCS12 =<span style="color: rgba(0, 0, 0, 1)"> ^PKCS12;
</span><span style="color: rgba(0, 128, 128, 1)"> 744</span> PKCS12 = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 745</span> <span style="color: rgba(0, 0, 0, 1)"> version: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 746</span> <span style="color: rgba(0, 0, 0, 1)"> mac: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 747</span> <span style="color: rgba(0, 0, 0, 1)"> authsafes: pPKCS7;
</span><span style="color: rgba(0, 128, 128, 1)"> 748</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 749</span>
<span style="color: rgba(0, 128, 128, 1)"> 750</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">by lwm8246 2016/02/28 20:03</span>
<span style="color: rgba(0, 128, 128, 1)"> 751</span> pSHA256_CTX=<span style="color: rgba(0, 0, 0, 1)">^SHA256_CTX;
</span><span style="color: rgba(0, 128, 128, 1)"> 752</span> SHA256_CTX = <span style="color: rgba(0, 0, 255, 1)">record</span>
<span style="color: rgba(0, 128, 128, 1)"> 753</span> h : <span style="color: rgba(0, 0, 255, 1)">array</span> [<span style="color: rgba(128, 0, 128, 1)">0</span>..(<span style="color: rgba(128, 0, 128, 1)">8</span> - <span style="color: rgba(128, 0, 128, 1)">1</span>)] <span style="color: rgba(0, 0, 255, 1)">of</span><span style="color: rgba(0, 0, 0, 1)"> Cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 754</span> <span style="color: rgba(0, 0, 0, 1)"> Nl,Nh : Cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 755</span> data : <span style="color: rgba(0, 0, 255, 1)">array</span> [<span style="color: rgba(128, 0, 128, 1)">0</span>..(<span style="color: rgba(128, 0, 128, 1)">16</span> -<span style="color: rgba(128, 0, 128, 1)">1</span>)] <span style="color: rgba(0, 0, 255, 1)">of</span><span style="color: rgba(0, 0, 0, 1)"> Cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 756</span> <span style="color: rgba(0, 0, 0, 1)"> num,md_len : Cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 757</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 758</span>
<span style="color: rgba(0, 128, 128, 1)"> 759</span> PENGINE = Pointer;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">^ENGINE;</span>
<span style="color: rgba(0, 128, 128, 1)"> 760</span>
<span style="color: rgba(0, 128, 128, 1)"> 761</span>
<span style="color: rgba(0, 128, 128, 1)"> 762</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> SSLeay: cardinal;
</span><span style="color: rgba(0, 128, 128, 1)"> 763</span> <span style="color: rgba(0, 0, 255, 1)">function</span> SSLeay_version(t: integer): PCharacter; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 764</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span><span style="color: rgba(0, 0, 0, 1)"> OpenSSL_add_all_algorithms;
</span><span style="color: rgba(0, 128, 128, 1)"> 765</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> OpenSSL_add_all_ciphers; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 766</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> OpenSSL_add_all_digests; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 767</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_cleanup(); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 768</span>
<span style="color: rgba(0, 128, 128, 1)"> 769</span> <span style="color: rgba(0, 0, 255, 1)">function</span> ERR_get_error: cardinal; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 770</span> <span style="color: rgba(0, 0, 255, 1)">function</span> ERR_peek_error: cardinal; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 771</span> <span style="color: rgba(0, 0, 255, 1)">function</span> ERR_peek_last_error: cardinal; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 772</span> <span style="color: rgba(0, 0, 255, 1)">function</span> ERR_error_<span style="color: rgba(0, 0, 255, 1)">string</span>(e: cardinal; buf: PCharacter): PCharacter; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 773</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span><span style="color: rgba(0, 0, 0, 1)"> ERR_clear_error;
</span><span style="color: rgba(0, 128, 128, 1)"> 774</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span><span style="color: rgba(0, 0, 0, 1)"> ERR_load_crypto_strings;
</span><span style="color: rgba(0, 128, 128, 1)"> 775</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> ERR_<span style="color: rgba(0, 0, 255, 1)">free</span><span style="color: rgba(0, 0, 0, 1)">_strings;
</span><span style="color: rgba(0, 128, 128, 1)"> 776</span>
<span style="color: rgba(0, 128, 128, 1)"> 777</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Low level debugable memory management function</span>
<span style="color: rgba(0, 128, 128, 1)"> 778</span> <span style="color: rgba(0, 0, 255, 1)">function</span> CRYPTO_malloc(length: longint; <span style="color: rgba(0, 0, 255, 1)">const</span> f: PCharacter; line: integer): pointer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 779</span> <span style="color: rgba(0, 0, 255, 1)">function</span> CRYPTO_realloc(str: PCharacter; length: longint; <span style="color: rgba(0, 0, 255, 1)">const</span> f: PCharacter; line: integer): pointer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 780</span> <span style="color: rgba(0, 0, 255, 1)">function</span> CRYPTO_remalloc(a: pointer; length: longint; <span style="color: rgba(0, 0, 255, 1)">const</span> f: PCharacter; line: integer): pointer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 781</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> CRYPTO_<span style="color: rgba(0, 0, 255, 1)">free</span>(str: pointer); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 782</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> High level memory management function</span>
<span style="color: rgba(0, 128, 128, 1)"> 783</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> OPENSSL_malloc(length: longint): pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 784</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> OPENSSL_realloc(address: PCharacter; length: longint): pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 785</span> <span style="color: rgba(0, 0, 255, 1)">function</span> OPENSSL_remalloc(<span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> address: pointer; length: longint): pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 786</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> OPENSSL_<span style="color: rgba(0, 0, 255, 1)">free</span>(address: pointer); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 787</span>
<span style="color: rgba(0, 128, 128, 1)"> 788</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Big number function</span>
<span style="color: rgba(0, 128, 128, 1)"> 789</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_new(): pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 790</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_init(bn: pBIGNUM); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 791</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_clear(bn: pBIGNUM); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 792</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_<span style="color: rgba(0, 0, 255, 1)">free</span>(bn: pBIGNUM); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 793</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_clear_<span style="color: rgba(0, 0, 255, 1)">free</span>(bn: pBIGNUM); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 794</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_<span style="color: rgba(0, 0, 255, 1)">set</span>_params(mul, high, low, mont: integer); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 795</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_get_params(which: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 796</span>
<span style="color: rgba(0, 128, 128, 1)"> 797</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_options: PCharacter; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 798</span>
<span style="color: rgba(0, 128, 128, 1)"> 799</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_CTX_new: pBN_CTX; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 800</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_CTX_init(ctx: pBN_CTX); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 801</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_CTX_start(ctx: pBN_CTX); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 802</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_CTX_get(ctx: pBN_CTX): pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 803</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_CTX_<span style="color: rgba(0, 0, 255, 1)">end</span>(ctx: pBN_CTX); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 804</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_CTX_<span style="color: rgba(0, 0, 255, 1)">free</span>(ctx: pBN_CTX); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 805</span>
<span style="color: rgba(0, 128, 128, 1)"> 806</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_MONT_CTX_new: pBN_MONT_CTX; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 807</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_MONT_CTX_init(m_ctx: pBN_MONT_CTX); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 808</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_MONT_CTX_<span style="color: rgba(0, 0, 255, 1)">set</span><span style="color: rgba(0, 0, 0, 1)">(m_ctx: pBN_MONT_CTX;
</span><span style="color: rgba(0, 128, 128, 1)"> 809</span> <span style="color: rgba(0, 0, 255, 1)">const</span> modulus: pBIGNUM; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 810</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_MONT_CTX_copy(_<span style="color: rgba(0, 0, 255, 1)">to</span>: pBN_MONT_CTX; from: pBN_MONT_CTX): pBN_MONT_CTX; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 811</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_MONT_CTX_<span style="color: rgba(0, 0, 255, 1)">free</span>(m_ctx: pBN_MONT_CTX); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 812</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_mul_montgomery(r, a, b: pBIGNUM; m_ctx: pBN_MONT_CTX; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 813</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_from_montgomery(r, a: pBIGNUM; m_ctx: pBN_MONT_CTX; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 814</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">to</span><span style="color: rgba(0, 0, 0, 1)">_montgomery(r, a: pBIGNUM; m_ctx: pBN_MONT_CTX; ctx: pBN_CTX): integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 815</span>
<span style="color: rgba(0, 128, 128, 1)"> 816</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_RECP_CTX_init(recp: pBN_RECP_CTX); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 817</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_RECP_CTX_<span style="color: rgba(0, 0, 255, 1)">set</span>(recp: pBN_RECP_CTX; <span style="color: rgba(0, 0, 255, 1)">const</span> rdiv: pBIGNUM; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 818</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_RECP_CTX_new: pBN_RECP_CTX; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 819</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_RECP_CTX_<span style="color: rgba(0, 0, 255, 1)">free</span>(recp: pBN_RECP_CTX); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 820</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">div</span>_recp(dv, rem, a: pBIGNUM; recp: pBN_RECP_CTX; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 821</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_mul_reciprocal(r, a, b: pBIGNUM; recp: pBN_RECP_CTX; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 822</span>
<span style="color: rgba(0, 128, 128, 1)"> 823</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_BLINDING_new(a: pBIGNUM; Ai: pBIGNUM; _<span style="color: rgba(0, 0, 255, 1)">mod</span>: pBIGNUM): pBN_BLINDING; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 824</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_BLINDING_update(b: pBN_BLINDING; ctx: pBN_CTX): pBN_BLINDING; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 825</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_BLINDING_<span style="color: rgba(0, 0, 255, 1)">free</span>(b: pBN_BLINDING); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 826</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_BLINDING_convert(n: pBIGNUM; r: pBN_BLINDING; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 827</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_BLINDING_invert(n: pBIGNUM; b: pBN_BLINDING; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 828</span>
<span style="color: rgba(0, 128, 128, 1)"> 829</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_copy(_<span style="color: rgba(0, 0, 255, 1)">to</span>: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span> from: pBIGNUM): pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 830</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_dup(<span style="color: rgba(0, 0, 255, 1)">const</span> from: pBIGNUM): pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 831</span>
<span style="color: rgba(0, 128, 128, 1)"> 832</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Helper: convert standard Delphi integer in big-endian integer</span>
<span style="color: rgba(0, 128, 128, 1)"> 833</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> int2bin(n: integer): integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 834</span>
<span style="color: rgba(0, 128, 128, 1)"> 835</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_bn2bin(<span style="color: rgba(0, 0, 255, 1)">const</span> n: pBIGNUM; _<span style="color: rgba(0, 0, 255, 1)">to</span>: pointer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 836</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_bin2bn(<span style="color: rgba(0, 0, 255, 1)">const</span> _from: pointer; len: integer; ret: pBIGNUM): pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 837</span>
<span style="color: rgba(0, 128, 128, 1)"> 838</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_bn2hex(<span style="color: rgba(0, 0, 255, 1)">const</span> n: pBIGNUM): PCharacter; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 839</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_bn2dec(<span style="color: rgba(0, 0, 255, 1)">const</span> n: pBIGNUM): PCharacter; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 840</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_hex2bn(<span style="color: rgba(0, 0, 255, 1)">var</span> n: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span> str: PCharacter): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 841</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_dec2bn(<span style="color: rgba(0, 0, 255, 1)">var</span> n: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span> str: PCharacter): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 842</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_bn2mpi(<span style="color: rgba(0, 0, 255, 1)">const</span> a: pBIGNUM; _<span style="color: rgba(0, 0, 255, 1)">to</span>: pointer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 843</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_mpi2bn(s: pointer; len: integer; ret: pBIGNUM): pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 844</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_print(fp: pBIO; <span style="color: rgba(0, 0, 255, 1)">const</span> a: pointer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 845</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">function BN_print_fp(FILE *fp, const BIGNUM *a): integer; cdecl;</span>
<span style="color: rgba(0, 128, 128, 1)"> 846</span>
<span style="color: rgba(0, 128, 128, 1)"> 847</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BN_zero(n: pBIGNUM): integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 848</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BN_one(n: pBIGNUM): integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 849</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_value_one(): pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 850</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">set</span>_word(n: pBIGNUM; w: cardinal): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 851</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_get_word(n: pBIGNUM): cardinal; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 852</span>
<span style="color: rgba(0, 128, 128, 1)"> 853</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_cmp(a: pBIGNUM; b: pBIGNUM): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 854</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_ucmp(a: pBIGNUM; b: pBIGNUM): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 855</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">function BN_is_zero(a: pBIGNUM): boolean;</span>
<span style="color: rgba(0, 128, 128, 1)"> 856</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">function BN_is_one(a: pBIGNUM): boolean;</span>
<span style="color: rgba(0, 128, 128, 1)"> 857</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">function BN_is_word(a: pBIGNUM; w: BN_ULONG): boolean;</span>
<span style="color: rgba(0, 128, 128, 1)"> 858</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">function BN_is_odd(a: pBIGNUM): boolean;</span>
<span style="color: rgba(0, 128, 128, 1)"> 859</span>
<span style="color: rgba(0, 128, 128, 1)"> 860</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_num_bytes(<span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> a: pBIGNUM): integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 861</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_num_bits(<span style="color: rgba(0, 0, 255, 1)">const</span> a: pBIGNUM): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 862</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_num_bits_word(w: BN_ULONG): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 863</span>
<span style="color: rgba(0, 128, 128, 1)"> 864</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_add(r: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span> a, b: pBIGNUM): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 865</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_sub(r: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span> a, b: pBIGNUM): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 866</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_uadd(r: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span> a, b: pBIGNUM): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 867</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_usub(r: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span> a, b: pBIGNUM): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 868</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_mul(r: pBIGNUM; a: pBIGNUM; b: pBIGNUM; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 869</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_sqr(r: pBIGNUM; a: pBIGNUM; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 870</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">div</span>(dv: pBIGNUM; rem: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span> a, d: pBIGNUM; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 871</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> BN_mod redefined as BN_div in some DLL version</span>
<span style="color: rgba(0, 128, 128, 1)"> 872</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>(rem: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> a, m: pBIGNUM; ctx: pBN_CTX): integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 873</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_exp(r: pBIGNUM; a: pBIGNUM; p: pBIGNUM; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 874</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_exp(r, a: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span> p, m: pBIGNUM; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 875</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_gcd(r: pBIGNUM; a: pBIGNUM; b: pBIGNUM; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 876</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> BN_nnmod requires OpenSSL >= 0.9.7</span>
<span style="color: rgba(0, 128, 128, 1)"> 877</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_nnmod(rem: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span> a: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span> m: pBIGNUM; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 878</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> BN_mod_add requires OpenSSL >= 0.9.7</span>
<span style="color: rgba(0, 128, 128, 1)"> 879</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_add(r: pBIGNUM; a: pBIGNUM; b: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> m: pBIGNUM;
</span><span style="color: rgba(0, 128, 128, 1)"> 880</span> ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 881</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> BN_mod_sub requires OpenSSL >= 0.9.7</span>
<span style="color: rgba(0, 128, 128, 1)"> 882</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_sub(r: pBIGNUM; a: pBIGNUM; b: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> m: pBIGNUM;
</span><span style="color: rgba(0, 128, 128, 1)"> 883</span> ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 884</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> BN_mod_mul requires OpenSSL >= 0.9.7</span>
<span style="color: rgba(0, 128, 128, 1)"> 885</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_mul(ret, a, b: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span> m: pBIGNUM; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 886</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> BN_mod_sqr requires OpenSSL >= 0.9.7</span>
<span style="color: rgba(0, 128, 128, 1)"> 887</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_sqr(r: pBIGNUM; a: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span> m: pBIGNUM; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 888</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_reciprocal(r, m: pBIGNUM; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 889</span>
<span style="color: rgba(0, 128, 128, 1)"> 890</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span><span style="color: rgba(0, 0, 0, 1)">_exp2_mont(r, a1, p1, a2, p2, m: pBIGNUM;
</span><span style="color: rgba(0, 128, 128, 1)"> 891</span> ctx: pBN_CTX; m_ctx: pBN_MONT_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 892</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_exp_mont(r, a: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> p, m: pBIGNUM;
</span><span style="color: rgba(0, 128, 128, 1)"> 893</span> ctx: pBN_CTX; m_ctx: pBN_MONT_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 894</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_exp_mont_word(r: pBIGNUM; a: BN_ULONG; <span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> p, m: pBIGNUM;
</span><span style="color: rgba(0, 128, 128, 1)"> 895</span> ctx: pBN_CTX; m_ctx: pBN_MONT_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 896</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_exp_simple(r, a, p, m: pBIGNUM; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 897</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_exp_recp(r: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span> a, p, m: pBIGNUM; ctx: pBN_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 898</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_inverse(ret, a: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span> n: pBIGNUM; ctx: pBN_CTX): pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 899</span>
<span style="color: rgba(0, 128, 128, 1)"> 900</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_add_word(a: pBIGNUM; w: BN_ULONG): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Adds w to a ("a+=w").</span>
<span style="color: rgba(0, 128, 128, 1)"> 901</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_sub_word(a: pBIGNUM; w: BN_ULONG): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Subtracts w from a ("a-=w").</span>
<span style="color: rgba(0, 128, 128, 1)"> 902</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_mul_word(a: pBIGNUM; w: BN_ULONG): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Multiplies a and w ("a*=b").</span>
<span style="color: rgba(0, 128, 128, 1)"> 903</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">div</span>_word(a: pBIGNUM; w: BN_ULONG): BN_ULONG; <span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Divides a by w ("a/=w") and returns the remainder.</span>
<span style="color: rgba(0, 128, 128, 1)"> 904</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_word(<span style="color: rgba(0, 0, 255, 1)">const</span> a: pBIGNUM; w: BN_ULONG): BN_ULONG; <span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Returns the remainder of a divided by w ("a%m").</span>
<span style="color: rgba(0, 128, 128, 1)"> 905</span> <span style="color: rgba(0, 0, 255, 1)">function</span> bn_mul_words(rp, ap: pBN_ULONG; num: integer; w: BN_ULONG): BN_ULONG; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 906</span> <span style="color: rgba(0, 0, 255, 1)">function</span> bn_mul_add_words(rp, ap: pBN_ULONG; num: integer; w: BN_ULONG): BN_ULONG; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 907</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> bn_sqr_words(rp, ap: pBN_ULONG; num: integer); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 908</span> <span style="color: rgba(0, 0, 255, 1)">function</span> bn_<span style="color: rgba(0, 0, 255, 1)">div</span>_words(h, l, d: BN_ULONG): BN_ULONG; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 909</span> <span style="color: rgba(0, 0, 255, 1)">function</span> bn_add_words(rp, ap, bp: pBN_ULONG; num: integer): BN_ULONG; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 910</span> <span style="color: rgba(0, 0, 255, 1)">function</span> bn_sub_words(rp, ap, bp: pBN_ULONG; num: integer): BN_ULONG; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 911</span> <span style="color: rgba(0, 0, 255, 1)">function</span> bn_expand2(a: pBIGNUM; n: integer): pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 912</span>
<span style="color: rgba(0, 128, 128, 1)"> 913</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">set</span>_bit(a: pBIGNUM; n: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 914</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_clear_bit(a: pBIGNUM; n: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 915</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">is</span>_bit_<span style="color: rgba(0, 0, 255, 1)">set</span>(<span style="color: rgba(0, 0, 255, 1)">const</span> a: pBIGNUM; n: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 916</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_mask_bits(a: pBIGNUM; n: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 917</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_lshift(r: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span> a: pBIGNUM; n: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 918</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_lshift1(r: pBIGNUM; a: pBIGNUM): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 919</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_rshift(r: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span> a: pBIGNUM; n: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 920</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_rshift1(r: pBIGNUM; a: pBIGNUM): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 921</span>
<span style="color: rgba(0, 128, 128, 1)"> 922</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BN_generate_prime(ret: pBIGNUM; num, safe: integer; add, rem: pBIGNUM;
</span><span style="color: rgba(0, 128, 128, 1)"> 923</span> progress: TProgressCallbackFunction; cb_arg: pointer): pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 924</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">is</span>_prime(<span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> a: pBIGNUM; checks: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 925</span> progress: TProgressCallbackFunction; ctx: pBN_CTX; cb_arg: pointer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 926</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">is</span>_prime_fasttest(<span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> a: pBIGNUM; checks: integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 927</span> <span style="color: rgba(0, 0, 0, 1)"> progress: TProgressCallbackFunction; ctx: pBN_CTX; cb_arg: pointer;
</span><span style="color: rgba(0, 128, 128, 1)"> 928</span> <span style="color: rgba(0, 0, 255, 1)">do</span>_trial_division: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 929</span>
<span style="color: rgba(0, 128, 128, 1)"> 930</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_rand(rnd: pBIGNUM; bits, top, bottom: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 931</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_pseudo_rand(rnd: pBIGNUM; bits, top, bottom: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 932</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_rand_range(rnd, range: pBIGNUM): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 933</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> BN_pseudo_rand_range requires OpenSSL >= 0.9.6c</span>
<span style="color: rgba(0, 128, 128, 1)"> 934</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_pseudo_rand_range(rnd, range: pBIGNUM): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 935</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_bntest_rand(rnd: pBIGNUM; bits, top, bottom: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 936</span>
<span style="color: rgba(0, 128, 128, 1)"> 937</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">to</span>_ASN1_INTEGER(bn: pBIGNUM; ai: pASN1_INTEGER): pASN1_INTEGER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 938</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">to</span>_ASN1_ENUMERATED(bn: pBIGNUM; ai: pASN1_ENUMERATED): pASN1_ENUMERATED; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 939</span>
<span style="color: rgba(0, 128, 128, 1)"> 940</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ASN.1 functions</span>
<span style="color: rgba(0, 128, 128, 1)"> 941</span> <span style="color: rgba(0, 0, 255, 1)">function</span> ASN1_IA5STRING_new: pASN1_IA5STRING; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 942</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> ASN1_INTEGER_<span style="color: rgba(0, 0, 255, 1)">free</span>(x: pASN1_IA5STRING); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 943</span> <span style="color: rgba(0, 0, 255, 1)">function</span> ASN1_INTEGER_get(a: pointer): longint; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 944</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> ASN1_STRING_<span style="color: rgba(0, 0, 255, 1)">set</span>_<span style="color: rgba(0, 0, 255, 1)">default</span>_mask(mask: cardinal); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 945</span> <span style="color: rgba(0, 0, 255, 1)">function</span> ASN1_STRING_get_<span style="color: rgba(0, 0, 255, 1)">default</span>_mask: cardinal; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 946</span> <span style="color: rgba(0, 0, 255, 1)">function</span> ASN1_TIME_print(fp: pBIO; a: pASN1_TIME): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 947</span>
<span style="color: rgba(0, 128, 128, 1)"> 948</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> OBJ functions</span>
<span style="color: rgba(0, 128, 128, 1)"> 949</span> <span style="color: rgba(0, 0, 255, 1)">function</span> OBJ_obj2nid(asn1_<span style="color: rgba(0, 0, 255, 1)">object</span>: pointer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 950</span> <span style="color: rgba(0, 0, 255, 1)">function</span> OBJ_txt2nid(s: PCharacter): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 951</span> <span style="color: rgba(0, 0, 255, 1)">function</span> OBJ_txt2obj(s: PCharacter; no_name: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 952</span>
<span style="color: rgba(0, 128, 128, 1)"> 953</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> safestack functions</span>
<span style="color: rgba(0, 128, 128, 1)"> 954</span> <span style="color: rgba(0, 0, 255, 1)">function</span> sk_new_null: pointer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 955</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> sk_<span style="color: rgba(0, 0, 255, 1)">free</span>(st: pointer); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 956</span> <span style="color: rgba(0, 0, 255, 1)">function</span> sk_push(st: pointer; val: pointer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 957</span> <span style="color: rgba(0, 0, 255, 1)">function</span> sk_num(st: pointer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 958</span> <span style="color: rgba(0, 0, 255, 1)">function</span> sk_value(st: pointer; i: integer): pointer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 959</span>
<span style="color: rgba(0, 128, 128, 1)"> 960</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> BIO functions</span>
<span style="color: rgba(0, 128, 128, 1)"> 961</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_new(_<span style="color: rgba(0, 0, 255, 1)">type</span>: pBIO_METHOD): pBIO; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 962</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_new_<span style="color: rgba(0, 0, 255, 1)">file</span>(<span style="color: rgba(0, 0, 255, 1)">const</span> filename: PCharacter; <span style="color: rgba(0, 0, 255, 1)">const</span> mode: PCharacter): pBIO; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 963</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_<span style="color: rgba(0, 0, 255, 1)">set</span>(a: pBIO; _<span style="color: rgba(0, 0, 255, 1)">type</span>: pBIO_METHOD): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 964</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_<span style="color: rgba(0, 0, 255, 1)">free</span>(a: pBIO): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 965</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BIO_vfree(a: pBIO); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 966</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BIO_<span style="color: rgba(0, 0, 255, 1)">free</span>_all(a: pBIO); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 967</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_push(b: pBIO; append: pBIO): pBIO; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 968</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_pop(b: pBIO): pBIO; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 969</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_ctrl(bp: pBIO; cmd: Integer; larg: Longint;
</span><span style="color: rgba(0, 128, 128, 1)"> 970</span> parg: Pointer): Longint; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 971</span>
<span style="color: rgba(0, 128, 128, 1)"> 972</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_<span style="color: rgba(0, 0, 255, 1)">read</span>(b: pBIO; buf: pointer; len: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 973</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_gets(b: pBIO; buf: PCharacter; size: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 974</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_<span style="color: rgba(0, 0, 255, 1)">write</span>(b: pBIO; <span style="color: rgba(0, 0, 255, 1)">const</span> buf: pointer; len: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 975</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_puts(b: pBIO; <span style="color: rgba(0, 0, 255, 1)">const</span> buf: PCharacter): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 976</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_flush(b: pBIO): integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 977</span>
<span style="color: rgba(0, 128, 128, 1)"> 978</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_reset(bp: pBIO): integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 979</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_eof(bp: pBIO): integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 980</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_<span style="color: rgba(0, 0, 255, 1)">set</span><span style="color: rgba(0, 0, 0, 1)">_close(bp: pBIO; c: integer): integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 981</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_get_close(bp: pBIO): integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 982</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_pending(bp: pBIO): integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 983</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_wpending(bp: pBIO): integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 984</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_<span style="color: rgba(0, 0, 255, 1)">read</span><span style="color: rgba(0, 0, 0, 1)">_filename(bp: pBIO; filename: PCharacter): integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 985</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_<span style="color: rgba(0, 0, 255, 1)">write</span><span style="color: rgba(0, 0, 0, 1)">_filename(bp: pBIO; filename: PCharacter): integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 986</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_append_filename(bp: pBIO; filename: PCharacter): integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 987</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_rw_filename(bp: pBIO; filename: PCharacter): integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 988</span>
<span style="color: rgba(0, 128, 128, 1)"> 989</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_s_mem: pBIO_METHOD; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 990</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_f_base64: pBIO_METHOD; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 991</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BIO_<span style="color: rgba(0, 0, 255, 1)">set</span>_mem_eof_return(b: pBIO; v: integer); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 992</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_get_mem_data(b: pBIO; <span style="color: rgba(0, 0, 255, 1)">var</span> pp: PCharacter): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> long ??</span>
<span style="color: rgba(0, 128, 128, 1)"> 993</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BIO_<span style="color: rgba(0, 0, 255, 1)">set</span>_mem_buf(b: pBIO; bm: pBUF_MEM; c: integer); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 994</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_get_mem_ptr(b: pBIO; pp: PPBUF_MEM):Integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 995</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_new_mem_buf(buf: pointer; len: integer): pBIO; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 996</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_s_<span style="color: rgba(0, 0, 255, 1)">file</span>: pBIO_METHOD; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 997</span>
<span style="color: rgba(0, 128, 128, 1)"> 998</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_get_md_ctx(bp: pBIO; mdcp: Pointer): Longint;
</span><span style="color: rgba(0, 128, 128, 1)"> 999</span>
<span style="color: rgba(0, 128, 128, 1)">1000</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Internal to DER and DER to internal conversion functions</span>
<span style="color: rgba(0, 128, 128, 1)">1001</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2d_ASN1_TIME(a: pASN1_TIME; pp: PCharacter): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1002</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_ASN1_TIME(<span style="color: rgba(0, 0, 255, 1)">var</span> a: pASN1_TIME; pp: PCharacter; length: longint): pASN1_TIME; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1003</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_X509_REQ_bio(bp: pBIO; req: pX509_REQ): pX509_REQ; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1004</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2d_X509_REQ_bio(bp: pBIO; req: pX509_REQ): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1005</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_X509_bio(bp: pBIO; x509: pX509): pX509; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1006</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2d_X509_bio(bp: pBIO; x509: pX509): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1007</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_PrivateKey_bio(bp: pBIO; <span style="color: rgba(0, 0, 255, 1)">var</span> a: pEVP_PKEY): pEVP_PKEY; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1008</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2d_PrivateKey_bio(bp: pBIO; pkey: pEVP_PKEY): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1009</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_PUBKEY_bio(bp: pBIO; <span style="color: rgba(0, 0, 255, 1)">var</span> a: pEVP_PKEY): pEVP_PKEY; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1010</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2d_PUBKEY_bio(bp: pBIO; pkey: pEVP_PKEY): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1011</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_PKCS12_bio(bp: pBIO; pkcs12: pPKCS12): pPKCS12; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1012</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2d_PKCS12_bio(bp: pBIO; pkcs12: pPKCS12): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1013</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_PKCS7(<span style="color: rgba(0, 0, 255, 1)">var</span> a: pPKCS7; pp: pointer; length: longint): pPKCS7; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1014</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_PKCS7_bio(bp: pBIO; p7: pPKCS7): pPKCS7; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1015</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2d_PKCS7_bio(bp: pBIO; p7: pPKCS7): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1016</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_PKCS8_bio(bp: pBIO; p8: pX509_SIG): pX509_SIG; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1017</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_PKCS8_PRIV_KEY_INFO(<span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> a: pPKCS8_Priv_Key_Info;
</span><span style="color: rgba(0, 128, 128, 1)">1018</span> pp: PCharacter; Length: LongInt): pPKCS8_Priv_Key_Info; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1019</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_DSAPrivateKey_bio(bp: pBIO; dsa: pDSA): pDSA; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1020</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2d_DSAPrivateKey_bio(bp: pBIO; dsa: pDSA): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1021</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_RSAPrivateKey_bio(bp: pBIO; rsa: pRSA): pRSA; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1022</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2d_RSAPrivateKey_bio(bp: pBIO; rsa: pRSA): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1023</span>
<span style="color: rgba(0, 128, 128, 1)">1024</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Internal to ASN.1 and ASN.1 to internal conversion functions</span>
<span style="color: rgba(0, 128, 128, 1)">1025</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2a_ASN1_INTEGER(bp: pBIO; a: pASN1_INTEGER): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1026</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> a2i_ASN1_INTEGER(bp: pBIO; bs: pASN1_INTEGER; buf: PCharacter;
</span><span style="color: rgba(0, 128, 128, 1)">1027</span> size: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1028</span>
<span style="color: rgba(0, 128, 128, 1)">1029</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Hash functions</span>
<span style="color: rgba(0, 128, 128, 1)">1030</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_md_null: pEVP_MD; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1031</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_md2: pEVP_MD; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1032</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_md5: pEVP_MD; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1033</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_sha: pEVP_MD; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1034</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_sha1: pEVP_MD; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1035</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_dss: pEVP_MD; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1036</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_dss1: pEVP_MD; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1037</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_mdc2: pEVP_MD; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1038</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_ripemd160: pEVP_MD; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1039</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_get_digestbyname(<span style="color: rgba(0, 0, 255, 1)">const</span> name: PCharacter): pEVP_MD; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1040</span>
<span style="color: rgba(0, 128, 128, 1)">1041</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_DigestInit(ctx: pEVP_MD_CTX; <span style="color: rgba(0, 0, 255, 1)">const</span> _<span style="color: rgba(0, 0, 255, 1)">type</span>: pEVP_MD); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1042</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_DigestUpdate(ctx: pEVP_MD_CTX; <span style="color: rgba(0, 0, 255, 1)">const</span> d: Pointer; cnt: cardinal); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1043</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_DigestFinal(ctx: pEVP_MD_CTX; md: PCharacter; <span style="color: rgba(0, 0, 255, 1)">var</span> s: cardinal); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1044</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_SignInit(ctx: pEVP_MD_CTX; <span style="color: rgba(0, 0, 255, 1)">const</span> _<span style="color: rgba(0, 0, 255, 1)">type</span><span style="color: rgba(0, 0, 0, 1)">: pEVP_MD);
</span><span style="color: rgba(0, 128, 128, 1)">1045</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_SignUpdate(ctx: pEVP_MD_CTX; <span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> d: Pointer; cnt: cardinal);
</span><span style="color: rgba(0, 128, 128, 1)">1046</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_SignFinal(ctx: pEVP_MD_CTX; sig: pointer; <span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> s: cardinal;
</span><span style="color: rgba(0, 128, 128, 1)">1047</span> key: pEVP_PKEY): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1048</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_VerifyInit(ctx: pEVP_MD_CTX; <span style="color: rgba(0, 0, 255, 1)">const</span> _<span style="color: rgba(0, 0, 255, 1)">type</span><span style="color: rgba(0, 0, 0, 1)">: pEVP_MD);
</span><span style="color: rgba(0, 128, 128, 1)">1049</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_VerifyUpdate(ctx: pEVP_MD_CTX; <span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> d: Pointer; cnt: cardinal);
</span><span style="color: rgba(0, 128, 128, 1)">1050</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> EVP_VerifyFinal(ctx: pEVP_MD_CTX; sigbuf: pointer;
</span><span style="color: rgba(0, 128, 128, 1)">1051</span> siglen: cardinal; pkey: pEVP_PKEY): integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1052</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_assign(pkey: pEVP_PKEY; key_<span style="color: rgba(0, 0, 255, 1)">type</span><span style="color: rgba(0, 0, 0, 1)">: integer;
</span><span style="color: rgba(0, 128, 128, 1)">1053</span> key: PCharacter): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1054</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">function EVP_MD_size(e: pEVP_MD): integer;</span>
<span style="color: rgba(0, 128, 128, 1)">1055</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">function EVP_MD_CTX_size(e: pEVP_MD_CTX): integer;</span>
<span style="color: rgba(0, 128, 128, 1)">1056</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_MD_CTX_copy(_<span style="color: rgba(0, 0, 255, 1)">out</span>: pEVP_MD_CTX; _<span style="color: rgba(0, 0, 255, 1)">in</span>: pEVP_MD_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1057</span>
<span style="color: rgba(0, 128, 128, 1)">1058</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Crypt functions</span>
<span style="color: rgba(0, 128, 128, 1)">1059</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_enc_null: pEVP_CIPHER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1060</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ecb: pEVP_CIPHER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1061</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ede: pEVP_CIPHER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1062</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ede3: pEVP_CIPHER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1063</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_cfb: pEVP_CIPHER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1064</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ede_cfb: pEVP_CIPHER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1065</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ede3_cfb: pEVP_CIPHER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1066</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ofb: pEVP_CIPHER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1067</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ede_ofb: pEVP_CIPHER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1068</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ede3_ofb: pEVP_CIPHER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1069</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_cbc: pEVP_CIPHER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1070</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ede_cbc: pEVP_CIPHER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1071</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ede3_cbc: pEVP_CIPHER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1072</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_desx_cbc: pEVP_CIPHER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1073</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_idea_cbc: pEVP_CIPHER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1074</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_idea_cfb: pEVP_CIPHER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1075</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_idea_ecb: pEVP_CIPHER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1076</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_idea_ofb: pEVP_CIPHER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1077</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_get_cipherbyname(name: PCharacter): pEVP_CIPHER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1078</span>
<span style="color: rgba(0, 128, 128, 1)">1079</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> EVP Key functions</span>
<span style="color: rgba(0, 128, 128, 1)">1080</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_new: pEVP_PKEY; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1081</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_PKEY_<span style="color: rgba(0, 0, 255, 1)">free</span>(key: pEVP_PKEY); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1082</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_<span style="color: rgba(0, 0, 255, 1)">type</span>(keytype: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1083</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_assign_RSA(key: pEVP_PKEY; rsa: pRSA): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1084</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_assign_DSA(key: pEVP_PKEY; dsa: pDSA): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1085</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_assign_DH(key: pEVP_PKEY; dh: pDH): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1086</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_assign_EC_KEY(key: pEVP_PKEY; ec: pEC_KEY): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1087</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_set1_RSA(key: pEVP_PKEY; rsa: pRSA): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1088</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_set1_DSA(key: pEVP_PKEY; dsa: pDSA): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1089</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_set1_DH(key: pEVP_PKEY; dh: pDH): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1090</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_set1_EC_KEY(key: pEVP_PKEY; ec: pEC_KEY): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1091</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_size(key: pEVP_PKEY): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1092</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_get1_RSA(key: pEVP_PKEY): pRSA; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1093</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_get1_DSA(key: pEVP_PKEY): pDSA; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1094</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_get1_DH(key: pEVP_PKEY): pDH; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1095</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_get1_EC_KEY(key: pEVP_PKEY): pEC_KEY; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1096</span>
<span style="color: rgba(0, 128, 128, 1)">1097</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Password prompt for callback function</span>
<span style="color: rgba(0, 128, 128, 1)">1098</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_<span style="color: rgba(0, 0, 255, 1)">set</span><span style="color: rgba(0, 0, 0, 1)">_pw_prompt(prompt: PCharacter);
</span><span style="color: rgba(0, 128, 128, 1)">1099</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> EVP_get_pw_prompt: PCharacter;
</span><span style="color: rgba(0, 128, 128, 1)">1100</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Default callback password function: replace if you want</span>
<span style="color: rgba(0, 128, 128, 1)">1101</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_<span style="color: rgba(0, 0, 255, 1)">read</span>_pw_<span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">(buf: PCharacter; len: integer;
</span><span style="color: rgba(0, 128, 128, 1)">1102</span> <span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> prompt: PCharacter; verify: integer): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1103</span>
<span style="color: rgba(0, 128, 128, 1)">1104</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> pseudo-random number generator (PRNG) functions</span>
<span style="color: rgba(0, 128, 128, 1)">1105</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> RAND_seed(<span style="color: rgba(0, 0, 255, 1)">const</span> buf: pointer; num: integer); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1106</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> RAND_add(<span style="color: rgba(0, 0, 255, 1)">const</span> buf: pointer; num: integer; entropy: double); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1107</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RAND_status: integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1108</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">function RAND_event(UINT iMsg, WPARAM wParam, LPARAM lParam): integer; cdecl;</span>
<span style="color: rgba(0, 128, 128, 1)">1109</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> RAND_screen; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1110</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RAND_<span style="color: rgba(0, 0, 255, 1)">file</span>_name(buf: PCharacter; size_t: cardinal): PCharacter; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1111</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RAND_load_<span style="color: rgba(0, 0, 255, 1)">file</span>(<span style="color: rgba(0, 0, 255, 1)">const</span> filename: PCharacter; max_bytes: longint): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1112</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RAND_<span style="color: rgba(0, 0, 255, 1)">write</span>_<span style="color: rgba(0, 0, 255, 1)">file</span>(<span style="color: rgba(0, 0, 255, 1)">const</span> filename: PCharacter): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1113</span>
<span style="color: rgba(0, 128, 128, 1)">1114</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> RSA function</span>
<span style="color: rgba(0, 128, 128, 1)">1115</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RSA_new: pRSA; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1116</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> RSA_<span style="color: rgba(0, 0, 255, 1)">free</span>(r: pRSA); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1117</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RSA_new_method(method: pRSA_METHOD): pRSA; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1118</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RSA_size(pkey: pRSA): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1119</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> RSA_generate_key(bits: integer; exp: Cardinal;
</span><span style="color: rgba(0, 128, 128, 1)">1120</span> progress: TProgressCallbackFunction; cb_arg: pointer):pRSA; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1121</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RSA_check_key(arg0: pRSA): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1122</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RSA_<span style="color: rgba(0, 0, 255, 1)">public</span>_encrypt(flen: integer; from: PCharacter; _<span style="color: rgba(0, 0, 255, 1)">to</span>: PCharacter; rsa: pRSA; padding: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1123</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RSA_<span style="color: rgba(0, 0, 255, 1)">private</span>_encrypt(flen: integer; from: PCharacter; _<span style="color: rgba(0, 0, 255, 1)">to</span>: PCharacter; rsa: pRSA; padding: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1124</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RSA_<span style="color: rgba(0, 0, 255, 1)">public</span>_decrypt(flen: integer; from: PCharacter; _<span style="color: rgba(0, 0, 255, 1)">to</span>: PCharacter; rsa: pRSA; padding: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1125</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RSA_<span style="color: rgba(0, 0, 255, 1)">private</span>_decrypt(flen: integer; from: PCharacter; _<span style="color: rgba(0, 0, 255, 1)">to</span>: PCharacter; rsa: pRSA; padding: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1126</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RSA_flags(r: pRSA): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1127</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> RSA_<span style="color: rgba(0, 0, 255, 1)">set</span>_<span style="color: rgba(0, 0, 255, 1)">default</span>_method(meth: pRSA_METHOD); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1128</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RSA_get_<span style="color: rgba(0, 0, 255, 1)">default</span>_method: pRSA_METHOD; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1129</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RSA_get_method(rsa: pRSA): pRSA_METHOD; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1130</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RSA_<span style="color: rgba(0, 0, 255, 1)">set</span>_method(rsa: pRSA; meth: pRSA_METHOD): pRSA_METHOD; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1131</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RSA_memory_lock(r: pRSA):integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1132</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RSA_PKCS1_SSLeay: pRSA_METHOD; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1133</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> ERR_load_RSA_strings; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1134</span>
<span style="color: rgba(0, 128, 128, 1)">1135</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">function RSA_sign(len:integer;_m:PCharacter;_m_length:integer; from: PCharacter; _to: pointer; rsa: pRSA): integer; cdecl;</span>
<span style="color: rgba(0, 128, 128, 1)">1136</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int RSA_sign(int type,</span>
<span style="color: rgba(0, 128, 128, 1)">1137</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> const unsigned char *m,</span>
<span style="color: rgba(0, 128, 128, 1)">1138</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> unsigned int m_len,</span>
<span style="color: rgba(0, 128, 128, 1)">1139</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> unsigned char *sigret,</span>
<span style="color: rgba(0, 128, 128, 1)">1140</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> unsigned int *siglen,</span>
<span style="color: rgba(0, 128, 128, 1)">1141</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> RSA *rsa);</span>
<span style="color: rgba(0, 128, 128, 1)">1142</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RSA_sign(_<span style="color: rgba(0, 0, 255, 1)">type</span><span style="color: rgba(0, 0, 0, 1)">:Integer;
</span><span style="color: rgba(0, 128, 128, 1)">1143</span> <span style="color: rgba(0, 0, 0, 1)"> m:PCharacter;
</span><span style="color: rgba(0, 128, 128, 1)">1144</span> <span style="color: rgba(0, 0, 0, 1)"> m_len:Integer;
</span><span style="color: rgba(0, 128, 128, 1)">1145</span> <span style="color: rgba(0, 0, 0, 1)"> sigret:PCharacter;
</span><span style="color: rgba(0, 128, 128, 1)">1146</span> <span style="color: rgba(0, 0, 0, 1)"> siglen:PInteger;
</span><span style="color: rgba(0, 128, 128, 1)">1147</span> ras:pRSA):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/18 16:52</span>
<span style="color: rgba(0, 128, 128, 1)">1148</span>
<span style="color: rgba(0, 128, 128, 1)">1149</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> int RSA_verify(int type,</span>
<span style="color: rgba(0, 128, 128, 1)">1150</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> const unsigned char *m,</span>
<span style="color: rgba(0, 128, 128, 1)">1151</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> unsigned int m_len,</span>
<span style="color: rgba(0, 128, 128, 1)">1152</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> unsigned char *sigbuf,</span>
<span style="color: rgba(0, 128, 128, 1)">1153</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> unsigned int siglen,</span>
<span style="color: rgba(0, 128, 128, 1)">1154</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> RSA *rsa);</span>
<span style="color: rgba(0, 128, 128, 1)">1155</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RSA_verify(_<span style="color: rgba(0, 0, 255, 1)">type</span><span style="color: rgba(0, 0, 0, 1)">:Integer;
</span><span style="color: rgba(0, 128, 128, 1)">1156</span> <span style="color: rgba(0, 0, 0, 1)"> m:PCharacter;
</span><span style="color: rgba(0, 128, 128, 1)">1157</span> m_len:Integer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> unsigned int m_len,</span>
<span style="color: rgba(0, 128, 128, 1)">1158</span> sigbuf:PAnsichar; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">unsigned char *sigbuf,</span>
<span style="color: rgba(0, 128, 128, 1)">1159</span> siglen:Integer; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> unsigned int siglen,</span>
<span style="color: rgba(0, 128, 128, 1)">1160</span> ras:pRSA):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/19 13:43</span>
<span style="color: rgba(0, 128, 128, 1)">1161</span>
<span style="color: rgba(0, 128, 128, 1)">1162</span>
<span style="color: rgba(0, 128, 128, 1)">1163</span>
<span style="color: rgba(0, 128, 128, 1)">1164</span> <span style="color: rgba(0, 0, 255, 1)">function</span> DSA_new: pDSA; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1165</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> DSA_<span style="color: rgba(0, 0, 255, 1)">free</span>(r: pDSA); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1166</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> DSA_generate_parameters(bits: integer; seed: pointer; seed_len: integer;
</span><span style="color: rgba(0, 128, 128, 1)">1167</span> <span style="color: rgba(0, 0, 255, 1)">var</span> counter_ret: integer; <span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> h_ret: cardinal;
</span><span style="color: rgba(0, 128, 128, 1)">1168</span> progress: TProgressCallbackFunction; cb_arg: Pointer): pDSA; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1169</span> <span style="color: rgba(0, 0, 255, 1)">function</span> DSA_generate_key(a: pDSA): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1170</span>
<span style="color: rgba(0, 128, 128, 1)">1171</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> X.509 names (DN)</span>
<span style="color: rgba(0, 128, 128, 1)">1172</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_NAME_oneline(a: pX509_NAME; buf: PCharacter; size: integer): PCharacter; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1173</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_NAME_new: pX509_NAME; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1174</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> X509_NAME_<span style="color: rgba(0, 0, 255, 1)">free</span>(x:pX509_NAME) <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1175</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> X509_NAME_add_entry_by_txt(name: pX509_NAME; field: PCharacter;
</span><span style="color: rgba(0, 128, 128, 1)">1176</span> asn1_<span style="color: rgba(0, 0, 255, 1)">type</span>: integer; bytes: pointer; len, loc, pos: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1177</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_NAME_get_entry(name: pX509_NAME; loc: integer): pX509_NAME_ENTRY; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1178</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> X509_NAME_get_text_by_NID(name: pX509_NAME; nid: integer; buf: PCharacter;
</span><span style="color: rgba(0, 128, 128, 1)">1179</span> len: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1180</span>
<span style="color: rgba(0, 128, 128, 1)">1181</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> X.509 function</span>
<span style="color: rgba(0, 128, 128, 1)">1182</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_new: pX509; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1183</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> X509_<span style="color: rgba(0, 0, 255, 1)">free</span>(a: pX509); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1184</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_print(bp: pBIO; x: pX509): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1185</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_<span style="color: rgba(0, 0, 255, 1)">set</span>_version(x: pX509; version: longint): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1186</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> X509_get_version(x: pX509): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1187</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_get_serialNumber(x: pX509): pASN1_INTEGER; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1188</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_load_cert_<span style="color: rgba(0, 0, 255, 1)">file</span>(ctx: pX509_LOOKUP; <span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> filename: PCharacter;
</span><span style="color: rgba(0, 128, 128, 1)">1189</span> _<span style="color: rgba(0, 0, 255, 1)">type</span>: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1190</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_get_issuer_name(a: pX509): pX509_NAME; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1191</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_get_subject_name(a: pX509): pX509_NAME; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1192</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> X509_get_notBefore(a: pX509): pASN1_TIME;
</span><span style="color: rgba(0, 128, 128, 1)">1193</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> X509_get_notAfter(a: pX509): pASN1_TIME;
</span><span style="color: rgba(0, 128, 128, 1)">1194</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_get1_email(x: pX509): pSTACK; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1195</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_get_pubkey(a: pX509): pEVP_PKEY; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1196</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_check_<span style="color: rgba(0, 0, 255, 1)">private</span>_key(x509: pX509; pkey: pEVP_PKEY): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1197</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_check_purpose(x: pX509; id: integer; ca: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1198</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_issuer_<span style="color: rgba(0, 0, 255, 1)">and</span>_serial_cmp(a: pX509; b: pX509): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1199</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_issuer_<span style="color: rgba(0, 0, 255, 1)">and</span>_serial_hash(a: pX509): cardinal; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1200</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_gmtime_adj(s: pASN1_TIME; adj: longint): pASN1_TIME; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1201</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_verify_cert(ctx: pX509_STORE_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1202</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_verify_cert_error_<span style="color: rgba(0, 0, 255, 1)">string</span>(n: longint): PCharacter; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1203</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> X509_email_<span style="color: rgba(0, 0, 255, 1)">free</span>(sk: pSTACK); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1204</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_get_ext(x: pX509; loc: integer): pX509_EXTENSION; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1205</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_get_ext_by_NID(x: pX509; nid, lastpos: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1206</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_get_ext_d2i(x: pX509; nid: integer; <span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> crit,
</span><span style="color: rgba(0, 128, 128, 1)">1207</span> idx: integer): pointer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1208</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509V3_EXT_d2i(ext: pX509_EXTENSION): pointer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1209</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> X509V3_EXT_i2d(ext_nid: integer; crit: integer; ext_struc: pointer):
</span><span style="color: rgba(0, 128, 128, 1)">1210</span> pX509_EXTENSION; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1211</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> X509V3_EXT_conf_nid(conf: pointer; ctx: pointer;
</span><span style="color: rgba(0, 128, 128, 1)">1212</span> ext_nid: integer; value: PCharacter): pX509_EXTENSION; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1213</span>
<span style="color: rgba(0, 128, 128, 1)">1214</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_sign(x: pX509; pkey: pEVP_PKEY; <span style="color: rgba(0, 0, 255, 1)">const</span> md: pEVP_MD): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1215</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_<span style="color: rgba(0, 0, 255, 1)">set</span>_issuer_name(x: pX509; name: pX509_NAME): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1216</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_<span style="color: rgba(0, 0, 255, 1)">set</span>_subject_name(x: pX509; name: pX509_NAME): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1217</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> X509V3_<span style="color: rgba(0, 0, 255, 1)">set</span><span style="color: rgba(0, 0, 0, 1)">_ctx(ctx: pX509V3_CTX; issuer: pX509; subject: pX509;
</span><span style="color: rgba(0, 128, 128, 1)">1218</span> <span style="color: rgba(0, 0, 0, 1)"> req: pX509_REQ; crl: pX509_CRL; flags: integer);
</span><span style="color: rgba(0, 128, 128, 1)">1219</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> X509_SIG_<span style="color: rgba(0, 0, 255, 1)">free</span>(a: pX509_SIG); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1220</span>
<span style="color: rgba(0, 128, 128, 1)">1221</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_PUBKEY_get(key: pointer): pEVP_PKEY; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1222</span>
<span style="color: rgba(0, 128, 128, 1)">1223</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_REQ_new: pX509_REQ; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1224</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> X509_REQ_<span style="color: rgba(0, 0, 255, 1)">free</span>(req: pX509_REQ); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1225</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_REQ_<span style="color: rgba(0, 0, 255, 1)">set</span>_version(req: pX509_REQ; version: longint): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1226</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> X509_REQ_get_version(req: pX509_REQ): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1227</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_REQ_<span style="color: rgba(0, 0, 255, 1)">set</span>_subject_name(req: pX509_REQ; name: pX509_NAME): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1228</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> X509_REQ_get_subject_name(req: pX509_REQ): pX509_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1229</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> X509_REQ_add1_attr_by_txt(req: pX509_REQ; attrname: PCharacter;
</span><span style="color: rgba(0, 128, 128, 1)">1230</span> asn1_<span style="color: rgba(0, 0, 255, 1)">type</span>: integer; bytes: pointer; len: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1231</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> X509_REQ_add_extensions(req: pX509_REQ;
</span><span style="color: rgba(0, 128, 128, 1)">1232</span> exts: pSTACK_OFX509_EXTENSION): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1233</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_REQ_<span style="color: rgba(0, 0, 255, 1)">set</span>_pubkey(req: pX509_REQ; pkey: pEVP_PKEY): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1234</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_REQ_get_pubkey(req: pX509_REQ): pEVP_PKEY; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1235</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_REQ_sign(req: pX509_REQ; pkey: pEVP_PKEY; <span style="color: rgba(0, 0, 255, 1)">const</span> md: pEVP_MD): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1236</span>
<span style="color: rgba(0, 128, 128, 1)">1237</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> X.509 collections</span>
<span style="color: rgba(0, 128, 128, 1)">1238</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_STORE_new: pX509_STORE; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1239</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> X509_STORE_<span style="color: rgba(0, 0, 255, 1)">free</span>(v: pX509_STORE); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1240</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_STORE_add_cert(ctx: pX509_STORE; x: pX509): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1241</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> X509_STORE_add_lookup(v: pX509_STORE; m: pX509_LOOKUP_METHOD):
</span><span style="color: rgba(0, 128, 128, 1)">1242</span> pX509_LOOKUP; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1243</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_STORE_CTX_new: pX509_STORE_CTX; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1244</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> X509_STORE_CTX_<span style="color: rgba(0, 0, 255, 1)">free</span>(ctx: pX509_STORE); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1245</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span><span style="color: rgba(0, 0, 0, 1)"> X509_STORE_CTX_init(ctx: pX509_STORE_CTX; store: pX509_STORE;
</span><span style="color: rgba(0, 128, 128, 1)">1246</span> x509: pX509; chain: pSTACK_OFX509); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1247</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_STORE_CTX_get_current_cert(ctx: pX509_STORE_CTX): pX509; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1248</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_STORE_CTX_get_error(ctx: pX509_STORE_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1249</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_STORE_CTX_get_error_depth(ctx: pX509_STORE_CTX): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1250</span>
<span style="color: rgba(0, 128, 128, 1)">1251</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_LOOKUP_new(method: pX509_LOOKUP_METHOD): pX509_LOOKUP; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1252</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_LOOKUP_init(ctx: pX509_LOOKUP): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1253</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> X509_LOOKUP_<span style="color: rgba(0, 0, 255, 1)">free</span>(ctx: pX509_LOOKUP); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1254</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_LOOKUP_ctrl(ctx: pX509_LOOKUP; cmd: integer; <span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> argc: PCharacter;
</span><span style="color: rgba(0, 128, 128, 1)">1255</span> argl: longint; ret: pointer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1256</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_LOOKUP_<span style="color: rgba(0, 0, 255, 1)">file</span>: pX509_LOOKUP_METHOD; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1257</span>
<span style="color: rgba(0, 128, 128, 1)">1258</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> PEM functions</span>
<span style="color: rgba(0, 128, 128, 1)">1259</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_RSAPrivateKey(bp: pBIO; <span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> x: pRSA;
</span><span style="color: rgba(0, 128, 128, 1)">1260</span> cb: TPWCallbackFunction; u: pointer): pRSA; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1261</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span>_bio_RSAPrivateKey(bp: pBIO; x: pRSA; <span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> enc: pEVP_CIPHER;
</span><span style="color: rgba(0, 128, 128, 1)">1262</span> <span style="color: rgba(0, 0, 0, 1)"> kstr: PCharacter; klen: integer; cb: TPWCallbackFunction;
</span><span style="color: rgba(0, 128, 128, 1)">1263</span> u: pointer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1264</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_RSAPublicKey(bp: pBIO; <span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> x: pRSA;
</span><span style="color: rgba(0, 128, 128, 1)">1265</span> cb: TPWCallbackFunction; u: pointer): pRSA; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1266</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span>_bio_RSAPublicKey(bp: pBIO; x: pRSA): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1267</span>
<span style="color: rgba(0, 128, 128, 1)">1268</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_DSAPrivateKey(bp: pBIO; <span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> dsa: pDSA;
</span><span style="color: rgba(0, 128, 128, 1)">1269</span> cb: TPWCallbackFunction; data: pointer): pDSA; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1270</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span>_bio_DSAPrivateKey(bp: pBIO; dsa: pDSA; <span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> enc: pEVP_CIPHER;
</span><span style="color: rgba(0, 128, 128, 1)">1271</span> <span style="color: rgba(0, 0, 0, 1)"> kstr: PCharacter; klen: integer; cb: TPWCallbackFunction;
</span><span style="color: rgba(0, 128, 128, 1)">1272</span> data: pointer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1273</span>
<span style="color: rgba(0, 128, 128, 1)">1274</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_PUBKEY(bp: pBIO; <span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> x: pEVP_PKEY;
</span><span style="color: rgba(0, 128, 128, 1)">1275</span> cb: TPWCallbackFunction; u: pointer): pEVP_PKEY; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1276</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span>_bio_PUBKEY(bp: pBIO; x: pEVP_PKEY): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1277</span>
<span style="color: rgba(0, 128, 128, 1)">1278</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_X509(bp: pBIO; <span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> x: pX509; cb: TPWCallbackFunction;
</span><span style="color: rgba(0, 128, 128, 1)">1279</span> u: pointer): pX509; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1280</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span>_bio_X509(bp: pBIO; x: pX509): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1281</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_X509_AUX(bp: pBIO; <span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> x: pX509; cb: TPWCallbackFunction;
</span><span style="color: rgba(0, 128, 128, 1)">1282</span> u: pointer): pX509; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1283</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span>_bio_X509_AUX(bp: pBIO; x: pX509): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1284</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_X509_REQ(bp: pBIO; <span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> x: pX509_REQ; cb: TPWCallbackFunction;
</span><span style="color: rgba(0, 128, 128, 1)">1285</span> u: pointer): pX509_REQ; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1286</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span>_bio_X509_REQ(bp: pBIO; x: pX509_REQ): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1287</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_X509_CRL(bp: pBIO; <span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> x: pX509_CRL; cb: TPWCallbackFunction;
</span><span style="color: rgba(0, 128, 128, 1)">1288</span> u: pointer): pX509_CRL; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1289</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span>_bio_X509_CRL(bp: pBIO; x: pX509_CRL): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1290</span>
<span style="color: rgba(0, 128, 128, 1)">1291</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_PrivateKey(bp: pBIO; <span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> x: pEVP_PKEY;
</span><span style="color: rgba(0, 128, 128, 1)">1292</span> cb: TPWCallbackFunction; u: pointer): pEVP_PKEY; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1293</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span><span style="color: rgba(0, 0, 0, 1)">_bio_PrivateKey(bp: pBIO; x: pEVP_PKEY;
</span><span style="color: rgba(0, 128, 128, 1)">1294</span> <span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> enc: pEVP_CIPHER; kstr: PCharacter; klen: Integer; cb: TPWCallbackFunction;
</span><span style="color: rgba(0, 128, 128, 1)">1295</span> u: pointer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1296</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span>_bio_PKCS7(bp: pBIO; x: pPKCS7): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1297</span>
<span style="color: rgba(0, 128, 128, 1)">1298</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> PKCS#5 functions</span>
<span style="color: rgba(0, 128, 128, 1)">1299</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> PKCS5_PBKDF2_HMAC_SHA1(pass: PCharacter; passlen: integer;
</span><span style="color: rgba(0, 128, 128, 1)">1300</span> <span style="color: rgba(0, 0, 0, 1)"> salt: pointer; saltlen: integer; iter: integer;
</span><span style="color: rgba(0, 128, 128, 1)">1301</span> keylen: integer; u: pointer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1302</span>
<span style="color: rgba(0, 128, 128, 1)">1303</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> PKCS#7 functions</span>
<span style="color: rgba(0, 128, 128, 1)">1304</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> PKCS7_sign(signcert: pX509; pkey: pEVP_PKEY; certs: pointer;
</span><span style="color: rgba(0, 128, 128, 1)">1305</span> data: pBIO; flags: integer): pPKCS7; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1306</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PKCS7_get_signer_info(p7: pPKCS7): pSTACK_OFPKCS7_SIGNER_INFO; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1307</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> PKCS7_verify(p7: pPKCS7; certs: pointer; store: pSTACK_OFX509;
</span><span style="color: rgba(0, 128, 128, 1)">1308</span> indata: pBIO; _<span style="color: rgba(0, 0, 255, 1)">out</span>: pBIO; flags: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1309</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> PKCS7_get0_signers(p7: pPKCS7; certs: pSTACK_OFX509;
</span><span style="color: rgba(0, 128, 128, 1)">1310</span> flags: integer): pSTACK_OFX509; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1311</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> PKCS7_signatureVerify(bio: pBIO; p7: pPKCS7; si: pPKCS7_SIGNER_INFO;
</span><span style="color: rgba(0, 128, 128, 1)">1312</span> x509: pX509): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1313</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PKCS7_encrypt(certs: pSTACK_OFX509; _<span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)">: pBIO;
</span><span style="color: rgba(0, 128, 128, 1)">1314</span> cipher: pEVP_CIPHER; flags: integer): pPKCS7; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1315</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> PKCS7_decrypt(p7: pPKCS7; pkey: pEVP_PKEY; cert: pX509;
</span><span style="color: rgba(0, 128, 128, 1)">1316</span> data: pBIO; flags: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1317</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> PKCS7_<span style="color: rgba(0, 0, 255, 1)">free</span>(p7: pPKCS7); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1318</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> PKCS7_ctrl(p7: pPKCS7; cmd: integer; larg: longint;
</span><span style="color: rgba(0, 128, 128, 1)">1319</span> parg: PCharacter): longint; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1320</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> PKCS7_get_detached(p7: pPKCS7): pointer;
</span><span style="color: rgba(0, 128, 128, 1)">1321</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PKCS7_dataInit(p7: pPKCS7; bio: pBIO): pBIO; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1322</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> PKCS#7 DER/PEM to internal conversion function</span>
<span style="color: rgba(0, 128, 128, 1)">1323</span> <span style="color: rgba(0, 128, 0, 1)">{</span>
<span style="color: rgba(0, 128, 128, 1)">1324</span> <span style="color: rgba(0, 128, 0, 1)"> d2i_PKCS7_DIGEST @737
</span><span style="color: rgba(0, 128, 128, 1)">1325</span> <span style="color: rgba(0, 128, 0, 1)"> d2i_PKCS7_ENCRYPT @738
</span><span style="color: rgba(0, 128, 128, 1)">1326</span> <span style="color: rgba(0, 128, 0, 1)"> d2i_PKCS7_ENC_CONTENT @739
</span><span style="color: rgba(0, 128, 128, 1)">1327</span> <span style="color: rgba(0, 128, 0, 1)"> d2i_PKCS7_ENVELOPE @740
</span><span style="color: rgba(0, 128, 128, 1)">1328</span> <span style="color: rgba(0, 128, 0, 1)"> d2i_PKCS7_ISSUER_AND_SERIAL @741
</span><span style="color: rgba(0, 128, 128, 1)">1329</span> <span style="color: rgba(0, 128, 0, 1)"> d2i_PKCS7_RECIP_INFO @742
</span><span style="color: rgba(0, 128, 128, 1)">1330</span> <span style="color: rgba(0, 128, 0, 1)"> d2i_PKCS7_SIGNED @743
</span><span style="color: rgba(0, 128, 128, 1)">1331</span> <span style="color: rgba(0, 128, 0, 1)"> d2i_PKCS7_SIGNER_INFO @744
</span><span style="color: rgba(0, 128, 128, 1)">1332</span> <span style="color: rgba(0, 128, 0, 1)"> d2i_PKCS7_SIGN_ENVELOPE @745 </span><span style="color: rgba(0, 128, 0, 1)">}</span>
<span style="color: rgba(0, 128, 128, 1)">1333</span>
<span style="color: rgba(0, 128, 128, 1)">1334</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKCS82PKEY(p8 : pPKCS8_Priv_Key_Info) : pEVP_PKEY; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1335</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PKCS8_decrypt(p8: pX509_SIG; Pass: PCharacter; PassLen: integer): pPKCS8_Priv_Key_Info; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1336</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> PKCS8_PRIV_KEY_INFO_<span style="color: rgba(0, 0, 255, 1)">free</span>(<span style="color: rgba(0, 0, 255, 1)">var</span> a: pPKCS8_Priv_Key_Info); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1337</span>
<span style="color: rgba(0, 128, 128, 1)">1338</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PKCS12_new: pPKCS12; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1339</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> PKCS12_<span style="color: rgba(0, 0, 255, 1)">free</span>(a: pPKCS12); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1340</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PKCS12_parse(p12: pPKCS12; pass: PCharacter; <span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> pkey: pEVP_PKEY;
</span><span style="color: rgba(0, 128, 128, 1)">1341</span> <span style="color: rgba(0, 0, 255, 1)">var</span> cert: pX509; <span style="color: rgba(0, 0, 255, 1)">var</span> ca: pSTACK_OFX509): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1342</span>
<span style="color: rgba(0, 128, 128, 1)">1343</span> <span style="color: rgba(0, 0, 255, 1)">function</span> AES_<span style="color: rgba(0, 0, 255, 1)">set</span>_decrypt_key(userKey: PCharacter; bits: integer; key: pAES_KEY): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1344</span>
<span style="color: rgba(0, 128, 128, 1)">1345</span> <span style="color: rgba(0, 128, 0, 1)">(*</span>
<span style="color: rgba(0, 128, 128, 1)">1346</span> <span style="color: rgba(0, 128, 0, 1)">void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
</span><span style="color: rgba(0, 128, 128, 1)">1347</span> <span style="color: rgba(0, 128, 0, 1)"> size_t len, const AES_KEY *key,
</span><span style="color: rgba(0, 128, 128, 1)">1348</span> <span style="color: rgba(0, 128, 0, 1)"> unsigned char *ivec, const int enc)
</span><span style="color: rgba(0, 128, 128, 1)">1349</span> <span style="color: rgba(0, 128, 0, 1)">*)</span>
<span style="color: rgba(0, 128, 128, 1)">1350</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span><span style="color: rgba(0, 0, 0, 1)"> AES_cbc_encrypt(buffer: PCharacter; u: PCharacter; length: longint;
</span><span style="color: rgba(0, 128, 128, 1)">1351</span> key: pAES_KEY; ivec: pointer; enc: integer); <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1352</span>
<span style="color: rgba(0, 128, 128, 1)">1353</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span><span style="color: rgba(0, 0, 0, 1)">_bio_PKCS7(bp: pBIO; data: pointer;
</span><span style="color: rgba(0, 128, 128, 1)">1354</span> cb: TPWCallbackFunction; u: pointer): pPKCS7; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1355</span>
<span style="color: rgba(0, 128, 128, 1)">1356</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> SMIME function</span>
<span style="color: rgba(0, 128, 128, 1)">1357</span> <span style="color: rgba(0, 0, 255, 1)">function</span> SMIME_<span style="color: rgba(0, 0, 255, 1)">write</span><span style="color: rgba(0, 0, 0, 1)">_PKCS7(bp: pBIO; p7: pPKCS7; data: pBIO;
</span><span style="color: rgba(0, 128, 128, 1)">1358</span> flags: integer): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1359</span> <span style="color: rgba(0, 0, 255, 1)">function</span> SMIME_<span style="color: rgba(0, 0, 255, 1)">read</span>_PKCS7(bp: pBIO; <span style="color: rgba(0, 0, 255, 1)">var</span> bcont: pBIO): pPKCS7; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1360</span>
<span style="color: rgba(0, 128, 128, 1)">1361</span>
<span style="color: rgba(0, 128, 128, 1)">1362</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/19 19:39</span>
<span style="color: rgba(0, 128, 128, 1)">1363</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_MD_CTX_init(ctx : PEVP_MD_CTX) <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1364</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_MD_CTX_cleanup(ctx : PEVP_MD_CTX):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1365</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BIO_<span style="color: rgba(0, 0, 255, 1)">set</span>_flags(a:PBIO;Flags:Integer);<span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1366</span> <span style="color: rgba(0, 0, 255, 1)">function</span> AES_<span style="color: rgba(0, 0, 255, 1)">set</span>_encrypt_key(<span style="color: rgba(0, 0, 255, 1)">const</span> userKey:Pointer; <span style="color: rgba(0, 0, 255, 1)">const</span> bits:integer;key:PAES_KEY):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1367</span>
<span style="color: rgba(0, 128, 128, 1)">1368</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">设置解密密钥,同样适用字符缓冲区</span>
<span style="color: rgba(0, 128, 128, 1)">1369</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int AES_set_decrypt_key(</span>
<span style="color: rgba(0, 128, 128, 1)">1370</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> const unsigned char *userKey,</span>
<span style="color: rgba(0, 128, 128, 1)">1371</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> const int bits,</span>
<span style="color: rgba(0, 128, 128, 1)">1372</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> AES_KEY *key);</span>
<span style="color: rgba(0, 128, 128, 1)">1373</span>
<span style="color: rgba(0, 128, 128, 1)">1374</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> RSA *PEM_read_bio_RSA_PUBKEY(BIO *bp, RSA **x,pem_password_cb *cb, void *u);</span>
<span style="color: rgba(0, 128, 128, 1)">1375</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_RSA_PUBKEY(bp: pBIO;<span style="color: rgba(0, 0, 255, 1)">var</span> x: pRSA;cb:Pointer;u:pointer):pRSA;<span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1376</span>
<span style="color: rgba(0, 128, 128, 1)">1377</span>
<span style="color: rgba(0, 128, 128, 1)">1378</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int MD5_Init(MD5_CTX *c);</span>
<span style="color: rgba(0, 128, 128, 1)">1379</span> <span style="color: rgba(0, 0, 255, 1)">function</span> MD5_Init(<span style="color: rgba(0, 0, 255, 1)">var</span> c:MD5_CTX):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/28 11:12</span>
<span style="color: rgba(0, 128, 128, 1)">1380</span>
<span style="color: rgba(0, 128, 128, 1)">1381</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int MD5_Update(MD5_CTX *c, const void *data, size_t len);</span>
<span style="color: rgba(0, 128, 128, 1)">1382</span> <span style="color: rgba(0, 0, 255, 1)">function</span> MD5_Update(<span style="color: rgba(0, 0, 255, 1)">var</span> c: MD5_CTX;<span style="color: rgba(0, 0, 255, 1)">const</span> data:Pointer;len:Integer):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/28 11:12</span>
<span style="color: rgba(0, 128, 128, 1)">1383</span>
<span style="color: rgba(0, 128, 128, 1)">1384</span>
<span style="color: rgba(0, 128, 128, 1)">1385</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int MD5_Final(unsigned char *md, MD5_CTX *c);</span>
<span style="color: rgba(0, 128, 128, 1)">1386</span> <span style="color: rgba(0, 0, 255, 1)">function</span> MD5_Final(md:Pointer;<span style="color: rgba(0, 0, 255, 1)">var</span> c: MD5_CTX):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/28 11:12</span>
<span style="color: rgba(0, 128, 128, 1)">1387</span>
<span style="color: rgba(0, 128, 128, 1)">1388</span>
<span style="color: rgba(0, 128, 128, 1)">1389</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">intRAND_bytes(unsigned char *buf,int num);</span>
<span style="color: rgba(0, 128, 128, 1)">1390</span> <span style="color: rgba(0, 0, 255, 1)">function</span>RAND_bytes(OutBuf:Pointer;num:Integer):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/28 14:30</span>
<span style="color: rgba(0, 128, 128, 1)">1391</span>
<span style="color: rgba(0, 128, 128, 1)">1392</span>
<span style="color: rgba(0, 128, 128, 1)">1393</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md);</span>
<span style="color: rgba(0, 128, 128, 1)">1394</span> <span style="color: rgba(0, 0, 255, 1)">function</span> SHA256(<span style="color: rgba(0, 0, 255, 1)">const</span> d:PAnsichar;n:Integer;md:PAnsichar):PAnsichar;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/28 15:20</span>
<span style="color: rgba(0, 128, 128, 1)">1395</span>
<span style="color: rgba(0, 128, 128, 1)">1396</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int SHA256_Init(SHA256_CTX *c);</span>
<span style="color: rgba(0, 128, 128, 1)">1397</span> <span style="color: rgba(0, 0, 255, 1)">function</span> SHA256_Init(c:pSHA256_CTX):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/28 20:05</span>
<span style="color: rgba(0, 128, 128, 1)">1398</span>
<span style="color: rgba(0, 128, 128, 1)">1399</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int SHA256_Update(SHA256_CTX *c, const void *data, size_t len);</span>
<span style="color: rgba(0, 128, 128, 1)">1400</span> <span style="color: rgba(0, 0, 255, 1)">function</span> SHA256_Update(c:pSHA256_CTX;<span style="color: rgba(0, 0, 255, 1)">const</span> data:Pointer;len:Cardinal):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/28 20:07</span>
<span style="color: rgba(0, 128, 128, 1)">1401</span>
<span style="color: rgba(0, 128, 128, 1)">1402</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int SHA256_Final(unsigned char *md, SHA256_CTX *c);</span>
<span style="color: rgba(0, 128, 128, 1)">1403</span> <span style="color: rgba(0, 0, 255, 1)">function</span> SHA256_Final(md:Pointer;c:pSHA256_CTX):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/28 20:08</span>
<span style="color: rgba(0, 128, 128, 1)">1404</span>
<span style="color: rgba(0, 128, 128, 1)">1405</span>
<span style="color: rgba(0, 128, 128, 1)">1406</span> <span style="color: rgba(0, 128, 0, 1)">(*</span>
<span style="color: rgba(0, 128, 128, 1)">1407</span> <span style="color: rgba(0, 128, 0, 1)">unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len,
</span><span style="color: rgba(0, 128, 128, 1)">1408</span> <span style="color: rgba(0, 128, 0, 1)"> const unsigned char *d, size_t n, unsigned char *md,
</span><span style="color: rgba(0, 128, 128, 1)">1409</span> <span style="color: rgba(0, 128, 0, 1)"> unsigned int *md_len);
</span><span style="color: rgba(0, 128, 128, 1)">1410</span> <span style="color: rgba(0, 128, 0, 1)">*)</span>
<span style="color: rgba(0, 128, 128, 1)">1411</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">function HMAC(const evp_md:pEVP_MD;</span>
<span style="color: rgba(0, 128, 128, 1)">1412</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> const key:Pointer;</span>
<span style="color: rgba(0, 128, 128, 1)">1413</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> key_len:Integer;</span>
<span style="color: rgba(0, 128, 128, 1)">1414</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> const d:PAnsichar;</span>
<span style="color: rgba(0, 128, 128, 1)">1415</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> n:Cardinal;</span>
<span style="color: rgba(0, 128, 128, 1)">1416</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> md:PAnsichar;</span>
<span style="color: rgba(0, 128, 128, 1)">1417</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> md_len:Cardinal):PAnsichar;cdecl;//2016/02/29 18:11</span>
<span style="color: rgba(0, 128, 128, 1)">1418</span>
<span style="color: rgba(0, 128, 128, 1)">1419</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> HMAC(evp: pEVP_MD; key: PByte; key_len: integer;
</span><span style="color: rgba(0, 128, 128, 1)">1420</span> <span style="color: rgba(0, 0, 0, 1)"> data: PByte; data_len: integer;
</span><span style="color: rgba(0, 128, 128, 1)">1421</span> md: PByte; <span style="color: rgba(0, 0, 255, 1)">var</span> md_len: integer): PByte; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1422</span>
<span style="color: rgba(0, 128, 128, 1)">1423</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">const EVP_MD *EVP_sha512(void);</span>
<span style="color: rgba(0, 128, 128, 1)">1424</span> <span style="color: rgba(0, 0, 255, 1)">function</span>EVP_sha512():pEVP_MD;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/29 18:16</span>
<span style="color: rgba(0, 128, 128, 1)">1425</span>
<span style="color: rgba(0, 128, 128, 1)">1426</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">const EVP_MD *EVP_sha224(void);</span>
<span style="color: rgba(0, 128, 128, 1)">1427</span> <span style="color: rgba(0, 0, 255, 1)">function</span>EVP_sha224():pEVP_MD;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/29 18:19</span>
<span style="color: rgba(0, 128, 128, 1)">1428</span>
<span style="color: rgba(0, 128, 128, 1)">1429</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">const EVP_MD *EVP_sha256(void);</span>
<span style="color: rgba(0, 128, 128, 1)">1430</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_sha256():pEVP_MD;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/29 18:19</span>
<span style="color: rgba(0, 128, 128, 1)">1431</span>
<span style="color: rgba(0, 128, 128, 1)">1432</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">const EVP_MD *EVP_sha384(void);</span>
<span style="color: rgba(0, 128, 128, 1)">1433</span> <span style="color: rgba(0, 0, 255, 1)">function</span>EVP_sha384():pEVP_MD;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/03/01 00:30</span>
<span style="color: rgba(0, 128, 128, 1)">1434</span>
<span style="color: rgba(0, 128, 128, 1)">1435</span>
<span style="color: rgba(0, 128, 128, 1)">1436</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int HMAC_Init(HMAC_CTX *ctx, const void *key, int len, const EVP_MD *md);</span>
<span style="color: rgba(0, 128, 128, 1)">1437</span> <span style="color: rgba(0, 0, 255, 1)">function</span> HMAC_Init(ctx:pHMAC_CTX; <span style="color: rgba(0, 0, 255, 1)">const</span> key:PAnsichar;len:Integer;<span style="color: rgba(0, 0, 255, 1)">const</span> md:pEVP_MD):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/29 23:53</span>
<span style="color: rgba(0, 128, 128, 1)">1438</span>
<span style="color: rgba(0, 128, 128, 1)">1439</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,const EVP_MD *md, ENGINE *impl);</span>
<span style="color: rgba(0, 128, 128, 1)">1440</span> <span style="color: rgba(0, 0, 255, 1)">function</span> HMAC_Init_ex(ctx:pHMAC_CTX;<span style="color: rgba(0, 0, 255, 1)">const</span> key:PAnsichar;Len:Integer;<span style="color: rgba(0, 0, 255, 1)">const</span> md:pEVP_MD; impl:pENGINE):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/03/01 00:00</span>
<span style="color: rgba(0, 128, 128, 1)">1441</span>
<span style="color: rgba(0, 128, 128, 1)">1442</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len);</span>
<span style="color: rgba(0, 128, 128, 1)">1443</span> <span style="color: rgba(0, 0, 255, 1)">function</span> HMAC_Update(ctx:pHMAC_CTX;<span style="color: rgba(0, 0, 255, 1)">const</span> data:PAnsichar;len:Cardinal):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/03/01 00:05</span>
<span style="color: rgba(0, 128, 128, 1)">1444</span>
<span style="color: rgba(0, 128, 128, 1)">1445</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len);</span>
<span style="color: rgba(0, 128, 128, 1)">1446</span> <span style="color: rgba(0, 0, 255, 1)">function</span> HMAC_Final(ctx:pHMAC_CTX; md:PAnsichar;len:PInteger):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/03/01 00:05</span>
<span style="color: rgba(0, 128, 128, 1)">1447</span>
<span style="color: rgba(0, 128, 128, 1)">1448</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">void HMAC_CTX_init(HMAC_CTX *ctx);</span>
<span style="color: rgba(0, 128, 128, 1)">1449</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> HMAC_CTX_init(ctx:pHMAC_CTX);<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/03/01 00:06</span>
<span style="color: rgba(0, 128, 128, 1)">1450</span>
<span style="color: rgba(0, 128, 128, 1)">1451</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">void HMAC_CTX_cleanup(HMAC_CTX *ctx);</span>
<span style="color: rgba(0, 128, 128, 1)">1452</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> HMAC_CTX_cleanup(ctx:PHMAC_CTX);<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/03/01 00:06</span>
<span style="color: rgba(0, 128, 128, 1)">1453</span>
<span style="color: rgba(0, 128, 128, 1)">1454</span>
<span style="color: rgba(0, 128, 128, 1)">1455</span> <span style="color: rgba(0, 0, 255, 1)">implementation</span>
<span style="color: rgba(0, 128, 128, 1)">1456</span>
<span style="color: rgba(0, 128, 128, 1)">1457</span> <span style="color: rgba(0, 0, 255, 1)">uses</span>
<span style="color: rgba(0, 128, 128, 1)">1458</span> <span style="color: rgba(0, 0, 0, 1)">Windows, SysUtils;
</span><span style="color: rgba(0, 128, 128, 1)">1459</span>
<span style="color: rgba(0, 128, 128, 1)">1460</span> <span style="color: rgba(0, 0, 255, 1)">const</span>
<span style="color: rgba(0, 128, 128, 1)">1461</span> LIBEAY_DLL_NAME = <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">libeay32.dll</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1462</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">LIBEAY_DLL_NAME = 'libeay32_SF.dll';</span>
<span style="color: rgba(0, 128, 128, 1)">1463</span>
<span style="color: rgba(0, 128, 128, 1)">1464</span>
<span style="color: rgba(0, 128, 128, 1)">1465</span> <span style="color: rgba(0, 0, 255, 1)">type</span>
<span style="color: rgba(0, 128, 128, 1)">1466</span> TOpenSSL_InitFunction = <span style="color: rgba(0, 0, 255, 1)">procedure</span>; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1467</span>
<span style="color: rgba(0, 128, 128, 1)">1468</span> <span style="color: rgba(0, 0, 255, 1)">function</span> SSLeay: cardinal; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1469</span> <span style="color: rgba(0, 0, 255, 1)">function</span> SSLeay_version; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1470</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> OpenSSL_add_all_algorithms prototype changed between OpenSSL version 0.9.6 and 0.9.7</span>
<span style="color: rgba(0, 128, 128, 1)">1471</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> See: http://www.openssl.org/news/changelog.html</span>
<span style="color: rgba(0, 128, 128, 1)">1472</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> OpenSSL_add_all_algorithms_old; <span style="color: rgba(0, 0, 255, 1)">external</span> LIBEAY_DLL_NAME name <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">OpenSSL_add_all_algorithms</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1473</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> OpenSSL_add_all_algorithms_noconf; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1474</span>
<span style="color: rgba(0, 128, 128, 1)">1475</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span><span style="color: rgba(0, 0, 0, 1)"> OpenSSL_add_all_algorithms;
</span><span style="color: rgba(0, 128, 128, 1)">1476</span> <span style="color: rgba(0, 0, 255, 1)">var</span>
<span style="color: rgba(0, 128, 128, 1)">1477</span> <span style="color: rgba(0, 0, 0, 1)">hLibeayDLL: THandle;
</span><span style="color: rgba(0, 128, 128, 1)">1478</span> Add_all_algorithms_<span style="color: rgba(0, 0, 255, 1)">procedure</span><span style="color: rgba(0, 0, 0, 1)">: TOpenSSL_InitFunction;
</span><span style="color: rgba(0, 128, 128, 1)">1479</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1480</span> hLibeayDLL :=<span style="color: rgba(0, 0, 0, 1)"> GetModuleHandle(LIBEAY_DLL_NAME);
</span><span style="color: rgba(0, 128, 128, 1)">1481</span> <span style="color: rgba(0, 0, 255, 1)">if</span> hLibeayDLL = <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(0, 0, 255, 1)">then</span>
<span style="color: rgba(0, 128, 128, 1)">1482</span> <span style="color: rgba(0, 0, 255, 1)">raise</span> Exception.<span style="color: rgba(0, 0, 255, 1)">Create</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">libeay32.dll not loaded</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">1483</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Try to load new version</span>
<span style="color: rgba(0, 128, 128, 1)">1484</span> @Add_all_algorithms_<span style="color: rgba(0, 0, 255, 1)">procedure</span> := GetProcAddress(hLibeayDLL, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">OPENSSL_add_all_algorithms_noconf</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">1485</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Fallback to old version</span>
<span style="color: rgba(0, 128, 128, 1)">1486</span> <span style="color: rgba(0, 0, 255, 1)">if</span> @Add_all_algorithms_<span style="color: rgba(0, 0, 255, 1)">procedure</span> = <span style="color: rgba(0, 0, 255, 1)">nil</span> <span style="color: rgba(0, 0, 255, 1)">then</span>
<span style="color: rgba(0, 128, 128, 1)">1487</span> @Add_all_algorithms_<span style="color: rgba(0, 0, 255, 1)">procedure</span> := GetProcAddress(hLibeayDLL, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">OpenSSL_add_all_algorithms</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">1488</span> <span style="color: rgba(0, 0, 255, 1)">if</span> @Add_all_algorithms_<span style="color: rgba(0, 0, 255, 1)">procedure</span> <> <span style="color: rgba(0, 0, 255, 1)">nil</span> <span style="color: rgba(0, 0, 255, 1)">then</span>
<span style="color: rgba(0, 128, 128, 1)">1489</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1490</span> Add_all_algorithms_<span style="color: rgba(0, 0, 255, 1)">procedure</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1491</span> <span style="color: rgba(0, 0, 255, 1)">end</span>
<span style="color: rgba(0, 128, 128, 1)">1492</span> <span style="color: rgba(0, 0, 255, 1)">else</span>
<span style="color: rgba(0, 128, 128, 1)">1493</span> <span style="color: rgba(0, 0, 255, 1)">raise</span> Exception.<span style="color: rgba(0, 0, 255, 1)">Create</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">OpenSSL_add_all_algorithms procedure not defined in libeay32.dll</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">1494</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1495</span>
<span style="color: rgba(0, 128, 128, 1)">1496</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> OpenSSL_add_all_ciphers; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1497</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> OpenSSL_add_all_digests; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1498</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_cleanup; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1499</span>
<span style="color: rgba(0, 128, 128, 1)">1500</span> <span style="color: rgba(0, 0, 255, 1)">function</span> ERR_get_error: cardinal; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1501</span> <span style="color: rgba(0, 0, 255, 1)">function</span> ERR_peek_error: cardinal; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1502</span> <span style="color: rgba(0, 0, 255, 1)">function</span> ERR_peek_last_error: cardinal; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1503</span> <span style="color: rgba(0, 0, 255, 1)">function</span> ERR_error_<span style="color: rgba(0, 0, 255, 1)">string</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1504</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> ERR_clear_error; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1505</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> ERR_load_crypto_strings; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1506</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> ERR_<span style="color: rgba(0, 0, 255, 1)">free</span>_strings; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1507</span>
<span style="color: rgba(0, 128, 128, 1)">1508</span> <span style="color: rgba(0, 0, 255, 1)">function</span> CRYPTO_malloc; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1509</span> <span style="color: rgba(0, 0, 255, 1)">function</span> CRYPTO_realloc; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1510</span> <span style="color: rgba(0, 0, 255, 1)">function</span> CRYPTO_remalloc; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1511</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> CRYPTO_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1512</span>
<span style="color: rgba(0, 128, 128, 1)">1513</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Not in DLL</span>
<span style="color: rgba(0, 128, 128, 1)">1514</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> OPENSSL_malloc(length: longint): pointer;
</span><span style="color: rgba(0, 128, 128, 1)">1515</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1516</span> OPENSSL_malloc := CRYPTO_malloc(length, <span style="color: rgba(0, 0, 255, 1)">nil</span>, <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">1517</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1518</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> OPENSSL_realloc(address: PCharacter; length: longint): pointer;
</span><span style="color: rgba(0, 128, 128, 1)">1519</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1520</span> OPENSSL_realloc := CRYPTO_realloc(address, length, <span style="color: rgba(0, 0, 255, 1)">nil</span>, <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">1521</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1522</span> <span style="color: rgba(0, 0, 255, 1)">function</span> OPENSSL_remalloc(<span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> address: pointer; length: longint): pointer;
</span><span style="color: rgba(0, 128, 128, 1)">1523</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1524</span> OPENSSL_remalloc := CRYPTO_remalloc(address, length, <span style="color: rgba(0, 0, 255, 1)">nil</span>, <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">1525</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1526</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> OPENSSL_<span style="color: rgba(0, 0, 255, 1)">free</span><span style="color: rgba(0, 0, 0, 1)">(address: pointer);
</span><span style="color: rgba(0, 128, 128, 1)">1527</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1528</span> CRYPTO_<span style="color: rgba(0, 0, 255, 1)">free</span><span style="color: rgba(0, 0, 0, 1)">(address);
</span><span style="color: rgba(0, 128, 128, 1)">1529</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1530</span>
<span style="color: rgba(0, 128, 128, 1)">1531</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_new; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1532</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_init; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1533</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_clear; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1534</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1535</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_clear_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1536</span>
<span style="color: rgba(0, 128, 128, 1)">1537</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_<span style="color: rgba(0, 0, 255, 1)">set</span>_params; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1538</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_get_params; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1539</span>
<span style="color: rgba(0, 128, 128, 1)">1540</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_options; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1541</span>
<span style="color: rgba(0, 128, 128, 1)">1542</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_CTX_new; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1543</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_CTX_init; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1544</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_CTX_start; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1545</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_CTX_get; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1546</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_CTX_<span style="color: rgba(0, 0, 255, 1)">end</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1547</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_CTX_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1548</span>
<span style="color: rgba(0, 128, 128, 1)">1549</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_MONT_CTX_new; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1550</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_MONT_CTX_init; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1551</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_MONT_CTX_<span style="color: rgba(0, 0, 255, 1)">set</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1552</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_MONT_CTX_copy; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1553</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_MONT_CTX_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1554</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_mul_montgomery; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1555</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_from_montgomery; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1556</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">to</span><span style="color: rgba(0, 0, 0, 1)">_montgomery(r, a: pBIGNUM; m_ctx: pBN_MONT_CTX; ctx: pBN_CTX): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1557</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1558</span> result := BN_<span style="color: rgba(0, 0, 255, 1)">mod</span><span style="color: rgba(0, 0, 0, 1)">_mul_montgomery(r, a, @(m_ctx^.RR), m_ctx, ctx);
</span><span style="color: rgba(0, 128, 128, 1)">1559</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1560</span>
<span style="color: rgba(0, 128, 128, 1)">1561</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_RECP_CTX_init; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1562</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_RECP_CTX_<span style="color: rgba(0, 0, 255, 1)">set</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1563</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_RECP_CTX_new; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1564</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_RECP_CTX_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1565</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">div</span>_recp; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1566</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_mul_reciprocal; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1567</span>
<span style="color: rgba(0, 128, 128, 1)">1568</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_BLINDING_new; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1569</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_BLINDING_update; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1570</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BN_BLINDING_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1571</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_BLINDING_convert; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1572</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_BLINDING_invert; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1573</span>
<span style="color: rgba(0, 128, 128, 1)">1574</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_copy; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1575</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_dup; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1576</span>
<span style="color: rgba(0, 128, 128, 1)">1577</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> int2bin(n: integer): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1578</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1579</span> result := ((cardinal(n) <span style="color: rgba(0, 0, 255, 1)">shr</span> <span style="color: rgba(128, 0, 128, 1)">24</span>) <span style="color: rgba(0, 0, 255, 1)">and</span> $000000FF) <span style="color: rgba(0, 0, 255, 1)">or</span>
<span style="color: rgba(0, 128, 128, 1)">1580</span> ((cardinal(n) <span style="color: rgba(0, 0, 255, 1)">shr</span> <span style="color: rgba(128, 0, 128, 1)">8</span>) <span style="color: rgba(0, 0, 255, 1)">and</span> $0000FF00) <span style="color: rgba(0, 0, 255, 1)">or</span>
<span style="color: rgba(0, 128, 128, 1)">1581</span> ((cardinal(n) <span style="color: rgba(0, 0, 255, 1)">shl</span> <span style="color: rgba(128, 0, 128, 1)">8</span>) <span style="color: rgba(0, 0, 255, 1)">and</span> $00FF0000) <span style="color: rgba(0, 0, 255, 1)">or</span>
<span style="color: rgba(0, 128, 128, 1)">1582</span> ((cardinal(n) <span style="color: rgba(0, 0, 255, 1)">shl</span> <span style="color: rgba(128, 0, 128, 1)">24</span>) <span style="color: rgba(0, 0, 255, 1)">and</span><span style="color: rgba(0, 0, 0, 1)"> $FF000000);
</span><span style="color: rgba(0, 128, 128, 1)">1583</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1584</span>
<span style="color: rgba(0, 128, 128, 1)">1585</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_bn2bin; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1586</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_bin2bn; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1587</span>
<span style="color: rgba(0, 128, 128, 1)">1588</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_bn2hex; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1589</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_bn2dec; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1590</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_hex2bn; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1591</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_dec2bn; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1592</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_bn2mpi; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1593</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_mpi2bn; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1594</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_print; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1595</span>
<span style="color: rgba(0, 128, 128, 1)">1596</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BN_zero(n: pBIGNUM): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1597</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1598</span> result := BN_<span style="color: rgba(0, 0, 255, 1)">set</span>_word(n, <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 128, 128, 1)">1599</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1600</span>
<span style="color: rgba(0, 128, 128, 1)">1601</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BN_one(n: pBIGNUM): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1602</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1603</span> result := BN_<span style="color: rgba(0, 0, 255, 1)">set</span>_word(n, <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 128, 128, 1)">1604</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1605</span>
<span style="color: rgba(0, 128, 128, 1)">1606</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_value_one; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1607</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">set</span>_word; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1608</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_get_word; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1609</span>
<span style="color: rgba(0, 128, 128, 1)">1610</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_cmp; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1611</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_ucmp; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1612</span>
<span style="color: rgba(0, 128, 128, 1)">1613</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">function BN_is_zero(a: pBIGNUM): boolean;</span>
<span style="color: rgba(0, 128, 128, 1)">1614</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1615</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">result := (a^.top = 0) or BN_is_word(a, 0);</span>
<span style="color: rgba(0, 128, 128, 1)">1616</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">end;</span>
<span style="color: rgba(0, 128, 128, 1)">1617</span>
<span style="color: rgba(0, 128, 128, 1)">1618</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">function BN_is_one(a: pBIGNUM): boolean;</span>
<span style="color: rgba(0, 128, 128, 1)">1619</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1620</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> define BN_is_one(a) (BN_is_word((a),1))</span>
<span style="color: rgba(0, 128, 128, 1)">1621</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">result := BN_is_word(a, 1);</span>
<span style="color: rgba(0, 128, 128, 1)">1622</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">end;</span>
<span style="color: rgba(0, 128, 128, 1)">1623</span>
<span style="color: rgba(0, 128, 128, 1)">1624</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">function BN_is_word(a: pBIGNUM; w: BN_ULONG): boolean;</span>
<span style="color: rgba(0, 128, 128, 1)">1625</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1626</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">define BN_is_word(a,w) (((a)->top == 1) && ((a)->d == (BN_ULONG)(w)))</span>
<span style="color: rgba(0, 128, 128, 1)">1627</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">result := (a^.top = 1) and (a^.d = w);</span>
<span style="color: rgba(0, 128, 128, 1)">1628</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">end;</span>
<span style="color: rgba(0, 128, 128, 1)">1629</span>
<span style="color: rgba(0, 128, 128, 1)">1630</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">function BN_is_odd(a: pBIGNUM): boolean;</span>
<span style="color: rgba(0, 128, 128, 1)">1631</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1632</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">result := (a^.top > 0) and ((a^.d and $01) = $01);</span>
<span style="color: rgba(0, 128, 128, 1)">1633</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">end;</span>
<span style="color: rgba(0, 128, 128, 1)">1634</span>
<span style="color: rgba(0, 128, 128, 1)">1635</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_num_bytes(<span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> a: pBIGNUM): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1636</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1637</span> result := (BN_num_bits(a) + <span style="color: rgba(128, 0, 128, 1)">7</span>) <span style="color: rgba(0, 0, 255, 1)">div</span> <span style="color: rgba(128, 0, 128, 1)">8</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1638</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1639</span>
<span style="color: rgba(0, 128, 128, 1)">1640</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_num_bits; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1641</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_num_bits_word; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1642</span>
<span style="color: rgba(0, 128, 128, 1)">1643</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_add; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1644</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_sub; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1645</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_uadd; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1646</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_usub; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1647</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_mul; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1648</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_sqr; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1649</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">div</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1650</span>
<span style="color: rgba(0, 128, 128, 1)">1651</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>(rem: pBIGNUM; <span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> a, m: pBIGNUM; ctx: pBN_CTX): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1652</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1653</span> result := BN_<span style="color: rgba(0, 0, 255, 1)">div</span>(<span style="color: rgba(0, 0, 255, 1)">nil</span><span style="color: rgba(0, 0, 0, 1)">, rem, a, m, ctx);
</span><span style="color: rgba(0, 128, 128, 1)">1654</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1655</span>
<span style="color: rgba(0, 128, 128, 1)">1656</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_exp; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1657</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_exp; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1658</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_gcd; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1659</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_nnmod; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1660</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_add; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1661</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_sub; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1662</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_mul; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1663</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_sqr; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1664</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_reciprocal; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1665</span>
<span style="color: rgba(0, 128, 128, 1)">1666</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_exp2_mont; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1667</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_exp_mont; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1668</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_exp_mont_word; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1669</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_exp_simple; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1670</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_exp_recp; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1671</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_inverse; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1672</span>
<span style="color: rgba(0, 128, 128, 1)">1673</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_add_word; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1674</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_sub_word; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1675</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_mul_word; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1676</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">div</span>_word; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1677</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">mod</span>_word; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1678</span> <span style="color: rgba(0, 0, 255, 1)">function</span> bn_mul_words; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1679</span> <span style="color: rgba(0, 0, 255, 1)">function</span> bn_mul_add_words; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1680</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> bn_sqr_words; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1681</span> <span style="color: rgba(0, 0, 255, 1)">function</span> bn_<span style="color: rgba(0, 0, 255, 1)">div</span>_words; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1682</span> <span style="color: rgba(0, 0, 255, 1)">function</span> bn_add_words; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1683</span> <span style="color: rgba(0, 0, 255, 1)">function</span> bn_sub_words; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1684</span> <span style="color: rgba(0, 0, 255, 1)">function</span> bn_expand2; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1685</span>
<span style="color: rgba(0, 128, 128, 1)">1686</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">set</span>_bit; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1687</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_clear_bit; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1688</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">is</span>_bit_<span style="color: rgba(0, 0, 255, 1)">set</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1689</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_mask_bits; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1690</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_lshift; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1691</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_lshift1; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1692</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_rshift; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1693</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_rshift1; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1694</span>
<span style="color: rgba(0, 128, 128, 1)">1695</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_generate_prime; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1696</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">is</span>_prime; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1697</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">is</span>_prime_fasttest; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1698</span>
<span style="color: rgba(0, 128, 128, 1)">1699</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_rand; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1700</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_pseudo_rand; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1701</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_rand_range; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1702</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_pseudo_rand_range; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1703</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_bntest_rand; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1704</span>
<span style="color: rgba(0, 128, 128, 1)">1705</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">to</span>_ASN1_INTEGER; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1706</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BN_<span style="color: rgba(0, 0, 255, 1)">to</span>_ASN1_ENUMERATED; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1707</span>
<span style="color: rgba(0, 128, 128, 1)">1708</span> <span style="color: rgba(0, 0, 255, 1)">function</span> ASN1_IA5STRING_new; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1709</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> ASN1_INTEGER_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1710</span> <span style="color: rgba(0, 0, 255, 1)">function</span> ASN1_INTEGER_get; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1711</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> ASN1_STRING_<span style="color: rgba(0, 0, 255, 1)">set</span>_<span style="color: rgba(0, 0, 255, 1)">default</span>_mask; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1712</span> <span style="color: rgba(0, 0, 255, 1)">function</span> ASN1_STRING_get_<span style="color: rgba(0, 0, 255, 1)">default</span>_mask; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1713</span> <span style="color: rgba(0, 0, 255, 1)">function</span> ASN1_TIME_print; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1714</span>
<span style="color: rgba(0, 128, 128, 1)">1715</span> <span style="color: rgba(0, 0, 255, 1)">function</span> OBJ_obj2nid; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1716</span> <span style="color: rgba(0, 0, 255, 1)">function</span> OBJ_txt2nid; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1717</span> <span style="color: rgba(0, 0, 255, 1)">function</span> OBJ_txt2obj; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1718</span>
<span style="color: rgba(0, 128, 128, 1)">1719</span> <span style="color: rgba(0, 0, 255, 1)">function</span> sk_new_null; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1720</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> sk_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1721</span> <span style="color: rgba(0, 0, 255, 1)">function</span> sk_push; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1722</span> <span style="color: rgba(0, 0, 255, 1)">function</span> sk_num; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1723</span> <span style="color: rgba(0, 0, 255, 1)">function</span> sk_value; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1724</span>
<span style="color: rgba(0, 128, 128, 1)">1725</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_new; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1726</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_new_<span style="color: rgba(0, 0, 255, 1)">file</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1727</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_<span style="color: rgba(0, 0, 255, 1)">set</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1728</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1729</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BIO_vfree; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1730</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BIO_<span style="color: rgba(0, 0, 255, 1)">free</span>_all; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1731</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_push; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1732</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_pop; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1733</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_ctrl; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1734</span>
<span style="color: rgba(0, 128, 128, 1)">1735</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_<span style="color: rgba(0, 0, 255, 1)">read</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1736</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_gets; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1737</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_<span style="color: rgba(0, 0, 255, 1)">write</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1738</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_puts; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1739</span>
<span style="color: rgba(0, 128, 128, 1)">1740</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_flush(b: pBIO): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1741</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1742</span> result := BIO_ctrl(b, BIO_CTRL_FLUSH, <span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(0, 0, 255, 1)">nil</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">1743</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1744</span>
<span style="color: rgba(0, 128, 128, 1)">1745</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_s_mem; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1746</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_f_base64; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1747</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BIO_<span style="color: rgba(0, 0, 255, 1)">set</span>_mem_eof_return; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1748</span>
<span style="color: rgba(0, 128, 128, 1)">1749</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_get_mem_data(b: pBIO; <span style="color: rgba(0, 0, 255, 1)">var</span> pp: PCharacter): integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1750</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1751</span> result := BIO_ctrl(b, BIO_CTRL_INFO, <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">, @pp);
</span><span style="color: rgba(0, 128, 128, 1)">1752</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1753</span>
<span style="color: rgba(0, 128, 128, 1)">1754</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BIO_<span style="color: rgba(0, 0, 255, 1)">set</span>_mem_buf; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1755</span>
<span style="color: rgba(0, 128, 128, 1)">1756</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">procedure BIO_get_mem_ptr; external LIBEAY_DLL_NAME;</span>
<span style="color: rgba(0, 128, 128, 1)">1757</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_get_mem_ptr(b: pBIO; pp: PPBUF_MEM):Integer;
</span><span style="color: rgba(0, 128, 128, 1)">1758</span> <span style="color: rgba(0, 0, 255, 1)">const</span>
<span style="color: rgba(0, 128, 128, 1)">1759</span> BIO_C_GET_BUF_MEM_PTR = <span style="color: rgba(128, 0, 128, 1)">115</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1760</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1761</span> Result := BIO_ctrl(b,BIO_C_GET_BUF_MEM_PTR, <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">, pp);
</span><span style="color: rgba(0, 128, 128, 1)">1762</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1763</span>
<span style="color: rgba(0, 128, 128, 1)">1764</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_new_mem_buf; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1765</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_s_<span style="color: rgba(0, 0, 255, 1)">file</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1766</span>
<span style="color: rgba(0, 128, 128, 1)">1767</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Not in DLL</span>
<span style="color: rgba(0, 128, 128, 1)">1768</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_get_md_ctx(bp: pBIO; mdcp: Pointer): Longint;
</span><span style="color: rgba(0, 128, 128, 1)">1769</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1770</span> result := BIO_ctrl(bp, BIO_C_GET_MD_CTX, <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">, mdcp);
</span><span style="color: rgba(0, 128, 128, 1)">1771</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1772</span>
<span style="color: rgba(0, 128, 128, 1)">1773</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_reset(bp: pBIO): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1774</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1775</span> result := BIO_ctrl(bp, BIO_CTRL_RESET, <span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(0, 0, 255, 1)">nil</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">1776</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1777</span>
<span style="color: rgba(0, 128, 128, 1)">1778</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_eof(bp: pBIO): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1779</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1780</span> result := BIO_ctrl(bp, BIO_CTRL_EOF, <span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(0, 0, 255, 1)">nil</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">1781</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1782</span>
<span style="color: rgba(0, 128, 128, 1)">1783</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_<span style="color: rgba(0, 0, 255, 1)">set</span><span style="color: rgba(0, 0, 0, 1)">_close(bp: pBIO; c: integer): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1784</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1785</span> result := BIO_ctrl(bp, BIO_CTRL_SET_CLOSE, c, <span style="color: rgba(0, 0, 255, 1)">nil</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">1786</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1787</span>
<span style="color: rgba(0, 128, 128, 1)">1788</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_get_close(bp: pBIO): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1789</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1790</span> result := BIO_ctrl(bp, BIO_CTRL_GET_CLOSE, <span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(0, 0, 255, 1)">nil</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">1791</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1792</span>
<span style="color: rgba(0, 128, 128, 1)">1793</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_pending(bp: pBIO): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1794</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1795</span> result := BIO_ctrl(bp, BIO_CTRL_PENDING, <span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(0, 0, 255, 1)">nil</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">1796</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1797</span>
<span style="color: rgba(0, 128, 128, 1)">1798</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_wpending(bp: pBIO): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1799</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1800</span> result := BIO_ctrl(bp, BIO_CTRL_WPENDING, <span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(0, 0, 255, 1)">nil</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">1801</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1802</span>
<span style="color: rgba(0, 128, 128, 1)">1803</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_<span style="color: rgba(0, 0, 255, 1)">read</span><span style="color: rgba(0, 0, 0, 1)">_filename(bp: pBIO; filename: PCharacter): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1804</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1805</span> result := BIO_ctrl(bp, BIO_C_SET_FILENAME, BIO_CLOSE <span style="color: rgba(0, 0, 255, 1)">or</span><span style="color: rgba(0, 0, 0, 1)"> BIO_FP_READ, filename);
</span><span style="color: rgba(0, 128, 128, 1)">1806</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1807</span>
<span style="color: rgba(0, 128, 128, 1)">1808</span> <span style="color: rgba(0, 0, 255, 1)">function</span> BIO_<span style="color: rgba(0, 0, 255, 1)">write</span><span style="color: rgba(0, 0, 0, 1)">_filename(bp: pBIO; filename: PCharacter): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1809</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1810</span> result := BIO_ctrl(bp, BIO_C_SET_FILENAME, BIO_CLOSE <span style="color: rgba(0, 0, 255, 1)">or</span><span style="color: rgba(0, 0, 0, 1)"> BIO_FP_WRITE, filename);
</span><span style="color: rgba(0, 128, 128, 1)">1811</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1812</span>
<span style="color: rgba(0, 128, 128, 1)">1813</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_append_filename(bp: pBIO; filename: PCharacter): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1814</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1815</span> result := BIO_ctrl(bp, BIO_C_SET_FILENAME, BIO_CLOSE <span style="color: rgba(0, 0, 255, 1)">or</span><span style="color: rgba(0, 0, 0, 1)"> BIO_FP_APPEND, filename);
</span><span style="color: rgba(0, 128, 128, 1)">1816</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1817</span>
<span style="color: rgba(0, 128, 128, 1)">1818</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> BIO_rw_filename(bp: pBIO; filename: PCharacter): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1819</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1820</span> result := BIO_ctrl(bp, BIO_C_SET_FILENAME, BIO_CLOSE <span style="color: rgba(0, 0, 255, 1)">or</span> BIO_FP_READ <span style="color: rgba(0, 0, 255, 1)">or</span><span style="color: rgba(0, 0, 0, 1)"> BIO_FP_WRITE, filename);
</span><span style="color: rgba(0, 128, 128, 1)">1821</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1822</span>
<span style="color: rgba(0, 128, 128, 1)">1823</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2d_ASN1_TIME; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1824</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_ASN1_TIME; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1825</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_X509_REQ_bio; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1826</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2d_X509_REQ_bio; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1827</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_X509_bio; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1828</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2d_X509_bio; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1829</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_PrivateKey_bio; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1830</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2d_PrivateKey_bio; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1831</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_PUBKEY_bio; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1832</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2d_PUBKEY_bio; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1833</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_PKCS12_bio; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1834</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2d_PKCS12_bio; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1835</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_PKCS7; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1836</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_PKCS7_bio; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1837</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2d_PKCS7_bio; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1838</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_PKCS8_bio; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1839</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_PKCS8_PRIV_KEY_INFO; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1840</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_DSAPrivateKey_bio; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1841</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2d_DSAPrivateKey_bio; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1842</span> <span style="color: rgba(0, 0, 255, 1)">function</span> d2i_RSAPrivateKey_bio; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME
</span><span style="color: rgba(0, 128, 128, 1)">1843</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2d_RSAPrivateKey_bio; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME
</span><span style="color: rgba(0, 128, 128, 1)">1844</span>
<span style="color: rgba(0, 128, 128, 1)">1845</span> <span style="color: rgba(0, 0, 255, 1)">function</span> i2a_ASN1_INTEGER; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1846</span> <span style="color: rgba(0, 0, 255, 1)">function</span> a2i_ASN1_INTEGER; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1847</span>
<span style="color: rgba(0, 128, 128, 1)">1848</span> <span style="color: rgba(0, 0, 255, 1)">function</span>EVP_md_null; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1849</span> <span style="color: rgba(0, 0, 255, 1)">function</span>EVP_md2; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1850</span> <span style="color: rgba(0, 0, 255, 1)">function</span>EVP_md5; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1851</span> <span style="color: rgba(0, 0, 255, 1)">function</span>EVP_sha; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1852</span> <span style="color: rgba(0, 0, 255, 1)">function</span>EVP_sha1; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1853</span> <span style="color: rgba(0, 0, 255, 1)">function</span>EVP_dss; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1854</span> <span style="color: rgba(0, 0, 255, 1)">function</span>EVP_dss1; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1855</span> <span style="color: rgba(0, 0, 255, 1)">function</span>EVP_mdc2; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1856</span> <span style="color: rgba(0, 0, 255, 1)">function</span>EVP_ripemd160; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1857</span> <span style="color: rgba(0, 0, 255, 1)">function</span>EVP_get_digestbyname; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1858</span>
<span style="color: rgba(0, 128, 128, 1)">1859</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_new; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1860</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_PKEY_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1861</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_<span style="color: rgba(0, 0, 255, 1)">type</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1862</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_assign_RSA; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1863</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_assign_DSA; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1864</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_assign_DH; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1865</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_assign_EC_KEY; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1866</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_set1_RSA; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1867</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_set1_DSA; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1868</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_set1_DH; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1869</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_set1_EC_KEY; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1870</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_size; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1871</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_get1_RSA; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1872</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_get1_DSA; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1873</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_get1_DH; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1874</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_get1_EC_KEY; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1875</span>
<span style="color: rgba(0, 128, 128, 1)">1876</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_DigestInit; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1877</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_DigestUpdate; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1878</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_DigestFinal; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1879</span>
<span style="color: rgba(0, 128, 128, 1)">1880</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_SignInit(ctx: pEVP_MD_CTX; <span style="color: rgba(0, 0, 255, 1)">const</span> _<span style="color: rgba(0, 0, 255, 1)">type</span><span style="color: rgba(0, 0, 0, 1)">: pEVP_MD);
</span><span style="color: rgba(0, 128, 128, 1)">1881</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1882</span> EVP_DigestInit(ctx, _<span style="color: rgba(0, 0, 255, 1)">type</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">1883</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1884</span>
<span style="color: rgba(0, 128, 128, 1)">1885</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_SignUpdate(ctx: pEVP_MD_CTX; <span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> d: Pointer; cnt: cardinal);
</span><span style="color: rgba(0, 128, 128, 1)">1886</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1887</span> <span style="color: rgba(0, 0, 0, 1)">EVP_DigestUpdate(ctx, d, cnt);
</span><span style="color: rgba(0, 128, 128, 1)">1888</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1889</span>
<span style="color: rgba(0, 128, 128, 1)">1890</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_SignFinal; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1891</span>
<span style="color: rgba(0, 128, 128, 1)">1892</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_VerifyInit(ctx: pEVP_MD_CTX; <span style="color: rgba(0, 0, 255, 1)">const</span> _<span style="color: rgba(0, 0, 255, 1)">type</span><span style="color: rgba(0, 0, 0, 1)">: pEVP_MD);
</span><span style="color: rgba(0, 128, 128, 1)">1893</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1894</span> EVP_DigestInit(ctx, _<span style="color: rgba(0, 0, 255, 1)">type</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">1895</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1896</span>
<span style="color: rgba(0, 128, 128, 1)">1897</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_VerifyUpdate(ctx: pEVP_MD_CTX; <span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> d: Pointer; cnt: cardinal);
</span><span style="color: rgba(0, 128, 128, 1)">1898</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1899</span> <span style="color: rgba(0, 0, 0, 1)">EVP_DigestUpdate(ctx, d, cnt);
</span><span style="color: rgba(0, 128, 128, 1)">1900</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1901</span>
<span style="color: rgba(0, 128, 128, 1)">1902</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_VerifyFinal; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1903</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKEY_assign; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1904</span>
<span style="color: rgba(0, 128, 128, 1)">1905</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Not in DLL</span>
<span style="color: rgba(0, 128, 128, 1)">1906</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> EVP_MD_size(e: pEVP_MD): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1907</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1908</span> result :=<span style="color: rgba(0, 0, 0, 1)"> e^.md_size;
</span><span style="color: rgba(0, 128, 128, 1)">1909</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1910</span>
<span style="color: rgba(0, 128, 128, 1)">1911</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Not in DLL</span>
<span style="color: rgba(0, 128, 128, 1)">1912</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> EVP_MD_CTX_size(e: pEVP_MD_CTX): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1913</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1914</span> result :=<span style="color: rgba(0, 0, 0, 1)"> EVP_MD_size(e^.digest);
</span><span style="color: rgba(0, 128, 128, 1)">1915</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1916</span>
<span style="color: rgba(0, 128, 128, 1)">1917</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_MD_CTX_copy; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1918</span>
<span style="color: rgba(0, 128, 128, 1)">1919</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_enc_null; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1920</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ecb; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1921</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ede; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1922</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ede3; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1923</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_cfb; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1924</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ede_cfb; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1925</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ede3_cfb; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1926</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ofb; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1927</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ede_ofb; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1928</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ede3_ofb; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1929</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_cbc; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1930</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ede_cbc; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1931</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_des_ede3_cbc; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1932</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_desx_cbc; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1933</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_idea_cbc; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1934</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_idea_cfb; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1935</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_idea_ecb; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1936</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_idea_ofb; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1937</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_get_cipherbyname; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1938</span>
<span style="color: rgba(0, 128, 128, 1)">1939</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_<span style="color: rgba(0, 0, 255, 1)">set</span>_pw_prompt; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1940</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_get_pw_prompt; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1941</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_<span style="color: rgba(0, 0, 255, 1)">read</span>_pw_<span style="color: rgba(0, 0, 255, 1)">string</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1942</span>
<span style="color: rgba(0, 128, 128, 1)">1943</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> RAND_seed; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1944</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> RAND_add; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1945</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RAND_status; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1946</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">function RAND_event(UINT iMsg, WPARAM wParam, LPARAM lParam): integer; cdecl; external LIBEAY_DLL_NAME;</span>
<span style="color: rgba(0, 128, 128, 1)">1947</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> RAND_screen; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1948</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RAND_<span style="color: rgba(0, 0, 255, 1)">file</span>_name; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1949</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RAND_load_<span style="color: rgba(0, 0, 255, 1)">file</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1950</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RAND_<span style="color: rgba(0, 0, 255, 1)">write</span>_<span style="color: rgba(0, 0, 255, 1)">file</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1951</span>
<span style="color: rgba(0, 128, 128, 1)">1952</span> <span style="color: rgba(0, 0, 255, 1)">function</span>RSA_new; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1953</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> RSA_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1954</span> <span style="color: rgba(0, 0, 255, 1)">function</span>RSA_new_method; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1955</span> <span style="color: rgba(0, 0, 255, 1)">function</span>RSA_size; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1956</span> <span style="color: rgba(0, 0, 255, 1)">function</span>RSA_generate_key; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1957</span> <span style="color: rgba(0, 0, 255, 1)">function</span>RSA_check_key; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1958</span> <span style="color: rgba(0, 0, 255, 1)">function</span>RSA_<span style="color: rgba(0, 0, 255, 1)">public</span>_encrypt; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1959</span> <span style="color: rgba(0, 0, 255, 1)">function</span>RSA_<span style="color: rgba(0, 0, 255, 1)">private</span>_encrypt; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1960</span> <span style="color: rgba(0, 0, 255, 1)">function</span>RSA_<span style="color: rgba(0, 0, 255, 1)">public</span>_decrypt; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1961</span> <span style="color: rgba(0, 0, 255, 1)">function</span>RSA_<span style="color: rgba(0, 0, 255, 1)">private</span>_decrypt; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1962</span> <span style="color: rgba(0, 0, 255, 1)">function</span>RSA_flags; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1963</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> RSA_<span style="color: rgba(0, 0, 255, 1)">set</span>_<span style="color: rgba(0, 0, 255, 1)">default</span>_method; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1964</span> <span style="color: rgba(0, 0, 255, 1)">function</span>RSA_get_<span style="color: rgba(0, 0, 255, 1)">default</span>_method; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1965</span> <span style="color: rgba(0, 0, 255, 1)">function</span>RSA_get_method; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1966</span> <span style="color: rgba(0, 0, 255, 1)">function</span>RSA_<span style="color: rgba(0, 0, 255, 1)">set</span>_method; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1967</span> <span style="color: rgba(0, 0, 255, 1)">function</span>RSA_memory_lock; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1968</span> <span style="color: rgba(0, 0, 255, 1)">function</span>RSA_PKCS1_SSLeay; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1969</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> ERR_load_RSA_strings; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1970</span>
<span style="color: rgba(0, 128, 128, 1)">1971</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RSA_sign;<span style="color: rgba(0, 0, 255, 1)">external</span> LIBEAY_DLL_NAME; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/19 13:45</span>
<span style="color: rgba(0, 128, 128, 1)">1972</span> <span style="color: rgba(0, 0, 255, 1)">function</span> RSA_verify;<span style="color: rgba(0, 0, 255, 1)">external</span> LIBEAY_DLL_NAME; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/19 13:45</span>
<span style="color: rgba(0, 128, 128, 1)">1973</span>
<span style="color: rgba(0, 128, 128, 1)">1974</span>
<span style="color: rgba(0, 128, 128, 1)">1975</span> <span style="color: rgba(0, 0, 255, 1)">function</span> DSA_new; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1976</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> DSA_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1977</span> <span style="color: rgba(0, 0, 255, 1)">function</span> DSA_generate_parameters; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1978</span> <span style="color: rgba(0, 0, 255, 1)">function</span> DSA_generate_key; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1979</span>
<span style="color: rgba(0, 128, 128, 1)">1980</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_NAME_oneline; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1981</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_NAME_new; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1982</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> X509_NAME_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1983</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_NAME_add_entry_by_txt; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1984</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_NAME_get_entry; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1985</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_NAME_get_text_by_NID; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1986</span>
<span style="color: rgba(0, 128, 128, 1)">1987</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_new; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1988</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> X509_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1989</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_print; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1990</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_<span style="color: rgba(0, 0, 255, 1)">set</span>_version; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1991</span>
<span style="color: rgba(0, 128, 128, 1)">1992</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> X509_get_version(x: pX509): integer;
</span><span style="color: rgba(0, 128, 128, 1)">1993</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">1994</span> result :=<span style="color: rgba(0, 0, 0, 1)"> ASN1_INTEGER_get(x.cert_info.version);
</span><span style="color: rgba(0, 128, 128, 1)">1995</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">1996</span>
<span style="color: rgba(0, 128, 128, 1)">1997</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_get_serialNumber; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1998</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_load_cert_<span style="color: rgba(0, 0, 255, 1)">file</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">1999</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_get_issuer_name; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2000</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_get_subject_name; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2001</span>
<span style="color: rgba(0, 128, 128, 1)">2002</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> X509_get_notBefore(a: pX509): pASN1_TIME;
</span><span style="color: rgba(0, 128, 128, 1)">2003</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">2004</span> result :=<span style="color: rgba(0, 0, 0, 1)"> a.cert_info.validity.notBefore;
</span><span style="color: rgba(0, 128, 128, 1)">2005</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">2006</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> X509_get_notAfter(a: pX509): pASN1_TIME;
</span><span style="color: rgba(0, 128, 128, 1)">2007</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">2008</span> result :=<span style="color: rgba(0, 0, 0, 1)"> a.cert_info.validity.notAfter;
</span><span style="color: rgba(0, 128, 128, 1)">2009</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">2010</span>
<span style="color: rgba(0, 128, 128, 1)">2011</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_get1_email; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2012</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_get_pubkey; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2013</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_check_<span style="color: rgba(0, 0, 255, 1)">private</span>_key; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2014</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_check_purpose; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2015</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_issuer_<span style="color: rgba(0, 0, 255, 1)">and</span>_serial_cmp; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2016</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_issuer_<span style="color: rgba(0, 0, 255, 1)">and</span>_serial_hash; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2017</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_gmtime_adj; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2018</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_verify_cert; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2019</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_verify_cert_error_<span style="color: rgba(0, 0, 255, 1)">string</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2020</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> X509_email_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2021</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_get_ext; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2022</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_get_ext_by_NID; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2023</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_get_ext_d2i; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2024</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509V3_EXT_d2i; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2025</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509V3_EXT_i2d; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2026</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509V3_EXT_conf_nid; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2027</span>
<span style="color: rgba(0, 128, 128, 1)">2028</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_sign; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2029</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_<span style="color: rgba(0, 0, 255, 1)">set</span>_issuer_name; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2030</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_<span style="color: rgba(0, 0, 255, 1)">set</span>_subject_name; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2031</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> X509V3_<span style="color: rgba(0, 0, 255, 1)">set</span>_ctx; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2032</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> X509_SIG_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2033</span>
<span style="color: rgba(0, 128, 128, 1)">2034</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_PUBKEY_get; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2035</span>
<span style="color: rgba(0, 128, 128, 1)">2036</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_REQ_new; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2037</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> X509_REQ_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2038</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_REQ_<span style="color: rgba(0, 0, 255, 1)">set</span>_version; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2039</span>
<span style="color: rgba(0, 128, 128, 1)">2040</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> X509_REQ_get_version(req: pX509_REQ): integer;
</span><span style="color: rgba(0, 128, 128, 1)">2041</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">2042</span> result :=<span style="color: rgba(0, 0, 0, 1)"> ASN1_INTEGER_get(req.req_info.version);
</span><span style="color: rgba(0, 128, 128, 1)">2043</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">2044</span>
<span style="color: rgba(0, 128, 128, 1)">2045</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_REQ_<span style="color: rgba(0, 0, 255, 1)">set</span>_subject_name; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2046</span>
<span style="color: rgba(0, 128, 128, 1)">2047</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> X509_REQ_get_subject_name(req: pX509_REQ): pX509_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2048</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">2049</span> result :=<span style="color: rgba(0, 0, 0, 1)"> req.req_info.subject;
</span><span style="color: rgba(0, 128, 128, 1)">2050</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">2051</span>
<span style="color: rgba(0, 128, 128, 1)">2052</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_REQ_add1_attr_by_txt; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2053</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_REQ_add_extensions; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2054</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_REQ_<span style="color: rgba(0, 0, 255, 1)">set</span>_pubkey; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2055</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_REQ_get_pubkey; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2056</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_REQ_sign; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2057</span>
<span style="color: rgba(0, 128, 128, 1)">2058</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_STORE_new; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2059</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> X509_STORE_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2060</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_STORE_add_cert; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2061</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_STORE_add_lookup; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2062</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_STORE_CTX_new; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2063</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> X509_STORE_CTX_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2064</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> X509_STORE_CTX_init; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2065</span>
<span style="color: rgba(0, 128, 128, 1)">2066</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_STORE_CTX_get_current_cert; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2067</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_STORE_CTX_get_error; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2068</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_STORE_CTX_get_error_depth; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2069</span>
<span style="color: rgba(0, 128, 128, 1)">2070</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_LOOKUP_new; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2071</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_LOOKUP_init; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2072</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> X509_LOOKUP_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2073</span>
<span style="color: rgba(0, 128, 128, 1)">2074</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_LOOKUP_ctrl; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2075</span> <span style="color: rgba(0, 0, 255, 1)">function</span> X509_LOOKUP_<span style="color: rgba(0, 0, 255, 1)">file</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2076</span>
<span style="color: rgba(0, 128, 128, 1)">2077</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_RSAPrivateKey; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2078</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span>_bio_RSAPrivateKey; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2079</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_RSAPublicKey; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2080</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span>_bio_RSAPublicKey; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2081</span>
<span style="color: rgba(0, 128, 128, 1)">2082</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_DSAPrivateKey; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2083</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span>_bio_DSAPrivateKey; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2084</span>
<span style="color: rgba(0, 128, 128, 1)">2085</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_PUBKEY; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2086</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span>_bio_PUBKEY; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2087</span>
<span style="color: rgba(0, 128, 128, 1)">2088</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_X509; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2089</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span>_bio_X509; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2090</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_X509_AUX; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2091</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span>_bio_X509_AUX; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2092</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_X509_REQ; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2093</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span>_bio_X509_REQ; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2094</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_X509_CRL; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2095</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span>_bio_X509_CRL; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2096</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_PrivateKey; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2097</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span>_bio_PrivateKey; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2098</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_PKCS7; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2099</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">write</span>_bio_PKCS7; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2100</span>
<span style="color: rgba(0, 128, 128, 1)">2101</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PKCS5_PBKDF2_HMAC_SHA1; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2102</span>
<span style="color: rgba(0, 128, 128, 1)">2103</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PKCS7_sign; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2104</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PKCS7_get_signer_info; <span style="color: rgba(0, 0, 255, 1)">external</span> LIBEAY_DLL_NAME;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> STACK_OF(PKCS7_SIGNER_INFO)</span>
<span style="color: rgba(0, 128, 128, 1)">2105</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PKCS7_verify; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2106</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PKCS7_get0_signers; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2107</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PKCS7_signatureVerify; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2108</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PKCS7_encrypt; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2109</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PKCS7_decrypt; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2110</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> PKCS7_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2111</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PKCS7_ctrl; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2112</span>
<span style="color: rgba(0, 128, 128, 1)">2113</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> PKCS7_get_detached(p7: pPKCS7): pointer;
</span><span style="color: rgba(0, 128, 128, 1)">2114</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">2115</span> result := pointer(PKCS7_ctrl(p7, <span style="color: rgba(128, 0, 128, 1)">2</span>, <span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(0, 0, 255, 1)">nil</span><span style="color: rgba(0, 0, 0, 1)">));
</span><span style="color: rgba(0, 128, 128, 1)">2116</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">2117</span>
<span style="color: rgba(0, 128, 128, 1)">2118</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PKCS7_dataInit; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2119</span>
<span style="color: rgba(0, 128, 128, 1)">2120</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_PKCS82PKEY; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2121</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> PKCS8_PRIV_KEY_INFO_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2122</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PKCS8_decrypt; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2123</span>
<span style="color: rgba(0, 128, 128, 1)">2124</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PKCS12_new; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2125</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> PKCS12_<span style="color: rgba(0, 0, 255, 1)">free</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2126</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PKCS12_parse;<span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2127</span>
<span style="color: rgba(0, 128, 128, 1)">2128</span> <span style="color: rgba(0, 0, 255, 1)">function</span> AES_<span style="color: rgba(0, 0, 255, 1)">set</span>_decrypt_key; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2129</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> AES_cbc_encrypt; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2130</span>
<span style="color: rgba(0, 128, 128, 1)">2131</span> <span style="color: rgba(0, 0, 255, 1)">function</span> SMIME_<span style="color: rgba(0, 0, 255, 1)">write</span>_PKCS7; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2132</span> <span style="color: rgba(0, 0, 255, 1)">function</span> SMIME_<span style="color: rgba(0, 0, 255, 1)">read</span>_PKCS7; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2133</span>
<span style="color: rgba(0, 128, 128, 1)">2134</span>
<span style="color: rgba(0, 128, 128, 1)">2135</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">======================by lwm8246=========================================</span>
<span style="color: rgba(0, 128, 128, 1)">2136</span>
<span style="color: rgba(0, 128, 128, 1)">2137</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> EVP_MD_CTX_init(ctx : PEVP_MD_CTX) <span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2138</span> <span style="color: rgba(0, 0, 255, 1)">function</span>EVP_MD_CTX_cleanup(ctx : PEVP_MD_CTX):Integer; <span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2139</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> BIO_<span style="color: rgba(0, 0, 255, 1)">set</span>_flags(a:PBIO;Flags:Integer);<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2140</span>
<span style="color: rgba(0, 128, 128, 1)">2141</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int AES_set_encrypt_key(const unsigned char *userKey, const int bits,AES_KEY *key);</span>
<span style="color: rgba(0, 128, 128, 1)">2142</span> <span style="color: rgba(0, 0, 255, 1)">function</span> AES_<span style="color: rgba(0, 0, 255, 1)">set</span>_encrypt_key(<span style="color: rgba(0, 0, 255, 1)">const</span> userKey:Pointer; <span style="color: rgba(0, 0, 255, 1)">const</span> bits:integer;key:PAES_KEY):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2143</span>
<span style="color: rgba(0, 128, 128, 1)">2144</span>
<span style="color: rgba(0, 128, 128, 1)">2145</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int MD5_Init(MD5_CTX *c);</span>
<span style="color: rgba(0, 128, 128, 1)">2146</span> <span style="color: rgba(0, 0, 255, 1)">function</span> MD5_Init(<span style="color: rgba(0, 0, 255, 1)">var</span> c:MD5_CTX):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2147</span>
<span style="color: rgba(0, 128, 128, 1)">2148</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int MD5_Update(MD5_CTX *c, const void *data, size_t len);</span>
<span style="color: rgba(0, 128, 128, 1)">2149</span> <span style="color: rgba(0, 0, 255, 1)">function</span> MD5_Update(<span style="color: rgba(0, 0, 255, 1)">var</span> c: MD5_CTX;<span style="color: rgba(0, 0, 255, 1)">const</span> data:Pointer;len:Integer):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2150</span>
<span style="color: rgba(0, 128, 128, 1)">2151</span>
<span style="color: rgba(0, 128, 128, 1)">2152</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int MD5_Final(unsigned char *md, MD5_CTX *c);</span>
<span style="color: rgba(0, 128, 128, 1)">2153</span> <span style="color: rgba(0, 0, 255, 1)">function</span> MD5_Final(md:Pointer;<span style="color: rgba(0, 0, 255, 1)">var</span> c: MD5_CTX):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2154</span>
<span style="color: rgba(0, 128, 128, 1)">2155</span>
<span style="color: rgba(0, 128, 128, 1)">2156</span> <span style="color: rgba(0, 0, 255, 1)">function</span>RAND_bytes(OutBuf:Pointer;num:Integer):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span> LIBEAY_DLL_NAME;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/28 14:30</span>
<span style="color: rgba(0, 128, 128, 1)">2157</span>
<span style="color: rgba(0, 128, 128, 1)">2158</span> <span style="color: rgba(0, 0, 255, 1)">function</span> SHA256(<span style="color: rgba(0, 0, 255, 1)">const</span> d:PAnsichar;n:Integer;md:PAnsichar):PAnsichar;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2159</span>
<span style="color: rgba(0, 128, 128, 1)">2160</span>
<span style="color: rgba(0, 128, 128, 1)">2161</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int SHA256_Init(SHA256_CTX *c);</span>
<span style="color: rgba(0, 128, 128, 1)">2162</span> <span style="color: rgba(0, 0, 255, 1)">function</span> SHA256_Init(c:pSHA256_CTX):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2163</span>
<span style="color: rgba(0, 128, 128, 1)">2164</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int SHA256_Update(SHA256_CTX *c, const void *data, size_t len);</span>
<span style="color: rgba(0, 128, 128, 1)">2165</span> <span style="color: rgba(0, 0, 255, 1)">function</span> SHA256_Update(c:pSHA256_CTX;<span style="color: rgba(0, 0, 255, 1)">const</span> data:Pointer;len:Cardinal):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2166</span>
<span style="color: rgba(0, 128, 128, 1)">2167</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int SHA256_Final(unsigned char *md, SHA256_CTX *c);</span>
<span style="color: rgba(0, 128, 128, 1)">2168</span> <span style="color: rgba(0, 0, 255, 1)">function</span> SHA256_Final(md:Pointer;c:pSHA256_CTX):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2169</span>
<span style="color: rgba(0, 128, 128, 1)">2170</span>
<span style="color: rgba(0, 128, 128, 1)">2171</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">===============================================================================</span>
<span style="color: rgba(0, 128, 128, 1)">2172</span>
<span style="color: rgba(0, 128, 128, 1)">2173</span> <span style="color: rgba(0, 0, 255, 1)">function</span> PEM_<span style="color: rgba(0, 0, 255, 1)">read</span>_bio_RSA_PUBKEY(bp: pBIO;<span style="color: rgba(0, 0, 255, 1)">var</span> x: pRSA;cb:Pointer;u:pointer):pRSA;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2174</span>
<span style="color: rgba(0, 128, 128, 1)">2175</span>
<span style="color: rgba(0, 128, 128, 1)">2176</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">function HMAC(const evp_md:pEVP_MD;</span>
<span style="color: rgba(0, 128, 128, 1)">2177</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> const key:Pointer;</span>
<span style="color: rgba(0, 128, 128, 1)">2178</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> key_len:Integer;</span>
<span style="color: rgba(0, 128, 128, 1)">2179</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> const d:PAnsichar;</span>
<span style="color: rgba(0, 128, 128, 1)">2180</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> n:Cardinal;</span>
<span style="color: rgba(0, 128, 128, 1)">2181</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> md:PAnsichar;</span>
<span style="color: rgba(0, 128, 128, 1)">2182</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> md_len:Cardinal):PAnsichar;cdecl;external LIBEAY_DLL_NAME;//2016/02/29 18:11</span>
<span style="color: rgba(0, 128, 128, 1)">2183</span>
<span style="color: rgba(0, 128, 128, 1)">2184</span>
<span style="color: rgba(0, 128, 128, 1)">2185</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> HMAC(evp: pEVP_MD; key: PByte; key_len: integer;
</span><span style="color: rgba(0, 128, 128, 1)">2186</span> <span style="color: rgba(0, 0, 0, 1)"> data: PByte; data_len: integer;
</span><span style="color: rgba(0, 128, 128, 1)">2187</span> md: PByte; <span style="color: rgba(0, 0, 255, 1)">var</span> md_len: integer): PByte; <span style="color: rgba(0, 0, 255, 1)">cdecl</span>; <span style="color: rgba(0, 0, 255, 1)">external</span><span style="color: rgba(0, 0, 0, 1)"> LIBEAY_DLL_NAME;
</span><span style="color: rgba(0, 128, 128, 1)">2188</span>
<span style="color: rgba(0, 128, 128, 1)">2189</span> <span style="color: rgba(0, 0, 255, 1)">function</span>EVP_sha512():pEVP_MD;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span> LIBEAY_DLL_NAME;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/29 18:16</span>
<span style="color: rgba(0, 128, 128, 1)">2190</span>
<span style="color: rgba(0, 128, 128, 1)">2191</span> <span style="color: rgba(0, 0, 255, 1)">function</span>EVP_sha224():pEVP_MD;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span> LIBEAY_DLL_NAME;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/29 18:19</span>
<span style="color: rgba(0, 128, 128, 1)">2192</span>
<span style="color: rgba(0, 128, 128, 1)">2193</span> <span style="color: rgba(0, 0, 255, 1)">function</span> EVP_sha256():pEVP_MD;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span> LIBEAY_DLL_NAME; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/29 18:19</span>
<span style="color: rgba(0, 128, 128, 1)">2194</span>
<span style="color: rgba(0, 128, 128, 1)">2195</span> <span style="color: rgba(0, 0, 255, 1)">function</span>EVP_sha384():pEVP_MD;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span> LIBEAY_DLL_NAME;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/03/01 00:30</span>
<span style="color: rgba(0, 128, 128, 1)">2196</span>
<span style="color: rgba(0, 128, 128, 1)">2197</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> HMAC_Init(ctx:pHMAC_CTX;
</span><span style="color: rgba(0, 128, 128, 1)">2198</span> <span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> key:PAnsichar;
</span><span style="color: rgba(0, 128, 128, 1)">2199</span> <span style="color: rgba(0, 0, 0, 1)"> len:Integer;
</span><span style="color: rgba(0, 128, 128, 1)">2200</span> <span style="color: rgba(0, 0, 255, 1)">const</span> md:pEVP_MD):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span> LIBEAY_DLL_NAME;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/02/29 23:53</span>
<span style="color: rgba(0, 128, 128, 1)">2201</span>
<span style="color: rgba(0, 128, 128, 1)">2202</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,const EVP_MD *md, ENGINE *impl);</span>
<span style="color: rgba(0, 128, 128, 1)">2203</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> HMAC_Init_ex(ctx:pHMAC_CTX;
</span><span style="color: rgba(0, 128, 128, 1)">2204</span> <span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> key:PAnsichar;
</span><span style="color: rgba(0, 128, 128, 1)">2205</span> <span style="color: rgba(0, 0, 0, 1)"> Len:Integer;
</span><span style="color: rgba(0, 128, 128, 1)">2206</span> <span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> md:pEVP_MD;
</span><span style="color: rgba(0, 128, 128, 1)">2207</span> impl:pENGINE):integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span> LIBEAY_DLL_NAME;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/03/01 00:00</span>
<span style="color: rgba(0, 128, 128, 1)">2208</span>
<span style="color: rgba(0, 128, 128, 1)">2209</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len);</span>
<span style="color: rgba(0, 128, 128, 1)">2210</span> <span style="color: rgba(0, 0, 255, 1)">function</span> HMAC_Update(ctx:pHMAC_CTX;<span style="color: rgba(0, 0, 255, 1)">const</span> data:PAnsichar;len:Cardinal):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span> LIBEAY_DLL_NAME;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/03/01 00:05</span>
<span style="color: rgba(0, 128, 128, 1)">2211</span>
<span style="color: rgba(0, 128, 128, 1)">2212</span> <span style="color: rgba(0, 0, 255, 1)">function</span> HMAC_Final(ctx:pHMAC_CTX; md:PAnsichar;len:PInteger):Integer;<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span> LIBEAY_DLL_NAME;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/03/01 00:05</span>
<span style="color: rgba(0, 128, 128, 1)">2213</span>
<span style="color: rgba(0, 128, 128, 1)">2214</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> HMAC_CTX_cleanup(ctx:PHMAC_CTX);<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span> LIBEAY_DLL_NAME;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/03/01 00:06</span>
<span style="color: rgba(0, 128, 128, 1)">2215</span>
<span style="color: rgba(0, 128, 128, 1)">2216</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> HMAC_CTX_init(ctx:pHMAC_CTX);<span style="color: rgba(0, 0, 255, 1)">cdecl</span>;<span style="color: rgba(0, 0, 255, 1)">external</span> LIBEAY_DLL_NAME;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">2016/03/01 00:06</span>
<span style="color: rgba(0, 128, 128, 1)">2217</span>
<span style="color: rgba(0, 128, 128, 1)">2218</span> <span style="color: rgba(0, 0, 255, 1)">end</span>.</pre>
</div>
<p> </p>
<p>这里用的是RTC的request来实现的。</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">implementation</span>
<span style="color: rgba(0, 128, 128, 1)">2</span>
<span style="color: rgba(0, 128, 128, 1)">3</span>
<span style="color: rgba(0, 128, 128, 1)">4</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ <summary></span>
<span style="color: rgba(0, 128, 128, 1)">5</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ 获取UTC时间 格式:YYYYMMDDTHHMMSSZ。</span>
<span style="color: rgba(0, 128, 128, 1)">6</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ </summary></span>
<span style="color: rgba(0, 128, 128, 1)">7</span> <span style="color: rgba(0, 0, 255, 1)">function</span> Gettime:<span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">8</span> <span style="color: rgba(0, 0, 255, 1)">var</span>
<span style="color: rgba(0, 128, 128, 1)">9</span> <span style="color: rgba(0, 0, 0, 1)"> TimeNow: TDateTime;
</span><span style="color: rgba(0, 128, 128, 1)"> 10</span> <span style="color: rgba(0, 0, 0, 1)"> pTime: _TIME_ZONE_INFORMATION;
</span><span style="color: rgba(0, 128, 128, 1)"> 11</span> <span style="color: rgba(0, 0, 0, 1)"> Bias : Longint;
</span><span style="color: rgba(0, 128, 128, 1)"> 12</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)"> 13</span>GetTimeZoneInformation(pTime);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">获取时区</span>
<span style="color: rgba(0, 128, 128, 1)"> 14</span>Bias :=<span style="color: rgba(0, 0, 0, 1)"> pTime.Bias;
</span><span style="color: rgba(0, 128, 128, 1)"> 15</span>TimeNow :=<span style="color: rgba(0, 0, 0, 1)"> IncMinute(Now, Bias);
</span><span style="color: rgba(0, 128, 128, 1)"> 16</span>Result := FormatDateTime(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">yyyyMMdd</span><span style="color: rgba(128, 0, 0, 1)">'</span>,TimeNow)+<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">T</span><span style="color: rgba(128, 0, 0, 1)">'</span>+FormatDateTime(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">HHmmss</span><span style="color: rgba(128, 0, 0, 1)">'</span>,TimeNow)+<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Z</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 17</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 18</span>
<span style="color: rgba(0, 128, 128, 1)"> 19</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ <summary></span>
<span style="color: rgba(0, 128, 128, 1)"> 20</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ 字符串转16进制</span>
<span style="color: rgba(0, 128, 128, 1)"> 21</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ </summary></span>
<span style="color: rgba(0, 128, 128, 1)"> 22</span> <span style="color: rgba(0, 0, 255, 1)">function</span> StrToHex(s:<span style="color: rgba(0, 0, 255, 1)">string</span>):<span style="color: rgba(0, 0, 255, 1)">string</span>; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">字串转16进制</span>
<span style="color: rgba(0, 128, 128, 1)"> 23</span> <span style="color: rgba(0, 0, 255, 1)">var</span>
<span style="color: rgba(0, 128, 128, 1)"> 24</span>TmpStr:<span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 25</span> <span style="color: rgba(0, 0, 0, 1)"> i:integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 26</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)"> 27</span>TmpStr:=<span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 28</span><span style="color: rgba(0, 0, 255, 1)">for</span> i:=<span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">to</span> Length(s)<span style="color: rgba(0, 0, 255, 1)">do</span>
<span style="color: rgba(0, 128, 128, 1)"> 29</span><span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)"> 30</span> TmpStr:=TmpStr+IntToHex(ord(s),<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)"> 31</span><span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 32</span>Result:=<span style="color: rgba(0, 0, 0, 1)">TmpStr;
</span><span style="color: rgba(0, 128, 128, 1)"> 33</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 34</span>
<span style="color: rgba(0, 128, 128, 1)"> 35</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ <summary></span>
<span style="color: rgba(0, 128, 128, 1)"> 36</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ 摘抄diocpo的StringToUtf8Bytes 这里只管D7</span>
<span style="color: rgba(0, 128, 128, 1)"> 37</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ </summary></span>
<span style="color: rgba(0, 128, 128, 1)"> 38</span> <span style="color: rgba(0, 0, 255, 1)">function</span> StringToUtf8Bytes(<span style="color: rgba(0, 0, 255, 1)">const</span> pvData: <span style="color: rgba(0, 0, 255, 1)">string</span>; pvProcessEndByte: Boolean=<span style="color: rgba(0, 0, 0, 1)">false): TBytes;
</span><span style="color: rgba(0, 128, 128, 1)"> 39</span> <span style="color: rgba(0, 0, 255, 1)">var</span>
<span style="color: rgba(0, 128, 128, 1)"> 40</span> <span style="color: rgba(0, 0, 0, 1)">lvRawStr:AnsiString;
</span><span style="color: rgba(0, 128, 128, 1)"> 41</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)"> 42</span> lvRawStr :=<span style="color: rgba(0, 0, 0, 1)"> UTF8Encode(pvData);
</span><span style="color: rgba(0, 128, 128, 1)"> 43</span> <span style="color: rgba(0, 0, 255, 1)">if</span> pvProcessEndByte <span style="color: rgba(0, 0, 255, 1)">then</span>
<span style="color: rgba(0, 128, 128, 1)"> 44</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)"> 45</span> SetLength(Result, Length(lvRawStr) + <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)"> 46</span> Move(PAnsiChar(lvRawStr)^, Result[<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">], Length(lvRawStr));
</span><span style="color: rgba(0, 128, 128, 1)"> 47</span> Result := <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 48</span> <span style="color: rgba(0, 0, 255, 1)">end</span> <span style="color: rgba(0, 0, 255, 1)">else</span>
<span style="color: rgba(0, 128, 128, 1)"> 49</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)"> 50</span> <span style="color: rgba(0, 0, 0, 1)"> SetLength(Result, Length(lvRawStr));
</span><span style="color: rgba(0, 128, 128, 1)"> 51</span> Move(PAnsiChar(lvRawStr)^, Result[<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">], Length(lvRawStr));
</span><span style="color: rgba(0, 128, 128, 1)"> 52</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 53</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 54</span>
<span style="color: rgba(0, 128, 128, 1)"> 55</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ <summary></span>
<span style="color: rgba(0, 128, 128, 1)"> 56</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ 摘抄diocpo的URLEncode 改了排除的符号</span>
<span style="color: rgba(0, 128, 128, 1)"> 57</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ </summary></span>
<span style="color: rgba(0, 128, 128, 1)"> 58</span> <span style="color: rgba(0, 0, 255, 1)">function</span> URLEncode_RFC3986(AStr: String):<span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 59</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">华为接口</span>
<span style="color: rgba(0, 128, 128, 1)"> 60</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 根据以下规则对每个参数名和值进行URI编码:</span>
<span style="color: rgba(0, 128, 128, 1)"> 61</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">请勿对RFC 3986定义的任何非预留字符进行URI编码,这些字符包括:A-Z、a-z、0-9、-、_、.和~。</span>
<span style="color: rgba(0, 128, 128, 1)"> 62</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">使用%XY对所有非预留字符进行百分比编码,其中X和Y为十六进制字符(0-9和A-F)。</span>
<span style="color: rgba(0, 128, 128, 1)"> 63</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">例如,空格字符必须编码为%20,扩展UTF-8字符必须采用“%XY%ZA%BC”格式。</span>
<span style="color: rgba(0, 128, 128, 1)"> 64</span><span style="color: rgba(0, 0, 255, 1)">function</span> BufferURLEncode(pvBuff: PByte; pvLen: Integer): <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 65</span><span style="color: rgba(0, 0, 255, 1)">const</span>
<span style="color: rgba(0, 128, 128, 1)"> 66</span> NoConversion = [Ord(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">A</span><span style="color: rgba(128, 0, 0, 1)">'</span>) .. Ord(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Z</span><span style="color: rgba(128, 0, 0, 1)">'</span>), Ord(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">a</span><span style="color: rgba(128, 0, 0, 1)">'</span>) .. Ord(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">z</span><span style="color: rgba(128, 0, 0, 1)">'</span>), Ord(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">0</span><span style="color: rgba(128, 0, 0, 1)">'</span>) .. Ord(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">9</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">),
</span><span style="color: rgba(0, 128, 128, 1)"> 67</span> Ord(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">-</span><span style="color: rgba(128, 0, 0, 1)">'</span>),Ord(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">_</span><span style="color: rgba(128, 0, 0, 1)">'</span>),Ord(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">.</span><span style="color: rgba(128, 0, 0, 1)">'</span>),Ord(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">~</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)];
</span><span style="color: rgba(0, 128, 128, 1)"> 68</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Ord('@'), Ord('.'), Ord('_'), Ord('-'), Ord('0') .. Ord('9'), Ord('$'),</span>
<span style="color: rgba(0, 128, 128, 1)"> 69</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Ord('!'), Ord(''''), Ord('('), Ord(')')];</span>
<span style="color: rgba(0, 128, 128, 1)"> 70</span>
<span style="color: rgba(0, 128, 128, 1)"> 71</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> AppendByte(B: Byte; <span style="color: rgba(0, 0, 255, 1)">var</span><span style="color: rgba(0, 0, 0, 1)"> Buffer: PChar);
</span><span style="color: rgba(0, 128, 128, 1)"> 72</span> <span style="color: rgba(0, 0, 255, 1)">const</span>
<span style="color: rgba(0, 128, 128, 1)"> 73</span> Hex = <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">0123456789ABCDEF</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 74</span> <span style="color: rgba(0, 128, 0, 1)">{</span><span style="color: rgba(0, 128, 0, 1)">$IF CompilerVersion>= 28</span><span style="color: rgba(0, 128, 0, 1)">}</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> XE7</span>
<span style="color: rgba(0, 128, 128, 1)"> 75</span> LOW_INDEX = Low(<span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)"> 76</span> <span style="color: rgba(0, 128, 0, 1)">{</span><span style="color: rgba(0, 128, 0, 1)">$ELSE</span><span style="color: rgba(0, 128, 0, 1)">}</span>
<span style="color: rgba(0, 128, 128, 1)"> 77</span> LOW_INDEX = <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 78</span> <span style="color: rgba(0, 128, 0, 1)">{</span><span style="color: rgba(0, 128, 0, 1)">$IFEND</span><span style="color: rgba(0, 128, 0, 1)">}</span>
<span style="color: rgba(0, 128, 128, 1)"> 79</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)"> 80</span> Buffer[<span style="color: rgba(128, 0, 128, 1)">0</span>] := <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">%</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 81</span> Buffer[<span style="color: rgba(128, 0, 128, 1)">1</span>] := Hex;
</span><span style="color: rgba(0, 128, 128, 1)"> 82</span> Buffer[<span style="color: rgba(128, 0, 128, 1)">2</span>] := Hex;
</span><span style="color: rgba(0, 128, 128, 1)"> 83</span> inc(Buffer, <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)"> 84</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 85</span><span style="color: rgba(0, 0, 255, 1)">var</span>
<span style="color: rgba(0, 128, 128, 1)"> 86</span> <span style="color: rgba(0, 0, 0, 1)"> Rp: PChar;
</span><span style="color: rgba(0, 128, 128, 1)"> 87</span> <span style="color: rgba(0, 0, 0, 1)"> lvBuff: PByte;
</span><span style="color: rgba(0, 128, 128, 1)"> 88</span> <span style="color: rgba(0, 0, 0, 1)"> j: Integer;
</span><span style="color: rgba(0, 128, 128, 1)"> 89</span><span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)"> 90</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Characters that require more than 1 byte are translated as "percent-encoded byte"</span>
<span style="color: rgba(0, 128, 128, 1)"> 91</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> which will be encoded with 3 chars per byte -> %XX</span>
<span style="color: rgba(0, 128, 128, 1)"> 92</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Example: U+00D1 ($F1 in CodePage 1252)</span>
<span style="color: rgba(0, 128, 128, 1)"> 93</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> UTF-8 representation: $C3 $91 (2 bytes)</span>
<span style="color: rgba(0, 128, 128, 1)"> 94</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> URL encode representation: %C3%91</span>
<span style="color: rgba(0, 128, 128, 1)"> 95</span> <span style="color: rgba(0, 128, 0, 1)">//
</span><span style="color: rgba(0, 128, 128, 1)"> 96</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 3 characters to represent each byte</span>
<span style="color: rgba(0, 128, 128, 1)"> 97</span> SetLength(Result, pvLen * <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)"> 98</span> lvBuff :=<span style="color: rgba(0, 0, 0, 1)"> PByte(pvBuff);
</span><span style="color: rgba(0, 128, 128, 1)"> 99</span> Rp :=<span style="color: rgba(0, 0, 0, 1)"> PChar(Result);
</span><span style="color: rgba(0, 128, 128, 1)">100</span> j := <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">101</span> <span style="color: rgba(0, 0, 255, 1)">while</span> j < pvLen <span style="color: rgba(0, 0, 255, 1)">do</span>
<span style="color: rgba(0, 128, 128, 1)">102</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">103</span> <span style="color: rgba(0, 0, 255, 1)">if</span> lvBuff^ <span style="color: rgba(0, 0, 255, 1)">in</span> NoConversion <span style="color: rgba(0, 0, 255, 1)">then</span>
<span style="color: rgba(0, 128, 128, 1)">104</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">105</span> Rp^ :=<span style="color: rgba(0, 0, 0, 1)"> Char(lvBuff^);
</span><span style="color: rgba(0, 128, 128, 1)">106</span> <span style="color: rgba(0, 0, 0, 1)"> inc(Rp)
</span><span style="color: rgba(0, 128, 128, 1)">107</span> <span style="color: rgba(0, 0, 255, 1)">end</span>
<span style="color: rgba(0, 128, 128, 1)">108</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> else if pvBuff^ = Ord(' ') then</span>
<span style="color: rgba(0, 128, 128, 1)">109</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> begin</span>
<span style="color: rgba(0, 128, 128, 1)">110</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Rp^ := '+';</span>
<span style="color: rgba(0, 128, 128, 1)">111</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Inc(Rp)</span>
<span style="color: rgba(0, 128, 128, 1)">112</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> end</span>
<span style="color: rgba(0, 128, 128, 1)">113</span> <span style="color: rgba(0, 0, 255, 1)">else</span>
<span style="color: rgba(0, 128, 128, 1)">114</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">115</span> <span style="color: rgba(0, 0, 0, 1)"> AppendByte(lvBuff^, Rp)
</span><span style="color: rgba(0, 128, 128, 1)">116</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">117</span> <span style="color: rgba(0, 0, 0, 1)"> inc(lvBuff);
</span><span style="color: rgba(0, 128, 128, 1)">118</span> <span style="color: rgba(0, 0, 0, 1)"> inc(j);
</span><span style="color: rgba(0, 128, 128, 1)">119</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">120</span> SetLength(Result, Rp -<span style="color: rgba(0, 0, 0, 1)"> PChar(Result));
</span><span style="color: rgba(0, 128, 128, 1)">121</span><span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">122</span>
<span style="color: rgba(0, 128, 128, 1)">123</span> <span style="color: rgba(0, 0, 255, 1)">var</span>
<span style="color: rgba(0, 128, 128, 1)">124</span> <span style="color: rgba(0, 0, 0, 1)">lvBytes: TBytes;
</span><span style="color: rgba(0, 128, 128, 1)">125</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">126</span>lvBytes :=<span style="color: rgba(0, 0, 0, 1)"> TBytes(StringToUtf8Bytes(AStr));
</span><span style="color: rgba(0, 128, 128, 1)">127</span>
<span style="color: rgba(0, 128, 128, 1)">128</span>Result := BufferURLEncode(@lvBytes[<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">], length(lvBytes));
</span><span style="color: rgba(0, 128, 128, 1)">129</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">130</span>
<span style="color: rgba(0, 128, 128, 1)">131</span>
<span style="color: rgba(0, 128, 128, 1)">132</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ <summary></span>
<span style="color: rgba(0, 128, 128, 1)">133</span>
<span style="color: rgba(0, 128, 128, 1)">134</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/AnsiToUnicode</span>
<span style="color: rgba(0, 128, 128, 1)">135</span>
<span style="color: rgba(0, 128, 128, 1)">136</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ </summary></span>
<span style="color: rgba(0, 128, 128, 1)">137</span>
<span style="color: rgba(0, 128, 128, 1)">138</span> <span style="color: rgba(0, 0, 255, 1)">function</span> AnsiToUnicode(Str: ansistring): <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">139</span>
<span style="color: rgba(0, 128, 128, 1)">140</span> <span style="color: rgba(0, 0, 255, 1)">var</span>
<span style="color: rgba(0, 128, 128, 1)">141</span> <span style="color: rgba(0, 0, 0, 1)"> s: ansistring;
</span><span style="color: rgba(0, 128, 128, 1)">142</span> <span style="color: rgba(0, 0, 0, 1)"> i:integer;
</span><span style="color: rgba(0, 128, 128, 1)">143</span>j,k:<span style="color: rgba(0, 0, 255, 1)">string</span>[<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">];
</span><span style="color: rgba(0, 128, 128, 1)">144</span>a:<span style="color: rgba(0, 0, 255, 1)">array</span> [<span style="color: rgba(128, 0, 128, 1)">1</span>..<span style="color: rgba(128, 0, 128, 1)">1000</span>] <span style="color: rgba(0, 0, 255, 1)">of</span><span style="color: rgba(0, 0, 0, 1)">ansichar;
</span><span style="color: rgba(0, 128, 128, 1)">145</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">146</span>s:=<span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">147</span>StringToWideChar(Str,@(a[<span style="color: rgba(128, 0, 128, 1)">1</span>]),<span style="color: rgba(128, 0, 128, 1)">500</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">148</span>i:=<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">149</span><span style="color: rgba(0, 0, 255, 1)">while</span> ((a<>#<span style="color: rgba(128, 0, 128, 1)">0</span>) <span style="color: rgba(0, 0, 255, 1)">or</span> (a<>#<span style="color: rgba(128, 0, 128, 1)">0</span>)) <span style="color: rgba(0, 0, 255, 1)">do</span>
<span style="color: rgba(0, 128, 128, 1)">150</span><span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">151</span> j:=IntToHex(Integer(a),<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">152</span> k:=IntToHex(Integer(a),<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">153</span> s:=s+<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">\u</span><span style="color: rgba(128, 0, 0, 1)">'</span>+k+<span style="color: rgba(0, 0, 0, 1)">j;
</span><span style="color: rgba(0, 128, 128, 1)">154</span> i:=i+<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">155</span><span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">156</span>Result:=<span style="color: rgba(0, 0, 0, 1)">s;
</span><span style="color: rgba(0, 128, 128, 1)">157</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">158</span>
<span style="color: rgba(0, 128, 128, 1)">159</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ <summary></span>
<span style="color: rgba(0, 128, 128, 1)">160</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/UnicodeToChinese</span>
<span style="color: rgba(0, 128, 128, 1)">161</span>
<span style="color: rgba(0, 128, 128, 1)">162</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ </summary></span>
<span style="color: rgba(0, 128, 128, 1)">163</span> <span style="color: rgba(0, 0, 255, 1)">function</span> UnicodeToChinese(inputstr: <span style="color: rgba(0, 0, 255, 1)">string</span>): <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">164</span> <span style="color: rgba(0, 0, 255, 1)">var</span>
<span style="color: rgba(0, 128, 128, 1)">165</span> <span style="color: rgba(0, 0, 0, 1)"> i: Integer;
</span><span style="color: rgba(0, 128, 128, 1)">166</span> <span style="color: rgba(0, 0, 0, 1)"> index: Integer;
</span><span style="color: rgba(0, 128, 128, 1)">167</span>temp, top, last: <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">168</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">169</span>index := <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">170</span><span style="color: rgba(0, 0, 255, 1)">while</span> index >= <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(0, 0, 255, 1)">do</span>
<span style="color: rgba(0, 128, 128, 1)">171</span><span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">172</span> index := Pos(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">\u</span><span style="color: rgba(128, 0, 0, 1)">'</span>, inputstr) - <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">173</span> <span style="color: rgba(0, 0, 255, 1)">if</span> index < <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(0, 0, 255, 1)">then</span>
<span style="color: rgba(0, 128, 128, 1)">174</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">175</span> last :=<span style="color: rgba(0, 0, 0, 1)"> inputstr;
</span><span style="color: rgba(0, 128, 128, 1)">176</span> Result := Result +<span style="color: rgba(0, 0, 0, 1)"> last;
</span><span style="color: rgba(0, 128, 128, 1)">177</span> <span style="color: rgba(0, 0, 0, 1)"> Exit;
</span><span style="color: rgba(0, 128, 128, 1)">178</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">179</span> top := Copy(inputstr, <span style="color: rgba(128, 0, 128, 1)">1</span>, index); <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 取出 编码字符前的 非 unic 编码的字符,如数字</span>
<span style="color: rgba(0, 128, 128, 1)">180</span> temp := Copy(inputstr, index + <span style="color: rgba(128, 0, 128, 1)">1</span>, <span style="color: rgba(128, 0, 128, 1)">6</span>); <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 取出编码,包括 \u,如\u4e3f</span>
<span style="color: rgba(0, 128, 128, 1)">181</span> Delete(temp, <span style="color: rgba(128, 0, 128, 1)">1</span>, <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">182</span> Delete(inputstr, <span style="color: rgba(128, 0, 128, 1)">1</span>, index + <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">183</span> Result := Result + top + WideChar(StrToInt(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">$</span><span style="color: rgba(128, 0, 0, 1)">'</span> +<span style="color: rgba(0, 0, 0, 1)"> temp));
</span><span style="color: rgba(0, 128, 128, 1)">184</span><span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">185</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">186</span>
<span style="color: rgba(0, 128, 128, 1)">187</span>
<span style="color: rgba(0, 128, 128, 1)">188</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ <summary></span>
<span style="color: rgba(0, 128, 128, 1)">189</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ 生成备份名称</span>
<span style="color: rgba(0, 128, 128, 1)">190</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ </summary></span>
<span style="color: rgba(0, 128, 128, 1)">191</span> <span style="color: rgba(0, 0, 255, 1)">function</span> CreateBackupName:<span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">192</span>
<span style="color: rgba(0, 128, 128, 1)">193</span><span style="color: rgba(0, 0, 255, 1)">function</span> NumToStr (num, len, base: Integer; neg: Boolean; fill: char): <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">194</span>
<span style="color: rgba(0, 128, 128, 1)">195</span> <span style="color: rgba(0, 0, 255, 1)">const</span>
<span style="color: rgba(0, 128, 128, 1)">196</span> MinBase = <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">197</span> MaxBase = <span style="color: rgba(128, 0, 128, 1)">36</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">198</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> num = 要转换的数</span>
<span style="color: rgba(0, 128, 128, 1)">199</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> len = 生成字符串的最小长度</span>
<span style="color: rgba(0, 128, 128, 1)">200</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> base = 进制数 2 = 二进制</span>
<span style="color: rgba(0, 128, 128, 1)">201</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> neg = 是否允许负数</span>
<span style="color: rgba(0, 128, 128, 1)">202</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> fill = 填充字符用于补满字符串长度//</span>
<span style="color: rgba(0, 128, 128, 1)">203</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 用法:</span>
<span style="color: rgba(0, 128, 128, 1)">204</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> NumToStr (45, 8, 2, false, '0') > '00101101'</span>
<span style="color: rgba(0, 128, 128, 1)">205</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> NumToStr (45, 4, 8, false, '0') > '0055'</span>
<span style="color: rgba(0, 128, 128, 1)">206</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> NumToStr (45, 4, 10, false, ' ') > ' 45'</span>
<span style="color: rgba(0, 128, 128, 1)">207</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> NumToStr (45, 4, 16, false, '0') > '002D'</span>
<span style="color: rgba(0, 128, 128, 1)">208</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> NumToStr (45, 0, 36, false, ' ') > '19'</span>
<span style="color: rgba(0, 128, 128, 1)">209</span> <span style="color: rgba(0, 0, 255, 1)">var</span>
<span style="color: rgba(0, 128, 128, 1)">210</span> s: <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">211</span> <span style="color: rgba(0, 0, 0, 1)"> digit: Integer;
</span><span style="color: rgba(0, 128, 128, 1)">212</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">213</span> num:=<span style="color: rgba(0, 0, 0, 1)"> ABS (num);
</span><span style="color: rgba(0, 128, 128, 1)">214</span> <span style="color: rgba(0, 0, 255, 1)">if</span> ((base >= MinBase) <span style="color: rgba(0, 0, 255, 1)">and</span> (base <= MaxBase)) <span style="color: rgba(0, 0, 255, 1)">then</span>
<span style="color: rgba(0, 128, 128, 1)">215</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">216</span> s:= <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">217</span> <span style="color: rgba(0, 0, 255, 1)">repeat</span>
<span style="color: rgba(0, 128, 128, 1)">218</span> digit:= num <span style="color: rgba(0, 0, 255, 1)">mod</span><span style="color: rgba(0, 0, 0, 1)"> base;
</span><span style="color: rgba(0, 128, 128, 1)">219</span> <span style="color: rgba(0, 0, 255, 1)">if</span> digit < <span style="color: rgba(128, 0, 128, 1)">10</span> <span style="color: rgba(0, 0, 255, 1)">then</span>
<span style="color: rgba(0, 128, 128, 1)">220</span> Insert (CHR (digit + <span style="color: rgba(128, 0, 128, 1)">48</span>), s, <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 128, 128, 1)">221</span> <span style="color: rgba(0, 0, 255, 1)">else</span>
<span style="color: rgba(0, 128, 128, 1)">222</span> Insert (CHR (digit + <span style="color: rgba(128, 0, 128, 1)">55</span>), s, <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">223</span> num:= num <span style="color: rgba(0, 0, 255, 1)">div</span><span style="color: rgba(0, 0, 0, 1)"> base;
</span><span style="color: rgba(0, 128, 128, 1)">224</span> <span style="color: rgba(0, 0, 255, 1)">until</span> num = <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">225</span> <span style="color: rgba(0, 0, 255, 1)">if</span> neg <span style="color: rgba(0, 0, 255, 1)">then</span>
<span style="color: rgba(0, 128, 128, 1)">226</span> Insert (<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">-</span><span style="color: rgba(128, 0, 0, 1)">'</span>, s, <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">227</span> <span style="color: rgba(0, 0, 255, 1)">while</span> Length(s) < len <span style="color: rgba(0, 0, 255, 1)">do</span>
<span style="color: rgba(0, 128, 128, 1)">228</span> Insert (fill, s, <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">229</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">230</span> Result:=<span style="color: rgba(0, 0, 0, 1)"> s;
</span><span style="color: rgba(0, 128, 128, 1)">231</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">232</span>
<span style="color: rgba(0, 128, 128, 1)">233</span>
<span style="color: rgba(0, 128, 128, 1)">234</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">235</span> <span style="color: rgba(0, 0, 0, 1)">Randomize;
</span><span style="color: rgba(0, 128, 128, 1)">236</span> Result := <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">backup-</span><span style="color: rgba(128, 0, 0, 1)">'</span>+LowerCase(NumToStr(Floor(<span style="color: rgba(128, 0, 128, 1)">2147483648</span> * random), <span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(128, 0, 128, 1)">4</span>, False, <span style="color: rgba(128, 0, 0, 1)">'</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">));
</span><span style="color: rgba(0, 128, 128, 1)">237</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">238</span>
<span style="color: rgba(0, 128, 128, 1)">239</span>
<span style="color: rgba(0, 128, 128, 1)">240</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">***************** libeay32dll相关******************</span>
<span style="color: rgba(0, 128, 128, 1)">241</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span><span style="color: rgba(0, 0, 0, 1)"> LoadSSL;
</span><span style="color: rgba(0, 128, 128, 1)">242</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">243</span> <span style="color: rgba(0, 0, 0, 1)">OpenSSL_add_all_algorithms;
</span><span style="color: rgba(0, 128, 128, 1)">244</span> <span style="color: rgba(0, 0, 0, 1)">OpenSSL_add_all_ciphers;
</span><span style="color: rgba(0, 128, 128, 1)">245</span> <span style="color: rgba(0, 0, 0, 1)">OpenSSL_add_all_digests;
</span><span style="color: rgba(0, 128, 128, 1)">246</span> <span style="color: rgba(0, 0, 0, 1)">ERR_load_crypto_strings;
</span><span style="color: rgba(0, 128, 128, 1)">247</span> <span style="color: rgba(0, 0, 0, 1)">ERR_load_RSA_strings;
</span><span style="color: rgba(0, 128, 128, 1)">248</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">249</span>
<span style="color: rgba(0, 128, 128, 1)">250</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span><span style="color: rgba(0, 0, 0, 1)"> FreeSSL;
</span><span style="color: rgba(0, 128, 128, 1)">251</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">252</span> <span style="color: rgba(0, 0, 0, 1)">EVP_cleanup;
</span><span style="color: rgba(0, 128, 128, 1)">253</span> ERR_<span style="color: rgba(0, 0, 255, 1)">free</span><span style="color: rgba(0, 0, 0, 1)">_strings;
</span><span style="color: rgba(0, 128, 128, 1)">254</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">255</span>
<span style="color: rgba(0, 128, 128, 1)">256</span> <span style="color: rgba(0, 0, 255, 1)">function</span> UTF8Bytes(<span style="color: rgba(0, 0, 255, 1)">const</span><span style="color: rgba(0, 0, 0, 1)"> s: UTF8String): TBytes;
</span><span style="color: rgba(0, 128, 128, 1)">257</span> <span style="color: rgba(0, 0, 255, 1)">var</span>
<span style="color: rgba(0, 128, 128, 1)">258</span> <span style="color: rgba(0, 0, 0, 1)"> B: TBytes;
</span><span style="color: rgba(0, 128, 128, 1)">259</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">260</span> <span style="color: rgba(0, 0, 0, 1)">SetLength(B,Length(S));
</span><span style="color: rgba(0, 128, 128, 1)">261</span> CopyMemory(@B[<span style="color: rgba(128, 0, 128, 1)">0</span>],@S[<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">],Length(S));
</span><span style="color: rgba(0, 128, 128, 1)">262</span> Result:=<span style="color: rgba(0, 0, 0, 1)">B;
</span><span style="color: rgba(0, 128, 128, 1)">263</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">264</span>
<span style="color: rgba(0, 128, 128, 1)">265</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ <summary></span>
<span style="color: rgba(0, 128, 128, 1)">266</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ 摘抄网上调 libeay32.dll 字符串哈希值</span>
<span style="color: rgba(0, 128, 128, 1)">267</span>
<span style="color: rgba(0, 128, 128, 1)">268</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ </summary></span>
<span style="color: rgba(0, 128, 128, 1)">269</span> <span style="color: rgba(0, 0, 255, 1)">function</span> GetSHA256(AData: <span style="color: rgba(0, 0, 255, 1)">string</span>): <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">270</span> <span style="color: rgba(0, 0, 255, 1)">var</span>
<span style="color: rgba(0, 128, 128, 1)">271</span> <span style="color: rgba(0, 0, 0, 1)">Len: cardinal;
</span><span style="color: rgba(0, 128, 128, 1)">272</span> <span style="color: rgba(0, 0, 0, 1)">mdctx: EVP_MD_CTX;
</span><span style="color: rgba(0, 128, 128, 1)">273</span> inbuf, outbuf: <span style="color: rgba(0, 0, 255, 1)">array</span> [<span style="color: rgba(128, 0, 128, 1)">0</span>..<span style="color: rgba(128, 0, 128, 1)">1023</span>] <span style="color: rgba(0, 0, 255, 1)">of</span><span style="color: rgba(0, 0, 0, 1)"> char;
</span><span style="color: rgba(0, 128, 128, 1)">274</span> <span style="color: rgba(0, 0, 0, 1)">key: pEVP_PKEY;
</span><span style="color: rgba(0, 128, 128, 1)">275</span> <span style="color: rgba(0, 0, 0, 1)">r: PAnsiChar;
</span><span style="color: rgba(0, 128, 128, 1)">276</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">277</span> <span style="color: rgba(0, 0, 0, 1)">StrPCopy(inbuf, AData);
</span><span style="color: rgba(0, 128, 128, 1)">278</span> <span style="color: rgba(0, 0, 0, 1)">LoadSSL;
</span><span style="color: rgba(0, 128, 128, 1)">279</span>
<span style="color: rgba(0, 128, 128, 1)">280</span> <span style="color: rgba(0, 0, 0, 1)">EVP_DigestInit(@mdctx, EVP_sha256());
</span><span style="color: rgba(0, 128, 128, 1)">281</span> <span style="color: rgba(0, 0, 0, 1)">EVP_DigestUpdate(@mdctx, @inbuf, StrLen(inbuf));
</span><span style="color: rgba(0, 128, 128, 1)">282</span> <span style="color: rgba(0, 0, 0, 1)">EVP_DigestFinal(@mdctx, @outbuf, Len);
</span><span style="color: rgba(0, 128, 128, 1)">283</span>
<span style="color: rgba(0, 128, 128, 1)">284</span> <span style="color: rgba(0, 0, 0, 1)">FreeSSL;
</span><span style="color: rgba(0, 128, 128, 1)">285</span> <span style="color: rgba(0, 0, 0, 1)">BinToHex(outbuf, inbuf,Len);
</span><span style="color: rgba(0, 128, 128, 1)">286</span> inbuf[<span style="color: rgba(128, 0, 128, 1)">2</span>*Len]:=#<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">287</span> result :=<span style="color: rgba(0, 0, 0, 1)"> LowerCase(StrPas(inbuf));
</span><span style="color: rgba(0, 128, 128, 1)">288</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">289</span>
<span style="color: rgba(0, 128, 128, 1)">290</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ <summary></span>
<span style="color: rgba(0, 128, 128, 1)">291</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ 摘抄网上调 libeay32.dll 签名字符串 sha256</span>
<span style="color: rgba(0, 128, 128, 1)">292</span>
<span style="color: rgba(0, 128, 128, 1)">293</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ </summary></span>
<span style="color: rgba(0, 128, 128, 1)">294</span>
<span style="color: rgba(0, 128, 128, 1)">295</span> <span style="color: rgba(0, 0, 255, 1)">function</span> GetHMAC(<span style="color: rgba(0, 0, 255, 1)">const</span> AData,AKey: <span style="color: rgba(0, 0, 255, 1)">string</span>): <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">296</span> <span style="color: rgba(0, 0, 255, 1)">var</span>
<span style="color: rgba(0, 128, 128, 1)">297</span> <span style="color: rgba(0, 0, 0, 1)">key, data, rsa256: TBytes;
</span><span style="color: rgba(0, 128, 128, 1)">298</span> <span style="color: rgba(0, 0, 0, 1)">md_len: integer;
</span><span style="color: rgba(0, 128, 128, 1)">299</span> <span style="color: rgba(0, 0, 0, 1)">res: PByte;
</span><span style="color: rgba(0, 128, 128, 1)">300</span> <span style="color: rgba(0, 0, 0, 1)">i: integer;
</span><span style="color: rgba(0, 128, 128, 1)">301</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">302</span> Result := <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">303</span> <span style="color: rgba(0, 0, 0, 1)">LoadSSL;
</span><span style="color: rgba(0, 128, 128, 1)">304</span> key :=<span style="color: rgba(0, 0, 0, 1)"> UTF8Bytes(AKey);
</span><span style="color: rgba(0, 128, 128, 1)">305</span> data :=<span style="color: rgba(0, 0, 0, 1)"> UTF8Bytes(AData);
</span><span style="color: rgba(0, 128, 128, 1)">306</span> md_len :=<span style="color: rgba(0, 0, 0, 1)"> EVP_MAX_MD_SIZE;
</span><span style="color: rgba(0, 128, 128, 1)">307</span> <span style="color: rgba(0, 0, 0, 1)">SetLength(rsa256, md_len);
</span><span style="color: rgba(0, 128, 128, 1)">308</span>
<span style="color: rgba(0, 128, 128, 1)">309</span> res := HMAC(EVP_sha256, @key[<span style="color: rgba(128, 0, 128, 1)">0</span>], Length(key), @data[<span style="color: rgba(128, 0, 128, 1)">0</span>], Length(data), @rsa256[<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">], md_len);
</span><span style="color: rgba(0, 128, 128, 1)">310</span> <span style="color: rgba(0, 0, 255, 1)">if</span> (res <> <span style="color: rgba(0, 0, 255, 1)">nil</span>) <span style="color: rgba(0, 0, 255, 1)">then</span>
<span style="color: rgba(0, 128, 128, 1)">311</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">312</span> <span style="color: rgba(0, 0, 0, 1)"> SetLength(rsa256, md_len);
</span><span style="color: rgba(0, 128, 128, 1)">313</span> <span style="color: rgba(0, 0, 255, 1)">for</span> i := low(rsa256) <span style="color: rgba(0, 0, 255, 1)">to</span> high(rsa256) <span style="color: rgba(0, 0, 255, 1)">do</span>
<span style="color: rgba(0, 128, 128, 1)">314</span> Result:= Result+IntToHex(rsa256,<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">315</span> Result :=<span style="color: rgba(0, 0, 0, 1)"> LowerCase(Result);
</span><span style="color: rgba(0, 128, 128, 1)">316</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">317</span> <span style="color: rgba(0, 0, 0, 1)">FreeSSL;
</span><span style="color: rgba(0, 128, 128, 1)">318</span> <span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">319</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">***************** libeay32dll相关******************</span>
<span style="color: rgba(0, 128, 128, 1)">320</span>
<span style="color: rgba(0, 128, 128, 1)">321</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ <summary></span>
<span style="color: rgba(0, 128, 128, 1)">322</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ 华为云接口的aksk签名</span>
<span style="color: rgba(0, 128, 128, 1)">323</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">/ </summary></span>
<span style="color: rgba(0, 128, 128, 1)">324</span> <span style="color: rgba(0, 0, 255, 1)">procedure</span> HuaweiSetAuthorization(RtcDataRequest:TRtcDataRequest; Accesskey, SecretAccessKey:<span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">325</span> <span style="color: rgba(0, 0, 255, 1)">const</span>
<span style="color: rgba(0, 128, 128, 1)">326</span> Algorithm :<span style="color: rgba(0, 0, 255, 1)">string</span> =<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">SDK-HMAC-SHA256</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">327</span> HeaderXDate :<span style="color: rgba(0, 0, 255, 1)">string</span> =<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">X-Sdk-Date</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">328</span> HeaderAuthorization :<span style="color: rgba(0, 0, 255, 1)">string</span> = <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Authorization</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">329</span>
<span style="color: rgba(0, 128, 128, 1)">330</span> <span style="color: rgba(0, 0, 255, 1)">var</span>
<span style="color: rgba(0, 128, 128, 1)">331</span>CanonicalRequest,HashedCanonicalRequest:<span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">332</span>XSdkDate, StringToSign, Signature,Authorization :<span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">333</span> <span style="color: rgba(0, 0, 0, 1)"> HTTPRequestMethod,CanonicalURI,CanonicalQueryString,
</span><span style="color: rgba(0, 128, 128, 1)">334</span>CanonicalHeaders,SignedHeaders,hasRequestPayload:<span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">335</span> <span style="color: rgba(0, 0, 0, 1)"> SortList:TStringList;
</span><span style="color: rgba(0, 128, 128, 1)">336</span> <span style="color: rgba(0, 0, 0, 1)"> i: integer;
</span><span style="color: rgba(0, 128, 128, 1)">337</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">338</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">headers 添加时间</span>
<span style="color: rgba(0, 128, 128, 1)">339</span>XSdkDate :=<span style="color: rgba(0, 0, 0, 1)">Gettime;
</span><span style="color: rgba(0, 128, 128, 1)">340</span>RtcDataRequest.Request.asString :=<span style="color: rgba(0, 0, 0, 1)"> XSdkDate;
</span><span style="color: rgba(0, 128, 128, 1)">341</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">规范请求的方法</span>
<span style="color: rgba(0, 128, 128, 1)">342</span>HTTPRequestMethod :=<span style="color: rgba(0, 0, 0, 1)"> RtcDataRequest.Request.Method;
</span><span style="color: rgba(0, 128, 128, 1)">343</span>
<span style="color: rgba(0, 128, 128, 1)">344</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">规范URI参数</span>
<span style="color: rgba(0, 128, 128, 1)">345</span>CanonicalURI := <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">346</span><span style="color: rgba(0, 0, 255, 1)">for</span> i := <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(0, 0, 255, 1)">to</span> RtcDataRequest.Request.FilePath.Count -<span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">do</span>
<span style="color: rgba(0, 128, 128, 1)">347</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">路径中每个部分必须为URI编码 RFC3986 标准</span>
<span style="color: rgba(0, 128, 128, 1)">348</span>CanonicalURI := CanonicalURI+URLEncode_RFC3986(RtcDataRequest.Request.FilePath.Value)+<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">349</span>
<span style="color: rgba(0, 128, 128, 1)">350</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">规范查询字符串</span>
<span style="color: rgba(0, 128, 128, 1)">351</span>SortList := TStringList.<span style="color: rgba(0, 0, 255, 1)">Create</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">352</span> <span style="color: rgba(0, 0, 0, 1)"> SortList.Clear;
</span><span style="color: rgba(0, 128, 128, 1)">353</span><span style="color: rgba(0, 0, 255, 1)">for</span> i := <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(0, 0, 255, 1)">to</span> RtcDataRequest.Request.Query.ItemCount -<span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">do</span>
<span style="color: rgba(0, 128, 128, 1)">354</span> <span style="color: rgba(0, 0, 255, 1)">with</span> RtcDataRequest.Request.Query <span style="color: rgba(0, 0, 255, 1)">do</span>
<span style="color: rgba(0, 128, 128, 1)">355</span> SortList.Add(URLEncode_RFC3986(ItemName)+<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">=</span><span style="color: rgba(128, 0, 0, 1)">'</span>+<span style="color: rgba(0, 0, 0, 1)">URLEncode_RFC3986(ItemValue));
</span><span style="color: rgba(0, 128, 128, 1)">356</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">按字符串去排序</span>
<span style="color: rgba(0, 128, 128, 1)">357</span> <span style="color: rgba(0, 0, 0, 1)"> SortList.Sort;
</span><span style="color: rgba(0, 128, 128, 1)">358</span>
<span style="color: rgba(0, 128, 128, 1)">359</span>CanonicalQueryString := <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">360</span><span style="color: rgba(0, 0, 255, 1)">for</span> i := <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(0, 0, 255, 1)">to</span> SortList.Count-<span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">do</span>
<span style="color: rgba(0, 128, 128, 1)">361</span> CanonicalQueryString := CanonicalQueryString+SortList+<span style="color: rgba(0, 0, 0, 1)">RtcDataRequest.Request.Query.Delimiter;
</span><span style="color: rgba(0, 128, 128, 1)">362</span><span style="color: rgba(0, 0, 255, 1)">if</span> CanonicalQueryString <> <span style="color: rgba(128, 0, 0, 1)">''</span> <span style="color: rgba(0, 0, 255, 1)">then</span>
<span style="color: rgba(0, 128, 128, 1)">363</span> CanonicalQueryString := Copy(CanonicalQueryString, <span style="color: rgba(128, 0, 128, 1)">1</span>,Length(CanonicalQueryString)-<span style="color: rgba(0, 0, 0, 1)">Length(RtcDataRequest.Request.Query.Delimiter));
</span><span style="color: rgba(0, 128, 128, 1)">364</span>
<span style="color: rgba(0, 128, 128, 1)">365</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">规范消息头</span>
<span style="color: rgba(0, 128, 128, 1)">366</span> <span style="color: rgba(0, 0, 0, 1)"> SortList.Clear;
</span><span style="color: rgba(0, 128, 128, 1)">367</span><span style="color: rgba(0, 0, 255, 1)">for</span> i := <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(0, 0, 255, 1)">to</span> RtcDataRequest.Request.ItemCount -<span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">do</span>
<span style="color: rgba(0, 128, 128, 1)">368</span> SortList.Add(LowerCase(RtcDataRequest.Request.ItemName)+<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">:</span><span style="color: rgba(128, 0, 0, 1)">'</span>+<span style="color: rgba(0, 0, 0, 1)">Trim(RtcDataRequest.Request.ItemValue));
</span><span style="color: rgba(0, 128, 128, 1)">369</span> <span style="color: rgba(0, 0, 0, 1)"> SortList.Sort;
</span><span style="color: rgba(0, 128, 128, 1)">370</span>
<span style="color: rgba(0, 128, 128, 1)">371</span>CanonicalHeaders := <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">372</span><span style="color: rgba(0, 0, 255, 1)">for</span> i := <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(0, 0, 255, 1)">to</span> SortList.Count -<span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">do</span>
<span style="color: rgba(0, 128, 128, 1)">373</span> CanonicalHeaders := CanonicalHeaders+SortList+#<span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">374</span>
<span style="color: rgba(0, 128, 128, 1)">375</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">签名的消息头声明</span>
<span style="color: rgba(0, 128, 128, 1)">376</span> <span style="color: rgba(0, 0, 0, 1)"> SortList.Clear;
</span><span style="color: rgba(0, 128, 128, 1)">377</span><span style="color: rgba(0, 0, 255, 1)">for</span> i := <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(0, 0, 255, 1)">to</span> RtcDataRequest.Request.ItemCount -<span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">do</span>
<span style="color: rgba(0, 128, 128, 1)">378</span> <span style="color: rgba(0, 0, 0, 1)">SortList.Add(LowerCase(RtcDataRequest.Request.ItemName));
</span><span style="color: rgba(0, 128, 128, 1)">379</span> <span style="color: rgba(0, 0, 0, 1)"> SortList.Sort;
</span><span style="color: rgba(0, 128, 128, 1)">380</span>
<span style="color: rgba(0, 128, 128, 1)">381</span>SignedHeaders := <span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">382</span><span style="color: rgba(0, 0, 255, 1)">for</span> i := <span style="color: rgba(128, 0, 128, 1)">0</span> <span style="color: rgba(0, 0, 255, 1)">to</span> SortList.Count -<span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">do</span>
<span style="color: rgba(0, 128, 128, 1)">383</span> SignedHeaders := SignedHeaders+SortList+<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">;</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">384</span>
<span style="color: rgba(0, 128, 128, 1)">385</span> <span style="color: rgba(0, 0, 0, 1)"> SortList.Free;
</span><span style="color: rgba(0, 128, 128, 1)">386</span>
<span style="color: rgba(0, 128, 128, 1)">387</span><span style="color: rgba(0, 0, 255, 1)">if</span> SignedHeaders <> <span style="color: rgba(128, 0, 0, 1)">''</span> <span style="color: rgba(0, 0, 255, 1)">then</span>
<span style="color: rgba(0, 128, 128, 1)">388</span> SignedHeaders := Copy(SignedHeaders, <span style="color: rgba(128, 0, 128, 1)">1</span>, Length(SignedHeaders)-<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">389</span>
<span style="color: rgba(0, 128, 128, 1)">390</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">使用SHA 256哈希函数以基于HTTP或HTTPS请求正文中的body体(RequestPayload),创建哈希值。</span>
<span style="color: rgba(0, 128, 128, 1)">391</span>hasRequestPayload :=<span style="color: rgba(0, 0, 0, 1)"> GetSHA256(RtcDataRequest.Request.Params.Text);
</span><span style="color: rgba(0, 128, 128, 1)">392</span>
<span style="color: rgba(0, 128, 128, 1)">393</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">规范请求构造</span>
<span style="color: rgba(0, 128, 128, 1)">394</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> HTTPRequestMethod + '\n' +</span>
<span style="color: rgba(0, 128, 128, 1)">395</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> CanonicalURI + '\n' +</span>
<span style="color: rgba(0, 128, 128, 1)">396</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> CanonicalQueryString + '\n' +</span>
<span style="color: rgba(0, 128, 128, 1)">397</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> CanonicalHeaders + '\n' +</span>
<span style="color: rgba(0, 128, 128, 1)">398</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> SignedHeaders + '\n' +</span>
<span style="color: rgba(0, 128, 128, 1)">399</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> HexEncode(Hash(RequestPayload))</span>
<span style="color: rgba(0, 128, 128, 1)">400</span>
<span style="color: rgba(0, 128, 128, 1)">401</span>CanonicalRequest := Format(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">%s</span><span style="color: rgba(128, 0, 0, 1)">'</span>+#<span style="color: rgba(128, 0, 128, 1)">10</span>+
<span style="color: rgba(0, 128, 128, 1)">402</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">%s</span><span style="color: rgba(128, 0, 0, 1)">'</span>+#<span style="color: rgba(128, 0, 128, 1)">10</span>+
<span style="color: rgba(0, 128, 128, 1)">403</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">%s</span><span style="color: rgba(128, 0, 0, 1)">'</span>+#<span style="color: rgba(128, 0, 128, 1)">10</span>+
<span style="color: rgba(0, 128, 128, 1)">404</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">%s</span><span style="color: rgba(128, 0, 0, 1)">'</span>+#<span style="color: rgba(128, 0, 128, 1)">10</span>+
<span style="color: rgba(0, 128, 128, 1)">405</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">%s</span><span style="color: rgba(128, 0, 0, 1)">'</span>+#<span style="color: rgba(128, 0, 128, 1)">10</span>+
<span style="color: rgba(0, 128, 128, 1)">406</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">%s</span><span style="color: rgba(128, 0, 0, 1)">'</span>
<span style="color: rgba(0, 128, 128, 1)">407</span> <span style="color: rgba(0, 0, 0, 1)"> ,[HTTPRequestMethod,
</span><span style="color: rgba(0, 128, 128, 1)">408</span> <span style="color: rgba(0, 0, 0, 1)"> CanonicalURI,
</span><span style="color: rgba(0, 128, 128, 1)">409</span> <span style="color: rgba(0, 0, 0, 1)"> CanonicalQueryString,
</span><span style="color: rgba(0, 128, 128, 1)">410</span> <span style="color: rgba(0, 0, 0, 1)"> CanonicalHeaders,
</span><span style="color: rgba(0, 128, 128, 1)">411</span> <span style="color: rgba(0, 0, 0, 1)"> SignedHeaders,
</span><span style="color: rgba(0, 128, 128, 1)">412</span> <span style="color: rgba(0, 0, 0, 1)"> hasRequestPayload
</span><span style="color: rgba(0, 128, 128, 1)">413</span> <span style="color: rgba(0, 0, 0, 1)"> ] );
</span><span style="color: rgba(0, 128, 128, 1)">414</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Form1.Memo1.lines.add('规范请求');</span>
<span style="color: rgba(0, 128, 128, 1)">415</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Form1.Memo1.lines.add(CanonicalRequest);</span>
<span style="color: rgba(0, 128, 128, 1)">416</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ShowMessage(CanonicalRequest);</span>
<span style="color: rgba(0, 128, 128, 1)">417</span>
<span style="color: rgba(0, 128, 128, 1)">418</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> showmessage(CanonicalRequest);</span>
<span style="color: rgba(0, 128, 128, 1)">419</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">对构造好的规范请求进行SHA256 创建哈希值</span>
<span style="color: rgba(0, 128, 128, 1)">420</span>HashedCanonicalRequest :=<span style="color: rgba(0, 0, 0, 1)"> GetSHA256(CanonicalRequest);
</span><span style="color: rgba(0, 128, 128, 1)">421</span>
<span style="color: rgba(0, 128, 128, 1)">422</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">创建待签字符串</span>
<span style="color: rgba(0, 128, 128, 1)">423</span>StringToSign := Algorithm+#<span style="color: rgba(128, 0, 128, 1)">10</span>+XSdkDate+#<span style="color: rgba(128, 0, 128, 1)">10</span>+<span style="color: rgba(0, 0, 0, 1)">HashedCanonicalRequest;
</span><span style="color: rgba(0, 128, 128, 1)">424</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Form1.Memo1.lines.add('待签字符串');</span>
<span style="color: rgba(0, 128, 128, 1)">425</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Form1.Memo1.lines.add(StringToSign);</span>
<span style="color: rgba(0, 128, 128, 1)">426</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ShowMessage(StringToSign);</span>
<span style="color: rgba(0, 128, 128, 1)">427</span>
<span style="color: rgba(0, 128, 128, 1)">428</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">进行签名</span>
<span style="color: rgba(0, 128, 128, 1)">429</span>Signature :=<span style="color: rgba(0, 0, 0, 1)"> GetHMAC(StringToSign, SecretAccessKey);
</span><span style="color: rgba(0, 128, 128, 1)">430</span>
<span style="color: rgba(0, 128, 128, 1)">431</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">最终的签名</span>
<span style="color: rgba(0, 128, 128, 1)">432</span>Authorization := Algorithm+<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)"> Access=</span><span style="color: rgba(128, 0, 0, 1)">'</span>+Accesskey+<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">, SignedHeaders=</span><span style="color: rgba(128, 0, 0, 1)">'</span>+SignedHeaders+<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">, Signature=</span><span style="color: rgba(128, 0, 0, 1)">'</span>+<span style="color: rgba(0, 0, 0, 1)">Signature;
</span><span style="color: rgba(0, 128, 128, 1)">433</span>
<span style="color: rgba(0, 128, 128, 1)">434</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Form1.Memo1.lines.add('最终的签名');</span>
<span style="color: rgba(0, 128, 128, 1)">435</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Form1.Memo1.lines.add(Authorization);</span>
<span style="color: rgba(0, 128, 128, 1)">436</span>
<span style="color: rgba(0, 128, 128, 1)">437</span>RtcDataRequest.Request.asString :=<span style="color: rgba(0, 0, 0, 1)">Authorization;
</span><span style="color: rgba(0, 128, 128, 1)">438</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Form1.Memo1.lines.add('最终HeaderText签名');</span>
<span style="color: rgba(0, 128, 128, 1)">439</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> Form1.Memo1.lines.add(RtcDataRequest.Request.HeaderText);</span>
<span style="color: rgba(0, 128, 128, 1)">440</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ShowMessage(RtcDataRequest.Request.HeaderText);</span>
<span style="color: rgba(0, 128, 128, 1)">441</span>
<span style="color: rgba(0, 128, 128, 1)">442</span> <span style="color: rgba(0, 0, 255, 1)">end</span>;</pre>
</div>
<p>用法:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> <span style="color: rgba(0, 0, 255, 1)">function</span> TForm1.BackupDB(instance_id,dbs,dbjons:<span style="color: rgba(0, 0, 255, 1)">string</span>; AbackupName:<span style="color: rgba(0, 0, 255, 1)">string</span>=<span style="color: rgba(128, 0, 0, 1)">''</span>): <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 2</span> <span style="color: rgba(0, 0, 255, 1)">var</span>
<span style="color: rgba(0, 128, 128, 1)"> 3</span>backupname:<span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 4</span> <span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)"> 5</span><span style="color: rgba(0, 0, 255, 1)">with</span> RtcHttpClient <span style="color: rgba(0, 0, 255, 1)">do</span>
<span style="color: rgba(0, 128, 128, 1)"> 6</span><span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)"> 7</span> <span style="color: rgba(0, 0, 0, 1)">Disconnect;
</span><span style="color: rgba(0, 128, 128, 1)"> 8</span> ServerAddr := <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">rds.</span><span style="color: rgba(128, 0, 0, 1)">'</span>+Endpoint+<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">.myhuaweicloud.com</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 9</span> ServerPort := <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">443</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">10</span> <span style="color: rgba(0, 0, 0, 1)">Connect();
</span><span style="color: rgba(0, 128, 128, 1)">11</span> <span style="color: rgba(0, 0, 0, 1)">SkipRequests;
</span><span style="color: rgba(0, 128, 128, 1)">12</span><span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">13</span>backupname :=<span style="color: rgba(0, 0, 0, 1)"> AbackupName;
</span><span style="color: rgba(0, 128, 128, 1)">14</span><span style="color: rgba(0, 0, 255, 1)">if</span> backupname =<span style="color: rgba(128, 0, 0, 1)">''</span> <span style="color: rgba(0, 0, 255, 1)">then</span>
<span style="color: rgba(0, 128, 128, 1)">15</span> backupname :=<span style="color: rgba(0, 0, 0, 1)"> CreateBackupName;
</span><span style="color: rgba(0, 128, 128, 1)">16</span><span style="color: rgba(0, 0, 255, 1)">with</span> RtcDataRequest_backup.Request <span style="color: rgba(0, 0, 255, 1)">do</span>
<span style="color: rgba(0, 128, 128, 1)">17</span><span style="color: rgba(0, 0, 255, 1)">begin</span>
<span style="color: rgba(0, 128, 128, 1)">18</span> <span style="color: rgba(0, 0, 0, 1)">Clear;
</span><span style="color: rgba(0, 128, 128, 1)">19</span> Close :=<span style="color: rgba(0, 0, 0, 1)"> True;
</span><span style="color: rgba(0, 128, 128, 1)">20</span> Agent := AnsiString(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">21</span> ContentType := AnsiString(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">application/json; charset=UTF-8</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">22</span> Method:=AnsiString(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">POST</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">23</span> FileName:=AnsiString(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/v3/</span><span style="color: rgba(128, 0, 0, 1)">'</span>+ProjectID+<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/backups</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">24</span> Host:=AnsiString(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">rds.</span><span style="color: rgba(128, 0, 0, 1)">'</span>+Endpoint+<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">.myhuaweicloud.com</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">25</span> asString[<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">backupname</span><span style="color: rgba(128, 0, 0, 1)">'</span>] :=<span style="color: rgba(0, 0, 0, 1)"> backupname;
</span><span style="color: rgba(0, 128, 128, 1)">26</span> Params.Text := Utf8Encode(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">{"instance_id": "</span><span style="color: rgba(128, 0, 0, 1)">'</span>+instance_id+<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">","name":"</span><span style="color: rgba(128, 0, 0, 1)">'</span>+backupname+
<span style="color: rgba(0, 128, 128, 1)">27</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">","description": "</span><span style="color: rgba(128, 0, 0, 1)">'</span>+dbs+<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">","databases": [</span><span style="color: rgba(128, 0, 0, 1)">'</span>+dbjons+<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">]}</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">28</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">if Token <> '' then</span>
<span style="color: rgba(0, 128, 128, 1)">29</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> RtcDataRequest1.Request.asString := Token</span>
<span style="color: rgba(0, 128, 128, 1)">30</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">else //用aksk验证</span>
<span style="color: rgba(0, 128, 128, 1)">31</span> <span style="color: rgba(0, 0, 0, 1)"> HuaweiSetAuthorization(RtcDataRequest_backup, AccessKey, SecretAccessKey);
</span><span style="color: rgba(0, 128, 128, 1)">32</span><span style="color: rgba(0, 0, 255, 1)">end</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">33</span> <span style="color: rgba(0, 0, 0, 1)"> RtcDataRequest_backup.Post;
</span><span style="color: rgba(0, 128, 128, 1)">34</span>
<span style="color: rgba(0, 128, 128, 1)">35</span>Result :=<span style="color: rgba(0, 0, 0, 1)"> backupname;
</span><span style="color: rgba(0, 128, 128, 1)">36</span>RtcDataRequest_backup.WaitForCompletion(True, <span style="color: rgba(128, 0, 128, 1)">3000</span>, True);</pre>
</div><br><br>
来源:https://www.cnblogs.com/BTag/p/13973034.html
頁:
[1]