summaryrefslogtreecommitdiffstats
path: root/man/man3/des_crypt.3
diff options
context:
space:
mode:
Diffstat (limited to 'man/man3/des_crypt.3')
-rw-r--r--man/man3/des_crypt.3164
1 files changed, 164 insertions, 0 deletions
diff --git a/man/man3/des_crypt.3 b/man/man3/des_crypt.3
new file mode 100644
index 0000000..a21638a
--- /dev/null
+++ b/man/man3/des_crypt.3
@@ -0,0 +1,164 @@
+'\" t
+.\" @(#)des_crypt.3 2.1 88/08/11 4.0 RPCSRC; from 1.16 88/03/02 SMI;
+.\"
+.\" Taken from libc4 sources, which say:
+.\" Copyright (C) 1993 Eric Young - can be distributed under GPL.
+.\"
+.\" However, the above header line suggests that this file in fact is
+.\" Copyright Sun Microsystems, Inc (and is provided for unrestricted use,
+.\" see other Sun RPC sources).
+.\"
+.\" SPDX-License-Identifier: GPL-1.0-or-later
+.\"
+.TH des_crypt 3 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED \- fast
+DES encryption
+.SH LIBRARY
+Standard C library
+.RI ( libc ", " \-lc )
+.SH SYNOPSIS
+.nf
+.\" Sun version
+.\" .B #include <des_crypt.h>
+.B #include <rpc/des_crypt.h>
+.P
+.BI "[[deprecated]] int ecb_crypt(char *" key ", char " data [. datalen ],
+.BI " unsigned int " datalen ", \
+unsigned int " mode );
+.BI "[[deprecated]] int cbc_crypt(char *" key ", char " data [. datalen ],
+.BI " unsigned int " datalen ", \
+unsigned int " mode ,
+.BI " char *" ivec );
+.P
+.BI "[[deprecated]] void des_setparity(char *" key );
+.P
+.BI "[[deprecated]] int DES_FAILED(int " status );
+.fi
+.SH DESCRIPTION
+.BR ecb_crypt ()
+and
+.BR cbc_crypt ()
+implement the
+NBS
+DES
+(Data Encryption Standard).
+These routines are faster and more general purpose than
+.BR crypt (3).
+They also are able to utilize
+DES
+hardware if it is available.
+.BR ecb_crypt ()
+encrypts in
+ECB
+(Electronic Code Book)
+mode, which encrypts blocks of data independently.
+.BR cbc_crypt ()
+encrypts in
+CBC
+(Cipher Block Chaining)
+mode, which chains together
+successive blocks.
+CBC
+mode protects against insertions, deletions, and
+substitutions of blocks.
+Also, regularities in the clear text will
+not appear in the cipher text.
+.P
+Here is how to use these routines.
+The first argument,
+.IR key ,
+is the 8-byte encryption key with parity.
+To set the key's parity, which for
+DES
+is in the low bit of each byte, use
+.BR des_setparity ().
+The second argument,
+.IR data ,
+contains the data to be encrypted or decrypted.
+The
+third argument,
+.IR datalen ,
+is the length in bytes of
+.IR data ,
+which must be a multiple of 8.
+The fourth argument,
+.IR mode ,
+is formed by ORing together some things.
+For the encryption direction OR in either
+.B DES_ENCRYPT
+or
+.BR DES_DECRYPT .
+For software versus hardware
+encryption, OR in either
+.B DES_HW
+or
+.BR DES_SW .
+If
+.B DES_HW
+is specified, and there is no hardware, then the encryption is performed
+in software and the routine returns
+.BR DESERR_NOHWDEVICE .
+For
+.BR cbc_crypt (),
+the argument
+.I ivec
+is the 8-byte initialization
+vector for the chaining.
+It is updated to the next initialization
+vector upon return.
+.SH RETURN VALUE
+.TP
+.B DESERR_NONE
+No error.
+.TP
+.B DESERR_NOHWDEVICE
+Encryption succeeded, but done in software instead of the requested hardware.
+.TP
+.B DESERR_HWERROR
+An error occurred in the hardware or driver.
+.TP
+.B DESERR_BADPARAM
+Bad argument to routine.
+.P
+Given a result status
+.IR stat ,
+the macro
+.\" .BR DES_FAILED\c
+.\" .BR ( stat )
+.BI DES_FAILED( stat )
+is false only for the first two statuses.
+.\" So far the Sun page
+.\" Some additions - aeb
+.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 ecb_crypt (),
+.BR cbc_crypt (),
+.BR des_setparity ()
+T} Thread safety MT-Safe
+.TE
+.SH STANDARDS
+None.
+.SH HISTORY
+4.3BSD.
+glibc 2.1.
+Removed in glibc 2.28.
+.P
+Because they employ the DES block cipher,
+which is no longer considered secure,
+these functions were removed.
+Applications should switch to a modern cryptography library, such as
+.BR libgcrypt .
+.SH SEE ALSO
+.BR des (1),
+.BR crypt (3),
+.BR xcrypt (3)