summaryrefslogtreecommitdiffstats
path: root/man3/des_crypt.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/des_crypt.3')
-rw-r--r--man3/des_crypt.3132
1 files changed, 132 insertions, 0 deletions
diff --git a/man3/des_crypt.3 b/man3/des_crypt.3
new file mode 100644
index 000000000..02f9c5104
--- /dev/null
+++ b/man3/des_crypt.3
@@ -0,0 +1,132 @@
+.\" @(#)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).
+.\"
+.TH DES_CRYPT 3 "6 October 1987"
+.SH NAME
+des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED \- fast DES encryption
+.SH SYNOPSIS
+.nf
+.\" Sun version
+.\" .B #include <des_crypt.h>
+.B #include <rpc/des_crypt.h>
+.LP
+.BI "int ecb_crypt(char *" key ", char *" data ", unsigned " datalen ,
+.BI " unsigned " mode );
+.LP
+.BI "int cbc_crypt(char *" key ", char *" data ", unsigned " datalen ,
+.BI " unsigned " mode ", char *" ivec );
+.LP
+.BI "void des_setparity(char *" key );
+.LP
+.BI "int DES_FAILED(int " status );
+.fi
+.SH DESCRIPTION
+.B ecb_crypt(\|)
+and
+.B cbc_crypt(\|)
+implement the
+.SM NBS
+.SM DES
+(Data Encryption Standard).
+These routines are faster and more general purpose than
+.BR crypt (3).
+They also are able to utilize
+.SM DES
+hardware if it is available.
+.B ecb_crypt(\|)
+encrypts in
+.SM ECB
+(Electronic Code Book)
+mode, which encrypts blocks of data independently.
+.B cbc_crypt(\|)
+encrypts in
+.SM CBC
+(Cipher Block Chaining)
+mode, which chains together
+successive blocks.
+.SM CBC
+mode protects against insertions, deletions and
+substitutions of blocks. Also, regularities in the clear text will
+not appear in the cipher text.
+.LP
+Here is how to use these routines. The first parameter,
+.IR key ,
+is the 8-byte encryption key with parity.
+To set the key's parity, which for
+.SM DES
+is in the low bit of each byte, use
+.BR des_setparity .
+The second parameter,
+.IR data ,
+contains the data to be encrypted or decrypted. The
+third parameter,
+.IR datalen ,
+is the length in bytes of
+.IR data ,
+which must be a multiple of 8. The fourth parameter,
+.IR mode ,
+is formed by
+.SM OR\s0'ing
+together some things. For the encryption direction 'or' in either
+.SM DES_ENCRYPT
+or
+.SM DES_DECRYPT\s0.
+For software versus hardware
+encryption, 'or' in either
+.SM DES_HW
+or
+.SM DES_SW\s0.
+If
+.SM DES_HW
+is specified, and there is no hardware, then the encryption is performed
+in software and the routine returns
+.SM DESERR_NOHWDEVICE\s0.
+For
+.BR cbc_crypt ,
+the parameter
+.I ivec
+is the the 8-byte initialization
+vector for the chaining. It is updated to the next initialization
+vector upon return.
+.LP
+.SH "SEE ALSO"
+.BR des (1),
+.BR crypt (3)
+.\" added, aeb
+and
+.BR xcrypt (3)
+.SH DIAGNOSTICS
+.PD 0
+.TP 20
+.SM DESERR_NONE
+No error.
+.TP
+.SM DESERR_NOHWDEVICE
+Encryption succeeded, but done in software instead of the requested hardware.
+.TP
+.SM DESERR_HWERROR
+An error occurred in the hardware or driver.
+.TP
+.SM DESERR_BADPARAM
+Bad parameter to routine.
+.PD
+.LP
+Given a result status
+.IR stat ,
+the macro
+.\" .SM 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 AVAILABILITY
+These routines are present in libc 4.6.27 and later, and in
+glibc 2.1 and later.