]>
Commit | Line | Data |
---|---|---|
63f791d3 GK |
1 | /* |
2 | * UFC-crypt: ultra fast crypt(3) implementation | |
3 | * | |
bfff8b1b | 4 | * Copyright (C) 1991-2017 Free Software Foundation, Inc. |
63f791d3 | 5 | * |
a1b36134 AJ |
6 | * The GNU C Library is free software; you can redistribute it and/or |
7 | * modify it under the terms of the GNU Lesser General Public | |
63f791d3 | 8 | * License as published by the Free Software Foundation; either |
a1b36134 | 9 | * version 2.1 of the License, or (at your option) any later version. |
63f791d3 | 10 | * |
a1b36134 | 11 | * The GNU C Library is distributed in the hope that it will be useful, |
63f791d3 GK |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
a1b36134 | 14 | * Lesser General Public License for more details. |
63f791d3 | 15 | * |
a1b36134 | 16 | * You should have received a copy of the GNU Lesser General Public |
59ba27a6 PE |
17 | * License along with the GNU C Library; if not, see |
18 | * <http://www.gnu.org/licenses/>. | |
63f791d3 GK |
19 | * |
20 | * @(#)crypt.h 1.5 12/20/96 | |
21 | * | |
22 | */ | |
23 | ||
24 | #ifndef _CRYPT_H | |
25 | #define _CRYPT_H 1 | |
26 | ||
27 | #include <features.h> | |
28 | ||
29 | __BEGIN_DECLS | |
30 | ||
31 | /* Encrypt at most 8 characters from KEY using salt to perturb DES. */ | |
a784e502 | 32 | extern char *crypt (const char *__key, const char *__salt) |
41102740 | 33 | __THROW __nonnull ((1, 2)); |
63f791d3 GK |
34 | |
35 | /* Setup DES tables according KEY. */ | |
a784e502 | 36 | extern void setkey (const char *__key) __THROW __nonnull ((1)); |
63f791d3 GK |
37 | |
38 | /* Encrypt data in BLOCK in place if EDFLAG is zero; otherwise decrypt | |
39 | block in place. */ | |
84ae135d MI |
40 | extern void encrypt (char *__glibc_block, int __edflag) |
41 | __THROW __nonnull ((1)); | |
63f791d3 GK |
42 | |
43 | #ifdef __USE_GNU | |
44 | /* Reentrant versions of the functions above. The additional argument | |
45 | points to a structure where the results are placed in. */ | |
46 | struct crypt_data | |
47 | { | |
48 | char keysched[16 * 8]; | |
49 | char sb0[32768]; | |
50 | char sb1[32768]; | |
51 | char sb2[32768]; | |
52 | char sb3[32768]; | |
53 | /* end-of-aligment-critical-data */ | |
54 | char crypt_3_buf[14]; | |
55 | char current_salt[2]; | |
56 | long int current_saltbits; | |
57 | int direction, initialized; | |
58 | }; | |
59 | ||
a784e502 | 60 | extern char *crypt_r (const char *__key, const char *__salt, |
41102740 UD |
61 | struct crypt_data * __restrict __data) |
62 | __THROW __nonnull ((1, 2, 3)); | |
63f791d3 | 63 | |
a784e502 | 64 | extern void setkey_r (const char *__key, |
41102740 UD |
65 | struct crypt_data * __restrict __data) |
66 | __THROW __nonnull ((1, 2)); | |
63f791d3 | 67 | |
84ae135d | 68 | extern void encrypt_r (char *__glibc_block, int __edflag, |
41102740 UD |
69 | struct crypt_data * __restrict __data) |
70 | __THROW __nonnull ((1, 3)); | |
63f791d3 GK |
71 | #endif |
72 | ||
73 | __END_DECLS | |
74 | ||
75 | #endif /* crypt.h */ |