1226031Sstas<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2226031Sstas<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3226031Sstas<title>Heimdal crypto library: DES crypto functions</title>
4226031Sstas<link href="doxygen.css" rel="stylesheet" type="text/css">
5226031Sstas<link href="tabs.css" rel="stylesheet" type="text/css">
6226031Sstas</head><body>
7226031Sstas<p>
8226031Sstas<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a>
9226031Sstas</p>
10226031Sstas<!-- end of header marker -->
11226031Sstas<!-- Generated by Doxygen 1.5.6 -->
12226031Sstas<div class="navigation" id="top">
13226031Sstas  <div class="tabs">
14226031Sstas    <ul>
15226031Sstas      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
16226031Sstas      <li><a href="modules.html"><span>Modules</span></a></li>
17226031Sstas      <li><a href="examples.html"><span>Examples</span></a></li>
18226031Sstas    </ul>
19226031Sstas  </div>
20226031Sstas</div>
21226031Sstas<div class="contents">
22226031Sstas<h1>DES crypto functions</h1><table border="0" cellpadding="0" cellspacing="0">
23226031Sstas<tr><td></td></tr>
24226031Sstas<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
25226031Sstas<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>
26226031Sstas
27226031Sstas<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>
28226031Sstas
29226031Sstas<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>
30226031Sstas
31226031Sstas<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>
32226031Sstas
33226031Sstas<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>
34226031Sstas
35226031Sstas<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>
36226031Sstas
37226031Sstas<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>
38226031Sstas
39226031Sstas<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>
40226031Sstas
41226031Sstas<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>
42226031Sstas
43226031Sstas<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>
44226031Sstas
45226031Sstas<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>
46226031Sstas
47226031Sstas<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>
48226031Sstas
49226031Sstas<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>
50226031Sstas
51226031Sstas<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>
52226031Sstas
53226031Sstas<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>
54226031Sstas
55226031Sstas<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>
56226031Sstas
57226031Sstas<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>
58226031Sstas
59226031Sstas<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>
60226031Sstas
61226031Sstas<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>
62226031Sstas
63226031Sstas</table>
64226031Sstas<hr><a name="_details"></a><h2>Detailed Description</h2>
65226031SstasSee the <a class="el" href="page_des.html">DES - Data Encryption Standard crypto interface</a> for description and examples. <hr><h2>Function Documentation</h2>
66226031Sstas<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)" -->
67226031Sstas<div class="memitem">
68226031Sstas<div class="memproto">
69226031Sstas      <table class="memname">
70226031Sstas        <tr>
71226031Sstas          <td class="memname">uint32_t DES_cbc_cksum           </td>
72226031Sstas          <td>(</td>
73226031Sstas          <td class="paramtype">const void *&nbsp;</td>
74226031Sstas          <td class="paramname"> <em>in</em>, </td>
75226031Sstas        </tr>
76226031Sstas        <tr>
77226031Sstas          <td class="paramkey"></td>
78226031Sstas          <td></td>
79226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
80226031Sstas          <td class="paramname"> <em>output</em>, </td>
81226031Sstas        </tr>
82226031Sstas        <tr>
83226031Sstas          <td class="paramkey"></td>
84226031Sstas          <td></td>
85226031Sstas          <td class="paramtype">long&nbsp;</td>
86226031Sstas          <td class="paramname"> <em>length</em>, </td>
87226031Sstas        </tr>
88226031Sstas        <tr>
89226031Sstas          <td class="paramkey"></td>
90226031Sstas          <td></td>
91226031Sstas          <td class="paramtype">DES_key_schedule *&nbsp;</td>
92226031Sstas          <td class="paramname"> <em>ks</em>, </td>
93226031Sstas        </tr>
94226031Sstas        <tr>
95226031Sstas          <td class="paramkey"></td>
96226031Sstas          <td></td>
97226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
98226031Sstas          <td class="paramname"> <em>iv</em></td><td>&nbsp;</td>
99226031Sstas        </tr>
100226031Sstas        <tr>
101226031Sstas          <td></td>
102226031Sstas          <td>)</td>
103226031Sstas          <td></td><td></td><td></td>
104226031Sstas        </tr>
105226031Sstas      </table>
106226031Sstas</div>
107226031Sstas<div class="memdoc">
108226031Sstas
109226031Sstas<p>
110226031SstasCrete a checksum using DES in CBC encryption mode. This mode is only used for Kerberos 4, and it should stay that way.<p>
111226031SstasThe IV must always be diffrent for diffrent input data blocks.<p>
112226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
113226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
114226031Sstas    <tr><td valign="top"></td><td valign="top"><em>in</em>&nbsp;</td><td>data to checksum </td></tr>
115226031Sstas    <tr><td valign="top"></td><td valign="top"><em>output</em>&nbsp;</td><td>the checksum </td></tr>
116226031Sstas    <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>length of data </td></tr>
117226031Sstas    <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>key schedule to use </td></tr>
118226031Sstas    <tr><td valign="top"></td><td valign="top"><em>iv</em>&nbsp;</td><td>initial vector to use </td></tr>
119226031Sstas  </table>
120226031Sstas</dl>
121226031Sstas
122226031Sstas</div>
123226031Sstas</div><p>
124226031Sstas<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)" -->
125226031Sstas<div class="memitem">
126226031Sstas<div class="memproto">
127226031Sstas      <table class="memname">
128226031Sstas        <tr>
129226031Sstas          <td class="memname">void DES_cbc_encrypt           </td>
130226031Sstas          <td>(</td>
131226031Sstas          <td class="paramtype">const void *&nbsp;</td>
132226031Sstas          <td class="paramname"> <em>in</em>, </td>
133226031Sstas        </tr>
134226031Sstas        <tr>
135226031Sstas          <td class="paramkey"></td>
136226031Sstas          <td></td>
137226031Sstas          <td class="paramtype">void *&nbsp;</td>
138226031Sstas          <td class="paramname"> <em>out</em>, </td>
139226031Sstas        </tr>
140226031Sstas        <tr>
141226031Sstas          <td class="paramkey"></td>
142226031Sstas          <td></td>
143226031Sstas          <td class="paramtype">long&nbsp;</td>
144226031Sstas          <td class="paramname"> <em>length</em>, </td>
145226031Sstas        </tr>
146226031Sstas        <tr>
147226031Sstas          <td class="paramkey"></td>
148226031Sstas          <td></td>
149226031Sstas          <td class="paramtype">DES_key_schedule *&nbsp;</td>
150226031Sstas          <td class="paramname"> <em>ks</em>, </td>
151226031Sstas        </tr>
152226031Sstas        <tr>
153226031Sstas          <td class="paramkey"></td>
154226031Sstas          <td></td>
155226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
156226031Sstas          <td class="paramname"> <em>iv</em>, </td>
157226031Sstas        </tr>
158226031Sstas        <tr>
159226031Sstas          <td class="paramkey"></td>
160226031Sstas          <td></td>
161226031Sstas          <td class="paramtype">int&nbsp;</td>
162226031Sstas          <td class="paramname"> <em>encp</em></td><td>&nbsp;</td>
163226031Sstas        </tr>
164226031Sstas        <tr>
165226031Sstas          <td></td>
166226031Sstas          <td>)</td>
167226031Sstas          <td></td><td></td><td></td>
168226031Sstas        </tr>
169226031Sstas      </table>
170226031Sstas</div>
171226031Sstas<div class="memdoc">
172226031Sstas
173226031Sstas<p>
174226031SstasEncrypt/decrypt a block using DES in Chain Block Cipher mode (cbc).<p>
175226031SstasThe IV must always be diffrent for diffrent input data blocks.<p>
176226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
177226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
178226031Sstas    <tr><td valign="top"></td><td valign="top"><em>in</em>&nbsp;</td><td>data to encrypt </td></tr>
179226031Sstas    <tr><td valign="top"></td><td valign="top"><em>out</em>&nbsp;</td><td>data to encrypt </td></tr>
180226031Sstas    <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>length of data </td></tr>
181226031Sstas    <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>key schedule to use </td></tr>
182226031Sstas    <tr><td valign="top"></td><td valign="top"><em>iv</em>&nbsp;</td><td>initial vector to use </td></tr>
183226031Sstas    <tr><td valign="top"></td><td valign="top"><em>encp</em>&nbsp;</td><td>if non zero, encrypt. if zero, decrypt. </td></tr>
184226031Sstas  </table>
185226031Sstas</dl>
186226031Sstas
187226031Sstas</div>
188226031Sstas</div><p>
189226031Sstas<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)" -->
190226031Sstas<div class="memitem">
191226031Sstas<div class="memproto">
192226031Sstas      <table class="memname">
193226031Sstas        <tr>
194226031Sstas          <td class="memname">void DES_cfb64_encrypt           </td>
195226031Sstas          <td>(</td>
196226031Sstas          <td class="paramtype">const void *&nbsp;</td>
197226031Sstas          <td class="paramname"> <em>in</em>, </td>
198226031Sstas        </tr>
199226031Sstas        <tr>
200226031Sstas          <td class="paramkey"></td>
201226031Sstas          <td></td>
202226031Sstas          <td class="paramtype">void *&nbsp;</td>
203226031Sstas          <td class="paramname"> <em>out</em>, </td>
204226031Sstas        </tr>
205226031Sstas        <tr>
206226031Sstas          <td class="paramkey"></td>
207226031Sstas          <td></td>
208226031Sstas          <td class="paramtype">long&nbsp;</td>
209226031Sstas          <td class="paramname"> <em>length</em>, </td>
210226031Sstas        </tr>
211226031Sstas        <tr>
212226031Sstas          <td class="paramkey"></td>
213226031Sstas          <td></td>
214226031Sstas          <td class="paramtype">DES_key_schedule *&nbsp;</td>
215226031Sstas          <td class="paramname"> <em>ks</em>, </td>
216226031Sstas        </tr>
217226031Sstas        <tr>
218226031Sstas          <td class="paramkey"></td>
219226031Sstas          <td></td>
220226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
221226031Sstas          <td class="paramname"> <em>iv</em>, </td>
222226031Sstas        </tr>
223226031Sstas        <tr>
224226031Sstas          <td class="paramkey"></td>
225226031Sstas          <td></td>
226226031Sstas          <td class="paramtype">int *&nbsp;</td>
227226031Sstas          <td class="paramname"> <em>num</em>, </td>
228226031Sstas        </tr>
229226031Sstas        <tr>
230226031Sstas          <td class="paramkey"></td>
231226031Sstas          <td></td>
232226031Sstas          <td class="paramtype">int&nbsp;</td>
233226031Sstas          <td class="paramname"> <em>encp</em></td><td>&nbsp;</td>
234226031Sstas        </tr>
235226031Sstas        <tr>
236226031Sstas          <td></td>
237226031Sstas          <td>)</td>
238226031Sstas          <td></td><td></td><td></td>
239226031Sstas        </tr>
240226031Sstas      </table>
241226031Sstas</div>
242226031Sstas<div class="memdoc">
243226031Sstas
244226031Sstas<p>
245226031SstasEncrypt/decrypt using DES in cipher feedback mode with 64 bit feedback.<p>
246226031SstasThe IV must always be diffrent for diffrent input data blocks.<p>
247226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
248226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
249226031Sstas    <tr><td valign="top"></td><td valign="top"><em>in</em>&nbsp;</td><td>data to encrypt </td></tr>
250226031Sstas    <tr><td valign="top"></td><td valign="top"><em>out</em>&nbsp;</td><td>data to encrypt </td></tr>
251226031Sstas    <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>length of data </td></tr>
252226031Sstas    <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>key schedule to use </td></tr>
253226031Sstas    <tr><td valign="top"></td><td valign="top"><em>iv</em>&nbsp;</td><td>initial vector to use </td></tr>
254226031Sstas    <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>
255226031Sstas    <tr><td valign="top"></td><td valign="top"><em>encp</em>&nbsp;</td><td>if non zero, encrypt. if zero, decrypt. </td></tr>
256226031Sstas  </table>
257226031Sstas</dl>
258226031Sstas
259226031Sstas</div>
260226031Sstas</div><p>
261226031Sstas<a class="anchor" name="gcf0d611296ad70edf90a3130b2f62c71"></a><!-- doxytag: member="des.c::DES_check_key_parity" ref="gcf0d611296ad70edf90a3130b2f62c71" args="(DES_cblock *key)" -->
262226031Sstas<div class="memitem">
263226031Sstas<div class="memproto">
264226031Sstas      <table class="memname">
265226031Sstas        <tr>
266226031Sstas          <td class="memname">int HC_DEPRECATED DES_check_key_parity           </td>
267226031Sstas          <td>(</td>
268226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
269226031Sstas          <td class="paramname"> <em>key</em>          </td>
270226031Sstas          <td>&nbsp;)&nbsp;</td>
271226031Sstas          <td></td>
272226031Sstas        </tr>
273226031Sstas      </table>
274226031Sstas</div>
275226031Sstas<div class="memdoc">
276226031Sstas
277226031Sstas<p>
278226031SstasCheck if the key have correct parity.<p>
279226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
280226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
281226031Sstas    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>key to check the parity. </td></tr>
282226031Sstas  </table>
283226031Sstas</dl>
284226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 on success, 0 on failure. </dd></dl>
285226031Sstas
286226031Sstas</div>
287226031Sstas</div><p>
288226031Sstas<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)" -->
289226031Sstas<div class="memitem">
290226031Sstas<div class="memproto">
291226031Sstas      <table class="memname">
292226031Sstas        <tr>
293226031Sstas          <td class="memname">void DES_ecb3_encrypt           </td>
294226031Sstas          <td>(</td>
295226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
296226031Sstas          <td class="paramname"> <em>input</em>, </td>
297226031Sstas        </tr>
298226031Sstas        <tr>
299226031Sstas          <td class="paramkey"></td>
300226031Sstas          <td></td>
301226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
302226031Sstas          <td class="paramname"> <em>output</em>, </td>
303226031Sstas        </tr>
304226031Sstas        <tr>
305226031Sstas          <td class="paramkey"></td>
306226031Sstas          <td></td>
307226031Sstas          <td class="paramtype">DES_key_schedule *&nbsp;</td>
308226031Sstas          <td class="paramname"> <em>ks1</em>, </td>
309226031Sstas        </tr>
310226031Sstas        <tr>
311226031Sstas          <td class="paramkey"></td>
312226031Sstas          <td></td>
313226031Sstas          <td class="paramtype">DES_key_schedule *&nbsp;</td>
314226031Sstas          <td class="paramname"> <em>ks2</em>, </td>
315226031Sstas        </tr>
316226031Sstas        <tr>
317226031Sstas          <td class="paramkey"></td>
318226031Sstas          <td></td>
319226031Sstas          <td class="paramtype">DES_key_schedule *&nbsp;</td>
320226031Sstas          <td class="paramname"> <em>ks3</em>, </td>
321226031Sstas        </tr>
322226031Sstas        <tr>
323226031Sstas          <td class="paramkey"></td>
324226031Sstas          <td></td>
325226031Sstas          <td class="paramtype">int&nbsp;</td>
326226031Sstas          <td class="paramname"> <em>encp</em></td><td>&nbsp;</td>
327226031Sstas        </tr>
328226031Sstas        <tr>
329226031Sstas          <td></td>
330226031Sstas          <td>)</td>
331226031Sstas          <td></td><td></td><td></td>
332226031Sstas        </tr>
333226031Sstas      </table>
334226031Sstas</div>
335226031Sstas<div class="memdoc">
336226031Sstas
337226031Sstas<p>
338226031SstasEncrypt/decrypt a block using triple DES using EDE mode, encrypt/decrypt/encrypt.<p>
339226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
340226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
341226031Sstas    <tr><td valign="top"></td><td valign="top"><em>input</em>&nbsp;</td><td>data to encrypt </td></tr>
342226031Sstas    <tr><td valign="top"></td><td valign="top"><em>output</em>&nbsp;</td><td>data to encrypt </td></tr>
343226031Sstas    <tr><td valign="top"></td><td valign="top"><em>ks1</em>&nbsp;</td><td>key schedule to use </td></tr>
344226031Sstas    <tr><td valign="top"></td><td valign="top"><em>ks2</em>&nbsp;</td><td>key schedule to use </td></tr>
345226031Sstas    <tr><td valign="top"></td><td valign="top"><em>ks3</em>&nbsp;</td><td>key schedule to use </td></tr>
346226031Sstas    <tr><td valign="top"></td><td valign="top"><em>encp</em>&nbsp;</td><td>if non zero, encrypt. if zero, decrypt. </td></tr>
347226031Sstas  </table>
348226031Sstas</dl>
349226031Sstas
350226031Sstas</div>
351226031Sstas</div><p>
352226031Sstas<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)" -->
353226031Sstas<div class="memitem">
354226031Sstas<div class="memproto">
355226031Sstas      <table class="memname">
356226031Sstas        <tr>
357226031Sstas          <td class="memname">void DES_ecb_encrypt           </td>
358226031Sstas          <td>(</td>
359226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
360226031Sstas          <td class="paramname"> <em>input</em>, </td>
361226031Sstas        </tr>
362226031Sstas        <tr>
363226031Sstas          <td class="paramkey"></td>
364226031Sstas          <td></td>
365226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
366226031Sstas          <td class="paramname"> <em>output</em>, </td>
367226031Sstas        </tr>
368226031Sstas        <tr>
369226031Sstas          <td class="paramkey"></td>
370226031Sstas          <td></td>
371226031Sstas          <td class="paramtype">DES_key_schedule *&nbsp;</td>
372226031Sstas          <td class="paramname"> <em>ks</em>, </td>
373226031Sstas        </tr>
374226031Sstas        <tr>
375226031Sstas          <td class="paramkey"></td>
376226031Sstas          <td></td>
377226031Sstas          <td class="paramtype">int&nbsp;</td>
378226031Sstas          <td class="paramname"> <em>encp</em></td><td>&nbsp;</td>
379226031Sstas        </tr>
380226031Sstas        <tr>
381226031Sstas          <td></td>
382226031Sstas          <td>)</td>
383226031Sstas          <td></td><td></td><td></td>
384226031Sstas        </tr>
385226031Sstas      </table>
386226031Sstas</div>
387226031Sstas<div class="memdoc">
388226031Sstas
389226031Sstas<p>
390226031SstasEncrypt/decrypt a block using DES.<p>
391226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
392226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
393226031Sstas    <tr><td valign="top"></td><td valign="top"><em>input</em>&nbsp;</td><td>data to encrypt </td></tr>
394226031Sstas    <tr><td valign="top"></td><td valign="top"><em>output</em>&nbsp;</td><td>data to encrypt </td></tr>
395226031Sstas    <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>key schedule to use </td></tr>
396226031Sstas    <tr><td valign="top"></td><td valign="top"><em>encp</em>&nbsp;</td><td>if non zero, encrypt. if zero, decrypt. </td></tr>
397226031Sstas  </table>
398226031Sstas</dl>
399226031Sstas
400226031Sstas</div>
401226031Sstas</div><p>
402226031Sstas<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)" -->
403226031Sstas<div class="memitem">
404226031Sstas<div class="memproto">
405226031Sstas      <table class="memname">
406226031Sstas        <tr>
407226031Sstas          <td class="memname">void DES_ede3_cbc_encrypt           </td>
408226031Sstas          <td>(</td>
409226031Sstas          <td class="paramtype">const void *&nbsp;</td>
410226031Sstas          <td class="paramname"> <em>in</em>, </td>
411226031Sstas        </tr>
412226031Sstas        <tr>
413226031Sstas          <td class="paramkey"></td>
414226031Sstas          <td></td>
415226031Sstas          <td class="paramtype">void *&nbsp;</td>
416226031Sstas          <td class="paramname"> <em>out</em>, </td>
417226031Sstas        </tr>
418226031Sstas        <tr>
419226031Sstas          <td class="paramkey"></td>
420226031Sstas          <td></td>
421226031Sstas          <td class="paramtype">long&nbsp;</td>
422226031Sstas          <td class="paramname"> <em>length</em>, </td>
423226031Sstas        </tr>
424226031Sstas        <tr>
425226031Sstas          <td class="paramkey"></td>
426226031Sstas          <td></td>
427226031Sstas          <td class="paramtype">DES_key_schedule *&nbsp;</td>
428226031Sstas          <td class="paramname"> <em>ks1</em>, </td>
429226031Sstas        </tr>
430226031Sstas        <tr>
431226031Sstas          <td class="paramkey"></td>
432226031Sstas          <td></td>
433226031Sstas          <td class="paramtype">DES_key_schedule *&nbsp;</td>
434226031Sstas          <td class="paramname"> <em>ks2</em>, </td>
435226031Sstas        </tr>
436226031Sstas        <tr>
437226031Sstas          <td class="paramkey"></td>
438226031Sstas          <td></td>
439226031Sstas          <td class="paramtype">DES_key_schedule *&nbsp;</td>
440226031Sstas          <td class="paramname"> <em>ks3</em>, </td>
441226031Sstas        </tr>
442226031Sstas        <tr>
443226031Sstas          <td class="paramkey"></td>
444226031Sstas          <td></td>
445226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
446226031Sstas          <td class="paramname"> <em>iv</em>, </td>
447226031Sstas        </tr>
448226031Sstas        <tr>
449226031Sstas          <td class="paramkey"></td>
450226031Sstas          <td></td>
451226031Sstas          <td class="paramtype">int&nbsp;</td>
452226031Sstas          <td class="paramname"> <em>encp</em></td><td>&nbsp;</td>
453226031Sstas        </tr>
454226031Sstas        <tr>
455226031Sstas          <td></td>
456226031Sstas          <td>)</td>
457226031Sstas          <td></td><td></td><td></td>
458226031Sstas        </tr>
459226031Sstas      </table>
460226031Sstas</div>
461226031Sstas<div class="memdoc">
462226031Sstas
463226031Sstas<p>
464226031SstasEncrypt/decrypt using Triple DES in Chain Block Cipher mode (cbc).<p>
465226031SstasThe IV must always be diffrent for diffrent input data blocks.<p>
466226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
467226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
468226031Sstas    <tr><td valign="top"></td><td valign="top"><em>in</em>&nbsp;</td><td>data to encrypt </td></tr>
469226031Sstas    <tr><td valign="top"></td><td valign="top"><em>out</em>&nbsp;</td><td>data to encrypt </td></tr>
470226031Sstas    <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>length of data </td></tr>
471226031Sstas    <tr><td valign="top"></td><td valign="top"><em>ks1</em>&nbsp;</td><td>key schedule to use </td></tr>
472226031Sstas    <tr><td valign="top"></td><td valign="top"><em>ks2</em>&nbsp;</td><td>key schedule to use </td></tr>
473226031Sstas    <tr><td valign="top"></td><td valign="top"><em>ks3</em>&nbsp;</td><td>key schedule to use </td></tr>
474226031Sstas    <tr><td valign="top"></td><td valign="top"><em>iv</em>&nbsp;</td><td>initial vector to use </td></tr>
475226031Sstas    <tr><td valign="top"></td><td valign="top"><em>encp</em>&nbsp;</td><td>if non zero, encrypt. if zero, decrypt. </td></tr>
476226031Sstas  </table>
477226031Sstas</dl>
478226031Sstas
479226031Sstas</div>
480226031Sstas</div><p>
481226031Sstas<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)" -->
482226031Sstas<div class="memitem">
483226031Sstas<div class="memproto">
484226031Sstas      <table class="memname">
485226031Sstas        <tr>
486226031Sstas          <td class="memname">void DES_encrypt           </td>
487226031Sstas          <td>(</td>
488226031Sstas          <td class="paramtype">uint32_t&nbsp;</td>
489226031Sstas          <td class="paramname"> <em>u</em>[2], </td>
490226031Sstas        </tr>
491226031Sstas        <tr>
492226031Sstas          <td class="paramkey"></td>
493226031Sstas          <td></td>
494226031Sstas          <td class="paramtype">DES_key_schedule *&nbsp;</td>
495226031Sstas          <td class="paramname"> <em>ks</em>, </td>
496226031Sstas        </tr>
497226031Sstas        <tr>
498226031Sstas          <td class="paramkey"></td>
499226031Sstas          <td></td>
500226031Sstas          <td class="paramtype">int&nbsp;</td>
501226031Sstas          <td class="paramname"> <em>encp</em></td><td>&nbsp;</td>
502226031Sstas        </tr>
503226031Sstas        <tr>
504226031Sstas          <td></td>
505226031Sstas          <td>)</td>
506226031Sstas          <td></td><td></td><td></td>
507226031Sstas        </tr>
508226031Sstas      </table>
509226031Sstas</div>
510226031Sstas<div class="memdoc">
511226031Sstas
512226031Sstas<p>
513226031SstasEncrypt/decrypt a block using DES. Also called ECB mode<p>
514226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
515226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
516226031Sstas    <tr><td valign="top"></td><td valign="top"><em>u</em>&nbsp;</td><td>data to encrypt </td></tr>
517226031Sstas    <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>key schedule to use </td></tr>
518226031Sstas    <tr><td valign="top"></td><td valign="top"><em>encp</em>&nbsp;</td><td>if non zero, encrypt. if zero, decrypt. </td></tr>
519226031Sstas  </table>
520226031Sstas</dl>
521226031Sstas
522226031Sstas</div>
523226031Sstas</div><p>
524226031Sstas<a class="anchor" name="g45739e74db49d07bfaa0d7918efd4875"></a><!-- doxytag: member="rnd_keys.c::DES_init_random_number_generator" ref="g45739e74db49d07bfaa0d7918efd4875" args="(DES_cblock *seed)" -->
525226031Sstas<div class="memitem">
526226031Sstas<div class="memproto">
527226031Sstas      <table class="memname">
528226031Sstas        <tr>
529226031Sstas          <td class="memname">void HC_DEPRECATED DES_init_random_number_generator           </td>
530226031Sstas          <td>(</td>
531226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
532226031Sstas          <td class="paramname"> <em>seed</em>          </td>
533226031Sstas          <td>&nbsp;)&nbsp;</td>
534226031Sstas          <td></td>
535226031Sstas        </tr>
536226031Sstas      </table>
537226031Sstas</div>
538226031Sstas<div class="memdoc">
539226031Sstas
540226031Sstas<p>
541226031SstasSeed the random number generator. Deprecated, use <a class="el" href="page_rand.html">RAND - random number</a><p>
542226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
543226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
544226031Sstas    <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>
545226031Sstas  </table>
546226031Sstas</dl>
547226031Sstas
548226031Sstas</div>
549226031Sstas</div><p>
550226031Sstas<a class="anchor" name="g0d8a49cafee4be6cd3922bfb6323fd2d"></a><!-- doxytag: member="des.c::DES_is_weak_key" ref="g0d8a49cafee4be6cd3922bfb6323fd2d" args="(DES_cblock *key)" -->
551226031Sstas<div class="memitem">
552226031Sstas<div class="memproto">
553226031Sstas      <table class="memname">
554226031Sstas        <tr>
555226031Sstas          <td class="memname">int DES_is_weak_key           </td>
556226031Sstas          <td>(</td>
557226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
558226031Sstas          <td class="paramname"> <em>key</em>          </td>
559226031Sstas          <td>&nbsp;)&nbsp;</td>
560226031Sstas          <td></td>
561226031Sstas        </tr>
562226031Sstas      </table>
563226031Sstas</div>
564226031Sstas<div class="memdoc">
565226031Sstas
566226031Sstas<p>
567226031SstasChecks if the key is any of the weaks keys that makes DES attacks trival.<p>
568226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
569226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
570226031Sstas    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>key to check.</td></tr>
571226031Sstas  </table>
572226031Sstas</dl>
573226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if the key is weak, 0 otherwise. </dd></dl>
574226031Sstas
575226031Sstas</div>
576226031Sstas</div><p>
577226031Sstas<a class="anchor" name="gf5b4967f13a4a52c214c28b6e57a3a95"></a><!-- doxytag: member="des.c::DES_key_sched" ref="gf5b4967f13a4a52c214c28b6e57a3a95" args="(DES_cblock *key, DES_key_schedule *ks)" -->
578226031Sstas<div class="memitem">
579226031Sstas<div class="memproto">
580226031Sstas      <table class="memname">
581226031Sstas        <tr>
582226031Sstas          <td class="memname">int DES_key_sched           </td>
583226031Sstas          <td>(</td>
584226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
585226031Sstas          <td class="paramname"> <em>key</em>, </td>
586226031Sstas        </tr>
587226031Sstas        <tr>
588226031Sstas          <td class="paramkey"></td>
589226031Sstas          <td></td>
590226031Sstas          <td class="paramtype">DES_key_schedule *&nbsp;</td>
591226031Sstas          <td class="paramname"> <em>ks</em></td><td>&nbsp;</td>
592226031Sstas        </tr>
593226031Sstas        <tr>
594226031Sstas          <td></td>
595226031Sstas          <td>)</td>
596226031Sstas          <td></td><td></td><td></td>
597226031Sstas        </tr>
598226031Sstas      </table>
599226031Sstas</div>
600226031Sstas<div class="memdoc">
601226031Sstas
602226031Sstas<p>
603226031SstasCompatibility function for eay libdes, works just like <a class="el" href="group__hcrypto__des.html#g3157dd2419a25cd4381867f012117d07">DES_set_key_checked()</a>.<p>
604226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
605226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
606226031Sstas    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>a key to initialize the key schedule with. </td></tr>
607226031Sstas    <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>a key schedule to initialize.</td></tr>
608226031Sstas  </table>
609226031Sstas</dl>
610226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, -1 on invalid parity, -2 on weak key. </dd></dl>
611226031Sstas
612226031Sstas</div>
613226031Sstas</div><p>
614226031Sstas<a class="anchor" name="gcd3642bcd8a7e93ea977786e5b540d5f"></a><!-- doxytag: member="rnd_keys.c::DES_new_random_key" ref="gcd3642bcd8a7e93ea977786e5b540d5f" args="(DES_cblock *key)" -->
615226031Sstas<div class="memitem">
616226031Sstas<div class="memproto">
617226031Sstas      <table class="memname">
618226031Sstas        <tr>
619226031Sstas          <td class="memname">int HC_DEPRECATED DES_new_random_key           </td>
620226031Sstas          <td>(</td>
621226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
622226031Sstas          <td class="paramname"> <em>key</em>          </td>
623226031Sstas          <td>&nbsp;)&nbsp;</td>
624226031Sstas          <td></td>
625226031Sstas        </tr>
626226031Sstas      </table>
627226031Sstas</div>
628226031Sstas<div class="memdoc">
629226031Sstas
630226031Sstas<p>
631226031SstasGenerate a random des key using a random block, fixup parity and skip weak keys.<p>
632226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
633226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
634226031Sstas    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>is set to a random key.</td></tr>
635226031Sstas  </table>
636226031Sstas</dl>
637226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, non zero on random number generator failure. </dd></dl>
638226031Sstas
639226031Sstas</div>
640226031Sstas</div><p>
641226031Sstas<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)" -->
642226031Sstas<div class="memitem">
643226031Sstas<div class="memproto">
644226031Sstas      <table class="memname">
645226031Sstas        <tr>
646226031Sstas          <td class="memname">void DES_pcbc_encrypt           </td>
647226031Sstas          <td>(</td>
648226031Sstas          <td class="paramtype">const void *&nbsp;</td>
649226031Sstas          <td class="paramname"> <em>in</em>, </td>
650226031Sstas        </tr>
651226031Sstas        <tr>
652226031Sstas          <td class="paramkey"></td>
653226031Sstas          <td></td>
654226031Sstas          <td class="paramtype">void *&nbsp;</td>
655226031Sstas          <td class="paramname"> <em>out</em>, </td>
656226031Sstas        </tr>
657226031Sstas        <tr>
658226031Sstas          <td class="paramkey"></td>
659226031Sstas          <td></td>
660226031Sstas          <td class="paramtype">long&nbsp;</td>
661226031Sstas          <td class="paramname"> <em>length</em>, </td>
662226031Sstas        </tr>
663226031Sstas        <tr>
664226031Sstas          <td class="paramkey"></td>
665226031Sstas          <td></td>
666226031Sstas          <td class="paramtype">DES_key_schedule *&nbsp;</td>
667226031Sstas          <td class="paramname"> <em>ks</em>, </td>
668226031Sstas        </tr>
669226031Sstas        <tr>
670226031Sstas          <td class="paramkey"></td>
671226031Sstas          <td></td>
672226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
673226031Sstas          <td class="paramname"> <em>iv</em>, </td>
674226031Sstas        </tr>
675226031Sstas        <tr>
676226031Sstas          <td class="paramkey"></td>
677226031Sstas          <td></td>
678226031Sstas          <td class="paramtype">int&nbsp;</td>
679226031Sstas          <td class="paramname"> <em>encp</em></td><td>&nbsp;</td>
680226031Sstas        </tr>
681226031Sstas        <tr>
682226031Sstas          <td></td>
683226031Sstas          <td>)</td>
684226031Sstas          <td></td><td></td><td></td>
685226031Sstas        </tr>
686226031Sstas      </table>
687226031Sstas</div>
688226031Sstas<div class="memdoc">
689226031Sstas
690226031Sstas<p>
691226031SstasEncrypt/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>
692226031SstasThe IV must always be diffrent for diffrent input data blocks.<p>
693226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
694226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
695226031Sstas    <tr><td valign="top"></td><td valign="top"><em>in</em>&nbsp;</td><td>data to encrypt </td></tr>
696226031Sstas    <tr><td valign="top"></td><td valign="top"><em>out</em>&nbsp;</td><td>data to encrypt </td></tr>
697226031Sstas    <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>length of data </td></tr>
698226031Sstas    <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>key schedule to use </td></tr>
699226031Sstas    <tr><td valign="top"></td><td valign="top"><em>iv</em>&nbsp;</td><td>initial vector to use </td></tr>
700226031Sstas    <tr><td valign="top"></td><td valign="top"><em>encp</em>&nbsp;</td><td>if non zero, encrypt. if zero, decrypt. </td></tr>
701226031Sstas  </table>
702226031Sstas</dl>
703226031Sstas
704226031Sstas</div>
705226031Sstas</div><p>
706226031Sstas<a class="anchor" name="gd70d485549f7444589f3283e938c0258"></a><!-- doxytag: member="rnd_keys.c::DES_random_key" ref="gd70d485549f7444589f3283e938c0258" args="(DES_cblock *key)" -->
707226031Sstas<div class="memitem">
708226031Sstas<div class="memproto">
709226031Sstas      <table class="memname">
710226031Sstas        <tr>
711226031Sstas          <td class="memname">void HC_DEPRECATED DES_random_key           </td>
712226031Sstas          <td>(</td>
713226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
714226031Sstas          <td class="paramname"> <em>key</em>          </td>
715226031Sstas          <td>&nbsp;)&nbsp;</td>
716226031Sstas          <td></td>
717226031Sstas        </tr>
718226031Sstas      </table>
719226031Sstas</div>
720226031Sstas<div class="memdoc">
721226031Sstas
722226031Sstas<p>
723226031SstasGenerate 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>
724226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
725226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
726226031Sstas    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>is set to a random key. </td></tr>
727226031Sstas  </table>
728226031Sstas</dl>
729226031Sstas
730226031Sstas</div>
731226031Sstas</div><p>
732226031Sstas<a class="anchor" name="gad10e059974f3048b3de49599989486b"></a><!-- doxytag: member="des.c::DES_set_key" ref="gad10e059974f3048b3de49599989486b" args="(DES_cblock *key, DES_key_schedule *ks)" -->
733226031Sstas<div class="memitem">
734226031Sstas<div class="memproto">
735226031Sstas      <table class="memname">
736226031Sstas        <tr>
737226031Sstas          <td class="memname">int HC_DEPRECATED DES_set_key           </td>
738226031Sstas          <td>(</td>
739226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
740226031Sstas          <td class="paramname"> <em>key</em>, </td>
741226031Sstas        </tr>
742226031Sstas        <tr>
743226031Sstas          <td class="paramkey"></td>
744226031Sstas          <td></td>
745226031Sstas          <td class="paramtype">DES_key_schedule *&nbsp;</td>
746226031Sstas          <td class="paramname"> <em>ks</em></td><td>&nbsp;</td>
747226031Sstas        </tr>
748226031Sstas        <tr>
749226031Sstas          <td></td>
750226031Sstas          <td>)</td>
751226031Sstas          <td></td><td></td><td></td>
752226031Sstas        </tr>
753226031Sstas      </table>
754226031Sstas</div>
755226031Sstas<div class="memdoc">
756226031Sstas
757226031Sstas<p>
758226031SstasSetup 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>
759226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
760226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
761226031Sstas    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>a key to initialize the key schedule with. </td></tr>
762226031Sstas    <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>a key schedule to initialize.</td></tr>
763226031Sstas  </table>
764226031Sstas</dl>
765226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success </dd></dl>
766226031Sstas
767226031Sstas</div>
768226031Sstas</div><p>
769226031Sstas<a class="anchor" name="g3157dd2419a25cd4381867f012117d07"></a><!-- doxytag: member="des.c::DES_set_key_checked" ref="g3157dd2419a25cd4381867f012117d07" args="(DES_cblock *key, DES_key_schedule *ks)" -->
770226031Sstas<div class="memitem">
771226031Sstas<div class="memproto">
772226031Sstas      <table class="memname">
773226031Sstas        <tr>
774226031Sstas          <td class="memname">int DES_set_key_checked           </td>
775226031Sstas          <td>(</td>
776226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
777226031Sstas          <td class="paramname"> <em>key</em>, </td>
778226031Sstas        </tr>
779226031Sstas        <tr>
780226031Sstas          <td class="paramkey"></td>
781226031Sstas          <td></td>
782226031Sstas          <td class="paramtype">DES_key_schedule *&nbsp;</td>
783226031Sstas          <td class="paramname"> <em>ks</em></td><td>&nbsp;</td>
784226031Sstas        </tr>
785226031Sstas        <tr>
786226031Sstas          <td></td>
787226031Sstas          <td>)</td>
788226031Sstas          <td></td><td></td><td></td>
789226031Sstas        </tr>
790226031Sstas      </table>
791226031Sstas</div>
792226031Sstas<div class="memdoc">
793226031Sstas
794226031Sstas<p>
795226031SstasJust 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>
796226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
797226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
798226031Sstas    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>a key to initialize the key schedule with. </td></tr>
799226031Sstas    <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>a key schedule to initialize.</td></tr>
800226031Sstas  </table>
801226031Sstas</dl>
802226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, -1 on invalid parity, -2 on weak key. </dd></dl>
803226031Sstas
804226031Sstas</div>
805226031Sstas</div><p>
806226031Sstas<a class="anchor" name="g8131d59b5c0f65ca8bba0873932680d5"></a><!-- doxytag: member="des.c::DES_set_key_unchecked" ref="g8131d59b5c0f65ca8bba0873932680d5" args="(DES_cblock *key, DES_key_schedule *ks)" -->
807226031Sstas<div class="memitem">
808226031Sstas<div class="memproto">
809226031Sstas      <table class="memname">
810226031Sstas        <tr>
811226031Sstas          <td class="memname">int DES_set_key_unchecked           </td>
812226031Sstas          <td>(</td>
813226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
814226031Sstas          <td class="paramname"> <em>key</em>, </td>
815226031Sstas        </tr>
816226031Sstas        <tr>
817226031Sstas          <td class="paramkey"></td>
818226031Sstas          <td></td>
819226031Sstas          <td class="paramtype">DES_key_schedule *&nbsp;</td>
820226031Sstas          <td class="paramname"> <em>ks</em></td><td>&nbsp;</td>
821226031Sstas        </tr>
822226031Sstas        <tr>
823226031Sstas          <td></td>
824226031Sstas          <td>)</td>
825226031Sstas          <td></td><td></td><td></td>
826226031Sstas        </tr>
827226031Sstas      </table>
828226031Sstas</div>
829226031Sstas<div class="memdoc">
830226031Sstas
831226031Sstas<p>
832226031SstasSetup a des key schedule from a key. The key is no longer needed after this transaction and can cleared.<p>
833226031SstasDoes NOT check that the key is weak for or have wrong parity.<p>
834226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
835226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
836226031Sstas    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>a key to initialize the key schedule with. </td></tr>
837226031Sstas    <tr><td valign="top"></td><td valign="top"><em>ks</em>&nbsp;</td><td>a key schedule to initialize.</td></tr>
838226031Sstas  </table>
839226031Sstas</dl>
840226031Sstas<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success </dd></dl>
841226031Sstas
842226031Sstas</div>
843226031Sstas</div><p>
844226031Sstas<a class="anchor" name="g4179bef43ceb72cc2034f39e7d2d5ae4"></a><!-- doxytag: member="des.c::DES_set_odd_parity" ref="g4179bef43ceb72cc2034f39e7d2d5ae4" args="(DES_cblock *key)" -->
845226031Sstas<div class="memitem">
846226031Sstas<div class="memproto">
847226031Sstas      <table class="memname">
848226031Sstas        <tr>
849226031Sstas          <td class="memname">void DES_set_odd_parity           </td>
850226031Sstas          <td>(</td>
851226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
852226031Sstas          <td class="paramname"> <em>key</em>          </td>
853226031Sstas          <td>&nbsp;)&nbsp;</td>
854226031Sstas          <td></td>
855226031Sstas        </tr>
856226031Sstas      </table>
857226031Sstas</div>
858226031Sstas<div class="memdoc">
859226031Sstas
860226031Sstas<p>
861226031SstasSet 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>
862226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
863226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
864226031Sstas    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>key to fixup the parity for. </td></tr>
865226031Sstas  </table>
866226031Sstas</dl>
867226031Sstas
868226031Sstas</div>
869226031Sstas</div><p>
870226031Sstas<a class="anchor" name="g60893cdc75d9ce8cbf4a5d7a874855c8"></a><!-- doxytag: member="des.c::DES_string_to_key" ref="g60893cdc75d9ce8cbf4a5d7a874855c8" args="(const char *str, DES_cblock *key)" -->
871226031Sstas<div class="memitem">
872226031Sstas<div class="memproto">
873226031Sstas      <table class="memname">
874226031Sstas        <tr>
875226031Sstas          <td class="memname">void DES_string_to_key           </td>
876226031Sstas          <td>(</td>
877226031Sstas          <td class="paramtype">const char *&nbsp;</td>
878226031Sstas          <td class="paramname"> <em>str</em>, </td>
879226031Sstas        </tr>
880226031Sstas        <tr>
881226031Sstas          <td class="paramkey"></td>
882226031Sstas          <td></td>
883226031Sstas          <td class="paramtype">DES_cblock *&nbsp;</td>
884226031Sstas          <td class="paramname"> <em>key</em></td><td>&nbsp;</td>
885226031Sstas        </tr>
886226031Sstas        <tr>
887226031Sstas          <td></td>
888226031Sstas          <td>)</td>
889226031Sstas          <td></td><td></td><td></td>
890226031Sstas        </tr>
891226031Sstas      </table>
892226031Sstas</div>
893226031Sstas<div class="memdoc">
894226031Sstas
895226031Sstas<p>
896226031SstasConvert 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>
897226031Sstas<dl compact><dt><b>Parameters:</b></dt><dd>
898226031Sstas  <table border="0" cellspacing="2" cellpadding="0">
899226031Sstas    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>The string to convert to a key </td></tr>
900226031Sstas    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>the resulting key </td></tr>
901226031Sstas  </table>
902226031Sstas</dl>
903226031Sstas
904226031Sstas</div>
905226031Sstas</div><p>
906226031Sstas</div>
907226031Sstas<hr size="1"><address style="text-align: right;"><small>
908234027SstasGenerated 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>
909226031Sstas</body>
910226031Sstas</html>
911