~andersk/ubuntu/oneiric/openssl/spurious-reboot

« back to all changes in this revision

Viewing changes to crypto/des/des_old.h

  • Committer: Bazaar Package Importer
  • Author(s): Christoph Martin
  • Date: 2004-05-24 17:02:29 UTC
  • Revision ID: james.westby@ubuntu.com-20040524170229-ixlo08bbbly0xied
Tags: upstream-0.9.7d
ImportĀ upstreamĀ versionĀ 0.9.7d

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* crypto/des/des_old.h -*- mode:C; c-file-style: "eay" -*- */
 
2
 
 
3
/* WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
 
4
 *
 
5
 * The function names in here are deprecated and are only present to
 
6
 * provide an interface compatible with openssl 0.9.6 and older as
 
7
 * well as libdes.  OpenSSL now provides functions where "des_" has
 
8
 * been replaced with "DES_" in the names, to make it possible to
 
9
 * make incompatible changes that are needed for C type security and
 
10
 * other stuff.
 
11
 *
 
12
 * This include files has two compatibility modes:
 
13
 *
 
14
 *   - If OPENSSL_DES_LIBDES_COMPATIBILITY is defined, you get an API
 
15
 *     that is compatible with libdes and SSLeay.
 
16
 *   - If OPENSSL_DES_LIBDES_COMPATIBILITY isn't defined, you get an
 
17
 *     API that is compatible with OpenSSL 0.9.5x to 0.9.6x.
 
18
 *
 
19
 * Note that these modes break earlier snapshots of OpenSSL, where
 
20
 * libdes compatibility was the only available mode or (later on) the
 
21
 * prefered compatibility mode.  However, after much consideration
 
22
 * (and more or less violent discussions with external parties), it
 
23
 * was concluded that OpenSSL should be compatible with earlier versions
 
24
 * of itself before anything else.  Also, in all honesty, libdes is
 
25
 * an old beast that shouldn't really be used any more.
 
26
 *
 
27
 * Please consider starting to use the DES_ functions rather than the
 
28
 * des_ ones.  The des_ functions will disappear completely before
 
29
 * OpenSSL 1.0!
 
30
 *
 
31
 * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
 
32
 */
 
33
 
 
34
/* Written by Richard Levitte (richard@levitte.org) for the OpenSSL
 
35
 * project 2001.
 
36
 */
 
37
/* ====================================================================
 
38
 * Copyright (c) 1998-2002 The OpenSSL Project.  All rights reserved.
 
39
 *
 
40
 * Redistribution and use in source and binary forms, with or without
 
41
 * modification, are permitted provided that the following conditions
 
42
 * are met:
 
43
 *
 
44
 * 1. Redistributions of source code must retain the above copyright
 
45
 *    notice, this list of conditions and the following disclaimer. 
 
46
 *
 
47
 * 2. Redistributions in binary form must reproduce the above copyright
 
48
 *    notice, this list of conditions and the following disclaimer in
 
49
 *    the documentation and/or other materials provided with the
 
50
 *    distribution.
 
51
 *
 
52
 * 3. All advertising materials mentioning features or use of this
 
53
 *    software must display the following acknowledgment:
 
54
 *    "This product includes software developed by the OpenSSL Project
 
55
 *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
 
56
 *
 
57
 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
 
58
 *    endorse or promote products derived from this software without
 
59
 *    prior written permission. For written permission, please contact
 
60
 *    openssl-core@openssl.org.
 
61
 *
 
62
 * 5. Products derived from this software may not be called "OpenSSL"
 
63
 *    nor may "OpenSSL" appear in their names without prior written
 
64
 *    permission of the OpenSSL Project.
 
65
 *
 
66
 * 6. Redistributions of any form whatsoever must retain the following
 
67
 *    acknowledgment:
 
68
 *    "This product includes software developed by the OpenSSL Project
 
69
 *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
 
70
 *
 
71
 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
 
72
 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 
73
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 
74
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
 
75
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 
76
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 
77
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 
78
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 
79
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 
80
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 
81
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 
82
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 
83
 * ====================================================================
 
84
 *
 
85
 * This product includes cryptographic software written by Eric Young
 
86
 * (eay@cryptsoft.com).  This product includes software written by Tim
 
87
 * Hudson (tjh@cryptsoft.com).
 
88
 *
 
89
 */
 
90
 
 
91
#ifndef HEADER_DES_H
 
