1 /* 2 * UFC-crypt: ultra fast crypt(3) implementation 3 * 4 * Copyright (C) 1991-2022 Free Software Foundation, Inc. 5 * 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 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * The GNU C Library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with the GNU C Library; if not, see 18 * <https://www.gnu.org/licenses/>. 19 * 20 * @(#)crypt-private.h 1.4 12/20/96 21 */ 22 23 /* Prototypes for local functions in libcrypt.a. */ 24 25 #ifndef CRYPT_PRIVATE_H 26 #define CRYPT_PRIVATE_H 1 27 28 #include <features.h> 29 #include <stdbool.h> 30 31 #ifndef DOS 32 #include "ufc-crypt.h" 33 #else 34 /* 35 * Thanks to greg%wind@plains.NoDak.edu (Greg W. Wettstein) 36 * for DOS patches 37 */ 38 #include "pl.h" 39 #include "ufc.h" 40 #endif 41 #include "crypt.h" 42 43 /* crypt.c */ 44 extern void _ufc_doit_r (ufc_long itr, struct crypt_data * __restrict __data, 45 ufc_long *res); 46 47 48 /* crypt_util.c */ 49 extern void __init_des_r (struct crypt_data * __restrict __data); 50 extern void __init_des (void); 51 52 extern bool _ufc_setup_salt_r (const char *s, 53 struct crypt_data * __restrict __data); 54 extern void _ufc_mk_keytab_r (const char *key, 55 struct crypt_data * __restrict __data); 56 extern void _ufc_dofinalperm_r (ufc_long *res, 57 struct crypt_data * __restrict __data); 58 extern void _ufc_output_conversion_r (ufc_long v1, ufc_long v2, 59 const char *salt, 60 struct crypt_data * __restrict __data); 61 62 extern void __setkey_r (const char *__key, 63 struct crypt_data * __restrict __data); 64 extern void __encrypt_r (char * __restrict __block, int __edflag, 65 struct crypt_data * __restrict __data); 66 67 /* crypt-entry.c */ 68 extern char *__crypt_r (const char *__key, const char *__salt, 69 struct crypt_data * __restrict __data); 70 extern char *fcrypt (const char *key, const char *salt); 71 72 extern void __b64_from_24bit (char **cp, int *buflen, 73 unsigned int b2, unsigned int b1, unsigned int b0, 74 int n); 75 76 #endif /* crypt-private.h */ 77