1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>pam_pkcs11: pkcs11.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div class="navpath"><a class="el" href="dir_55f9682142a78e45196901be32452b47.html">src</a> » <a class="el" href="dir_782c1fcd7529e1a05f3f2af490691324.html">common</a> » <a class="el" href="dir_d7a1e1289fa34b6242c3a4ee6b47b28d.html">rsaref</a>
</div>
</div>
<div class="contents">
<h1>pkcs11.h</h1><a href="pkcs11_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * PKCS #11 PAM Login Module</span>
<a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 2003 Mario Strasser <mast@gmx.net>,</span>
<a name="l00004"></a>00004 <span class="comment"> *</span>
<a name="l00005"></a>00005 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
<a name="l00006"></a>00006 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00007"></a>00007 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00008"></a>00008 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
<a name="l00011"></a>00011 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00012"></a>00012 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00013"></a>00013 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00014"></a>00014 <span class="comment"> *</span>
<a name="l00015"></a>00015 <span class="comment"> * $Id: pkcs11.h 358 2008-11-06 14:28:46Z ludovic.rousseau $</span>
<a name="l00016"></a>00016 <span class="comment"> */</span>
<a name="l00017"></a>00017
<a name="l00018"></a>00018 <span class="preprocessor">#ifndef PKCS11_H</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define PKCS11_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span>
<a name="l00021"></a>00021 <span class="preprocessor">#include <openssl/x509.h></span>
<a name="l00022"></a>00022
<a name="l00023"></a>00023 <span class="comment">/* Some UNIX specific macros */</span>
<a name="l00024"></a>00024
<a name="l00025"></a><a class="code" href="pkcs11_8h.html#a423401496b51f5c72a74e5502b47fd7d">00025</a> <span class="preprocessor">#define CK_PTR *</span>
<a name="l00026"></a><a class="code" href="pkcs11_8h.html#aa21d2a59f7de7ecc92a13e2958bb60b8">00026</a> <span class="preprocessor"></span><span class="preprocessor">#define CK_DEFINE_FUNCTION(returnType, name) \</span>
<a name="l00027"></a>00027 <span class="preprocessor"> returnType name</span>
<a name="l00028"></a><a class="code" href="pkcs11_8h.html#a30315d302108bcfb354196f37b16a492">00028</a> <span class="preprocessor"></span><span class="preprocessor">#define CK_DECLARE_FUNCTION(returnType, name) \</span>
<a name="l00029"></a>00029 <span class="preprocessor"> returnType name</span>
<a name="l00030"></a><a class="code" href="pkcs11_8h.html#aad472a68fb8e3eb9ba40169f5180b3b7">00030</a> <span class="preprocessor"></span><span class="preprocessor">#define CK_DECLARE_FUNCTION_POINTER(returnType, name) \</span>
<a name="l00031"></a>00031 <span class="preprocessor"> returnType (* name)</span>
<a name="l00032"></a><a class="code" href="pkcs11_8h.html#a5235e6437759c93b8189b124c8c807cf">00032</a> <span class="preprocessor"></span><span class="preprocessor">#define CK_CALLBACK_FUNCTION(returnType, name) \</span>
<a name="l00033"></a>00033 <span class="preprocessor"> returnType (* name)</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#ifndef NULL_PTR</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">#define NULL_PTR 0</span>
<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00037"></a>00037 <span class="preprocessor"></span>
<a name="l00038"></a>00038 <span class="comment">/* License to copy and use this software is granted provided that it is</span>
<a name="l00039"></a>00039 <span class="comment"> * identified as "RSA Security Inc. PKCS #11 Cryptographic Token Interface</span>
<a name="l00040"></a>00040 <span class="comment"> * (Cryptoki)" in all material mentioning or referencing this software.</span>
<a name="l00041"></a>00041 <span class="comment"></span>
<a name="l00042"></a>00042 <span class="comment"> * License is also granted to make and use derivative works provided that</span>
<a name="l00043"></a>00043 <span class="comment"> * such works are identified as "derived from the RSA Security Inc. PKCS #11</span>
<a name="l00044"></a>00044 <span class="comment"> * Cryptographic Token Interface (Cryptoki)" in all material mentioning or</span>
<a name="l00045"></a>00045 <span class="comment"> * referencing the derived work.</span>
<a name="l00046"></a>00046 <span class="comment"></span>
<a name="l00047"></a>00047 <span class="comment"> * RSA Security Inc. makes no representations concerning either the</span>
<a name="l00048"></a>00048 <span class="comment"> * merchantability of this software or the suitability of this software for</span>
<a name="l00049"></a>00049 <span class="comment"> * any particular purpose. It is provided "as is" without express or implied</span>
<a name="l00050"></a>00050 <span class="comment"> * warranty of any kind.</span>
<a name="l00051"></a>00051 <span class="comment"> */</span>
<a name="l00052"></a>00052
<a name="l00053"></a>00053 <span class="comment">/* All the various Cryptoki types and #define'd values are in the</span>
<a name="l00054"></a>00054 <span class="comment"> * file pkcs11t.h. */</span>
<a name="l00055"></a>00055 <span class="preprocessor">#include "<a class="code" href="pkcs11t_8h.html">pkcs11t.h</a>"</span>
<a name="l00056"></a>00056
<a name="l00057"></a><a class="code" href="pkcs11_8h.html#ac3ae5768889bec57a63f08b6a6e5f58d">00057</a> <span class="preprocessor">#define __PASTE(x,y) x##y</span>
<a name="l00058"></a>00058 <span class="preprocessor"></span>
<a name="l00059"></a>00059
<a name="l00060"></a>00060 <span class="comment">/* ==============================================================</span>
<a name="l00061"></a>00061 <span class="comment"> * Define the "extern" form of all the entry points.</span>
<a name="l00062"></a>00062 <span class="comment"> * ==============================================================</span>
<a name="l00063"></a>00063 <span class="comment"> */</span>
<a name="l00064"></a>00064
<a name="l00065"></a><a class="code" href="pkcs11_8h.html#a427a6a11246534e2c0d569e21cc854b9">00065</a> <span class="preprocessor">#define CK_NEED_ARG_LIST 1</span>
<a name="l00066"></a>00066 <span class="preprocessor"></span><span class="preprocessor">#define CK_PKCS11_FUNCTION_INFO(name) \</span>
<a name="l00067"></a>00067 <span class="preprocessor"> extern CK_DECLARE_FUNCTION(CK_RV, name)</span>
<a name="l00068"></a>00068 <span class="preprocessor"></span>
<a name="l00069"></a>00069 <span class="comment">/* pkcs11f.h has all the information about the Cryptoki</span>
<a name="l00070"></a>00070 <span class="comment"> * function prototypes. */</span>
<a name="l00071"></a>00071 <span class="preprocessor">#include "<a class="code" href="pkcs11f_8h.html">pkcs11f.h</a>"</span>
<a name="l00072"></a>00072
<a name="l00073"></a>00073 <span class="preprocessor">#undef CK_NEED_ARG_LIST</span>
<a name="l00074"></a>00074 <span class="preprocessor"></span><span class="preprocessor">#undef CK_PKCS11_FUNCTION_INFO</span>
<a name="l00075"></a>00075 <span class="preprocessor"></span>
<a name="l00076"></a>00076
<a name="l00077"></a>00077 <span class="comment">/* ==============================================================</span>
<a name="l00078"></a>00078 <span class="comment"> * Define the typedef form of all the entry points. That is, for</span>
<a name="l00079"></a>00079 <span class="comment"> * each Cryptoki function C_XXX, define a type CK_C_XXX which is</span>
<a name="l00080"></a>00080 <span class="comment"> * a pointer to that kind of function.</span>
<a name="l00081"></a>00081 <span class="comment"> * ==============================================================</span>
<a name="l00082"></a>00082 <span class="comment"> */</span>
<a name="l00083"></a>00083
<a name="l00084"></a>00084 <span class="preprocessor">#define CK_NEED_ARG_LIST 1</span>
<a name="l00085"></a>00085 <span class="preprocessor"></span><span class="preprocessor">#define CK_PKCS11_FUNCTION_INFO(name) \</span>
<a name="l00086"></a>00086 <span class="preprocessor"> typedef CK_DECLARE_FUNCTION_POINTER(CK_RV, __PASTE(CK_,name))</span>
<a name="l00087"></a>00087 <span class="preprocessor"></span>
<a name="l00088"></a>00088 <span class="comment">/* pkcs11f.h has all the information about the Cryptoki</span>
<a name="l00089"></a>00089 <span class="comment"> * function prototypes. */</span>
<a name="l00090"></a>00090 <span class="preprocessor">#include "<a class="code" href="pkcs11f_8h.html">pkcs11f.h</a>"</span>
<a name="l00091"></a>00091
<a name="l00092"></a>00092 <span class="preprocessor">#undef CK_NEED_ARG_LIST</span>
<a name="l00093"></a>00093 <span class="preprocessor"></span><span class="preprocessor">#undef CK_PKCS11_FUNCTION_INFO</span>
<a name="l00094"></a>00094 <span class="preprocessor"></span>
<a name="l00095"></a>00095
<a name="l00096"></a>00096 <span class="comment">/* ==============================================================</span>
<a name="l00097"></a>00097 <span class="comment"> * Define structed vector of entry points. A CK_FUNCTION_LIST</span>
<a name="l00098"></a>00098 <span class="comment"> * contains a CK_VERSION indicating a library's Cryptoki version</span>
<a name="l00099"></a>00099 <span class="comment"> * and then a whole slew of function pointers to the routines in</span>
<a name="l00100"></a>00100 <span class="comment"> * the library. This type was declared, but not defined, in</span>
<a name="l00101"></a>00101 <span class="comment"> * pkcs11t.h.</span>
<a name="l00102"></a>00102 <span class="comment"> * ==============================================================</span>
<a name="l00103"></a>00103 <span class="comment"> */</span>
<a name="l00104"></a>00104
<a name="l00105"></a><a class="code" href="pkcs11_8h.html#ac496f7959ba2c28cd7a2b5f5ac34628b">00105</a> <span class="preprocessor">#define CK_PKCS11_FUNCTION_INFO(name) \</span>
<a name="l00106"></a>00106 <span class="preprocessor"> __PASTE(CK_,name) name;</span>
<a name="l00107"></a>00107 <span class="preprocessor"></span>
<a name="l00108"></a><a class="code" href="structCK__FUNCTION__LIST.html">00108</a> <span class="keyword">struct </span><a class="code" href="structCK__FUNCTION__LIST.html">CK_FUNCTION_LIST</a> {
<a name="l00109"></a>00109
<a name="l00110"></a><a class="code" href="structCK__FUNCTION__LIST.html#a7aa05831aaad21e6d52409a0b74d0f14">00110</a> <a class="code" href="structCK__VERSION.html">CK_VERSION</a> <a class="code" href="structCK__FUNCTION__LIST.html#a7aa05831aaad21e6d52409a0b74d0f14">version</a>; <span class="comment">/* Cryptoki version */</span>
<a name="l00111"></a>00111
<a name="l00112"></a>00112 <span class="comment">/* Pile all the function pointers into the CK_FUNCTION_LIST. */</span>
<a name="l00113"></a>00113 <span class="comment">/* pkcs11f.h has all the information about the Cryptoki</span>
<a name="l00114"></a>00114 <span class="comment"> * function prototypes. */</span>
<a name="l00115"></a>00115 <span class="preprocessor">#include "<a class="code" href="pkcs11f_8h.html">pkcs11f.h</a>"</span>
<a name="l00116"></a>00116
<a name="l00117"></a>00117 };
<a name="l00118"></a>00118
<a name="l00119"></a>00119 <span class="preprocessor">#undef CK_PKCS11_FUNCTION_INFO</span>
<a name="l00120"></a>00120 <span class="preprocessor"></span><span class="preprocessor">#undef __PASTE</span>
<a name="l00121"></a>00121 <span class="preprocessor"></span>
<a name="l00122"></a>00122 <span class="preprocessor">#endif </span><span class="comment">/* PKCS11_H */</span>
</pre></div></div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat Jun 12 17:28:15 2010 for pam_pkcs11 by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>
|