92
#define HEADER_DES_H
 
93
 
 
94
#ifdef OPENSSL_NO_DES
 
95
#error DES is disabled.
 
96
#endif
 
97
 
 
98
#ifndef HEADER_NEW_DES_H
 
99
#error You must include des.h, not des_old.h directly.
 
100
#endif
 
101
 
 
102
#ifdef _KERBEROS_DES_H
 
103
#error <openssl/des_old.h> replaces <kerberos/des.h>.
 
104
#endif
 
105
 
 
106
#include <openssl/opensslconf.h> /* DES_LONG */
 
107
#include <openssl/e_os2.h>      /* OPENSSL_EXTERN */
 
108
#include <openssl/symhacks.h>
 
109
 
 
110
#ifdef OPENSSL_BUILD_SHLIBCRYPTO
 
111
# undef OPENSSL_EXTERN
 
112
# define OPENSSL_EXTERN OPENSSL_EXPORT
 
113
#endif
 
114
 
 
115
#ifdef  __cplusplus
 
116
extern "C" {
 
117
#endif
 
118
 
 
119
typedef unsigned char _ossl_old_des_cblock[8];
 
120
typedef struct _ossl_old_des_ks_struct
 
121
        {
 
122
        union   {
 
123
                _ossl_old_des_cblock _;
 
124
                /* make sure things are correct size on machines with
 
125
                 * 8 byte longs */
 
126
                DES_LONG pad[2];
 
127
                } ks;
 
128
        } _ossl_old_des_key_schedule[16];
 
129
 
 
130
#ifndef OPENSSL_DES_LIBDES_COMPATIBILITY
 
131
#define des_cblock DES_cblock
 
132
#define const_des_cblock const_DES_cblock
 
133
#define des_key_schedule DES_key_schedule
 
134
#define des_ecb3_encrypt(i,o,k1,k2,k3,e)\
 
135
        DES_ecb3_encrypt((i),(o),&(k1),&(k2),&(k3),(e))
 
136
#define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\
 
137
        DES_ede3_cbc_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(e))
 
138
#define des_ede3_cbcm_encrypt(i,o,l,k1,k2,k3,iv1,iv2,e)\
 
139
        DES_ede3_cbcm_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv1),(iv2),(e))
 
140
#define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\
 
141
        DES_ede3_cfb64_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(n),(e))
 
142
#define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\
 
143
        DES_ede3_ofb64_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(n))
 
144
#define des_options()\
 
145
        DES_options()
 
146
#define des_cbc_cksum(i,o,l,k,iv)\
 
147
        DES_cbc_cksum((i),(o),(l),&(k),(iv))
 
148
#define des_cbc_encrypt(i,o,l,k,iv,e)\
 
149
        DES_cbc_encrypt((i),(o),(l),&(k),(iv),(e))
 
150
#define des_ncbc_encrypt(i,o,l,k,iv,e)\
 
151
        DES_ncbc_encrypt((i),(o),(l),&(k),(iv),(e))
 
152
#define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\
 
153
        DES_xcbc_encrypt((i),(o),(l),&(k),(iv),(inw),(outw),(e))
 
154
#define des_cfb_encrypt(i,o,n,l,k,iv,e)\
 
155
        DES_cfb_encrypt((i),(o),(n),(l),&(k),(iv),(e))
 
156
#define des_ecb_encrypt(i,o,k,e)\
 
157
        DES_ecb_encrypt((i),(o),&(k),(e))
 
158
#define des_encrypt1(d,k,e)\
 
159
        DES_encrypt1((d),&(k),(e))
 
160
#define des_encrypt2(d,k,e)\
 
161
        DES_encrypt2((d),&(k),(e))
 
162
#define des_encrypt3(d,k1,k2,k3)\
 
163
        DES_encrypt3((d),&(k1),&(k2),&(k3))
 
164
#define des_decrypt3(d,k1,k2,k3)\
 
165
        DES_decrypt3((d),&(k1),&(k2),&(k3))
 
166
#define des_xwhite_in2out(k,i,o)\
 
167
        DES_xwhite_in2out((k),(i),(o))
 
168
#define des_enc_read(f,b,l,k,iv)\
 
169
        DES_enc_read((f),(b),(l),&(k),(iv))
 
170
#define des_enc_write(f,b,l,k,iv)\
 
171
        DES_enc_write((f),(b),(l),&(k),(iv))
 
