1ae771770SStanislav Sedov<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2ae771770SStanislav Sedov<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 3ae771770SStanislav Sedov<title>HeimdalKerberos5library: The credential cache functions</title> 4ae771770SStanislav Sedov<link href="doxygen.css" rel="stylesheet" type="text/css"> 5ae771770SStanislav Sedov<link href="tabs.css" rel="stylesheet" type="text/css"> 6ae771770SStanislav Sedov</head><body> 7ae771770SStanislav Sedov<p> 8ae771770SStanislav Sedov<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a> 9ae771770SStanislav Sedov</p> 10ae771770SStanislav Sedov<!-- end of header marker --> 11ae771770SStanislav Sedov<!-- Generated by Doxygen 1.5.6 --> 12ae771770SStanislav Sedov<div class="navigation" id="top"> 13ae771770SStanislav Sedov <div class="tabs"> 14ae771770SStanislav Sedov <ul> 15ae771770SStanislav Sedov <li><a href="index.html"><span>Main Page</span></a></li> 16ae771770SStanislav Sedov <li><a href="pages.html"><span>Related Pages</span></a></li> 17ae771770SStanislav Sedov <li><a href="modules.html"><span>Modules</span></a></li> 18ae771770SStanislav Sedov <li><a href="annotated.html"><span>Data Structures</span></a></li> 19ae771770SStanislav Sedov </ul> 20ae771770SStanislav Sedov </div> 21ae771770SStanislav Sedov</div> 22ae771770SStanislav Sedov<div class="contents"> 23ae771770SStanislav Sedov<h1><a class="anchor" name="krb5_ccache_intro">The credential cache functions </a></h1><h2><a class="anchor" name="section_krb5_ccache"> 24ae771770SStanislav SedovKerberos credential caches</a></h2> 25ae771770SStanislav Sedovkrb5_ccache structure holds a Kerberos credential cache.<p> 26ae771770SStanislav SedovHeimdal support the follow types of credential caches:<p> 27ae771770SStanislav Sedov<ul> 28ae771770SStanislav Sedov<li>SCC Store the credential in a database</li><li>FILE Store the credential in memory</li><li>MEMORY Store the credential in memory</li><li>API A credential cache server based solution for Mac OS X</li><li>KCM A credential cache server based solution for all platforms</li></ul> 29ae771770SStanislav Sedov<h3><a class="anchor" name="Example"> 30ae771770SStanislav SedovExample</a></h3> 31ae771770SStanislav SedovThis is a minimalistic version of klist: <div class="fragment"><pre class="fragment"><span class="preprocessor">#include <krb5.h></span> 32ae771770SStanislav Sedov 33ae771770SStanislav Sedov<span class="keywordtype">int</span> 34ae771770SStanislav Sedovmain (<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv) 35ae771770SStanislav Sedov{ 36ae771770SStanislav Sedov krb5_context context; 37ae771770SStanislav Sedov krb5_cc_cursor cursor; 38ae771770SStanislav Sedov krb5_error_code ret; 39ae771770SStanislav Sedov krb5_ccache id; 40ae771770SStanislav Sedov krb5_creds creds; 41ae771770SStanislav Sedov 42ae771770SStanislav Sedov <span class="keywordflow">if</span> (<a class="code" href="group__krb5.html#gbd94206e186c58a093975424a4a567a8">krb5_init_context</a> (&context) != 0) 43ae771770SStanislav Sedov errx(1, <span class="stringliteral">"krb5_context"</span>); 44ae771770SStanislav Sedov 45ae771770SStanislav Sedov ret = <a class="code" href="group__krb5__ccache.html#gd7d54822ef022f3e27f7f0f457d9c751">krb5_cc_default</a> (context, &<span class="keywordtype">id</span>); 46ae771770SStanislav Sedov <span class="keywordflow">if</span> (ret) 47ae771770SStanislav Sedov krb5_err(context, 1, ret, <span class="stringliteral">"krb5_cc_default"</span>); 48ae771770SStanislav Sedov 49ae771770SStanislav Sedov ret = <a class="code" href="group__krb5__ccache.html#gcbf766cea6b49dd64b76628c7708b979">krb5_cc_start_seq_get</a>(context, <span class="keywordtype">id</span>, &cursor); 50ae771770SStanislav Sedov <span class="keywordflow">if</span> (ret) 51ae771770SStanislav Sedov krb5_err(context, 1, ret, <span class="stringliteral">"krb5_cc_start_seq_get"</span>); 52ae771770SStanislav Sedov 53ae771770SStanislav Sedov <span class="keywordflow">while</span>((ret = <a class="code" href="group__krb5__ccache.html#gd9cd0ebcc7bdf3ca2b0ed166ea2f8df6">krb5_cc_next_cred</a>(context, <span class="keywordtype">id</span>, &cursor, &creds)) == 0){ 54ae771770SStanislav Sedov <span class="keywordtype">char</span> *principal; 55ae771770SStanislav Sedov 56ae771770SStanislav Sedov <a class="code" href="group__krb5__principal.html#gac881051ed59fe0dcd08cee62280b332">krb5_unparse_name</a>(context, creds.server, &principal); 57ae771770SStanislav Sedov printf(<span class="stringliteral">"principal: %s\\n"</span>, principal); 58ae771770SStanislav Sedov free(principal); 59ae771770SStanislav Sedov <a class="code" href="group__krb5.html#gd89c4c7b633646c39e4a34a7230c94e1">krb5_free_cred_contents</a> (context, &creds); 60ae771770SStanislav Sedov } 61ae771770SStanislav Sedov ret = <a class="code" href="group__krb5__ccache.html#g024ce036ebf277f918354d4681bd0550">krb5_cc_end_seq_get</a>(context, <span class="keywordtype">id</span>, &cursor); 62ae771770SStanislav Sedov <span class="keywordflow">if</span> (ret) 63ae771770SStanislav Sedov krb5_err(context, 1, ret, <span class="stringliteral">"krb5_cc_end_seq_get"</span>); 64ae771770SStanislav Sedov 65ae771770SStanislav Sedov <a class="code" href="group__krb5__ccache.html#gebc0dd2a77529c05fb49e27235da7017">krb5_cc_close</a>(context, <span class="keywordtype">id</span>); 66ae771770SStanislav Sedov 67ae771770SStanislav Sedov <a class="code" href="group__krb5.html#ge51d83f5d5f589883f1cd10887892777">krb5_free_context</a>(context); 68ae771770SStanislav Sedov <span class="keywordflow">return</span> 0; 69ae771770SStanislav Sedov} 70ae771770SStanislav Sedov</pre></div> </div> 71ae771770SStanislav Sedov<hr size="1"><address style="text-align: right;"><small> 72*cf771f22SStanislav SedovGenerated on Wed Jan 11 14:07:47 2012 for HeimdalKerberos5library by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6</small></address> 73ae771770SStanislav Sedov</body> 74ae771770SStanislav Sedov</html> 75