]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - crypto/heimdal/doc/doxyout/hcrypto/html/group__hcrypto__des.html
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / crypto / heimdal / doc / doxyout / hcrypto / html / group__hcrypto__des.html
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 crypto library: DES crypto 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.5.6 -->
12 <div class="navigation" id="top">
13   <div class="tabs">
14     <ul>
15       <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
16       <li><a href="modules.html"><span>Modules</span></a></li>
17       <li><a href="examples.html"><span>Examples</span></a></li>
18     </ul>
19   </div>
20 </div>
21 <div class="contents">
22 <h1>DES crypto functions</h1><table border="0" cellpadding="0" cellspacing="0">
23 <tr><td></td></tr>
24 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
25 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__des.html#g4179bef43ceb72cc2034f39e7d2d5ae4">DES_set_odd_parity</a> (DES_cblock *key)</td></tr>
26
27 <tr><td class="memItemLeft" nowrap align="right" valign="top">int HC_DEPRECATED&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__des.html#gcf0d611296ad70edf90a3130b2f62c71">DES_check_key_parity</a> (DES_cblock *key)</td></tr>
28
29 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__des.html#g0d8a49cafee4be6cd3922bfb6323fd2d">DES_is_weak_key</a> (DES_cblock *key)</td></tr>
30
31 <tr><td class="memItemLeft" nowrap align="right" valign="top">int HC_DEPRECATED&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__des.html#gad10e059974f3048b3de49599989486b">DES_set_key</a> (DES_cblock *key, DES_key_schedule *ks)</td></tr>
32
33 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__des.html#g8131d59b5c0f65ca8bba0873932680d5">DES_set_key_unchecked</a> (DES_cblock *key, DES_key_schedule *ks)</td></tr>
34
35 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__des.html#g3157dd2419a25cd4381867f012117d07">DES_set_key_checked</a> (DES_cblock *key, DES_key_schedule *ks)</td></tr>
36
37 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__des.html#gf5b4967f13a4a52c214c28b6e57a3a95">DES_key_sched</a> (DES_cblock *key, DES_key_schedule *ks)</td></tr>
38
39 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__des.html#g39662a8c2218601d402a895f08813662">DES_encrypt</a> (uint32_t u[2], DES_key_schedule *ks, int encp)</td></tr>
40
41 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__des.html#ga5cf9203994e3a5ece2ef7a85e7a2875">DES_ecb_encrypt</a> (DES_cblock *input, DES_cblock *output, DES_key_schedule *ks, int encp)</td></tr>
42
43 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__des.html#g4946e6d9a944f8f029df4e6c68d1868e">DES_cbc_encrypt</a> (const void *in, void *out, long length, DES_key_schedule *ks, DES_cblock *iv, int encp)</td></tr>
44
45 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__des.html#g336e497f66748e92b93fc0b4512d78c2">DES_pcbc_encrypt</a> (const void *in, void *out, long length, DES_key_schedule *ks, DES_cblock *iv, int encp)</td></tr>
46
47 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__des.html#gf2de06942efdf1bd45ce0a8c0597654e">DES_ecb3_encrypt</a> (DES_cblock *input, DES_cblock *output, DES_key_schedule *ks1, DES_key_schedule *ks2, DES_key_schedule *ks3, int encp)</td></tr>
48
49 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__des.html#g36a83e8a4de4ac0f93ea932229dc3607">DES_ede3_cbc_encrypt</a> (const void *in, void *out, long length, DES_key_schedule *ks1, DES_key_schedule *ks2, DES_key_schedule *ks3, DES_cblock *iv, int encp)</td></tr>
50
51 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__des.html#g9c2b24baea3d4e69524335a79e22ae2d">DES_cfb64_encrypt</a> (const void *in, void *out, long length, DES_key_schedule *ks, DES_cblock *iv, int *num, int encp)</td></tr>
52
53 <tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__des.html#gbf8f1cc95fd03ec1ef59563f9659ec42">DES_cbc_cksum</a> (const void *in, DES_cblock *output, long length, DES_key_schedule *ks, DES_cblock *iv)</td></tr>
54
55 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__des.html#g60893cdc75d9ce8cbf4a5d7a874855c8">DES_string_to_key</a> (const char *str, DES_cblock *key)</td></tr>
56
57 <tr><td class="memItemLeft" nowrap align="right" valign="top">int HC_DEPRECATED&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__des.html#gcd3642bcd8a7e93ea977786e5b540d5f">DES_new_random_key</a> (DES_cblock *key)</td></tr>
58
59 <tr><td class="memItemLeft" nowrap align="right" valign="top">void HC_DEPRECATED&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__des.html#g45739e74db49d07bfaa0d7918efd4875">DES_init_random_number_generator</a> (DES_cblock *seed)</td></tr>
60
61 <tr><td class="memItemLeft" nowrap align="right" valign="top">void HC_DEPRECATED&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__des.html#gd70d485549f7444589f3283e938c0258">DES_random_key</a> (DES_cblock *key)</td></tr>
62
63 </table>
64 <hr><a name="_details"></a><h2>Detailed Description</h2>
65 See the <a class="el" href="page_des.html">DES - Data Encryption Standard crypto interface</a> for description and examples. <hr><h2>Function Documentation</h2>
66 <a class="anchor" name="gbf8f1cc95fd03ec1ef59563f9659ec42"></a><!-- doxytag: member="des.c::DES_cbc_cksum" ref="gbf8f1cc95fd03ec1ef59563f9659ec42" args="(const void *in, DES_cblock *output, long length, DES_key_schedule *ks, DES_cblock *iv)" -->
67 <div class="memitem">
68 <div class="memproto">
69       <table class="memname">
70         <tr>
71           <td class="memname">uint32_t DES_cbc_cksum           </td>
72           <td>(</td>
73           <td class="paramtype">const void *&nbsp;</td>
74           <td class="paramname"> <em>in</em>, </td>
75         </tr>
76         <tr>
77           <td class="paramkey"></td>
78           <td></td>
79           <td class="paramtype">DES_cblock *&nbsp;</td>
80           <td class="paramname"> <em>output</em>, </td>
81         </tr>
82         <tr>
83           <td class="paramkey"></td>
84           <td></td>
85           <td class="paramtype">long&nbsp;</td>
86           <td class="paramname"> <em>length</em>, </td>
87         </tr>
88         <tr>
89           <td class="paramkey"></td>
90           <td></td>
91           <td class="paramtype">DES_key_schedule *&nbsp;</td>
92           <td class="paramname"> <em>ks</em>, </td>
93         </tr>
94         <tr>
95           <td class="paramkey"></td>
96           <td></td>
97           <td class="paramtype">DES_cblock *&nbsp;</td>
98           <td class="paramname"> <em>iv</em></td><td>&nbsp;</td>
99         </tr>
100         <tr>
101           <td></td>
102           <td>)</td>
103           <td></td><td></td><td></td>
104         </tr>
105       </table>
106 </div>
107 <div class="memdoc">
108
109 <p>
110 Crete a checksum using DES in CBC encryption mode. This mode is only used for Kerberos 4, and it should stay that way.<p>
111 The IV must always be diffrent for diffrent input data blocks.<p>
112 <dl compact><dt><b>Parameters:</b></dt><dd>
113   <table border="0" cellspacing="2" cellpadding="0">
114     <tr><td valign="top"></td><td valign="top"><em>in</em>&nbsp;</td><td>data to checksum </td></tr>
115     <tr><td valign="top"></td><td valign="top"><em>output</em>&nbsp;</td><td>the checksum </td></tr>
116     <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>length of data </td></tr>
117     <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>key schedule to use </td></tr>
118     <tr><td valign="top"></td><td valign="top"><em>iv</em>&nbsp;</td><td>initial vector to use </td></tr>
119   </table>
120 </dl>
121
122 </div>
123 </div><p>
124 <a class="anchor" name="g4946e6d9a944f8f029df4e6c68d1868e"></a><!-- doxytag: member="des.c::DES_cbc_encrypt" ref="g4946e6d9a944f8f029df4e6c68d1868e" args="(const void *in, void *out, long length, DES_key_schedule *ks, DES_cblock *iv, int encp)" -->
125 <div class="memitem">
126 <div class="memproto">
127       <table class="memname">
128         <tr>
129           <td class="memname">void DES_cbc_encrypt           </td>
130           <td>(</td>
131           <td class="paramtype">const void *&nbsp;</td>
132           <td class="paramname"> <em>in</em>, </td>
133         </tr>
134         <tr>
135           <td class="paramkey"></td>
136           <td></td>
137           <td class="paramtype">void *&nbsp;</td>
138           <td class="paramname"> <em>out</em>, </td>
139         </tr>
140         <tr>
141           <td class="paramkey"></td>
142           <td></td>
143           <td class="paramtype">long&nbsp;</td>
144           <td class="paramname"> <em>length</em>, </td>
145         </tr>
146         <tr>
147           <td class="paramkey"></td>
148           <td></td>
149           <td class="paramtype">DES_key_schedule *&nbsp;</td>
150           <td class="paramname"> <em>ks</em>, </td>
151         </tr>
152         <tr>
153           <td class="paramkey"></td>
154           <td></td>
155           <td class="paramtype">DES_cblock *&nbsp;</td>
156           <td class="paramname"> <em>iv</em>, </td>
157         </tr>
158         <tr>
159           <td class="paramkey"></td>
160           <td></td>
161           <td class="paramtype">int&nbsp;</td>
162           <td class="paramname"> <em>encp</em></td><td>&nbsp;</td>
163         </tr>
164         <tr>
165           <td></td>
166           <td>)</td>
167           <td></td><td></td><td></td>
168         </tr>
169       </table>
170 </div>
171 <div class="memdoc">
172
173 <p>
174 Encrypt/decrypt a block using DES in Chain Block Cipher mode (cbc).<p>
175 The IV must always be diffrent for diffrent input data blocks.<p>
176 <dl compact><dt><b>Parameters:</b></dt><dd>
177   <table border="0" cellspacing="2" cellpadding="0">
178     <tr><td valign="top"></td><td valign="top"><em>in</em>&nbsp;</td><td>data to encrypt </td></tr>
179     <tr><td valign="top"></td><td valign="top"><em>out</em>&nbsp;</td><td>data to encrypt </td></tr>
180     <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>length of data </td></tr>
181     <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>key schedule to use </td></tr>
182     <tr><td valign="top"></td><td valign="top"><em>iv</em>&nbsp;</td><td>initial vector to use </td></tr>
183     <tr><td valign="top"></td><td valign="top"><em>encp</em>&nbsp;</td><td>if non zero, encrypt. if zero, decrypt. </td></tr>
184   </table>
185 </dl>
186
187 </div>
188 </div><p>
189 <a class="anchor" name="g9c2b24baea3d4e69524335a79e22ae2d"></a><!-- doxytag: member="des.c::DES_cfb64_encrypt" ref="g9c2b24baea3d4e69524335a79e22ae2d" args="(const void *in, void *out, long length, DES_key_schedule *ks, DES_cblock *iv, int *num, int encp)" -->
190 <div class="memitem">
191 <div class="memproto">
192       <table class="memname">
193         <tr>
194           <td class="memname">void DES_cfb64_encrypt           </td>
195           <td>(</td>
196           <td class="paramtype">const void *&nbsp;</td>
197           <td class="paramname"> <em>in</em>, </td>
198         </tr>
199         <tr>
200           <td class="paramkey"></td>
201           <td></td>
202           <td class="paramtype">void *&nbsp;</td>
203           <td class="paramname"> <em>out</em>, </td>
204         </tr>
205         <tr>
206           <td class="paramkey"></td>
207           <td></td>
208           <td class="paramtype">long&nbsp;</td>
209           <td class="paramname"> <em>length</em>, </td>
210         </tr>
211         <tr>
212           <td class="paramkey"></td>
213           <td></td>
214           <td class="paramtype">DES_key_schedule *&nbsp;</td>
215           <td class="paramname"> <em>ks</em>, </td>
216         </tr>
217         <tr>
218           <td class="paramkey"></td>
219           <td></td>
220           <td class="paramtype">DES_cblock *&nbsp;</td>
221           <td class="paramname"> <em>iv</em>, </td>
222         </tr>
223         <tr>
224           <td class="paramkey"></td>
225           <td></td>
226           <td class="paramtype">int *&nbsp;</td>
227           <td class="paramname"> <em>num</em>, </td>
228         </tr>
229         <tr>
230           <td class="paramkey"></td>
231           <td></td>
232           <td class="paramtype">int&nbsp;</td>
233           <td class="paramname"> <em>encp</em></td><td>&nbsp;</td>
234         </tr>
235         <tr>
236           <td></td>
237           <td>)</td>
238           <td></td><td></td><td></td>
239         </tr>
240       </table>
241 </div>
242 <div class="memdoc">
243
244 <p>
245 Encrypt/decrypt using DES in cipher feedback mode with 64 bit feedback.<p>
246 The IV must always be diffrent for diffrent input data blocks.<p>
247 <dl compact><dt><b>Parameters:</b></dt><dd>
248   <table border="0" cellspacing="2" cellpadding="0">
249     <tr><td valign="top"></td><td valign="top"><em>in</em>&nbsp;</td><td>data to encrypt </td></tr>
250     <tr><td valign="top"></td><td valign="top"><em>out</em>&nbsp;</td><td>data to encrypt </td></tr>
251     <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>length of data </td></tr>
252     <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>key schedule to use </td></tr>
253     <tr><td valign="top"></td><td valign="top"><em>iv</em>&nbsp;</td><td>initial vector to use </td></tr>
254     <tr><td valign="top"></td><td valign="top"><em>num</em>&nbsp;</td><td>offset into in cipher block encryption/decryption stop last time. </td></tr>
255     <tr><td valign="top"></td><td valign="top"><em>encp</em>&nbsp;</td><td>if non zero, encrypt. if zero, decrypt. </td></tr>
256   </table>
257 </dl>
258
259 </div>
260 </div><p>
261 <a class="anchor" name="gcf0d611296ad70edf90a3130b2f62c71"></a><!-- doxytag: member="des.c::DES_check_key_parity" ref="gcf0d611296ad70edf90a3130b2f62c71" args="(DES_cblock *key)" -->
262 <div class="memitem">
263 <div class="memproto">
264       <table class="memname">
265         <tr>
266           <td class="memname">int HC_DEPRECATED DES_check_key_parity           </td>
267           <td>(</td>
268           <td class="paramtype">DES_cblock *&nbsp;</td>
269           <td class="paramname"> <em>key</em>          </td>
270           <td>&nbsp;)&nbsp;</td>
271           <td></td>
272         </tr>
273       </table>
274 </div>
275 <div class="memdoc">
276
277 <p>
278 Check if the key have correct parity.<p>
279 <dl compact><dt><b>Parameters:</b></dt><dd>
280   <table border="0" cellspacing="2" cellpadding="0">
281     <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>key to check the parity. </td></tr>
282   </table>
283 </dl>
284 <dl class="return" compact><dt><b>Returns:</b></dt><dd>1 on success, 0 on failure. </dd></dl>
285
286 </div>
287 </div><p>
288 <a class="anchor" name="gf2de06942efdf1bd45ce0a8c0597654e"></a><!-- doxytag: member="des.c::DES_ecb3_encrypt" ref="gf2de06942efdf1bd45ce0a8c0597654e" args="(DES_cblock *input, DES_cblock *output, DES_key_schedule *ks1, DES_key_schedule *ks2, DES_key_schedule *ks3, int encp)" -->
289 <div class="memitem">
290 <div class="memproto">
291       <table class="memname">
292         <tr>
293           <td class="memname">void DES_ecb3_encrypt           </td>
294           <td>(</td>
295           <td class="paramtype">DES_cblock *&nbsp;</td>
296           <td class="paramname"> <em>input</em>, </td>
297         </tr>
298         <tr>
299           <td class="paramkey"></td>
300           <td></td>
301           <td class="paramtype">DES_cblock *&nbsp;</td>
302           <td class="paramname"> <em>output</em>, </td>
303         </tr>
304         <tr>
305           <td class="paramkey"></td>
306           <td></td>
307           <td class="paramtype">DES_key_schedule *&nbsp;</td>
308           <td class="paramname"> <em>ks1</em>, </td>
309         </tr>
310         <tr>
311           <td class="paramkey"></td>
312           <td></td>
313           <td class="paramtype">DES_key_schedule *&nbsp;</td>
314           <td class="paramname"> <em>ks2</em>, </td>
315         </tr>
316         <tr>
317           <td class="paramkey"></td>
318           <td></td>
319           <td class="paramtype">DES_key_schedule *&nbsp;</td>
320           <td class="paramname"> <em>ks3</em>, </td>
321         </tr>
322         <tr>
323           <td class="paramkey"></td>
324           <td></td>
325           <td class="paramtype">int&nbsp;</td>
326           <td class="paramname"> <em>encp</em></td><td>&nbsp;</td>
327         </tr>
328         <tr>
329           <td></td>
330           <td>)</td>
331           <td></td><td></td><td></td>
332         </tr>
333       </table>
334 </div>
335 <div class="memdoc">
336
337 <p>
338 Encrypt/decrypt a block using triple DES using EDE mode, encrypt/decrypt/encrypt.<p>
339 <dl compact><dt><b>Parameters:</b></dt><dd>
340   <table border="0" cellspacing="2" cellpadding="0">
341     <tr><td valign="top"></td><td valign="top"><em>input</em>&nbsp;</td><td>data to encrypt </td></tr>
342     <tr><td valign="top"></td><td valign="top"><em>output</em>&nbsp;</td><td>data to encrypt </td></tr>
343     <tr><td valign="top"></td><td valign="top"><em>ks1</em>&nbsp;</td><td>key schedule to use </td></tr>
344     <tr><td valign="top"></td><td valign="top"><em>ks2</em>&nbsp;</td><td>key schedule to use </td></tr>
345     <tr><td valign="top"></td><td valign="top"><em>ks3</em>&nbsp;</td><td>key schedule to use </td></tr>
346     <tr><td valign="top"></td><td valign="top"><em>encp</em>&nbsp;</td><td>if non zero, encrypt. if zero, decrypt. </td></tr>
347   </table>
348 </dl>
349
350 </div>
351 </div><p>
352 <a class="anchor" name="ga5cf9203994e3a5ece2ef7a85e7a2875"></a><!-- doxytag: member="des.c::DES_ecb_encrypt" ref="ga5cf9203994e3a5ece2ef7a85e7a2875" args="(DES_cblock *input, DES_cblock *output, DES_key_schedule *ks, int encp)" -->
353 <div class="memitem">
354 <div class="memproto">
355       <table class="memname">
356         <tr>
357           <td class="memname">void DES_ecb_encrypt           </td>
358           <td>(</td>
359           <td class="paramtype">DES_cblock *&nbsp;</td>
360           <td class="paramname"> <em>input</em>, </td>
361         </tr>
362         <tr>
363           <td class="paramkey"></td>
364           <td></td>
365           <td class="paramtype">DES_cblock *&nbsp;</td>
366           <td class="paramname"> <em>output</em>, </td>
367         </tr>
368         <tr>
369           <td class="paramkey"></td>
370           <td></td>
371           <td class="paramtype">DES_key_schedule *&nbsp;</td>
372           <td class="paramname"> <em>ks</em>, </td>
373         </tr>
374         <tr>
375           <td class="paramkey"></td>
376           <td></td>
377           <td class="paramtype">int&nbsp;</td>
378           <td class="paramname"> <em>encp</em></td><td>&nbsp;</td>
379         </tr>
380         <tr>
381           <td></td>
382           <td>)</td>
383           <td></td><td></td><td></td>
384         </tr>
385       </table>
386 </div>
387 <div class="memdoc">
388
389 <p>
390 Encrypt/decrypt a block using DES.<p>
391 <dl compact><dt><b>Parameters:</b></dt><dd>
392   <table border="0" cellspacing="2" cellpadding="0">
393     <tr><td valign="top"></td><td valign="top"><em>input</em>&nbsp;</td><td>data to encrypt </td></tr>
394     <tr><td valign="top"></td><td valign="top"><em>output</em>&nbsp;</td><td>data to encrypt </td></tr>
395     <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>key schedule to use </td></tr>
396     <tr><td valign="top"></td><td valign="top"><em>encp</em>&nbsp;</td><td>if non zero, encrypt. if zero, decrypt. </td></tr>
397   </table>
398 </dl>
399
400 </div>
401 </div><p>
402 <a class="anchor" name="g36a83e8a4de4ac0f93ea932229dc3607"></a><!-- doxytag: member="des.c::DES_ede3_cbc_encrypt" ref="g36a83e8a4de4ac0f93ea932229dc3607" args="(const void *in, void *out, long length, DES_key_schedule *ks1, DES_key_schedule *ks2, DES_key_schedule *ks3, DES_cblock *iv, int encp)" -->
403 <div class="memitem">
404 <div class="memproto">
405       <table class="memname">
406         <tr>
407           <td class="memname">void DES_ede3_cbc_encrypt           </td>
408           <td>(</td>
409           <td class="paramtype">const void *&nbsp;</td>
410           <td class="paramname"> <em>in</em>, </td>
411         </tr>
412         <tr>
413           <td class="paramkey"></td>
414           <td></td>
415           <td class="paramtype">void *&nbsp;</td>
416           <td class="paramname"> <em>out</em>, </td>
417         </tr>
418         <tr>
419           <td class="paramkey"></td>
420           <td></td>
421           <td class="paramtype">long&nbsp;</td>
422           <td class="paramname"> <em>length</em>, </td>
423         </tr>
424         <tr>
425           <td class="paramkey"></td>
426           <td></td>
427           <td class="paramtype">DES_key_schedule *&nbsp;</td>
428           <td class="paramname"> <em>ks1</em>, </td>
429         </tr>
430         <tr>
431           <td class="paramkey"></td>
432           <td></td>
433           <td class="paramtype">DES_key_schedule *&nbsp;</td>
434           <td class="paramname"> <em>ks2</em>, </td>
435         </tr>
436         <tr>
437           <td class="paramkey"></td>
438           <td></td>
439           <td class="paramtype">DES_key_schedule *&nbsp;</td>
440           <td class="paramname"> <em>ks3</em>, </td>
441         </tr>
442         <tr>
443           <td class="paramkey"></td>
444           <td></td>
445           <td class="paramtype">DES_cblock *&nbsp;</td>
446           <td class="paramname"> <em>iv</em>, </td>
447         </tr>
448         <tr>
449           <td class="paramkey"></td>
450           <td></td>
451           <td class="paramtype">int&nbsp;</td>
452           <td class="paramname"> <em>encp</em></td><td>&nbsp;</td>
453         </tr>
454         <tr>
455           <td></td>
456           <td>)</td>
457           <td></td><td></td><td></td>
458         </tr>
459       </table>
460 </div>
461 <div class="memdoc">
462
463 <p>
464 Encrypt/decrypt using Triple DES in Chain Block Cipher mode (cbc).<p>
465 The IV must always be diffrent for diffrent input data blocks.<p>
466 <dl compact><dt><b>Parameters:</b></dt><dd>
467   <table border="0" cellspacing="2" cellpadding="0">
468     <tr><td valign="top"></td><td valign="top"><em>in</em>&nbsp;</td><td>data to encrypt </td></tr>
469     <tr><td valign="top"></td><td valign="top"><em>out</em>&nbsp;</td><td>data to encrypt </td></tr>
470     <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>length of data </td></tr>
471     <tr><td valign="top"></td><td valign="top"><em>ks1</em>&nbsp;</td><td>key schedule to use </td></tr>
472     <tr><td valign="top"></td><td valign="top"><em>ks2</em>&nbsp;</td><td>key schedule to use </td></tr>
473     <tr><td valign="top"></td><td valign="top"><em>ks3</em>&nbsp;</td><td>key schedule to use </td></tr>
474     <tr><td valign="top"></td><td valign="top"><em>iv</em>&nbsp;</td><td>initial vector to use </td></tr>
475     <tr><td valign="top"></td><td valign="top"><em>encp</em>&nbsp;</td><td>if non zero, encrypt. if zero, decrypt. </td></tr>
476   </table>
477 </dl>
478
479 </div>
480 </div><p>
481 <a class="anchor" name="g39662a8c2218601d402a895f08813662"></a><!-- doxytag: member="des.c::DES_encrypt" ref="g39662a8c2218601d402a895f08813662" args="(uint32_t u[2], DES_key_schedule *ks, int encp)" -->
482 <div class="memitem">
483 <div class="memproto">
484       <table class="memname">
485         <tr>
486           <td class="memname">void DES_encrypt           </td>
487           <td>(</td>
488           <td class="paramtype">uint32_t&nbsp;</td>
489           <td class="paramname"> <em>u</em>[2], </td>
490         </tr>
491         <tr>
492           <td class="paramkey"></td>
493           <td></td>
494           <td class="paramtype">DES_key_schedule *&nbsp;</td>
495           <td class="paramname"> <em>ks</em>, </td>
496         </tr>
497         <tr>
498           <td class="paramkey"></td>
499           <td></td>
500           <td class="paramtype">int&nbsp;</td>
501           <td class="paramname"> <em>encp</em></td><td>&nbsp;</td>
502         </tr>
503         <tr>
504           <td></td>
505           <td>)</td>
506           <td></td><td></td><td></td>
507         </tr>
508       </table>
509 </div>
510 <div class="memdoc">
511
512 <p>
513 Encrypt/decrypt a block using DES. Also called ECB mode<p>
514 <dl compact><dt><b>Parameters:</b></dt><dd>
515   <table border="0" cellspacing="2" cellpadding="0">
516     <tr><td valign="top"></td><td valign="top"><em>u</em>&nbsp;</td><td>data to encrypt </td></tr>
517     <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>key schedule to use </td></tr>
518     <tr><td valign="top"></td><td valign="top"><em>encp</em>&nbsp;</td><td>if non zero, encrypt. if zero, decrypt. </td></tr>
519   </table>
520 </dl>
521
522 </div>
523 </div><p>
524 <a class="anchor" name="g45739e74db49d07bfaa0d7918efd4875"></a><!-- doxytag: member="rnd_keys.c::DES_init_random_number_generator" ref="g45739e74db49d07bfaa0d7918efd4875" args="(DES_cblock *seed)" -->
525 <div class="memitem">
526 <div class="memproto">
527       <table class="memname">
528         <tr>
529           <td class="memname">void HC_DEPRECATED DES_init_random_number_generator           </td>
530           <td>(</td>
531           <td class="paramtype">DES_cblock *&nbsp;</td>
532           <td class="paramname"> <em>seed</em>          </td>
533           <td>&nbsp;)&nbsp;</td>
534           <td></td>
535         </tr>
536       </table>
537 </div>
538 <div class="memdoc">
539
540 <p>
541 Seed the random number generator. Deprecated, use <a class="el" href="page_rand.html">RAND - random number</a><p>
542 <dl compact><dt><b>Parameters:</b></dt><dd>
543   <table border="0" cellspacing="2" cellpadding="0">
544     <tr><td valign="top"></td><td valign="top"><em>seed</em>&nbsp;</td><td>a seed to seed that random number generate with. </td></tr>
545   </table>
546 </dl>
547
548 </div>
549 </div><p>
550 <a class="anchor" name="g0d8a49cafee4be6cd3922bfb6323fd2d"></a><!-- doxytag: member="des.c::DES_is_weak_key" ref="g0d8a49cafee4be6cd3922bfb6323fd2d" args="(DES_cblock *key)" -->
551 <div class="memitem">
552 <div class="memproto">
553       <table class="memname">
554         <tr>
555           <td class="memname">int DES_is_weak_key           </td>
556           <td>(</td>
557           <td class="paramtype">DES_cblock *&nbsp;</td>
558           <td class="paramname"> <em>key</em>          </td>
559           <td>&nbsp;)&nbsp;</td>
560           <td></td>
561         </tr>
562       </table>
563 </div>
564 <div class="memdoc">
565
566 <p>
567 Checks if the key is any of the weaks keys that makes DES attacks trival.<p>
568 <dl compact><dt><b>Parameters:</b></dt><dd>
569   <table border="0" cellspacing="2" cellpadding="0">
570     <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>key to check.</td></tr>
571   </table>
572 </dl>
573 <dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if the key is weak, 0 otherwise. </dd></dl>
574
575 </div>
576 </div><p>
577 <a class="anchor" name="gf5b4967f13a4a52c214c28b6e57a3a95"></a><!-- doxytag: member="des.c::DES_key_sched" ref="gf5b4967f13a4a52c214c28b6e57a3a95" args="(DES_cblock *key, DES_key_schedule *ks)" -->
578 <div class="memitem">
579 <div class="memproto">
580       <table class="memname">
581         <tr>
582           <td class="memname">int DES_key_sched           </td>
583           <td>(</td>
584           <td class="paramtype">DES_cblock *&nbsp;</td>
585           <td class="paramname"> <em>key</em>, </td>
586         </tr>
587         <tr>
588           <td class="paramkey"></td>
589           <td></td>
590           <td class="paramtype">DES_key_schedule *&nbsp;</td>
591           <td class="paramname"> <em>ks</em></td><td>&nbsp;</td>
592         </tr>
593         <tr>
594           <td></td>
595           <td>)</td>
596           <td></td><td></td><td></td>
597         </tr>
598       </table>
599 </div>
600 <div class="memdoc">
601
602 <p>
603 Compatibility function for eay libdes, works just like <a class="el" href="group__hcrypto__des.html#g3157dd2419a25cd4381867f012117d07">DES_set_key_checked()</a>.<p>
604 <dl compact><dt><b>Parameters:</b></dt><dd>
605   <table border="0" cellspacing="2" cellpadding="0">
606     <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>a key to initialize the key schedule with. </td></tr>
607     <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>a key schedule to initialize.</td></tr>
608   </table>
609 </dl>
610 <dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, -1 on invalid parity, -2 on weak key. </dd></dl>
611
612 </div>
613 </div><p>
614 <a class="anchor" name="gcd3642bcd8a7e93ea977786e5b540d5f"></a><!-- doxytag: member="rnd_keys.c::DES_new_random_key" ref="gcd3642bcd8a7e93ea977786e5b540d5f" args="(DES_cblock *key)" -->
615 <div class="memitem">
616 <div class="memproto">
617       <table class="memname">
618         <tr>
619           <td class="memname">int HC_DEPRECATED DES_new_random_key           </td>
620           <td>(</td>
621           <td class="paramtype">DES_cblock *&nbsp;</td>
622           <td class="paramname"> <em>key</em>          </td>
623           <td>&nbsp;)&nbsp;</td>
624           <td></td>
625         </tr>
626       </table>
627 </div>
628 <div class="memdoc">
629
630 <p>
631 Generate a random des key using a random block, fixup parity and skip weak keys.<p>
632 <dl compact><dt><b>Parameters:</b></dt><dd>
633   <table border="0" cellspacing="2" cellpadding="0">
634     <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>is set to a random key.</td></tr>
635   </table>
636 </dl>
637 <dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, non zero on random number generator failure. </dd></dl>
638
639 </div>
640 </div><p>
641 <a class="anchor" name="g336e497f66748e92b93fc0b4512d78c2"></a><!-- doxytag: member="des.c::DES_pcbc_encrypt" ref="g336e497f66748e92b93fc0b4512d78c2" args="(const void *in, void *out, long length, DES_key_schedule *ks, DES_cblock *iv, int encp)" -->
642 <div class="memitem">
643 <div class="memproto">
644       <table class="memname">
645         <tr>
646           <td class="memname">void DES_pcbc_encrypt           </td>
647           <td>(</td>
648           <td class="paramtype">const void *&nbsp;</td>
649           <td class="paramname"> <em>in</em>, </td>
650         </tr>
651         <tr>
652           <td class="paramkey"></td>
653           <td></td>
654           <td class="paramtype">void *&nbsp;</td>
655           <td class="paramname"> <em>out</em>, </td>
656         </tr>
657         <tr>
658           <td class="paramkey"></td>
659           <td></td>
660           <td class="paramtype">long&nbsp;</td>
661           <td class="paramname"> <em>length</em>, </td>
662         </tr>
663         <tr>
664           <td class="paramkey"></td>
665           <td></td>
666           <td class="paramtype">DES_key_schedule *&nbsp;</td>
667           <td class="paramname"> <em>ks</em>, </td>
668         </tr>
669         <tr>
670           <td class="paramkey"></td>
671           <td></td>
672           <td class="paramtype">DES_cblock *&nbsp;</td>
673           <td class="paramname"> <em>iv</em>, </td>
674         </tr>
675         <tr>
676           <td class="paramkey"></td>
677           <td></td>
678           <td class="paramtype">int&nbsp;</td>
679           <td class="paramname"> <em>encp</em></td><td>&nbsp;</td>
680         </tr>
681         <tr>
682           <td></td>
683           <td>)</td>
684           <td></td><td></td><td></td>
685         </tr>
686       </table>
687 </div>
688 <div class="memdoc">
689
690 <p>
691 Encrypt/decrypt a block using DES in Propagating Cipher Block Chaining mode. This mode is only used for Kerberos 4, and it should stay that way.<p>
692 The IV must always be diffrent for diffrent input data blocks.<p>
693 <dl compact><dt><b>Parameters:</b></dt><dd>
694   <table border="0" cellspacing="2" cellpadding="0">
695     <tr><td valign="top"></td><td valign="top"><em>in</em>&nbsp;</td><td>data to encrypt </td></tr>
696     <tr><td valign="top"></td><td valign="top"><em>out</em>&nbsp;</td><td>data to encrypt </td></tr>
697     <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>length of data </td></tr>
698     <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>key schedule to use </td></tr>
699     <tr><td valign="top"></td><td valign="top"><em>iv</em>&nbsp;</td><td>initial vector to use </td></tr>
700     <tr><td valign="top"></td><td valign="top"><em>encp</em>&nbsp;</td><td>if non zero, encrypt. if zero, decrypt. </td></tr>
701   </table>
702 </dl>
703
704 </div>
705 </div><p>
706 <a class="anchor" name="gd70d485549f7444589f3283e938c0258"></a><!-- doxytag: member="rnd_keys.c::DES_random_key" ref="gd70d485549f7444589f3283e938c0258" args="(DES_cblock *key)" -->
707 <div class="memitem">
708 <div class="memproto">
709       <table class="memname">
710         <tr>
711           <td class="memname">void HC_DEPRECATED DES_random_key           </td>
712           <td>(</td>
713           <td class="paramtype">DES_cblock *&nbsp;</td>
714           <td class="paramname"> <em>key</em>          </td>
715           <td>&nbsp;)&nbsp;</td>
716           <td></td>
717         </tr>
718       </table>
719 </div>
720 <div class="memdoc">
721
722 <p>
723 Generate a random key, deprecated since it doesn't return an error code, use <a class="el" href="group__hcrypto__des.html#gcd3642bcd8a7e93ea977786e5b540d5f">DES_new_random_key()</a>.<p>
724 <dl compact><dt><b>Parameters:</b></dt><dd>
725   <table border="0" cellspacing="2" cellpadding="0">
726     <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>is set to a random key. </td></tr>
727   </table>
728 </dl>
729
730 </div>
731 </div><p>
732 <a class="anchor" name="gad10e059974f3048b3de49599989486b"></a><!-- doxytag: member="des.c::DES_set_key" ref="gad10e059974f3048b3de49599989486b" args="(DES_cblock *key, DES_key_schedule *ks)" -->
733 <div class="memitem">
734 <div class="memproto">
735       <table class="memname">
736         <tr>
737           <td class="memname">int HC_DEPRECATED DES_set_key           </td>
738           <td>(</td>
739           <td class="paramtype">DES_cblock *&nbsp;</td>
740           <td class="paramname"> <em>key</em>, </td>
741         </tr>
742         <tr>
743           <td class="paramkey"></td>
744           <td></td>
745           <td class="paramtype">DES_key_schedule *&nbsp;</td>
746           <td class="paramname"> <em>ks</em></td><td>&nbsp;</td>
747         </tr>
748         <tr>
749           <td></td>
750           <td>)</td>
751           <td></td><td></td><td></td>
752         </tr>
753       </table>
754 </div>
755 <div class="memdoc">
756
757 <p>
758 Setup a des key schedule from a key. Deprecated function, use <a class="el" href="group__hcrypto__des.html#g8131d59b5c0f65ca8bba0873932680d5">DES_set_key_unchecked()</a> or <a class="el" href="group__hcrypto__des.html#g3157dd2419a25cd4381867f012117d07">DES_set_key_checked()</a> instead.<p>
759 <dl compact><dt><b>Parameters:</b></dt><dd>
760   <table border="0" cellspacing="2" cellpadding="0">
761     <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>a key to initialize the key schedule with. </td></tr>
762     <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>a key schedule to initialize.</td></tr>
763   </table>
764 </dl>
765 <dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success </dd></dl>
766
767 </div>
768 </div><p>
769 <a class="anchor" name="g3157dd2419a25cd4381867f012117d07"></a><!-- doxytag: member="des.c::DES_set_key_checked" ref="g3157dd2419a25cd4381867f012117d07" args="(DES_cblock *key, DES_key_schedule *ks)" -->
770 <div class="memitem">
771 <div class="memproto">
772       <table class="memname">
773         <tr>
774           <td class="memname">int DES_set_key_checked           </td>
775           <td>(</td>
776           <td class="paramtype">DES_cblock *&nbsp;</td>
777           <td class="paramname"> <em>key</em>, </td>
778         </tr>
779         <tr>
780           <td class="paramkey"></td>
781           <td></td>
782           <td class="paramtype">DES_key_schedule *&nbsp;</td>
783           <td class="paramname"> <em>ks</em></td><td>&nbsp;</td>
784         </tr>
785         <tr>
786           <td></td>
787           <td>)</td>
788           <td></td><td></td><td></td>
789         </tr>
790       </table>
791 </div>
792 <div class="memdoc">
793
794 <p>
795 Just like <a class="el" href="group__hcrypto__des.html#g8131d59b5c0f65ca8bba0873932680d5">DES_set_key_unchecked()</a> except checking that the key is not weak for or have correct parity.<p>
796 <dl compact><dt><b>Parameters:</b></dt><dd>
797   <table border="0" cellspacing="2" cellpadding="0">
798     <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>a key to initialize the key schedule with. </td></tr>
799     <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>a key schedule to initialize.</td></tr>
800   </table>
801 </dl>
802 <dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, -1 on invalid parity, -2 on weak key. </dd></dl>
803
804 </div>
805 </div><p>
806 <a class="anchor" name="g8131d59b5c0f65ca8bba0873932680d5"></a><!-- doxytag: member="des.c::DES_set_key_unchecked" ref="g8131d59b5c0f65ca8bba0873932680d5" args="(DES_cblock *key, DES_key_schedule *ks)" -->
807 <div class="memitem">
808 <div class="memproto">
809       <table class="memname">
810         <tr>
811           <td class="memname">int DES_set_key_unchecked           </td>
812           <td>(</td>
813           <td class="paramtype">DES_cblock *&nbsp;</td>
814           <td class="paramname"> <em>key</em>, </td>
815         </tr>
816         <tr>
817           <td class="paramkey"></td>
818           <td></td>
819           <td class="paramtype">DES_key_schedule *&nbsp;</td>
820           <td class="paramname"> <em>ks</em></td><td>&nbsp;</td>
821         </tr>
822         <tr>
823           <td></td>
824           <td>)</td>
825           <td></td><td></td><td></td>
826         </tr>
827       </table>
828 </div>
829 <div class="memdoc">
830
831 <p>
832 Setup a des key schedule from a key. The key is no longer needed after this transaction and can cleared.<p>
833 Does NOT check that the key is weak for or have wrong parity.<p>
834 <dl compact><dt><b>Parameters:</b></dt><dd>
835   <table border="0" cellspacing="2" cellpadding="0">
836     <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>a key to initialize the key schedule with. </td></tr>
837     <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>a key schedule to initialize.</td></tr>
838   </table>
839 </dl>
840 <dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success </dd></dl>
841
842 </div>
843 </div><p>
844 <a class="anchor" name="g4179bef43ceb72cc2034f39e7d2d5ae4"></a><!-- doxytag: member="des.c::DES_set_odd_parity" ref="g4179bef43ceb72cc2034f39e7d2d5ae4" args="(DES_cblock *key)" -->
845 <div class="memitem">
846 <div class="memproto">
847       <table class="memname">
848         <tr>
849           <td class="memname">void DES_set_odd_parity           </td>
850           <td>(</td>
851           <td class="paramtype">DES_cblock *&nbsp;</td>
852           <td class="paramname"> <em>key</em>          </td>
853           <td>&nbsp;)&nbsp;</td>
854           <td></td>
855         </tr>
856       </table>
857 </div>
858 <div class="memdoc">
859
860 <p>
861 Set the parity of the key block, used to generate a des key from a random key. See <a class="el" href="page_des.html#des_keygen">DES key generation</a>.<p>
862 <dl compact><dt><b>Parameters:</b></dt><dd>
863   <table border="0" cellspacing="2" cellpadding="0">
864     <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>key to fixup the parity for. </td></tr>
865   </table>
866 </dl>
867
868 </div>
869 </div><p>
870 <a class="anchor" name="g60893cdc75d9ce8cbf4a5d7a874855c8"></a><!-- doxytag: member="des.c::DES_string_to_key" ref="g60893cdc75d9ce8cbf4a5d7a874855c8" args="(const char *str, DES_cblock *key)" -->
871 <div class="memitem">
872 <div class="memproto">
873       <table class="memname">
874         <tr>
875           <td class="memname">void DES_string_to_key           </td>
876           <td>(</td>
877           <td class="paramtype">const char *&nbsp;</td>
878           <td class="paramname"> <em>str</em>, </td>
879         </tr>
880         <tr>
881           <td class="paramkey"></td>
882           <td></td>
883           <td class="paramtype">DES_cblock *&nbsp;</td>
884           <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
885         </tr>
886         <tr>
887           <td></td>
888           <td>)</td>
889           <td></td><td></td><td></td>
890         </tr>
891       </table>
892 </div>
893 <div class="memdoc">
894
895 <p>
896 Convert a string to a DES key. Use something like <a class="el" href="group__hcrypto__misc.html#gece1627cc5535ef7b5e86e2f5a3eec04">PKCS5_PBKDF2_HMAC_SHA1()</a> to create key from passwords.<p>
897 <dl compact><dt><b>Parameters:</b></dt><dd>
898   <table border="0" cellspacing="2" cellpadding="0">
899     <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>The string to convert to a key </td></tr>
900     <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>the resulting key </td></tr>
901   </table>
902 </dl>
903
904 </div>
905 </div><p>
906 </div>
907 <hr size="1"><address style="text-align: right;"><small>
908 Generated on Wed Jan 11 14:07:38 2012 for Heimdal crypto library by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6</small></address>
909 </body>
910 </html>