172
#define des_fcrypt(b,s,r)\
 
173
        DES_fcrypt((b),(s),(r))
 
174
#define des_crypt(b,s)\
 
175
        DES_crypt((b),(s))
 
176
#if 0
 
177
#if !defined(PERL5) && !defined(__FreeBSD__) && !defined(NeXT) && !defined(__OpenBSD__)
 
178
#define crypt(b,s)\
 
179
        DES_crypt((b),(s))
 
180
#endif
 
181
#endif
 
182
#define des_ofb_encrypt(i,o,n,l,k,iv)\
 
183
        DES_ofb_encrypt((i),(o),(n),(l),&(k),(iv))
 
184
#define des_pcbc_encrypt(i,o,l,k,iv,e)\
 
185
        DES_pcbc_encrypt((i),(o),(l),&(k),(iv),(e))
 
186
#define des_quad_cksum(i,o,l,c,s)\
 
187
        DES_quad_cksum((i),(o),(l),(c),(s))
 
188
#define des_random_seed(k)\
 
189
        _ossl_096_des_random_seed((k))
 
190
#define des_random_key(r)\
 
191
        DES_random_key((r))
 
192
#define des_read_password(k,p,v) \
 
193
        DES_read_password((k),(p),(v))
 
194
#define des_read_2passwords(k1,k2,p,v) \
 
195
        DES_read_2passwords((k1),(k2),(p),(v))
 
196
#define des_set_odd_parity(k)\
 
197
        DES_set_odd_parity((k))
 
198
#define des_check_key_parity(k)\
 
199
        DES_check_key_parity((k))
 
200
#define des_is_weak_key(k)\
 
201
        DES_is_weak_key((k))
 
202
#define des_set_key(k,ks)\
 
203
        DES_set_key((k),&(ks))
 
204
#define des_key_sched(k,ks)\
 
205
        DES_key_sched((k),&(ks))
 
206
#define des_set_key_checked(k,ks)\
 
207
        DES_set_key_checked((k),&(ks))
 
208
#define des_set_key_unchecked(k,ks)\
 
209
        DES_set_key_unchecked((k),&(ks))
 
210
#define des_string_to_key(s,k)\
 
211
        DES_string_to_key((s),(k))
 
212
#define des_string_to_2keys(s,k1,k2)\
 
213
        DES_string_to_2keys((s),(k1),(k2))
 
214
#define des_cfb64_encrypt(i,o,l,ks,iv,n,e)\
 
215
        DES_cfb64_encrypt((i),(o),(l),&(ks),(iv),(n),(e))
 
216
#define des_ofb64_encrypt(i,o,l,ks,iv,n)\
 
217
        DES_ofb64_encrypt((i),(o),(l),&(ks),(iv),(n))
 
218
                
 
219
 
 
220
#define des_ecb2_encrypt(i,o,k1,k2,e) \
 
221
        des_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e))
 
222
 
 
223
#define des_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \
 
224
        des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e))
 
225
 
 
226
#define des_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \
 
227
        des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e))
 
228
 
 
229
#define des_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \
 
230
        des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n))
 
231
 
 
232
#define des_check_key DES_check_key
 
233
#define des_rw_mode DES_rw_mode
 
234
#else /* libdes compatibility */
 
235
/* Map all symbol names to _ossl_old_des_* form, so we avoid all
 
236
   clashes with libdes */
 
237
#define des_cblock _ossl_old_des_cblock
 
238
#define des_key_schedule _ossl_old_des_key_schedule
 
239
#define des_ecb3_encrypt(i,o,k1,k2,k3,e)\
 
240
        _ossl_old_des_ecb3_encrypt((i),(o),(k1),(k2),(k3),(e))
 
241
#define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\
 
242
        _ossl_old_des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(e))
 
243
#define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\
 
244
        _ossl_old_des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n),(e))
 
245
#define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\
 
246
        _ossl_old_des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n))
 
247
#define des_options()\
 
248
        _ossl_old_des_options()
 
249
#define des_cbc_cksum(i,o,l,k,iv)\
 
250
        _ossl_old_des_cbc_cksum((i),(o),(l),(k),(iv))
 
251
#define des_cbc_encrypt(i,o,l,k,iv,e)\
 
252
        _ossl_old_des_cbc_encrypt((i),(o),(l),(k),(iv),(e))
 
253
#define des_ncbc_encrypt(i,o,l,k,iv,e)\
 
