⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dll_8cpp-source.html

📁 著名的密码库Crypto++的文档 C++语言的杰作。程序员必备。
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>Crypto++: dll.cpp Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.5.2 --><div class="tabs">  <ul>    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>    <li><a href="namespaces.html"><span>Namespaces</span></a></li>    <li><a href="classes.html"><span>Classes</span></a></li>    <li class="current"><a href="files.html"><span>Files</span></a></li>  </ul></div><div class="tabs">  <ul>    <li><a href="files.html"><span>File&nbsp;List</span></a></li>    <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>  </ul></div><h1>dll.cpp</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// dll.cpp - written and placed in the public domain by Wei Dai</span><a name="l00002"></a>00002 <a name="l00003"></a>00003 <span class="preprocessor">#define CRYPTOPP_MANUALLY_INSTANTIATE_TEMPLATES</span><a name="l00004"></a>00004 <span class="preprocessor"></span><span class="preprocessor">#define CRYPTOPP_DEFAULT_NO_DLL</span><a name="l00005"></a>00005 <span class="preprocessor"></span><a name="l00006"></a>00006 <span class="preprocessor">#include "dll.h"</span><a name="l00007"></a>00007 <span class="preprocessor">#pragma warning(default: 4660)</span><a name="l00008"></a>00008 <span class="preprocessor"></span><a name="l00009"></a>00009 <span class="preprocessor">#if defined(CRYPTOPP_EXPORTS) &amp;&amp; defined(CRYPTOPP_WIN32_AVAILABLE)</span><a name="l00010"></a>00010 <span class="preprocessor"></span><span class="preprocessor">#include &lt;windows.h&gt;</span><a name="l00011"></a>00011 <span class="preprocessor">#endif</span><a name="l00012"></a>00012 <span class="preprocessor"></span><a name="l00013"></a>00013 <span class="preprocessor">#ifndef CRYPTOPP_IMPORTS</span><a name="l00014"></a>00014 <span class="preprocessor"></span><a name="l00015"></a>00015 NAMESPACE_BEGIN(CryptoPP)<a name="l00016"></a>00016 <a name="l00017"></a><a class="code" href="class_p_k_c_s___digest_decoration.html#fbca9bee152984fa76bdd5b209e08326">00017</a> template&lt;&gt; const byte <a class="code" href="class_p_k_c_s___digest_decoration.html">PKCS_DigestDecoration</a>&lt;<a class="code" href="class_s_h_a1.html" title="SHA-1">SHA1</a>&gt;::decoration[] = {0x30,0x21,0x30,0x09,0x06,0x05,0x2B,0x0E,0x03,0x02,0x1A,0x05,0x00,0x04,0x14};<a name="l00018"></a><a class="code" href="class_p_k_c_s___digest_decoration.html#bf4ed810a47346f90c13d92bb9f03eb6">00018</a> <span class="keyword">template</span>&lt;&gt; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_p_k_c_s___digest_decoration.html">PKCS_DigestDecoration&lt;SHA1&gt;::length</a> = <span class="keyword">sizeof</span>(<a class="code" href="class_p_k_c_s___digest_decoration.html">PKCS_DigestDecoration&lt;SHA1&gt;::decoration</a>);<a name="l00019"></a>00019 <a name="l00020"></a><a class="code" href="class_p_k_c_s___digest_decoration.html#114131b57592e121063d31c67055ad93">00020</a> <span class="keyword">template</span>&lt;&gt; <span class="keyword">const</span> byte <a class="code" href="class_p_k_c_s___digest_decoration.html">PKCS_DigestDecoration&lt;SHA224&gt;::decoration</a>[] = {0x30,0x2d,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x04,0x05,0x00,0x04,0x1c};<a name="l00021"></a><a class="code" href="class_p_k_c_s___digest_decoration.html#eea18f1ef6ce7645efa247582d2f7bc4">00021</a> <span class="keyword">template</span>&lt;&gt; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_p_k_c_s___digest_decoration.html">PKCS_DigestDecoration&lt;SHA224&gt;::length</a> = <span class="keyword">sizeof</span>(<a class="code" href="class_p_k_c_s___digest_decoration.html">PKCS_DigestDecoration&lt;SHA224&gt;::decoration</a>);<a name="l00022"></a>00022 <a name="l00023"></a><a class="code" href="class_p_k_c_s___digest_decoration.html#7671564eb1bf6a66778f94f26bc54677">00023</a> <span class="keyword">template</span>&lt;&gt; <span class="keyword">const</span> byte <a class="code" href="class_p_k_c_s___digest_decoration.html">PKCS_DigestDecoration&lt;SHA256&gt;::decoration</a>[] = {0x30,0x31,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0x04,0x20};<a name="l00024"></a><a class="code" href="class_p_k_c_s___digest_decoration.html#2207faf9a6dd7cc05ce6c2fa22fbe151">00024</a> <span class="keyword">template</span>&lt;&gt; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_p_k_c_s___digest_decoration.html">PKCS_DigestDecoration&lt;SHA256&gt;::length</a> = <span class="keyword">sizeof</span>(<a class="code" href="class_p_k_c_s___digest_decoration.html">PKCS_DigestDecoration&lt;SHA256&gt;::decoration</a>);<a name="l00025"></a>00025 <a name="l00026"></a><a class="code" href="class_p_k_c_s___digest_decoration.html#9bd64412ce624a67e771b558ce438a89">00026</a> <span class="keyword">template</span>&lt;&gt; <span class="keyword">const</span> byte <a class="code" href="class_p_k_c_s___digest_decoration.html">PKCS_DigestDecoration&lt;SHA384&gt;::decoration</a>[] = {0x30,0x41,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x02,0x05,0x00,0x04,0x30};<a name="l00027"></a><a class="code" href="class_p_k_c_s___digest_decoration.html#b0be9dd1f06e25dfb60a71d59bcfc9fe">00027</a> <span class="keyword">template</span>&lt;&gt; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_p_k_c_s___digest_decoration.html">PKCS_DigestDecoration&lt;SHA384&gt;::length</a> = <span class="keyword">sizeof</span>(<a class="code" href="class_p_k_c_s___digest_decoration.html">PKCS_DigestDecoration&lt;SHA384&gt;::decoration</a>);<a name="l00028"></a>00028 <a name="l00029"></a><a class="code" href="class_p_k_c_s___digest_decoration.html#b015bc74fd7b9a895ad437ad817c1fa7">00029</a> <span class="keyword">template</span>&lt;&gt; <span class="keyword">const</span> byte <a class="code" href="class_p_k_c_s___digest_decoration.html">PKCS_DigestDecoration&lt;SHA512&gt;::decoration</a>[] = {0x30,0x51,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x03,0x05,0x00,0x04,0x40};<a name="l00030"></a><a class="code" href="class_p_k_c_s___digest_decoration.html#1c4961c113382ed6a80817bc242c632a">00030</a> <span class="keyword">template</span>&lt;&gt; <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_p_k_c_s___digest_decoration.html">PKCS_DigestDecoration&lt;SHA512&gt;::length</a> = <span class="keyword">sizeof</span>(<a class="code" href="class_p_k_c_s___digest_decoration.html">PKCS_DigestDecoration&lt;SHA512&gt;::decoration</a>);<a name="l00031"></a>00031 <a name="l00032"></a><a class="code" href="class_e_m_s_a2_hash_id.html#c53ade1f01b6647d1cc76c1817e0e658">00032</a> <span class="keyword">template</span>&lt;&gt; <span class="keyword">const</span> byte <a class="code" href="class_e_m_s_a2_hash_id.html">EMSA2HashId&lt;SHA&gt;::id</a> = 0x33;<a name="l00033"></a><a class="code" href="class_e_m_s_a2_hash_id.html#d6d6c82dc1a6b86330372f2a40d2e48c">00033</a> <span class="keyword">template</span>&lt;&gt; <span class="keyword">const</span> byte <a class="code" href="class_e_m_s_a2_hash_id.html">EMSA2HashId&lt;SHA224&gt;::id</a> = 0x38;<a name="l00034"></a><a class="code" href="class_e_m_s_a2_hash_id.html#20cc2851238b9b8824276e08ee732424">00034</a> <span class="keyword">template</span>&lt;&gt; <span class="keyword">const</span> byte <a class="code" href="class_e_m_s_a2_hash_id.html">EMSA2HashId&lt;SHA256&gt;::id</a> = 0x34;<a name="l00035"></a><a class="code" href="class_e_m_s_a2_hash_id.html#6735efcd80802fa377c9fb68242f67f2">00035</a> <span class="keyword">template</span>&lt;&gt; <span class="keyword">const</span> byte <a class="code" href="class_e_m_s_a2_hash_id.html">EMSA2HashId&lt;SHA384&gt;::id</a> = 0x36;<a name="l00036"></a><a class="code" href="class_e_m_s_a2_hash_id.html#3bdabc27efd1264304ee8c628e56e3eb">00036</a> <span class="keyword">template</span>&lt;&gt; <span class="keyword">const</span> byte <a class="code" href="class_e_m_s_a2_hash_id.html">EMSA2HashId&lt;SHA512&gt;::id</a> = 0x35;<a name="l00037"></a>00037 <a name="l00038"></a>00038 NAMESPACE_END<a name="l00039"></a>00039 <a name="l00040"></a>00040 <span class="preprocessor">#endif</span><a name="l00041"></a>00041 <span class="preprocessor"></span><a name="l00042"></a>00042 <span class="preprocessor">#ifdef CRYPTOPP_EXPORTS</span><a name="l00043"></a>00043 <span class="preprocessor"></span><a name="l00044"></a>00044 USING_NAMESPACE(CryptoPP)<a name="l00045"></a>00045 <a name="l00046"></a>00046 <span class="preprocessor">#if !(defined(_MSC_VER) &amp;&amp; (_MSC_VER &lt; 1300))</span><a name="l00047"></a>00047 <span class="preprocessor"></span><span class="keyword">using</span> std::set_new_handler;<a name="l00048"></a>00048 <span class="preprocessor">#endif</span><a name="l00049"></a>00049 <span class="preprocessor"></span><a name="l00050"></a>00050 <span class="keyword">static</span> PNew s_pNew = NULL;<a name="l00051"></a>00051 <span class="keyword">static</span> PDelete s_pDelete = NULL;<a name="l00052"></a>00052 <a name="l00053"></a>00053 <span class="keyword">static</span> <span class="keywordtype">void</span> * New (<span class="keywordtype">size_t</span> size)<a name="l00054"></a>00054 {<a name="l00055"></a>00055         <span class="keywordtype">void</span> *p;<a name="l00056"></a>00056         <span class="keywordflow">while</span> (!(p = malloc(size)))<a name="l00057"></a>00057                 CallNewHandler();<a name="l00058"></a>00058 <a name="l00059"></a>00059         <span class="keywordflow">return</span> p;<a name="l00060"></a>00060 }<a name="l00061"></a>00061 <a name="l00062"></a>00062 <span class="keyword">static</span> <span class="keywordtype">void</span> SetNewAndDeleteFunctionPointers()<a name="l00063"></a>00063 {<a name="l00064"></a>00064         <span class="keywordtype">void</span> *p = NULL;<a name="l00065"></a>00065         HMODULE hModule = NULL;<a name="l00066"></a>00066         MEMORY_BASIC_INFORMATION mbi;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -