xref: /netbsd-src/crypto/external/bsd/heimdal/dist/doc/doxyout/krb5/html/group__krb5__crypto.html (revision dd75ac5b443e967e26b4d18cc8cd5eb98512bfbf)
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3<title>Heimdal Kerberos 5 cryptography functions</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5<link href="tabs.css" rel="stylesheet" type="text/css">
6</head><body>
7<p>
8<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
9</p>
10<!-- end of header marker -->
11<!-- Generated by Doxygen 1.9.1 -->
12<script type="text/javascript" src="menudata.js"></script>
13<script type="text/javascript" src="menu.js"></script>
14<script type="text/javascript">
15/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16$(function() {
17  initMenu('',false,false,'search.php','Search');
18});
19/* @license-end */</script>
20<div id="main-nav"></div>
21</div><!-- top -->
22<div class="header">
23  <div class="summary">
24<a href="#func-members">Functions</a>  </div>
25  <div class="headertitle">
26<div class="title">Heimdal Kerberos 5 cryptography functions</div>  </div>
27</div><!--header-->
28<div class="contents">
29<table class="memberdecls">
30<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
31Functions</h2></td></tr>
32<tr class="memitem:gacd70368768ef5d3b0867143e1fded09c"><td class="memItemLeft" align="right" valign="top">HEIMDAL_WARN_UNUSED_RESULT_ATTRIBUTE KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#gacd70368768ef5d3b0867143e1fded09c">krb5_generate_random</a> (void *buf, size_t len)</td></tr>
33<tr class="separator:gacd70368768ef5d3b0867143e1fded09c"><td class="memSeparator" colspan="2">&#160;</td></tr>
34<tr class="memitem:ga697b68deeff57bb1ca24163673cded3c"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION void KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#ga697b68deeff57bb1ca24163673cded3c">krb5_generate_random_block</a> (void *buf, size_t len)</td></tr>
35<tr class="separator:ga697b68deeff57bb1ca24163673cded3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
36<tr class="memitem:gad5f2b15d5fde369cf923e8fae4b00bec"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#gad5f2b15d5fde369cf923e8fae4b00bec">krb5_enctype_valid</a> (krb5_context context, krb5_enctype etype)</td></tr>
37<tr class="separator:gad5f2b15d5fde369cf923e8fae4b00bec"><td class="memSeparator" colspan="2">&#160;</td></tr>
38<tr class="memitem:ga49d7081ff071eacd28e3ffa90400580c"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#ga49d7081ff071eacd28e3ffa90400580c">krb5_cksumtype_to_enctype</a> (krb5_context context, krb5_cksumtype ctype, krb5_enctype *etype)</td></tr>
39<tr class="separator:ga49d7081ff071eacd28e3ffa90400580c"><td class="memSeparator" colspan="2">&#160;</td></tr>
40<tr class="memitem:ga674423844043d6beebb959bb8b7ab082"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#ga674423844043d6beebb959bb8b7ab082">krb5_encrypt_iov_ivec</a> (krb5_context context, krb5_crypto crypto, unsigned usage, <a class="el" href="structkrb5__crypto__iov.html">krb5_crypto_iov</a> *data, int num_data, void *ivec)</td></tr>
41<tr class="separator:ga674423844043d6beebb959bb8b7ab082"><td class="memSeparator" colspan="2">&#160;</td></tr>
42<tr class="memitem:ga64cad191491a5d3309553e7d28d8ad46"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#ga64cad191491a5d3309553e7d28d8ad46">krb5_decrypt_iov_ivec</a> (krb5_context context, krb5_crypto crypto, unsigned usage, <a class="el" href="structkrb5__crypto__iov.html">krb5_crypto_iov</a> *data, unsigned int num_data, void *ivec)</td></tr>
43<tr class="separator:ga64cad191491a5d3309553e7d28d8ad46"><td class="memSeparator" colspan="2">&#160;</td></tr>
44<tr class="memitem:gab70888d1122aeed1e5381116a5a9612e"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#gab70888d1122aeed1e5381116a5a9612e">krb5_create_checksum_iov</a> (krb5_context context, krb5_crypto crypto, unsigned usage, <a class="el" href="structkrb5__crypto__iov.html">krb5_crypto_iov</a> *data, unsigned int num_data, krb5_cksumtype *type)</td></tr>
45<tr class="separator:gab70888d1122aeed1e5381116a5a9612e"><td class="memSeparator" colspan="2">&#160;</td></tr>
46<tr class="memitem:ga1789d8188287750394c3b8366a90bd13"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#ga1789d8188287750394c3b8366a90bd13">krb5_verify_checksum_iov</a> (krb5_context context, krb5_crypto crypto, unsigned usage, <a class="el" href="structkrb5__crypto__iov.html">krb5_crypto_iov</a> *data, unsigned int num_data, krb5_cksumtype *type)</td></tr>
47<tr class="separator:ga1789d8188287750394c3b8366a90bd13"><td class="memSeparator" colspan="2">&#160;</td></tr>
48<tr class="memitem:gad7003a8a81cef633cc0a2cc07c93dd32"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#gad7003a8a81cef633cc0a2cc07c93dd32">krb5_crypto_init</a> (krb5_context context, const krb5_keyblock *key, krb5_enctype etype, krb5_crypto *crypto)</td></tr>
49<tr class="separator:gad7003a8a81cef633cc0a2cc07c93dd32"><td class="memSeparator" colspan="2">&#160;</td></tr>
50<tr class="memitem:ga57eaed735baab9eb3c3740be8e4d2137"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#ga57eaed735baab9eb3c3740be8e4d2137">krb5_crypto_destroy</a> (krb5_context context, krb5_crypto crypto)</td></tr>
51<tr class="separator:ga57eaed735baab9eb3c3740be8e4d2137"><td class="memSeparator" colspan="2">&#160;</td></tr>
52<tr class="memitem:gaa4271d4adba2dff699dfdfe07b075b95"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#gaa4271d4adba2dff699dfdfe07b075b95">krb5_crypto_getblocksize</a> (krb5_context context, krb5_crypto crypto, size_t *blocksize)</td></tr>
53<tr class="separator:gaa4271d4adba2dff699dfdfe07b075b95"><td class="memSeparator" colspan="2">&#160;</td></tr>
54<tr class="memitem:ga6bc15d1940ecdd4558f18eeb3dda233c"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#ga6bc15d1940ecdd4558f18eeb3dda233c">krb5_crypto_getenctype</a> (krb5_context context, krb5_crypto crypto, krb5_enctype *enctype)</td></tr>
55<tr class="separator:ga6bc15d1940ecdd4558f18eeb3dda233c"><td class="memSeparator" colspan="2">&#160;</td></tr>
56<tr class="memitem:gafbed35e76f7d971b90cfe0806f43d279"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#gafbed35e76f7d971b90cfe0806f43d279">krb5_crypto_getpadsize</a> (krb5_context context, krb5_crypto crypto, size_t *padsize)</td></tr>
57<tr class="separator:gafbed35e76f7d971b90cfe0806f43d279"><td class="memSeparator" colspan="2">&#160;</td></tr>
58<tr class="memitem:ga38d88d8bf7be6913cfc7cf155a1ade8e"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#ga38d88d8bf7be6913cfc7cf155a1ade8e">krb5_crypto_getconfoundersize</a> (krb5_context context, krb5_crypto crypto, size_t *confoundersize)</td></tr>
59<tr class="separator:ga38d88d8bf7be6913cfc7cf155a1ade8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
60<tr class="memitem:ga77acfc640aa003095ea5890de2ea1cb7"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#ga77acfc640aa003095ea5890de2ea1cb7">krb5_enctype_disable</a> (krb5_context context, krb5_enctype enctype)</td></tr>
61<tr class="separator:ga77acfc640aa003095ea5890de2ea1cb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
62<tr class="memitem:ga8dfebc785c059e38c22c6ca34ed5f68a"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#ga8dfebc785c059e38c22c6ca34ed5f68a">krb5_enctype_enable</a> (krb5_context context, krb5_enctype enctype)</td></tr>
63<tr class="separator:ga8dfebc785c059e38c22c6ca34ed5f68a"><td class="memSeparator" colspan="2">&#160;</td></tr>
64<tr class="memitem:ga2790b9799fbe21ac4875c401eafb7444"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#ga2790b9799fbe21ac4875c401eafb7444">krb5_allow_weak_crypto</a> (krb5_context context, krb5_boolean enable)</td></tr>
65<tr class="separator:ga2790b9799fbe21ac4875c401eafb7444"><td class="memSeparator" colspan="2">&#160;</td></tr>
66<tr class="memitem:ga2c4eb7d66f487d238cd0bdc66c9eaed6"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#ga2c4eb7d66f487d238cd0bdc66c9eaed6">krb5_is_enctype_weak</a> (krb5_context context, krb5_enctype enctype)</td></tr>
67<tr class="separator:ga2c4eb7d66f487d238cd0bdc66c9eaed6"><td class="memSeparator" colspan="2">&#160;</td></tr>
68<tr class="memitem:gaeded45d4b6e6dbec7e91427fe3df0ea8"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#gaeded45d4b6e6dbec7e91427fe3df0ea8">_krb5_enctype_requires_random_salt</a> (krb5_context context, krb5_enctype enctype)</td></tr>
69<tr class="separator:gaeded45d4b6e6dbec7e91427fe3df0ea8"><td class="memSeparator" colspan="2">&#160;</td></tr>
70<tr class="memitem:gaa5f3001696f59f7d47539efe82b1c4cd"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#gaa5f3001696f59f7d47539efe82b1c4cd">krb5_random_to_key</a> (krb5_context context, krb5_enctype type, const void *data, size_t size, krb5_keyblock *key)</td></tr>
71<tr class="separator:gaa5f3001696f59f7d47539efe82b1c4cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
72<tr class="memitem:ga6deab998fe1c056fff541cdf0c119c44"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#ga6deab998fe1c056fff541cdf0c119c44">krb5_crypto_fx_cf2</a> (krb5_context context, const krb5_crypto crypto1, const krb5_crypto crypto2, krb5_data *pepper1, krb5_data *pepper2, krb5_enctype enctype, krb5_keyblock *res)</td></tr>
73<tr class="separator:ga6deab998fe1c056fff541cdf0c119c44"><td class="memSeparator" colspan="2">&#160;</td></tr>
74<tr class="memitem:ga147a581626c11fafee04bfda036781ea"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#ga147a581626c11fafee04bfda036781ea">krb5_generate_subkey_extended</a> (krb5_context context, const krb5_keyblock *key, krb5_enctype etype, krb5_keyblock **subkey)</td></tr>
75<tr class="separator:ga147a581626c11fafee04bfda036781ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
76<tr class="memitem:ga33e1cb14ccab45ce46d51064caf07c10"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION void KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#ga33e1cb14ccab45ce46d51064caf07c10">krb5_keyblock_zero</a> (krb5_keyblock *keyblock)</td></tr>
77<tr class="separator:ga33e1cb14ccab45ce46d51064caf07c10"><td class="memSeparator" colspan="2">&#160;</td></tr>
78<tr class="memitem:ga66d5d8067358373fdab46987503f2398"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION void KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#ga66d5d8067358373fdab46987503f2398">krb5_free_keyblock_contents</a> (krb5_context context, krb5_keyblock *keyblock)</td></tr>
79<tr class="separator:ga66d5d8067358373fdab46987503f2398"><td class="memSeparator" colspan="2">&#160;</td></tr>
80<tr class="memitem:ga2e434abf56e7d7852358e11cdab0bb33"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION void KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#ga2e434abf56e7d7852358e11cdab0bb33">krb5_free_keyblock</a> (krb5_context context, krb5_keyblock *keyblock)</td></tr>
81<tr class="separator:ga2e434abf56e7d7852358e11cdab0bb33"><td class="memSeparator" colspan="2">&#160;</td></tr>
82<tr class="memitem:ga61fbae0666b6889f539c98a45c1564ae"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#ga61fbae0666b6889f539c98a45c1564ae">krb5_copy_keyblock_contents</a> (krb5_context context, const krb5_keyblock *inblock, krb5_keyblock *to)</td></tr>
83<tr class="separator:ga61fbae0666b6889f539c98a45c1564ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
84<tr class="memitem:gab68e1eb316fba45acafd300ac6d93101"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#gab68e1eb316fba45acafd300ac6d93101">krb5_copy_keyblock</a> (krb5_context context, const krb5_keyblock *inblock, krb5_keyblock **to)</td></tr>
85<tr class="separator:gab68e1eb316fba45acafd300ac6d93101"><td class="memSeparator" colspan="2">&#160;</td></tr>
86<tr class="memitem:gaa2caa584d5a6f0bbba3e1bae7255be5c"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_enctype KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#gaa2caa584d5a6f0bbba3e1bae7255be5c">krb5_keyblock_get_enctype</a> (const krb5_keyblock *block)</td></tr>
87<tr class="separator:gaa2caa584d5a6f0bbba3e1bae7255be5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
88<tr class="memitem:ga690c42630f2f6b9f7ce96cc75441803d"><td class="memItemLeft" align="right" valign="top">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#ga690c42630f2f6b9f7ce96cc75441803d">krb5_keyblock_init</a> (krb5_context context, krb5_enctype type, const void *data, size_t size, krb5_keyblock *key)</td></tr>
89<tr class="separator:ga690c42630f2f6b9f7ce96cc75441803d"><td class="memSeparator" colspan="2">&#160;</td></tr>
90<tr class="memitem:gaf4576c2e94faebd9e0309e68a261a704"><td class="memItemLeft" align="right" valign="top">krb5_error_code&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__krb5__crypto.html#gaf4576c2e94faebd9e0309e68a261a704">_krb5_SP800_108_HMAC_KDF</a> (krb5_context context, const krb5_data *kdf_K1, const krb5_data *kdf_label, const krb5_data *kdf_context, const EVP_MD *md, krb5_data *kdf_K0)</td></tr>
91<tr class="separator:gaf4576c2e94faebd9e0309e68a261a704"><td class="memSeparator" colspan="2">&#160;</td></tr>
92</table>
93<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
94<h2 class="groupheader">Function Documentation</h2>
95<a id="gaeded45d4b6e6dbec7e91427fe3df0ea8"></a>
96<h2 class="memtitle"><span class="permalink"><a href="#gaeded45d4b6e6dbec7e91427fe3df0ea8">&#9670;&nbsp;</a></span>_krb5_enctype_requires_random_salt()</h2>
97
98<div class="memitem">
99<div class="memproto">
100      <table class="memname">
101        <tr>
102          <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL _krb5_enctype_requires_random_salt </td>
103          <td>(</td>
104          <td class="paramtype">krb5_context&#160;</td>
105          <td class="paramname"><em>context</em>, </td>
106        </tr>
107        <tr>
108          <td class="paramkey"></td>
109          <td></td>
110          <td class="paramtype">krb5_enctype&#160;</td>
111          <td class="paramname"><em>enctype</em>&#160;</td>
112        </tr>
113        <tr>
114          <td></td>
115          <td>)</td>
116          <td></td><td></td>
117        </tr>
118      </table>
119</div><div class="memdoc">
120<p>Returns whether the encryption type should use randomly generated salts</p>
121<dl class="params"><dt>Parameters</dt><dd>
122  <table class="params">
123    <tr><td class="paramname">context</td><td>Kerberos 5 context </td></tr>
124    <tr><td class="paramname">enctype</td><td>encryption type to probe</td></tr>
125  </table>
126  </dd>
127</dl>
128<dl class="section return"><dt>Returns</dt><dd>Returns true if generated salts should have random component </dd></dl>
129
130</div>
131</div>
132<a id="gaf4576c2e94faebd9e0309e68a261a704"></a>
133<h2 class="memtitle"><span class="permalink"><a href="#gaf4576c2e94faebd9e0309e68a261a704">&#9670;&nbsp;</a></span>_krb5_SP800_108_HMAC_KDF()</h2>
134
135<div class="memitem">
136<div class="memproto">
137      <table class="memname">
138        <tr>
139          <td class="memname">krb5_error_code _krb5_SP800_108_HMAC_KDF </td>
140          <td>(</td>
141          <td class="paramtype">krb5_context&#160;</td>
142          <td class="paramname"><em>context</em>, </td>
143        </tr>
144        <tr>
145          <td class="paramkey"></td>
146          <td></td>
147          <td class="paramtype">const krb5_data *&#160;</td>
148          <td class="paramname"><em>kdf_K1</em>, </td>
149        </tr>
150        <tr>
151          <td class="paramkey"></td>
152          <td></td>
153          <td class="paramtype">const krb5_data *&#160;</td>
154          <td class="paramname"><em>kdf_label</em>, </td>
155        </tr>
156        <tr>
157          <td class="paramkey"></td>
158          <td></td>
159          <td class="paramtype">const krb5_data *&#160;</td>
160          <td class="paramname"><em>kdf_context</em>, </td>
161        </tr>
162        <tr>
163          <td class="paramkey"></td>
164          <td></td>
165          <td class="paramtype">const EVP_MD *&#160;</td>
166          <td class="paramname"><em>md</em>, </td>
167        </tr>
168        <tr>
169          <td class="paramkey"></td>
170          <td></td>
171          <td class="paramtype">krb5_data *&#160;</td>
172          <td class="paramname"><em>kdf_K0</em>&#160;</td>
173        </tr>
174        <tr>
175          <td></td>
176          <td>)</td>
177          <td></td><td></td>
178        </tr>
179      </table>
180</div><div class="memdoc">
181<p>As described in SP800-108 5.1 (for HMAC)</p>
182<dl class="params"><dt>Parameters</dt><dd>
183  <table class="params">
184    <tr><td class="paramname">context</td><td>Kerberos 5 context </td></tr>
185    <tr><td class="paramname">kdf_K1</td><td>Base key material. </td></tr>
186    <tr><td class="paramname">kdf_label</td><td>A string that identifies the purpose for the derived key. </td></tr>
187    <tr><td class="paramname">kdf_context</td><td>A binary string containing parties, nonce, etc. </td></tr>
188    <tr><td class="paramname">md</td><td>Message digest function to use for PRF. </td></tr>
189    <tr><td class="paramname">kdf_K0</td><td>Derived key data.</td></tr>
190  </table>
191  </dd>
192</dl>
193<dl class="section return"><dt>Returns</dt><dd>Return an error code for an failure or 0 on success. </dd></dl>
194
195</div>
196</div>
197<a id="ga2790b9799fbe21ac4875c401eafb7444"></a>
198<h2 class="memtitle"><span class="permalink"><a href="#ga2790b9799fbe21ac4875c401eafb7444">&#9670;&nbsp;</a></span>krb5_allow_weak_crypto()</h2>
199
200<div class="memitem">
201<div class="memproto">
202      <table class="memname">
203        <tr>
204          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_allow_weak_crypto </td>
205          <td>(</td>
206          <td class="paramtype">krb5_context&#160;</td>
207          <td class="paramname"><em>context</em>, </td>
208        </tr>
209        <tr>
210          <td class="paramkey"></td>
211          <td></td>
212          <td class="paramtype">krb5_boolean&#160;</td>
213          <td class="paramname"><em>enable</em>&#160;</td>
214        </tr>
215        <tr>
216          <td></td>
217          <td>)</td>
218          <td></td><td></td>
219        </tr>
220      </table>
221</div><div class="memdoc">
222<p>Enable or disable all weak encryption types</p>
223<dl class="params"><dt>Parameters</dt><dd>
224  <table class="params">
225    <tr><td class="paramname">context</td><td>Kerberos 5 context </td></tr>
226    <tr><td class="paramname">enable</td><td>true to enable, false to disable</td></tr>
227  </table>
228  </dd>
229</dl>
230<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0. </dd></dl>
231
232</div>
233</div>
234<a id="ga49d7081ff071eacd28e3ffa90400580c"></a>
235<h2 class="memtitle"><span class="permalink"><a href="#ga49d7081ff071eacd28e3ffa90400580c">&#9670;&nbsp;</a></span>krb5_cksumtype_to_enctype()</h2>
236
237<div class="memitem">
238<div class="memproto">
239      <table class="memname">
240        <tr>
241          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_cksumtype_to_enctype </td>
242          <td>(</td>
243          <td class="paramtype">krb5_context&#160;</td>
244          <td class="paramname"><em>context</em>, </td>
245        </tr>
246        <tr>
247          <td class="paramkey"></td>
248          <td></td>
249          <td class="paramtype">krb5_cksumtype&#160;</td>
250          <td class="paramname"><em>ctype</em>, </td>
251        </tr>
252        <tr>
253          <td class="paramkey"></td>
254          <td></td>
255          <td class="paramtype">krb5_enctype *&#160;</td>
256          <td class="paramname"><em>etype</em>&#160;</td>
257        </tr>
258        <tr>
259          <td></td>
260          <td>)</td>
261          <td></td><td></td>
262        </tr>
263      </table>
264</div><div class="memdoc">
265<p>Return the coresponding encryption type for a checksum type.</p>
266<dl class="params"><dt>Parameters</dt><dd>
267  <table class="params">
268    <tr><td class="paramname">context</td><td>Kerberos context </td></tr>
269    <tr><td class="paramname">ctype</td><td>The checksum type to get the result enctype for </td></tr>
270    <tr><td class="paramname">etype</td><td>The returned encryption, when the matching etype is not found, etype is set to ETYPE_NULL.</td></tr>
271  </table>
272  </dd>
273</dl>
274<dl class="section return"><dt>Returns</dt><dd>Return an error code for an failure or 0 on success. </dd></dl>
275
276</div>
277</div>
278<a id="gab68e1eb316fba45acafd300ac6d93101"></a>
279<h2 class="memtitle"><span class="permalink"><a href="#gab68e1eb316fba45acafd300ac6d93101">&#9670;&nbsp;</a></span>krb5_copy_keyblock()</h2>
280
281<div class="memitem">
282<div class="memproto">
283      <table class="memname">
284        <tr>
285          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_keyblock </td>
286          <td>(</td>
287          <td class="paramtype">krb5_context&#160;</td>
288          <td class="paramname"><em>context</em>, </td>
289        </tr>
290        <tr>
291          <td class="paramkey"></td>
292          <td></td>
293          <td class="paramtype">const krb5_keyblock *&#160;</td>
294          <td class="paramname"><em>inblock</em>, </td>
295        </tr>
296        <tr>
297          <td class="paramkey"></td>
298          <td></td>
299          <td class="paramtype">krb5_keyblock **&#160;</td>
300          <td class="paramname"><em>to</em>&#160;</td>
301        </tr>
302        <tr>
303          <td></td>
304          <td>)</td>
305          <td></td><td></td>
306        </tr>
307      </table>
308</div><div class="memdoc">
309<p>Copy a keyblock, free the output keyblock with <a class="el" href="group__krb5__crypto.html#ga2e434abf56e7d7852358e11cdab0bb33">krb5_free_keyblock()</a>.</p>
310<dl class="params"><dt>Parameters</dt><dd>
311  <table class="params">
312    <tr><td class="paramname">context</td><td>a Kerberos 5 context </td></tr>
313    <tr><td class="paramname">inblock</td><td>the key to copy </td></tr>
314    <tr><td class="paramname">to</td><td>the output key.</td></tr>
315  </table>
316  </dd>
317</dl>
318<dl class="section return"><dt>Returns</dt><dd>0 on success or a Kerberos 5 error code </dd></dl>
319
320</div>
321</div>
322<a id="ga61fbae0666b6889f539c98a45c1564ae"></a>
323<h2 class="memtitle"><span class="permalink"><a href="#ga61fbae0666b6889f539c98a45c1564ae">&#9670;&nbsp;</a></span>krb5_copy_keyblock_contents()</h2>
324
325<div class="memitem">
326<div class="memproto">
327      <table class="memname">
328        <tr>
329          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_copy_keyblock_contents </td>
330          <td>(</td>
331          <td class="paramtype">krb5_context&#160;</td>
332          <td class="paramname"><em>context</em>, </td>
333        </tr>
334        <tr>
335          <td class="paramkey"></td>
336          <td></td>
337          <td class="paramtype">const krb5_keyblock *&#160;</td>
338          <td class="paramname"><em>inblock</em>, </td>
339        </tr>
340        <tr>
341          <td class="paramkey"></td>
342          <td></td>
343          <td class="paramtype">krb5_keyblock *&#160;</td>
344          <td class="paramname"><em>to</em>&#160;</td>
345        </tr>
346        <tr>
347          <td></td>
348          <td>)</td>
349          <td></td><td></td>
350        </tr>
351      </table>
352</div><div class="memdoc">
353<p>Copy a keyblock, free the output keyblock with <a class="el" href="group__krb5__crypto.html#ga66d5d8067358373fdab46987503f2398">krb5_free_keyblock_contents()</a>.</p>
354<dl class="params"><dt>Parameters</dt><dd>
355  <table class="params">
356    <tr><td class="paramname">context</td><td>a Kerberos 5 context </td></tr>
357    <tr><td class="paramname">inblock</td><td>the key to copy </td></tr>
358    <tr><td class="paramname">to</td><td>the output key.</td></tr>
359  </table>
360  </dd>
361</dl>
362<dl class="section return"><dt>Returns</dt><dd>0 on success or a Kerberos 5 error code </dd></dl>
363
364</div>
365</div>
366<a id="gab70888d1122aeed1e5381116a5a9612e"></a>
367<h2 class="memtitle"><span class="permalink"><a href="#gab70888d1122aeed1e5381116a5a9612e">&#9670;&nbsp;</a></span>krb5_create_checksum_iov()</h2>
368
369<div class="memitem">
370<div class="memproto">
371      <table class="memname">
372        <tr>
373          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_create_checksum_iov </td>
374          <td>(</td>
375          <td class="paramtype">krb5_context&#160;</td>
376          <td class="paramname"><em>context</em>, </td>
377        </tr>
378        <tr>
379          <td class="paramkey"></td>
380          <td></td>
381          <td class="paramtype">krb5_crypto&#160;</td>
382          <td class="paramname"><em>crypto</em>, </td>
383        </tr>
384        <tr>
385          <td class="paramkey"></td>
386          <td></td>
387          <td class="paramtype">unsigned&#160;</td>
388          <td class="paramname"><em>usage</em>, </td>
389        </tr>
390        <tr>
391          <td class="paramkey"></td>
392          <td></td>
393          <td class="paramtype"><a class="el" href="structkrb5__crypto__iov.html">krb5_crypto_iov</a> *&#160;</td>
394          <td class="paramname"><em>data</em>, </td>
395        </tr>
396        <tr>
397          <td class="paramkey"></td>
398          <td></td>
399          <td class="paramtype">unsigned int&#160;</td>
400          <td class="paramname"><em>num_data</em>, </td>
401        </tr>
402        <tr>
403          <td class="paramkey"></td>
404          <td></td>
405          <td class="paramtype">krb5_cksumtype *&#160;</td>
406          <td class="paramname"><em>type</em>&#160;</td>
407        </tr>
408        <tr>
409          <td></td>
410          <td>)</td>
411          <td></td><td></td>
412        </tr>
413      </table>
414</div><div class="memdoc">
415<p>Create a Kerberos message checksum.</p>
416<dl class="params"><dt>Parameters</dt><dd>
417  <table class="params">
418    <tr><td class="paramname">context</td><td>Kerberos context </td></tr>
419    <tr><td class="paramname">crypto</td><td>Kerberos crypto context </td></tr>
420    <tr><td class="paramname">usage</td><td>Key usage for this buffer </td></tr>
421    <tr><td class="paramname">data</td><td>array of buffers to process </td></tr>
422    <tr><td class="paramname">num_data</td><td>length of array </td></tr>
423    <tr><td class="paramname">type</td><td>output data</td></tr>
424  </table>
425  </dd>
426</dl>
427<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0. </dd></dl>
428
429</div>
430</div>
431<a id="ga57eaed735baab9eb3c3740be8e4d2137"></a>
432<h2 class="memtitle"><span class="permalink"><a href="#ga57eaed735baab9eb3c3740be8e4d2137">&#9670;&nbsp;</a></span>krb5_crypto_destroy()</h2>
433
434<div class="memitem">
435<div class="memproto">
436      <table class="memname">
437        <tr>
438          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_destroy </td>
439          <td>(</td>
440          <td class="paramtype">krb5_context&#160;</td>
441          <td class="paramname"><em>context</em>, </td>
442        </tr>
443        <tr>
444          <td class="paramkey"></td>
445          <td></td>
446          <td class="paramtype">krb5_crypto&#160;</td>
447          <td class="paramname"><em>crypto</em>&#160;</td>
448        </tr>
449        <tr>
450          <td></td>
451          <td>)</td>
452          <td></td><td></td>
453        </tr>
454      </table>
455</div><div class="memdoc">
456<p>Free a crypto context created by <a class="el" href="group__krb5__crypto.html#gad7003a8a81cef633cc0a2cc07c93dd32">krb5_crypto_init()</a>.</p>
457<dl class="params"><dt>Parameters</dt><dd>
458  <table class="params">
459    <tr><td class="paramname">context</td><td>Kerberos context </td></tr>
460    <tr><td class="paramname">crypto</td><td>crypto context to free</td></tr>
461  </table>
462  </dd>
463</dl>
464<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0. </dd></dl>
465
466</div>
467</div>
468<a id="ga6deab998fe1c056fff541cdf0c119c44"></a>
469<h2 class="memtitle"><span class="permalink"><a href="#ga6deab998fe1c056fff541cdf0c119c44">&#9670;&nbsp;</a></span>krb5_crypto_fx_cf2()</h2>
470
471<div class="memitem">
472<div class="memproto">
473      <table class="memname">
474        <tr>
475          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_fx_cf2 </td>
476          <td>(</td>
477          <td class="paramtype">krb5_context&#160;</td>
478          <td class="paramname"><em>context</em>, </td>
479        </tr>
480        <tr>
481          <td class="paramkey"></td>
482          <td></td>
483          <td class="paramtype">const krb5_crypto&#160;</td>
484          <td class="paramname"><em>crypto1</em>, </td>
485        </tr>
486        <tr>
487          <td class="paramkey"></td>
488          <td></td>
489          <td class="paramtype">const krb5_crypto&#160;</td>
490          <td class="paramname"><em>crypto2</em>, </td>
491        </tr>
492        <tr>
493          <td class="paramkey"></td>
494          <td></td>
495          <td class="paramtype">krb5_data *&#160;</td>
496          <td class="paramname"><em>pepper1</em>, </td>
497        </tr>
498        <tr>
499          <td class="paramkey"></td>
500          <td></td>
501          <td class="paramtype">krb5_data *&#160;</td>
502          <td class="paramname"><em>pepper2</em>, </td>
503        </tr>
504        <tr>
505          <td class="paramkey"></td>
506          <td></td>
507          <td class="paramtype">krb5_enctype&#160;</td>
508          <td class="paramname"><em>enctype</em>, </td>
509        </tr>
510        <tr>
511          <td class="paramkey"></td>
512          <td></td>
513          <td class="paramtype">krb5_keyblock *&#160;</td>
514          <td class="paramname"><em>res</em>&#160;</td>
515        </tr>
516        <tr>
517          <td></td>
518          <td>)</td>
519          <td></td><td></td>
520        </tr>
521      </table>
522</div><div class="memdoc">
523<p>The FX-CF2 key derivation function, used in FAST and preauth framework.</p>
524<dl class="params"><dt>Parameters</dt><dd>
525  <table class="params">
526    <tr><td class="paramname">context</td><td>Kerberos 5 context </td></tr>
527    <tr><td class="paramname">crypto1</td><td>first key to combine </td></tr>
528    <tr><td class="paramname">crypto2</td><td>second key to combine </td></tr>
529    <tr><td class="paramname">pepper1</td><td>factor to combine with first key to garante uniqueness </td></tr>
530    <tr><td class="paramname">pepper2</td><td>factor to combine with second key to garante uniqueness </td></tr>
531    <tr><td class="paramname">enctype</td><td>the encryption type of the resulting key </td></tr>
532    <tr><td class="paramname">res</td><td>allocated key, free with <a class="el" href="group__krb5__crypto.html#ga66d5d8067358373fdab46987503f2398">krb5_free_keyblock_contents()</a></td></tr>
533  </table>
534  </dd>
535</dl>
536<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0. </dd></dl>
537
538</div>
539</div>
540<a id="gaa4271d4adba2dff699dfdfe07b075b95"></a>
541<h2 class="memtitle"><span class="permalink"><a href="#gaa4271d4adba2dff699dfdfe07b075b95">&#9670;&nbsp;</a></span>krb5_crypto_getblocksize()</h2>
542
543<div class="memitem">
544<div class="memproto">
545      <table class="memname">
546        <tr>
547          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_getblocksize </td>
548          <td>(</td>
549          <td class="paramtype">krb5_context&#160;</td>
550          <td class="paramname"><em>context</em>, </td>
551        </tr>
552        <tr>
553          <td class="paramkey"></td>
554          <td></td>
555          <td class="paramtype">krb5_crypto&#160;</td>
556          <td class="paramname"><em>crypto</em>, </td>
557        </tr>
558        <tr>
559          <td class="paramkey"></td>
560          <td></td>
561          <td class="paramtype">size_t *&#160;</td>
562          <td class="paramname"><em>blocksize</em>&#160;</td>
563        </tr>
564        <tr>
565          <td></td>
566          <td>)</td>
567          <td></td><td></td>
568        </tr>
569      </table>
570</div><div class="memdoc">
571<p>Return the blocksize used algorithm referenced by the crypto context</p>
572<dl class="params"><dt>Parameters</dt><dd>
573  <table class="params">
574    <tr><td class="paramname">context</td><td>Kerberos context </td></tr>
575    <tr><td class="paramname">crypto</td><td>crypto context to query </td></tr>
576    <tr><td class="paramname">blocksize</td><td>the resulting blocksize</td></tr>
577  </table>
578  </dd>
579</dl>
580<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0. </dd></dl>
581
582</div>
583</div>
584<a id="ga38d88d8bf7be6913cfc7cf155a1ade8e"></a>
585<h2 class="memtitle"><span class="permalink"><a href="#ga38d88d8bf7be6913cfc7cf155a1ade8e">&#9670;&nbsp;</a></span>krb5_crypto_getconfoundersize()</h2>
586
587<div class="memitem">
588<div class="memproto">
589      <table class="memname">
590        <tr>
591          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_getconfoundersize </td>
592          <td>(</td>
593          <td class="paramtype">krb5_context&#160;</td>
594          <td class="paramname"><em>context</em>, </td>
595        </tr>
596        <tr>
597          <td class="paramkey"></td>
598          <td></td>
599          <td class="paramtype">krb5_crypto&#160;</td>
600          <td class="paramname"><em>crypto</em>, </td>
601        </tr>
602        <tr>
603          <td class="paramkey"></td>
604          <td></td>
605          <td class="paramtype">size_t *&#160;</td>
606          <td class="paramname"><em>confoundersize</em>&#160;</td>
607        </tr>
608        <tr>
609          <td></td>
610          <td>)</td>
611          <td></td><td></td>
612        </tr>
613      </table>
614</div><div class="memdoc">
615<p>Return the confounder size used by the crypto context</p>
616<dl class="params"><dt>Parameters</dt><dd>
617  <table class="params">
618    <tr><td class="paramname">context</td><td>Kerberos context </td></tr>
619    <tr><td class="paramname">crypto</td><td>crypto context to query </td></tr>
620    <tr><td class="paramname">confoundersize</td><td>the returned confounder size</td></tr>
621  </table>
622  </dd>
623</dl>
624<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0. </dd></dl>
625
626</div>
627</div>
628<a id="ga6bc15d1940ecdd4558f18eeb3dda233c"></a>
629<h2 class="memtitle"><span class="permalink"><a href="#ga6bc15d1940ecdd4558f18eeb3dda233c">&#9670;&nbsp;</a></span>krb5_crypto_getenctype()</h2>
630
631<div class="memitem">
632<div class="memproto">
633      <table class="memname">
634        <tr>
635          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_getenctype </td>
636          <td>(</td>
637          <td class="paramtype">krb5_context&#160;</td>
638          <td class="paramname"><em>context</em>, </td>
639        </tr>
640        <tr>
641          <td class="paramkey"></td>
642          <td></td>
643          <td class="paramtype">krb5_crypto&#160;</td>
644          <td class="paramname"><em>crypto</em>, </td>
645        </tr>
646        <tr>
647          <td class="paramkey"></td>
648          <td></td>
649          <td class="paramtype">krb5_enctype *&#160;</td>
650          <td class="paramname"><em>enctype</em>&#160;</td>
651        </tr>
652        <tr>
653          <td></td>
654          <td>)</td>
655          <td></td><td></td>
656        </tr>
657      </table>
658</div><div class="memdoc">
659<p>Return the encryption type used by the crypto context</p>
660<dl class="params"><dt>Parameters</dt><dd>
661  <table class="params">
662    <tr><td class="paramname">context</td><td>Kerberos context </td></tr>
663    <tr><td class="paramname">crypto</td><td>crypto context to query </td></tr>
664    <tr><td class="paramname">enctype</td><td>the resulting encryption type</td></tr>
665  </table>
666  </dd>
667</dl>
668<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0. </dd></dl>
669
670</div>
671</div>
672<a id="gafbed35e76f7d971b90cfe0806f43d279"></a>
673<h2 class="memtitle"><span class="permalink"><a href="#gafbed35e76f7d971b90cfe0806f43d279">&#9670;&nbsp;</a></span>krb5_crypto_getpadsize()</h2>
674
675<div class="memitem">
676<div class="memproto">
677      <table class="memname">
678        <tr>
679          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_getpadsize </td>
680          <td>(</td>
681          <td class="paramtype">krb5_context&#160;</td>
682          <td class="paramname"><em>context</em>, </td>
683        </tr>
684        <tr>
685          <td class="paramkey"></td>
686          <td></td>
687          <td class="paramtype">krb5_crypto&#160;</td>
688          <td class="paramname"><em>crypto</em>, </td>
689        </tr>
690        <tr>
691          <td class="paramkey"></td>
692          <td></td>
693          <td class="paramtype">size_t *&#160;</td>
694          <td class="paramname"><em>padsize</em>&#160;</td>
695        </tr>
696        <tr>
697          <td></td>
698          <td>)</td>
699          <td></td><td></td>
700        </tr>
701      </table>
702</div><div class="memdoc">
703<p>Return the padding size used by the crypto context</p>
704<dl class="params"><dt>Parameters</dt><dd>
705  <table class="params">
706    <tr><td class="paramname">context</td><td>Kerberos context </td></tr>
707    <tr><td class="paramname">crypto</td><td>crypto context to query </td></tr>
708    <tr><td class="paramname">padsize</td><td>the return padding size</td></tr>
709  </table>
710  </dd>
711</dl>
712<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0. </dd></dl>
713
714</div>
715</div>
716<a id="gad7003a8a81cef633cc0a2cc07c93dd32"></a>
717<h2 class="memtitle"><span class="permalink"><a href="#gad7003a8a81cef633cc0a2cc07c93dd32">&#9670;&nbsp;</a></span>krb5_crypto_init()</h2>
718
719<div class="memitem">
720<div class="memproto">
721      <table class="memname">
722        <tr>
723          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_crypto_init </td>
724          <td>(</td>
725          <td class="paramtype">krb5_context&#160;</td>
726          <td class="paramname"><em>context</em>, </td>
727        </tr>
728        <tr>
729          <td class="paramkey"></td>
730          <td></td>
731          <td class="paramtype">const krb5_keyblock *&#160;</td>
732          <td class="paramname"><em>key</em>, </td>
733        </tr>
734        <tr>
735          <td class="paramkey"></td>
736          <td></td>
737          <td class="paramtype">krb5_enctype&#160;</td>
738          <td class="paramname"><em>etype</em>, </td>
739        </tr>
740        <tr>
741          <td class="paramkey"></td>
742          <td></td>
743          <td class="paramtype">krb5_crypto *&#160;</td>
744          <td class="paramname"><em>crypto</em>&#160;</td>
745        </tr>
746        <tr>
747          <td></td>
748          <td>)</td>
749          <td></td><td></td>
750        </tr>
751      </table>
752</div><div class="memdoc">
753<p>Create a crypto context used for all encryption and signature operation. The encryption type to use is taken from the key, but can be overridden with the enctype parameter. This can be useful for encryptions types which is compatiable (DES for example).</p>
754<p>To free the crypto context, use <a class="el" href="group__krb5__crypto.html#ga57eaed735baab9eb3c3740be8e4d2137">krb5_crypto_destroy()</a>.</p>
755<dl class="params"><dt>Parameters</dt><dd>
756  <table class="params">
757    <tr><td class="paramname">context</td><td>Kerberos context </td></tr>
758    <tr><td class="paramname">key</td><td>the key block information with all key data </td></tr>
759    <tr><td class="paramname">etype</td><td>the encryption type </td></tr>
760    <tr><td class="paramname">crypto</td><td>the resulting crypto context</td></tr>
761  </table>
762  </dd>
763</dl>
764<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0. </dd></dl>
765
766</div>
767</div>
768<a id="ga64cad191491a5d3309553e7d28d8ad46"></a>
769<h2 class="memtitle"><span class="permalink"><a href="#ga64cad191491a5d3309553e7d28d8ad46">&#9670;&nbsp;</a></span>krb5_decrypt_iov_ivec()</h2>
770
771<div class="memitem">
772<div class="memproto">
773      <table class="memname">
774        <tr>
775          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_decrypt_iov_ivec </td>
776          <td>(</td>
777          <td class="paramtype">krb5_context&#160;</td>
778          <td class="paramname"><em>context</em>, </td>
779        </tr>
780        <tr>
781          <td class="paramkey"></td>
782          <td></td>
783          <td class="paramtype">krb5_crypto&#160;</td>
784          <td class="paramname"><em>crypto</em>, </td>
785        </tr>
786        <tr>
787          <td class="paramkey"></td>
788          <td></td>
789          <td class="paramtype">unsigned&#160;</td>
790          <td class="paramname"><em>usage</em>, </td>
791        </tr>
792        <tr>
793          <td class="paramkey"></td>
794          <td></td>
795          <td class="paramtype"><a class="el" href="structkrb5__crypto__iov.html">krb5_crypto_iov</a> *&#160;</td>
796          <td class="paramname"><em>data</em>, </td>
797        </tr>
798        <tr>
799          <td class="paramkey"></td>
800          <td></td>
801          <td class="paramtype">unsigned int&#160;</td>
802          <td class="paramname"><em>num_data</em>, </td>
803        </tr>
804        <tr>
805          <td class="paramkey"></td>
806          <td></td>
807          <td class="paramtype">void *&#160;</td>
808          <td class="paramname"><em>ivec</em>&#160;</td>
809        </tr>
810        <tr>
811          <td></td>
812          <td>)</td>
813          <td></td><td></td>
814        </tr>
815      </table>
816</div><div class="memdoc">
817<p>Inline decrypt a Kerberos message.</p>
818<dl class="params"><dt>Parameters</dt><dd>
819  <table class="params">
820    <tr><td class="paramname">context</td><td>Kerberos context </td></tr>
821    <tr><td class="paramname">crypto</td><td>Kerberos crypto context </td></tr>
822    <tr><td class="paramname">usage</td><td>Key usage for this buffer </td></tr>
823    <tr><td class="paramname">data</td><td>array of buffers to process </td></tr>
824    <tr><td class="paramname">num_data</td><td>length of array </td></tr>
825    <tr><td class="paramname">ivec</td><td>initial cbc/cts vector</td></tr>
826  </table>
827  </dd>
828</dl>
829<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0.</dd></dl>
830<ol type="1">
831<li>KRB5_CRYPTO_TYPE_HEADER</li>
832<li>one KRB5_CRYPTO_TYPE_DATA and array [0,...] of KRB5_CRYPTO_TYPE_SIGN_ONLY in any order, however the receiver have to aware of the order. KRB5_CRYPTO_TYPE_SIGN_ONLY is commonly used unencrypoted protocol headers and trailers. The output data will be of same size as the input data or shorter. </li>
833</ol>
834
835</div>
836</div>
837<a id="ga674423844043d6beebb959bb8b7ab082"></a>
838<h2 class="memtitle"><span class="permalink"><a href="#ga674423844043d6beebb959bb8b7ab082">&#9670;&nbsp;</a></span>krb5_encrypt_iov_ivec()</h2>
839
840<div class="memitem">
841<div class="memproto">
842      <table class="memname">
843        <tr>
844          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_encrypt_iov_ivec </td>
845          <td>(</td>
846          <td class="paramtype">krb5_context&#160;</td>
847          <td class="paramname"><em>context</em>, </td>
848        </tr>
849        <tr>
850          <td class="paramkey"></td>
851          <td></td>
852          <td class="paramtype">krb5_crypto&#160;</td>
853          <td class="paramname"><em>crypto</em>, </td>
854        </tr>
855        <tr>
856          <td class="paramkey"></td>
857          <td></td>
858          <td class="paramtype">unsigned&#160;</td>
859          <td class="paramname"><em>usage</em>, </td>
860        </tr>
861        <tr>
862          <td class="paramkey"></td>
863          <td></td>
864          <td class="paramtype"><a class="el" href="structkrb5__crypto__iov.html">krb5_crypto_iov</a> *&#160;</td>
865          <td class="paramname"><em>data</em>, </td>
866        </tr>
867        <tr>
868          <td class="paramkey"></td>
869          <td></td>
870          <td class="paramtype">int&#160;</td>
871          <td class="paramname"><em>num_data</em>, </td>
872        </tr>
873        <tr>
874          <td class="paramkey"></td>
875          <td></td>
876          <td class="paramtype">void *&#160;</td>
877          <td class="paramname"><em>ivec</em>&#160;</td>
878        </tr>
879        <tr>
880          <td></td>
881          <td>)</td>
882          <td></td><td></td>
883        </tr>
884      </table>
885</div><div class="memdoc">
886<p>Inline encrypt a kerberos message</p>
887<dl class="params"><dt>Parameters</dt><dd>
888  <table class="params">
889    <tr><td class="paramname">context</td><td>Kerberos context </td></tr>
890    <tr><td class="paramname">crypto</td><td>Kerberos crypto context </td></tr>
891    <tr><td class="paramname">usage</td><td>Key usage for this buffer </td></tr>
892    <tr><td class="paramname">data</td><td>array of buffers to process </td></tr>
893    <tr><td class="paramname">num_data</td><td>length of array </td></tr>
894    <tr><td class="paramname">ivec</td><td>initial cbc/cts vector</td></tr>
895  </table>
896  </dd>
897</dl>
898<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0.</dd></dl>
899<p>Kerberos encrypted data look like this:</p>
900<ol type="1">
901<li>KRB5_CRYPTO_TYPE_HEADER</li>
902<li>array [1,...] KRB5_CRYPTO_TYPE_DATA and array [0,...] KRB5_CRYPTO_TYPE_SIGN_ONLY in any order, however the receiver have to aware of the order. KRB5_CRYPTO_TYPE_SIGN_ONLY is commonly used headers and trailers.</li>
903<li>KRB5_CRYPTO_TYPE_PADDING, at least on padsize long if padsize &gt; 1</li>
904<li>KRB5_CRYPTO_TYPE_TRAILER </li>
905</ol>
906
907</div>
908</div>
909<a id="ga77acfc640aa003095ea5890de2ea1cb7"></a>
910<h2 class="memtitle"><span class="permalink"><a href="#ga77acfc640aa003095ea5890de2ea1cb7">&#9670;&nbsp;</a></span>krb5_enctype_disable()</h2>
911
912<div class="memitem">
913<div class="memproto">
914      <table class="memname">
915        <tr>
916          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_enctype_disable </td>
917          <td>(</td>
918          <td class="paramtype">krb5_context&#160;</td>
919          <td class="paramname"><em>context</em>, </td>
920        </tr>
921        <tr>
922          <td class="paramkey"></td>
923          <td></td>
924          <td class="paramtype">krb5_enctype&#160;</td>
925          <td class="paramname"><em>enctype</em>&#160;</td>
926        </tr>
927        <tr>
928          <td></td>
929          <td>)</td>
930          <td></td><td></td>
931        </tr>
932      </table>
933</div><div class="memdoc">
934<p>Disable encryption type</p>
935<dl class="params"><dt>Parameters</dt><dd>
936  <table class="params">
937    <tr><td class="paramname">context</td><td>Kerberos 5 context </td></tr>
938    <tr><td class="paramname">enctype</td><td>encryption type to disable</td></tr>
939  </table>
940  </dd>
941</dl>
942<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0. </dd></dl>
943
944</div>
945</div>
946<a id="ga8dfebc785c059e38c22c6ca34ed5f68a"></a>
947<h2 class="memtitle"><span class="permalink"><a href="#ga8dfebc785c059e38c22c6ca34ed5f68a">&#9670;&nbsp;</a></span>krb5_enctype_enable()</h2>
948
949<div class="memitem">
950<div class="memproto">
951      <table class="memname">
952        <tr>
953          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_enctype_enable </td>
954          <td>(</td>
955          <td class="paramtype">krb5_context&#160;</td>
956          <td class="paramname"><em>context</em>, </td>
957        </tr>
958        <tr>
959          <td class="paramkey"></td>
960          <td></td>
961          <td class="paramtype">krb5_enctype&#160;</td>
962          <td class="paramname"><em>enctype</em>&#160;</td>
963        </tr>
964        <tr>
965          <td></td>
966          <td>)</td>
967          <td></td><td></td>
968        </tr>
969      </table>
970</div><div class="memdoc">
971<p>Enable encryption type</p>
972<dl class="params"><dt>Parameters</dt><dd>
973  <table class="params">
974    <tr><td class="paramname">context</td><td>Kerberos 5 context </td></tr>
975    <tr><td class="paramname">enctype</td><td>encryption type to enable</td></tr>
976  </table>
977  </dd>
978</dl>
979<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0. </dd></dl>
980
981</div>
982</div>
983<a id="gad5f2b15d5fde369cf923e8fae4b00bec"></a>
984<h2 class="memtitle"><span class="permalink"><a href="#gad5f2b15d5fde369cf923e8fae4b00bec">&#9670;&nbsp;</a></span>krb5_enctype_valid()</h2>
985
986<div class="memitem">
987<div class="memproto">
988      <table class="memname">
989        <tr>
990          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_enctype_valid </td>
991          <td>(</td>
992          <td class="paramtype">krb5_context&#160;</td>
993          <td class="paramname"><em>context</em>, </td>
994        </tr>
995        <tr>
996          <td class="paramkey"></td>
997          <td></td>
998          <td class="paramtype">krb5_enctype&#160;</td>
999          <td class="paramname"><em>etype</em>&#160;</td>
1000        </tr>
1001        <tr>
1002          <td></td>
1003          <td>)</td>
1004          <td></td><td></td>
1005        </tr>
1006      </table>
1007</div><div class="memdoc">
1008<p>Check if a enctype is valid, return 0 if it is.</p>
1009<dl class="params"><dt>Parameters</dt><dd>
1010  <table class="params">
1011    <tr><td class="paramname">context</td><td>Kerberos context </td></tr>
1012    <tr><td class="paramname">etype</td><td>enctype to check if its valid or not</td></tr>
1013  </table>
1014  </dd>
1015</dl>
1016<dl class="section return"><dt>Returns</dt><dd>Return an error code for an failure or 0 on success (enctype valid). </dd></dl>
1017
1018</div>
1019</div>
1020<a id="ga2e434abf56e7d7852358e11cdab0bb33"></a>
1021<h2 class="memtitle"><span class="permalink"><a href="#ga2e434abf56e7d7852358e11cdab0bb33">&#9670;&nbsp;</a></span>krb5_free_keyblock()</h2>
1022
1023<div class="memitem">
1024<div class="memproto">
1025      <table class="memname">
1026        <tr>
1027          <td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_keyblock </td>
1028          <td>(</td>
1029          <td class="paramtype">krb5_context&#160;</td>
1030          <td class="paramname"><em>context</em>, </td>
1031        </tr>
1032        <tr>
1033          <td class="paramkey"></td>
1034          <td></td>
1035          <td class="paramtype">krb5_keyblock *&#160;</td>
1036          <td class="paramname"><em>keyblock</em>&#160;</td>
1037        </tr>
1038        <tr>
1039          <td></td>
1040          <td>)</td>
1041          <td></td><td></td>
1042        </tr>
1043      </table>
1044</div><div class="memdoc">
1045<p>Free a keyblock, also zero out the content of the keyblock, uses <a class="el" href="group__krb5__crypto.html#ga66d5d8067358373fdab46987503f2398">krb5_free_keyblock_contents()</a> to free the content.</p>
1046<dl class="params"><dt>Parameters</dt><dd>
1047  <table class="params">
1048    <tr><td class="paramname">context</td><td>a Kerberos 5 context </td></tr>
1049    <tr><td class="paramname">keyblock</td><td>keyblock to free, NULL is valid argument </td></tr>
1050  </table>
1051  </dd>
1052</dl>
1053
1054</div>
1055</div>
1056<a id="ga66d5d8067358373fdab46987503f2398"></a>
1057<h2 class="memtitle"><span class="permalink"><a href="#ga66d5d8067358373fdab46987503f2398">&#9670;&nbsp;</a></span>krb5_free_keyblock_contents()</h2>
1058
1059<div class="memitem">
1060<div class="memproto">
1061      <table class="memname">
1062        <tr>
1063          <td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_free_keyblock_contents </td>
1064          <td>(</td>
1065          <td class="paramtype">krb5_context&#160;</td>
1066          <td class="paramname"><em>context</em>, </td>
1067        </tr>
1068        <tr>
1069          <td class="paramkey"></td>
1070          <td></td>
1071          <td class="paramtype">krb5_keyblock *&#160;</td>
1072          <td class="paramname"><em>keyblock</em>&#160;</td>
1073        </tr>
1074        <tr>
1075          <td></td>
1076          <td>)</td>
1077          <td></td><td></td>
1078        </tr>
1079      </table>
1080</div><div class="memdoc">
1081<p>Free a keyblock's content, also zero out the content of the keyblock.</p>
1082<dl class="params"><dt>Parameters</dt><dd>
1083  <table class="params">
1084    <tr><td class="paramname">context</td><td>a Kerberos 5 context </td></tr>
1085    <tr><td class="paramname">keyblock</td><td>keyblock content to free, NULL is valid argument </td></tr>
1086  </table>
1087  </dd>
1088</dl>
1089
1090</div>
1091</div>
1092<a id="gacd70368768ef5d3b0867143e1fded09c"></a>
1093<h2 class="memtitle"><span class="permalink"><a href="#gacd70368768ef5d3b0867143e1fded09c">&#9670;&nbsp;</a></span>krb5_generate_random()</h2>
1094
1095<div class="memitem">
1096<div class="memproto">
1097      <table class="memname">
1098        <tr>
1099          <td class="memname">HEIMDAL_WARN_UNUSED_RESULT_ATTRIBUTE KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_generate_random </td>
1100          <td>(</td>
1101          <td class="paramtype">void *&#160;</td>
1102          <td class="paramname"><em>buf</em>, </td>
1103        </tr>
1104        <tr>
1105          <td class="paramkey"></td>
1106          <td></td>
1107          <td class="paramtype">size_t&#160;</td>
1108          <td class="paramname"><em>len</em>&#160;</td>
1109        </tr>
1110        <tr>
1111          <td></td>
1112          <td>)</td>
1113          <td></td><td></td>
1114        </tr>
1115      </table>
1116</div><div class="memdoc">
1117<p>Fill buffer buf with len bytes of PRNG randomness that is ok to use for key generation, padding and public diclosing the randomness w/o disclosing the randomness source.</p>
1118<p>This function can fail, and callers must check the return value.</p>
1119<dl class="params"><dt>Parameters</dt><dd>
1120  <table class="params">
1121    <tr><td class="paramname">buf</td><td>a buffer to fill with randomness </td></tr>
1122    <tr><td class="paramname">len</td><td>length of memory that buf points to.</td></tr>
1123  </table>
1124  </dd>
1125</dl>
1126<dl class="section return"><dt>Returns</dt><dd>return 0 on success or HEIM_ERR_RANDOM_OFFLINE if the funcation failed to initialize the randomness source. </dd></dl>
1127
1128</div>
1129</div>
1130<a id="ga697b68deeff57bb1ca24163673cded3c"></a>
1131<h2 class="memtitle"><span class="permalink"><a href="#ga697b68deeff57bb1ca24163673cded3c">&#9670;&nbsp;</a></span>krb5_generate_random_block()</h2>
1132
1133<div class="memitem">
1134<div class="memproto">
1135      <table class="memname">
1136        <tr>
1137          <td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_generate_random_block </td>
1138          <td>(</td>
1139          <td class="paramtype">void *&#160;</td>
1140          <td class="paramname"><em>buf</em>, </td>
1141        </tr>
1142        <tr>
1143          <td class="paramkey"></td>
1144          <td></td>
1145          <td class="paramtype">size_t&#160;</td>
1146          <td class="paramname"><em>len</em>&#160;</td>
1147        </tr>
1148        <tr>
1149          <td></td>
1150          <td>)</td>
1151          <td></td><td></td>
1152        </tr>
1153      </table>
1154</div><div class="memdoc">
1155<p>Fill buffer buf with len bytes of PRNG randomness that is ok to use for key generation, padding and public diclosing the randomness w/o disclosing the randomness source.</p>
1156<p>This function can NOT fail, instead it will abort() and program will crash.</p>
1157<p>If this function is called after a successful <a class="el" href="group__krb5.html#gabd94206e186c58a093975424a4a567a8">krb5_init_context()</a>, the chance of it failing is low due to that <a class="el" href="group__krb5.html#gabd94206e186c58a093975424a4a567a8">krb5_init_context()</a> pulls out some random, and quite commonly the randomness sources will not fail once it have started to produce good output, /dev/urandom behavies that way.</p>
1158<dl class="params"><dt>Parameters</dt><dd>
1159  <table class="params">
1160    <tr><td class="paramname">buf</td><td>a buffer to fill with randomness </td></tr>
1161    <tr><td class="paramname">len</td><td>length of memory that buf points to. </td></tr>
1162  </table>
1163  </dd>
1164</dl>
1165
1166</div>
1167</div>
1168<a id="ga147a581626c11fafee04bfda036781ea"></a>
1169<h2 class="memtitle"><span class="permalink"><a href="#ga147a581626c11fafee04bfda036781ea">&#9670;&nbsp;</a></span>krb5_generate_subkey_extended()</h2>
1170
1171<div class="memitem">
1172<div class="memproto">
1173      <table class="memname">
1174        <tr>
1175          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_generate_subkey_extended </td>
1176          <td>(</td>
1177          <td class="paramtype">krb5_context&#160;</td>
1178          <td class="paramname"><em>context</em>, </td>
1179        </tr>
1180        <tr>
1181          <td class="paramkey"></td>
1182          <td></td>
1183          <td class="paramtype">const krb5_keyblock *&#160;</td>
1184          <td class="paramname"><em>key</em>, </td>
1185        </tr>
1186        <tr>
1187          <td class="paramkey"></td>
1188          <td></td>
1189          <td class="paramtype">krb5_enctype&#160;</td>
1190          <td class="paramname"><em>etype</em>, </td>
1191        </tr>
1192        <tr>
1193          <td class="paramkey"></td>
1194          <td></td>
1195          <td class="paramtype">krb5_keyblock **&#160;</td>
1196          <td class="paramname"><em>subkey</em>&#160;</td>
1197        </tr>
1198        <tr>
1199          <td></td>
1200          <td>)</td>
1201          <td></td><td></td>
1202        </tr>
1203      </table>
1204</div><div class="memdoc">
1205<p>Generate subkey, from keyblock</p>
1206<dl class="params"><dt>Parameters</dt><dd>
1207  <table class="params">
1208    <tr><td class="paramname">context</td><td>kerberos context </td></tr>
1209    <tr><td class="paramname">key</td><td>session key </td></tr>
1210    <tr><td class="paramname">etype</td><td>encryption type of subkey, if ETYPE_NULL, use key's enctype </td></tr>
1211    <tr><td class="paramname">subkey</td><td>returned new, free with <a class="el" href="group__krb5__crypto.html#ga2e434abf56e7d7852358e11cdab0bb33">krb5_free_keyblock()</a>.</td></tr>
1212  </table>
1213  </dd>
1214</dl>
1215<dl class="section return"><dt>Returns</dt><dd>0 on success or a Kerberos 5 error code </dd></dl>
1216
1217</div>
1218</div>
1219<a id="ga2c4eb7d66f487d238cd0bdc66c9eaed6"></a>
1220<h2 class="memtitle"><span class="permalink"><a href="#ga2c4eb7d66f487d238cd0bdc66c9eaed6">&#9670;&nbsp;</a></span>krb5_is_enctype_weak()</h2>
1221
1222<div class="memitem">
1223<div class="memproto">
1224      <table class="memname">
1225        <tr>
1226          <td class="memname">KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL krb5_is_enctype_weak </td>
1227          <td>(</td>
1228          <td class="paramtype">krb5_context&#160;</td>
1229          <td class="paramname"><em>context</em>, </td>
1230        </tr>
1231        <tr>
1232          <td class="paramkey"></td>
1233          <td></td>
1234          <td class="paramtype">krb5_enctype&#160;</td>
1235          <td class="paramname"><em>enctype</em>&#160;</td>
1236        </tr>
1237        <tr>
1238          <td></td>
1239          <td>)</td>
1240          <td></td><td></td>
1241        </tr>
1242      </table>
1243</div><div class="memdoc">
1244<p>Returns is the encryption is strong or weak</p>
1245<dl class="params"><dt>Parameters</dt><dd>
1246  <table class="params">
1247    <tr><td class="paramname">context</td><td>Kerberos 5 context </td></tr>
1248    <tr><td class="paramname">enctype</td><td>encryption type to probe</td></tr>
1249  </table>
1250  </dd>
1251</dl>
1252<dl class="section return"><dt>Returns</dt><dd>Returns true if encryption type is weak or is not supported. </dd></dl>
1253
1254</div>
1255</div>
1256<a id="gaa2caa584d5a6f0bbba3e1bae7255be5c"></a>
1257<h2 class="memtitle"><span class="permalink"><a href="#gaa2caa584d5a6f0bbba3e1bae7255be5c">&#9670;&nbsp;</a></span>krb5_keyblock_get_enctype()</h2>
1258
1259<div class="memitem">
1260<div class="memproto">
1261      <table class="memname">
1262        <tr>
1263          <td class="memname">KRB5_LIB_FUNCTION krb5_enctype KRB5_LIB_CALL krb5_keyblock_get_enctype </td>
1264          <td>(</td>
1265          <td class="paramtype">const krb5_keyblock *&#160;</td>
1266          <td class="paramname"><em>block</em></td><td>)</td>
1267          <td></td>
1268        </tr>
1269      </table>
1270</div><div class="memdoc">
1271<p>Get encryption type of a keyblock. </p>
1272
1273</div>
1274</div>
1275<a id="ga690c42630f2f6b9f7ce96cc75441803d"></a>
1276<h2 class="memtitle"><span class="permalink"><a href="#ga690c42630f2f6b9f7ce96cc75441803d">&#9670;&nbsp;</a></span>krb5_keyblock_init()</h2>
1277
1278<div class="memitem">
1279<div class="memproto">
1280      <table class="memname">
1281        <tr>
1282          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_keyblock_init </td>
1283          <td>(</td>
1284          <td class="paramtype">krb5_context&#160;</td>
1285          <td class="paramname"><em>context</em>, </td>
1286        </tr>
1287        <tr>
1288          <td class="paramkey"></td>
1289          <td></td>
1290          <td class="paramtype">krb5_enctype&#160;</td>
1291          <td class="paramname"><em>type</em>, </td>
1292        </tr>
1293        <tr>
1294          <td class="paramkey"></td>
1295          <td></td>
1296          <td class="paramtype">const void *&#160;</td>
1297          <td class="paramname"><em>data</em>, </td>
1298        </tr>
1299        <tr>
1300          <td class="paramkey"></td>
1301          <td></td>
1302          <td class="paramtype">size_t&#160;</td>
1303          <td class="paramname"><em>size</em>, </td>
1304        </tr>
1305        <tr>
1306          <td class="paramkey"></td>
1307          <td></td>
1308          <td class="paramtype">krb5_keyblock *&#160;</td>
1309          <td class="paramname"><em>key</em>&#160;</td>
1310        </tr>
1311        <tr>
1312          <td></td>
1313          <td>)</td>
1314          <td></td><td></td>
1315        </tr>
1316      </table>
1317</div><div class="memdoc">
1318<p>Fill in &lsquo;key&rsquo; with key data of type &lsquo;enctype&rsquo; from &lsquo;data&rsquo; of length &lsquo;size&rsquo;. Key should be freed using <a class="el" href="group__krb5__crypto.html#ga66d5d8067358373fdab46987503f2398">krb5_free_keyblock_contents()</a>.</p>
1319<dl class="section return"><dt>Returns</dt><dd>0 on success or a Kerberos 5 error code </dd></dl>
1320
1321</div>
1322</div>
1323<a id="ga33e1cb14ccab45ce46d51064caf07c10"></a>
1324<h2 class="memtitle"><span class="permalink"><a href="#ga33e1cb14ccab45ce46d51064caf07c10">&#9670;&nbsp;</a></span>krb5_keyblock_zero()</h2>
1325
1326<div class="memitem">
1327<div class="memproto">
1328      <table class="memname">
1329        <tr>
1330          <td class="memname">KRB5_LIB_FUNCTION void KRB5_LIB_CALL krb5_keyblock_zero </td>
1331          <td>(</td>
1332          <td class="paramtype">krb5_keyblock *&#160;</td>
1333          <td class="paramname"><em>keyblock</em></td><td>)</td>
1334          <td></td>
1335        </tr>
1336      </table>
1337</div><div class="memdoc">
1338<p>Zero out a keyblock</p>
1339<dl class="params"><dt>Parameters</dt><dd>
1340  <table class="params">
1341    <tr><td class="paramname">keyblock</td><td>keyblock to zero out </td></tr>
1342  </table>
1343  </dd>
1344</dl>
1345
1346</div>
1347</div>
1348<a id="gaa5f3001696f59f7d47539efe82b1c4cd"></a>
1349<h2 class="memtitle"><span class="permalink"><a href="#gaa5f3001696f59f7d47539efe82b1c4cd">&#9670;&nbsp;</a></span>krb5_random_to_key()</h2>
1350
1351<div class="memitem">
1352<div class="memproto">
1353      <table class="memname">
1354        <tr>
1355          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_random_to_key </td>
1356          <td>(</td>
1357          <td class="paramtype">krb5_context&#160;</td>
1358          <td class="paramname"><em>context</em>, </td>
1359        </tr>
1360        <tr>
1361          <td class="paramkey"></td>
1362          <td></td>
1363          <td class="paramtype">krb5_enctype&#160;</td>
1364          <td class="paramname"><em>type</em>, </td>
1365        </tr>
1366        <tr>
1367          <td class="paramkey"></td>
1368          <td></td>
1369          <td class="paramtype">const void *&#160;</td>
1370          <td class="paramname"><em>data</em>, </td>
1371        </tr>
1372        <tr>
1373          <td class="paramkey"></td>
1374          <td></td>
1375          <td class="paramtype">size_t&#160;</td>
1376          <td class="paramname"><em>size</em>, </td>
1377        </tr>
1378        <tr>
1379          <td class="paramkey"></td>
1380          <td></td>
1381          <td class="paramtype">krb5_keyblock *&#160;</td>
1382          <td class="paramname"><em>key</em>&#160;</td>
1383        </tr>
1384        <tr>
1385          <td></td>
1386          <td>)</td>
1387          <td></td><td></td>
1388        </tr>
1389      </table>
1390</div><div class="memdoc">
1391<p>Converts the random bytestring to a protocol key according to Kerberos crypto frame work. It may be assumed that all the bits of the input string are equally random, even though the entropy present in the random source may be limited.</p>
1392<dl class="params"><dt>Parameters</dt><dd>
1393  <table class="params">
1394    <tr><td class="paramname">context</td><td>Kerberos 5 context </td></tr>
1395    <tr><td class="paramname">type</td><td>the enctype resulting key will be of </td></tr>
1396    <tr><td class="paramname">data</td><td>input random data to convert to a key </td></tr>
1397    <tr><td class="paramname">size</td><td>size of input random data, at least krb5_enctype_keysize() long </td></tr>
1398    <tr><td class="paramname">key</td><td>key, output key, free with <a class="el" href="group__krb5__crypto.html#ga66d5d8067358373fdab46987503f2398">krb5_free_keyblock_contents()</a></td></tr>
1399  </table>
1400  </dd>
1401</dl>
1402<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0. </dd></dl>
1403
1404</div>
1405</div>
1406<a id="ga1789d8188287750394c3b8366a90bd13"></a>
1407<h2 class="memtitle"><span class="permalink"><a href="#ga1789d8188287750394c3b8366a90bd13">&#9670;&nbsp;</a></span>krb5_verify_checksum_iov()</h2>
1408
1409<div class="memitem">
1410<div class="memproto">
1411      <table class="memname">
1412        <tr>
1413          <td class="memname">KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL krb5_verify_checksum_iov </td>
1414          <td>(</td>
1415          <td class="paramtype">krb5_context&#160;</td>
1416          <td class="paramname"><em>context</em>, </td>
1417        </tr>
1418        <tr>
1419          <td class="paramkey"></td>
1420          <td></td>
1421          <td class="paramtype">krb5_crypto&#160;</td>
1422          <td class="paramname"><em>crypto</em>, </td>
1423        </tr>
1424        <tr>
1425          <td class="paramkey"></td>
1426          <td></td>
1427          <td class="paramtype">unsigned&#160;</td>
1428          <td class="paramname"><em>usage</em>, </td>
1429        </tr>
1430        <tr>
1431          <td class="paramkey"></td>
1432          <td></td>
1433          <td class="paramtype"><a class="el" href="structkrb5__crypto__iov.html">krb5_crypto_iov</a> *&#160;</td>
1434          <td class="paramname"><em>data</em>, </td>
1435        </tr>
1436        <tr>
1437          <td class="paramkey"></td>
1438          <td></td>
1439          <td class="paramtype">unsigned int&#160;</td>
1440          <td class="paramname"><em>num_data</em>, </td>
1441        </tr>
1442        <tr>
1443          <td class="paramkey"></td>
1444          <td></td>
1445          <td class="paramtype">krb5_cksumtype *&#160;</td>
1446          <td class="paramname"><em>type</em>&#160;</td>
1447        </tr>
1448        <tr>
1449          <td></td>
1450          <td>)</td>
1451          <td></td><td></td>
1452        </tr>
1453      </table>
1454</div><div class="memdoc">
1455<p>Verify a Kerberos message checksum.</p>
1456<dl class="params"><dt>Parameters</dt><dd>
1457  <table class="params">
1458    <tr><td class="paramname">context</td><td>Kerberos context </td></tr>
1459    <tr><td class="paramname">crypto</td><td>Kerberos crypto context </td></tr>
1460    <tr><td class="paramname">usage</td><td>Key usage for this buffer </td></tr>
1461    <tr><td class="paramname">data</td><td>array of buffers to process </td></tr>
1462    <tr><td class="paramname">num_data</td><td>length of array </td></tr>
1463    <tr><td class="paramname">type</td><td>return checksum type if not NULL</td></tr>
1464  </table>
1465  </dd>
1466</dl>
1467<dl class="section return"><dt>Returns</dt><dd>Return an error code or 0. </dd></dl>
1468
1469</div>
1470</div>
1471</div><!-- contents -->
1472<hr size="1"><address style="text-align: right;"><small>
1473Generated on Tue Nov 15 2022 14:04:26 for Heimdal Kerberos 5 library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.9.1</small></address>
1474</body>
1475</html>
1476