254
        _ossl_old_des_ncbc_encrypt((i),(o),(l),(k),(iv),(e))
 
255
#define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\
 
256
        _ossl_old_des_xcbc_encrypt((i),(o),(l),(k),(iv),(inw),(outw),(e))
 
257
#define des_cfb_encrypt(i,o,n,l,k,iv,e)\
 
258
        _ossl_old_des_cfb_encrypt((i),(o),(n),(l),(k),(iv),(e))
 
259
#define des_ecb_encrypt(i,o,k,e)\
 
260
        _ossl_old_des_ecb_encrypt((i),(o),(k),(e))
 
261
#define des_encrypt(d,k,e)\
 
262
        _ossl_old_des_encrypt((d),(k),(e))
 
263
#define des_encrypt2(d,k,e)\
 
264
        _ossl_old_des_encrypt2((d),(k),(e))
 
265
#define des_encrypt3(d,k1,k2,k3)\
 
266
        _ossl_old_des_encrypt3((d),(k1),(k2),(k3))
 
267
#define des_decrypt3(d,k1,k2,k3)\
 
268
        _ossl_old_des_decrypt3((d),(k1),(k2),(k3))
 
269
#define des_xwhite_in2out(k,i,o)\
 
270
        _ossl_old_des_xwhite_in2out((k),(i),(o))
 
271
#define des_enc_read(f,b,l,k,iv)\
 
272
        _ossl_old_des_enc_read((f),(b),(l),(k),(iv))
 
273
#define des_enc_write(f,b,l,k,iv)\
 
274
        _ossl_old_des_enc_write((f),(b),(l),(k),(iv))
 
275
#define des_fcrypt(b,s,r)\
 
276
        _ossl_old_des_fcrypt((b),(s),(r))
 
277
#define des_crypt(b,s)\
 
278
        _ossl_old_des_crypt((b),(s))
 
279
#if 0
 
280
#define crypt(b,s)\
 
281
        _ossl_old_crypt((b),(s))
 
282
#endif
 
283
#define des_ofb_encrypt(i,o,n,l,k,iv)\
 
284
        _ossl_old_des_ofb_encrypt((i),(o),(n),(l),(k),(iv))
 
285
#define des_pcbc_encrypt(i,o,l,k,iv,e)\
 
286
        _ossl_old_des_pcbc_encrypt((i),(o),(l),(k),(iv),(e))
 
287
#define des_quad_cksum(i,o,l,c,s)\
 
288
        _ossl_old_des_quad_cksum((i),(o),(l),(c),(s))
 
289
#define des_random_seed(k)\
 
290
        _ossl_old_des_random_seed((k))
 
291
#define des_random_key(r)\
 
292
        _ossl_old_des_random_key((r))
 
293
#define des_read_password(k,p,v) \
 
294
        _ossl_old_des_read_password((k),(p),(v))
 
295
#define des_read_2passwords(k1,k2,p,v) \
 
296
        _ossl_old_des_read_2passwords((k1),(k2),(p),(v))
 
297
#define des_set_odd_parity(k)\
 
298
        _ossl_old_des_set_odd_parity((k))
 
299
#define des_is_weak_key(k)\
 
300
        _ossl_old_des_is_weak_key((k))
 
301
#define des_set_key(k,ks)\
 
302
        _ossl_old_des_set_key((k),(ks))
 
303
#define des_key_sched(k,ks)\
 
304
        _ossl_old_des_key_sched((k),(ks))
 
305
#define des_string_to_key(s,k)\
 
306
        _ossl_old_des_string_to_key((s),(k))
 
307
#define des_string_to_2keys(s,k1,k2)\
 
308
        _ossl_old_des_string_to_2keys((s),(k1),(k2))
 
309
#define des_cfb64_encrypt(i,o,l,ks,iv,n,e)\
 
310
        _ossl_old_des_cfb64_encrypt((i),(o),(l),(ks),(iv),(n),(e))
 
311
#define des_ofb64_encrypt(i,o,l,ks,iv,n)\
 
312
        _ossl_old_des_ofb64_encrypt((i),(o),(l),(ks),(iv),(n))
 
313
                
 
314
 
 
315
#define des_ecb2_encrypt(i,o,k1,k2,e) \
 
316
        des_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e))
 
317
 
 
318
#define des_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \
 
319
        des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e))
 
320
 
 
321
#define des_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \
 
322
        des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e))
 
