summaryrefslogtreecommitdiffstats
path: root/man3/encrypt.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/encrypt.3')
-rw-r--r--man3/encrypt.3211
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)