<!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/html;charset=UTF-8"/> <title>pkcs11-helper: Token interface</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.0 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> </ul> </div> </div> <div class="contents"> <h1>Token interface</h1><table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structpkcs11h__token__id__list__s.html">pkcs11h_token_id_list_s</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Token identifier list. <a href="structpkcs11h__token__id__list__s.html#_details">More...</a><br/></td></tr> <tr><td colspan="2"><h2>Files</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="pkcs11h-token_8h.html">pkcs11h-token.h</a></td></tr> <p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>pkcs11-helper token interface. </p> <br/></td></tr> </p> <tr><td colspan="2"><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae301779fc460751b16a9769ca6cbee6a"></a><!-- doxytag: member="pkcs11h_token::pkcs11h_token_id_list_t" ref="gae301779fc460751b16a9769ca6cbee6a" args="" --> typedef struct <br class="typebreak"/> <a class="el" href="structpkcs11h__token__id__list__s.html">pkcs11h_token_id_list_s</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__pkcs11h__token.html#gae301779fc460751b16a9769ca6cbee6a">pkcs11h_token_id_list_t</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Token identifier list. <br/></td></tr> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">CK_RV </td><td class="memItemRight" valign="bottom"><a class="el" href="group__pkcs11h__token.html#gaf71b0160fbc09cb3f211ef56c54ec6a9">pkcs11h_token_freeTokenId</a> (IN <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> token_id)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Free token_id object. <a href="#gaf71b0160fbc09cb3f211ef56c54ec6a9"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">CK_RV </td><td class="memItemRight" valign="bottom"><a class="el" href="group__pkcs11h__token.html#ga1cc035ba9702da2333a391d60962ba8d">pkcs11h_token_duplicateTokenId</a> (OUT <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> *const to, IN const <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> from)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Duplicate token_id object. <a href="#ga1cc035ba9702da2333a391d60962ba8d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">PKCS11H_BOOL </td><td class="memItemRight" valign="bottom"><a class="el" href="group__pkcs11h__token.html#ga2c9b4af25af431496856d18065c93bf0">pkcs11h_token_sameTokenId</a> (IN const <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> a, IN const <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> b)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns TRUE if same token id. <a href="#ga2c9b4af25af431496856d18065c93bf0"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">CK_RV </td><td class="memItemRight" valign="bottom"><a class="el" href="group__pkcs11h__token.html#ga42f75b82a5210342fa3a523a1859dc33">pkcs11h_token_logout</a> (IN const <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> token_id)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Force logout. <a href="#ga42f75b82a5210342fa3a523a1859dc33"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">CK_RV </td><td class="memItemRight" valign="bottom"><a class="el" href="group__pkcs11h__token.html#ga1e1c4fef0571b30f7351561afea7ad2f">pkcs11h_token_login</a> (IN const <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> token_id, IN const PKCS11H_BOOL readonly, IN const char *const pin)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Force login, avoid hooks. <a href="#ga1e1c4fef0571b30f7351561afea7ad2f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">CK_RV </td><td class="memItemRight" valign="bottom"><a class="el" href="group__pkcs11h__token.html#gad8b8d0c1c11f8e684fdd18f591810975">pkcs11h_token_ensureAccess</a> (IN const <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> token_id, IN void *const user_data, IN const unsigned mask_prompt)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Ensure token is accessible. <a href="#gad8b8d0c1c11f8e684fdd18f591810975"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">CK_RV </td><td class="memItemRight" valign="bottom"><a class="el" href="group__pkcs11h__token.html#ga554dad08a75b44c5e858c9b8285a4aaa">pkcs11h_token_freeTokenIdList</a> (IN const <a class="el" href="structpkcs11h__token__id__list__s.html">pkcs11h_token_id_list_t</a> token_id_list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Free certificate_id list. <a href="#ga554dad08a75b44c5e858c9b8285a4aaa"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">CK_RV </td><td class="memItemRight" valign="bottom"><a class="el" href="group__pkcs11h__token.html#ga0073305e8cdefe8d45b83c246c81f08d">pkcs11h_token_enumTokenIds</a> (IN const unsigned method, OUT <a class="el" href="structpkcs11h__token__id__list__s.html">pkcs11h_token_id_list_t</a> *const p_token_id_list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Enumerate available tokens. <a href="#ga0073305e8cdefe8d45b83c246c81f08d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">CK_RV </td><td class="memItemRight" valign="bottom"><a class="el" href="group__pkcs11h__token.html#ga5bd20f17e1ba368cb63db6e364aa3b1e">pkcs11h_token_serializeTokenId</a> (OUT char *const sz, IN OUT size_t *max, IN const <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> token_id)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Serialize token_id into string. <a href="#ga5bd20f17e1ba368cb63db6e364aa3b1e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">CK_RV </td><td class="memItemRight" valign="bottom"><a class="el" href="group__pkcs11h__token.html#gab08544b49b89e86a376ed74d0b45cdbb">pkcs11h_token_deserializeTokenId</a> (OUT <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> *p_token_id, IN const char *const sz)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Deserialize token_id from string. <a href="#gab08544b49b89e86a376ed74d0b45cdbb"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Token related functions. </p> <hr/><h2>Function Documentation</h2> <a class="anchor" id="gab08544b49b89e86a376ed74d0b45cdbb"></a><!-- doxytag: member="pkcs11h-token.h::pkcs11h_token_deserializeTokenId" ref="gab08544b49b89e86a376ed74d0b45cdbb" args="(OUT pkcs11h_token_id_t *p_token_id, IN const char *const sz)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">CK_RV pkcs11h_token_deserializeTokenId </td> <td>(</td> <td class="paramtype">OUT <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> * </td> <td class="paramname"> <em>p_token_id</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN const char *const </td> <td class="paramname"> <em>sz</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Deserialize token_id from string. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>p_token_id</em> </td><td>id. </td></tr> <tr><td valign="top"></td><td valign="top"><em>sz</em> </td><td>Input string. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>CK_RV. </dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd>Caller must free result. </dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__pkcs11h__token.html#gaf71b0160fbc09cb3f211ef56c54ec6a9" title="Free token_id object.">pkcs11h_token_freeTokenId()</a>. </dd></dl> </div> </div> <a class="anchor" id="ga1cc035ba9702da2333a391d60962ba8d"></a><!-- doxytag: member="pkcs11h-token.h::pkcs11h_token_duplicateTokenId" ref="ga1cc035ba9702da2333a391d60962ba8d" args="(OUT pkcs11h_token_id_t *const to, IN const pkcs11h_token_id_t from)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">CK_RV pkcs11h_token_duplicateTokenId </td> <td>(</td> <td class="paramtype">OUT <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> *const </td> <td class="paramname"> <em>to</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN const <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> </td> <td class="paramname"> <em>from</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Duplicate token_id object. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>to</em> </td><td>Target. </td></tr> <tr><td valign="top"></td><td valign="top"><em>from</em> </td><td>Source. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>CK_RV. </dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__pkcs11h__token.html#gaf71b0160fbc09cb3f211ef56c54ec6a9" title="Free token_id object.">pkcs11h_token_freeTokenId()</a>. </dd></dl> </div> </div> <a class="anchor" id="gad8b8d0c1c11f8e684fdd18f591810975"></a><!-- doxytag: member="pkcs11h-token.h::pkcs11h_token_ensureAccess" ref="gad8b8d0c1c11f8e684fdd18f591810975" args="(IN const pkcs11h_token_id_t token_id, IN void *const user_data, IN const unsigned mask_prompt)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">CK_RV pkcs11h_token_ensureAccess </td> <td>(</td> <td class="paramtype">IN const <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> </td> <td class="paramname"> <em>token_id</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN void *const </td> <td class="paramname"> <em>user_data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN const unsigned </td> <td class="paramname"> <em>mask_prompt</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Ensure token is accessible. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>token_id</em> </td><td>Token id object. </td></tr> <tr><td valign="top"></td><td valign="top"><em>user_data</em> </td><td>Optional user data, to be passed to hooks. </td></tr> <tr><td valign="top"></td><td valign="top"><em>mask_prompt</em> </td><td>Allow prompt <a class="el" href="group__PKCS11H__PROMPT__MASK.html">PKCS11H_PROMPT_MASK</a>. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>CK_RV. </dd></dl> </div> </div> <a class="anchor" id="ga0073305e8cdefe8d45b83c246c81f08d"></a><!-- doxytag: member="pkcs11h-token.h::pkcs11h_token_enumTokenIds" ref="ga0073305e8cdefe8d45b83c246c81f08d" args="(IN const unsigned method, OUT pkcs11h_token_id_list_t *const p_token_id_list)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">CK_RV pkcs11h_token_enumTokenIds </td> <td>(</td> <td class="paramtype">IN const unsigned </td> <td class="paramname"> <em>method</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">OUT <a class="el" href="structpkcs11h__token__id__list__s.html">pkcs11h_token_id_list_t</a> *const </td> <td class="paramname"> <em>p_token_id_list</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Enumerate available tokens. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>method</em> </td><td>Enum method <a class="el" href="group__PKCS11H__ENUM__METHOD.html">PKCS11H_ENUM_METHOD</a>. </td></tr> <tr><td valign="top"></td><td valign="top"><em>p_token_id_list</em> </td><td>List. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>CK_RV. </dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd>Caller must free result. </dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__pkcs11h__token.html#ga554dad08a75b44c5e858c9b8285a4aaa" title="Free certificate_id list.">pkcs11h_token_freeTokenIdList()</a>. </dd></dl> </div> </div> <a class="anchor" id="gaf71b0160fbc09cb3f211ef56c54ec6a9"></a><!-- doxytag: member="pkcs11h-token.h::pkcs11h_token_freeTokenId" ref="gaf71b0160fbc09cb3f211ef56c54ec6a9" args="(IN pkcs11h_token_id_t token_id)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">CK_RV pkcs11h_token_freeTokenId </td> <td>(</td> <td class="paramtype">IN <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> </td> <td class="paramname"> <em>token_id</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Free token_id object. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>token_id</em> </td><td>Token reference. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>CK_RV. </dd></dl> </div> </div> <a class="anchor" id="ga554dad08a75b44c5e858c9b8285a4aaa"></a><!-- doxytag: member="pkcs11h-token.h::pkcs11h_token_freeTokenIdList" ref="ga554dad08a75b44c5e858c9b8285a4aaa" args="(IN const pkcs11h_token_id_list_t token_id_list)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">CK_RV pkcs11h_token_freeTokenIdList </td> <td>(</td> <td class="paramtype">IN const <a class="el" href="structpkcs11h__token__id__list__s.html">pkcs11h_token_id_list_t</a> </td> <td class="paramname"> <em>token_id_list</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Free certificate_id list. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>token_id_list</em> </td><td>List. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>CK_RV. </dd></dl> </div> </div> <a class="anchor" id="ga1e1c4fef0571b30f7351561afea7ad2f"></a><!-- doxytag: member="pkcs11h-token.h::pkcs11h_token_login" ref="ga1e1c4fef0571b30f7351561afea7ad2f" args="(IN const pkcs11h_token_id_t token_id, IN const PKCS11H_BOOL readonly, IN const char *const pin)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">CK_RV pkcs11h_token_login </td> <td>(</td> <td class="paramtype">IN const <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> </td> <td class="paramname"> <em>token_id</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN const PKCS11H_BOOL </td> <td class="paramname"> <em>readonly</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN const char *const </td> <td class="paramname"> <em>pin</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Force login, avoid hooks. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>token_id</em> </td><td>Token to login into. </td></tr> <tr><td valign="top"></td><td valign="top"><em>readonly</em> </td><td>Should session be readonly. </td></tr> <tr><td valign="top"></td><td valign="top"><em>pin</em> </td><td>PIN to login, NULL for protected authentication. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>CK_RV. </dd></dl> </div> </div> <a class="anchor" id="ga42f75b82a5210342fa3a523a1859dc33"></a><!-- doxytag: member="pkcs11h-token.h::pkcs11h_token_logout" ref="ga42f75b82a5210342fa3a523a1859dc33" args="(IN const pkcs11h_token_id_t token_id)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">CK_RV pkcs11h_token_logout </td> <td>(</td> <td class="paramtype">IN const <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> </td> <td class="paramname"> <em>token_id</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Force logout. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>token_id</em> </td><td>Token to login into. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>CK_RV. </dd></dl> </div> </div> <a class="anchor" id="ga2c9b4af25af431496856d18065c93bf0"></a><!-- doxytag: member="pkcs11h-token.h::pkcs11h_token_sameTokenId" ref="ga2c9b4af25af431496856d18065c93bf0" args="(IN const pkcs11h_token_id_t a, IN const pkcs11h_token_id_t b)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">PKCS11H_BOOL pkcs11h_token_sameTokenId </td> <td>(</td> <td class="paramtype">IN const <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> </td> <td class="paramname"> <em>a</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN const <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> </td> <td class="paramname"> <em>b</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Returns TRUE if same token id. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>a</em> </td><td>a. </td></tr> <tr><td valign="top"></td><td valign="top"><em>b</em> </td><td>b. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>TRUE if same token identifier. </dd></dl> </div> </div> <a class="anchor" id="ga5bd20f17e1ba368cb63db6e364aa3b1e"></a><!-- doxytag: member="pkcs11h-token.h::pkcs11h_token_serializeTokenId" ref="ga5bd20f17e1ba368cb63db6e364aa3b1e" args="(OUT char *const sz, IN OUT size_t *max, IN const pkcs11h_token_id_t token_id)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">CK_RV pkcs11h_token_serializeTokenId </td> <td>(</td> <td class="paramtype">OUT char *const </td> <td class="paramname"> <em>sz</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN OUT size_t * </td> <td class="paramname"> <em>max</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN const <a class="el" href="structpkcs11h__token__id__s.html">pkcs11h_token_id_t</a> </td> <td class="paramname"> <em>token_id</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Serialize token_id into string. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>sz</em> </td><td>Output string. </td></tr> <tr><td valign="top"></td><td valign="top"><em>max</em> </td><td>Maximum string size. </td></tr> <tr><td valign="top"></td><td valign="top"><em>token_id</em> </td><td>id to serialize </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>CK_RV. </dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd>sz may be NULL to get size. </dd></dl> </div> </div> </div> <hr> <table width="100%"><tr><td>pkcs11-helper, Copyright (C) Alon Bar-Lev <alon.barlev@gmail.com></td><td align="right"><a href="http://www.opensc-project.org"><img src="opensc-logo.gif" alt="OpenSC-Project.org Logo" border="0"/></a></td></tr></table>