323
 
 
324
#define des_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \
 
325
        des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n))
 
326
 
 
327
#define des_check_key DES_check_key
 
328
#define des_rw_mode DES_rw_mode
 
329
#endif
 
330
 
 
331
const char *_ossl_old_des_options(void);
 
332
void _ossl_old_des_ecb3_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock *output,
 
333
        _ossl_old_des_key_schedule ks1,_ossl_old_des_key_schedule ks2,
 
334
        _ossl_old_des_key_schedule ks3, int enc);
 
335
DES_LONG _ossl_old_des_cbc_cksum(_ossl_old_des_cblock *input,_ossl_old_des_cblock *output,
 
336
        long length,_ossl_old_des_key_schedule schedule,_ossl_old_des_cblock *ivec);
 
337
void _ossl_old_des_cbc_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock *output,long length,
 
338
        _ossl_old_des_key_schedule schedule,_ossl_old_des_cblock *ivec,int enc);
 
339
void _ossl_old_des_ncbc_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock *output,long length,
 
340
        _ossl_old_des_key_schedule schedule,_ossl_old_des_cblock *ivec,int enc);
 
341
void _ossl_old_des_xcbc_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock *output,long length,
 
342
        _ossl_old_des_key_schedule schedule,_ossl_old_des_cblock *ivec,
 
343
        _ossl_old_des_cblock *inw,_ossl_old_des_cblock *outw,int enc);
 
344
void _ossl_old_des_cfb_encrypt(unsigned char *in,unsigned char *out,int numbits,
 
345
        long length,_ossl_old_des_key_schedule schedule,_ossl_old_des_cblock *ivec,int enc);
 
346
void _ossl_old_des_ecb_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock *output,
 
347
        _ossl_old_des_key_schedule ks,int enc);
 
348
void _ossl_old_des_encrypt(DES_LONG *data,_ossl_old_des_key_schedule ks, int enc);
 
349
void _ossl_old_des_encrypt2(DES_LONG *data,_ossl_old_des_key_schedule ks, int enc);
 
350
void _ossl_old_des_encrypt3(DES_LONG *data, _ossl_old_des_key_schedule ks1,
 
351
        _ossl_old_des_key_schedule ks2, _ossl_old_des_key_schedule ks3);
 
352
void _ossl_old_des_decrypt3(DES_LONG *data, _ossl_old_des_key_schedule ks1,
 
353
        _ossl_old_des_key_schedule ks2, _ossl_old_des_key_schedule ks3);
 
354
void _ossl_old_des_ede3_cbc_encrypt(_ossl_old_des_cblock *input, _ossl_old_des_cblock *output, 
 
355
        long length, _ossl_old_des_key_schedule ks1, _ossl_old_des_key_schedule ks2, 
 
356
        _ossl_old_des_key_schedule ks3, _ossl_old_des_cblock *ivec, int enc);
 
357
void _ossl_old_des_ede3_cfb64_encrypt(unsigned char *in, unsigned char *out,
 
358
        long length, _ossl_old_des_key_schedule ks1, _ossl_old_des_key_schedule ks2,
 
359
        _ossl_old_des_key_schedule ks3, _ossl_old_des_cblock *ivec, int *num, int enc);
 
360
void _ossl_old_des_ede3_ofb64_encrypt(unsigned char *in, unsigned char *out,
 
361
        long length, _ossl_old_des_key_schedule ks1, _ossl_old_des_key_schedule ks2,
 
362
        _ossl_old_des_key_schedule ks3, _ossl_old_des_cblock *ivec, int *num);
 
363
 
 
364
void _ossl_old_des_xwhite_in2out(_ossl_old_des_cblock (*des_key), _ossl_old_des_cblock (*in_white),
 
365
        _ossl_old_des_cblock (*out_white));
 
366
 
 
367
int _ossl_old_des_enc_read(int fd,char *buf,int len,_ossl_old_des_key_schedule sched,
 
368
        _ossl_old_des_cblock *iv);
 
369
int _ossl_old_des_enc_write(int fd,char *buf,int len,_ossl_old_des_key_schedule sched,
 
370
        _ossl_old_des_cblock *iv);
 
371
char *_ossl_old_des_fcrypt(const char *buf,const char *salt, char *ret);
 
372
char *_ossl_old_des_crypt(const char *buf,const char *salt);
 
373
#if !defined(PERL5) && !defined(NeXT)
 
