diff options
Diffstat (limited to 'man3/encrypt.3')
-rw-r--r-- | man3/encrypt.3 | 211 |
1 files changed, 0 insertions, 211 deletions
diff --git a/man3/encrypt.3 b/man3/encrypt.3 deleted file mode 100644 index 58c61b3..0000000 --- a/man3/encrypt.3 +++ /dev/null @@ -1,211 +0,0 @@ -'\" t -.\" Copyright 2000 Nicolás Lichtmaier <nick@debian.org> -.\" Created 2000-07-22 00:52-0300 -.\" -.\" SPDX-License-Identifier: GPL-2.0-or-later -.\" -.\" Modified 2002-07-23 19:21:35 CEST 2002 Walter Harms -.\" <walter.harms@informatik.uni-oldenburg.de> -.\" -.\" Modified 2003-04-04, aeb -.\" -.TH encrypt 3 2024-02-26 "Linux man-pages 6.7" -.SH NAME -encrypt, setkey, encrypt_r, setkey_r \- encrypt 64-bit messages -.SH LIBRARY -Password hashing library -.RI ( libcrypt ", " \-lcrypt ) -.SH SYNOPSIS -.nf -.BR "#define _XOPEN_SOURCE" " /* See feature_test_macros(7) */" -.B #include <unistd.h> -.P -.BI "[[deprecated]] void encrypt(char " block "[64], int " edflag ); -.P -.BR "#define _XOPEN_SOURCE" " /* See feature_test_macros(7) */" -.B #include <stdlib.h> -.P -.BI "[[deprecated]] void setkey(const char *" key ); -.P -.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" -.B #include <crypt.h> -.P -.BI "[[deprecated]] void setkey_r(const char *" key ", struct crypt_data *" data ); -.BI "[[deprecated]] void encrypt_r(char *" block ", int " edflag , -.BI " struct crypt_data *" data ); -.fi -.SH DESCRIPTION -These functions encrypt and decrypt 64-bit messages. -The -.BR setkey () -function sets the key used by -.BR encrypt (). -The -.I key -argument used here is an array of 64 bytes, each of which has -numerical value 1 or 0. -The bytes key[n] where n=8*i-1 are ignored, -so that the effective key length is 56 bits. -.P -The -.BR encrypt () -function modifies the passed buffer, encoding if -.I edflag -is 0, and decoding if 1 is being passed. -Like the -.I key -argument, also -.I block -is a bit vector representation of the actual value that is encoded. -The result is returned in that same vector. -.P -These two functions are not reentrant, that is, the key data is -kept in static storage. -The functions -.BR setkey_r () -and -.BR encrypt_r () -are the reentrant versions. -They use the following -structure to hold the key data: -.P -.in +4n -.EX -struct crypt_data { - char keysched[16 * 8]; - char sb0[32768]; - char sb1[32768]; - char sb2[32768]; - char sb3[32768]; - char crypt_3_buf[14]; - char current_salt[2]; - long current_saltbits; - int direction; - int initialized; -}; -.EE -.in -.P -Before calling -.BR setkey_r () -set -.I data\->initialized -to zero. -.SH RETURN VALUE -These functions do not return any value. -.SH ERRORS -Set -.I errno -to zero before calling the above functions. -On success, -.I errno -is unchanged. -.TP -.B ENOSYS -The function is not provided. -(For example because of former USA export restrictions.) -.SH ATTRIBUTES -For an explanation of the terms used in this section, see -.BR attributes (7). -.TS -allbox; -lbx lb lb -l l l. -Interface Attribute Value -T{ -.na -.nh -.BR encrypt (), -.BR setkey () -T} Thread safety MT-Unsafe race:crypt -T{ -.na -.nh -.BR encrypt_r (), -.BR setkey_r () -T} Thread safety MT-Safe -.TE -.SH STANDARDS -.TP -.BR encrypt () -.TQ -.BR setkey () -POSIX.1-2008. -.TP -.BR encrypt_r () -.TQ -.BR setkey_r () -None. -.SH HISTORY -Removed in glibc 2.28. -.P -Because they employ the DES block cipher, -which is no longer considered secure, -these functions were removed from glibc. -Applications should switch to a modern cryptography library, such as -.BR libgcrypt . -.TP -.BR encrypt () -.TQ -.BR setkey () -POSIX.1-2001, SUS, SVr4. -.SS Availability in glibc -See -.BR crypt (3). -.SS Features in glibc -In glibc 2.2, these functions use the DES algorithm. -.SH EXAMPLES -.\" SRC BEGIN (encrypt.c) -.EX -#define _XOPEN_SOURCE -#include <crypt.h> -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -\& -int -main(void) -{ - char key[64]; - char orig[9] = "eggplant"; - char buf[64]; - char txt[9]; -\& - for (size_t i = 0; i < 64; i++) { - key[i] = rand() & 1; - } -\& - for (size_t i = 0; i < 8; i++) { - for (size_t j = 0; j < 8; j++) { - buf[i * 8 + j] = orig[i] >> j & 1; - } - setkey(key); - } - printf("Before encrypting: %s\en", orig); -\& - encrypt(buf, 0); - for (size_t i = 0; i < 8; i++) { - for (size_t j = 0, txt[i] = \[aq]\e0\[aq]; j < 8; j++) { - txt[i] |= buf[i * 8 + j] << j; - } - txt[8] = \[aq]\e0\[aq]; - } - printf("After encrypting: %s\en", txt); -\& - encrypt(buf, 1); - for (size_t i = 0; i < 8; i++) { - for (size_t j = 0, txt[i] = \[aq]\e0\[aq]; j < 8; j++) { - txt[i] |= buf[i * 8 + j] << j; - } - txt[8] = \[aq]\e0\[aq]; - } - printf("After decrypting: %s\en", txt); - exit(EXIT_SUCCESS); -} -.EE -.\" SRC END -.SH SEE ALSO -.BR cbc_crypt (3), -.BR crypt (3), -.BR ecb_crypt (3) -.\" .BR fcrypt (3) |