374
char *_ossl_old_crypt(const char *buf,const char *salt);
 
375
#endif
 
376
void _ossl_old_des_ofb_encrypt(unsigned char *in,unsigned char *out,
 
377
        int numbits,long length,_ossl_old_des_key_schedule schedule,_ossl_old_des_cblock *ivec);
 
378
void _ossl_old_des_pcbc_encrypt(_ossl_old_des_cblock *input,_ossl_old_des_cblock *output,long length,
 
379
        _ossl_old_des_key_schedule schedule,_ossl_old_des_cblock *ivec,int enc);
 
380
DES_LONG _ossl_old_des_quad_cksum(_ossl_old_des_cblock *input,_ossl_old_des_cblock *output,
 
381
        long length,int out_count,_ossl_old_des_cblock *seed);
 
382
void _ossl_old_des_random_seed(_ossl_old_des_cblock key);
 
383
void _ossl_old_des_random_key(_ossl_old_des_cblock ret);
 
384
int _ossl_old_des_read_password(_ossl_old_des_cblock *key,const char *prompt,int verify);
 
385
int _ossl_old_des_read_2passwords(_ossl_old_des_cblock *key1,_ossl_old_des_cblock *key2,
 
386
        const char *prompt,int verify);
 
387
void _ossl_old_des_set_odd_parity(_ossl_old_des_cblock *key);
 
388
int _ossl_old_des_is_weak_key(_ossl_old_des_cblock *key);
 
389
int _ossl_old_des_set_key(_ossl_old_des_cblock *key,_ossl_old_des_key_schedule schedule);
 
390
int _ossl_old_des_key_sched(_ossl_old_des_cblock *key,_ossl_old_des_key_schedule schedule);
 
391
void _ossl_old_des_string_to_key(char *str,_ossl_old_des_cblock *key);
 
392
void _ossl_old_des_string_to_2keys(char *str,_ossl_old_des_cblock *key1,_ossl_old_des_cblock *key2);
 
393
void _ossl_old_des_cfb64_encrypt(unsigned char *in, unsigned char *out, long length,
 
394
        _ossl_old_des_key_schedule schedule, _ossl_old_des_cblock *ivec, int *num, int enc);
 
395
void _ossl_old_des_ofb64_encrypt(unsigned char *in, unsigned char *out, long length,
 
396
        _ossl_old_des_key_schedule schedule, _ossl_old_des_cblock *ivec, int *num);
 
397
 
 
398
void _ossl_096_des_random_seed(des_cblock *key);
 
399
 
 
400
/* The following definitions provide compatibility with the MIT Kerberos
 
401
 * library. The _ossl_old_des_key_schedule structure is not binary compatible. */
 
402
 
 
403
#define _KERBEROS_DES_H
 
404
 
 
405
#define KRBDES_ENCRYPT DES_ENCRYPT
 
406
#define KRBDES_DECRYPT DES_DECRYPT
 
407
 
 
408
#ifdef KERBEROS
 
409
#  define ENCRYPT DES_ENCRYPT
 
410
#  define DECRYPT DES_DECRYPT
 
411
#endif
 
412
 
 
413
#ifndef NCOMPAT
 
414
#  define C_Block des_cblock
 
415
#  define Key_schedule des_key_schedule
 
416
#  define KEY_SZ DES_KEY_SZ
 
417
#  define string_to_key des_string_to_key
 
418
#  define read_pw_string des_read_pw_string
 
419
#  define random_key des_random_key
 
420
#  define pcbc_encrypt des_pcbc_encrypt
 
421
#  define set_key des_set_key
 
422
#  define key_sched des_key_sched
 
423
#  define ecb_encrypt des_ecb_encrypt
 
424
#  define cbc_encrypt des_cbc_encrypt
 
425
#  define ncbc_encrypt des_ncbc_encrypt
 
426
#  define xcbc_encrypt des_xcbc_encrypt
 
427
#  define cbc_cksum des_cbc_cksum
 
428
#  define quad_cksum des_quad_cksum
 
429
#  define check_parity des_check_key_parity
 
430
#endif
 
431
 
 
432
#define des_fixup_key_parity DES_fixup_key_parity
 
433
 
 
434
#ifdef  __cplusplus
 
435
}
 
436
#endif
 
437
 
 
438
/* for DES_read_pw_string et al */
 
439
#include <openssl/ui_compat.h>
 
440
 
 
441
#endif