2004-11-03 13:51:07 +00:00
|
|
|
.\" @(#)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).
|
|
|
|
.\"
|
2007-05-18 09:11:21 +00:00
|
|
|
.TH DES_CRYPT 3 2007-05-18 "" "Linux Programmer's Manual"
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH NAME
|
2007-04-12 22:42:49 +00:00
|
|
|
des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED \- fast
|
2006-12-27 03:54:41 +00:00
|
|
|
DES encryption
|
2004-11-03 13:51:07 +00:00
|
|
|
.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
|
2005-10-19 07:29:28 +00:00
|
|
|
.BR ecb_crypt ()
|
2004-11-03 13:51:07 +00:00
|
|
|
and
|
2005-10-19 07:29:28 +00:00
|
|
|
.BR cbc_crypt ()
|
2004-11-03 13:51:07 +00:00
|
|
|
implement the
|
2007-12-24 16:10:29 +00:00
|
|
|
NBS
|
|
|
|
DES
|
2004-11-03 13:51:07 +00:00
|
|
|
(Data Encryption Standard).
|
|
|
|
These routines are faster and more general purpose than
|
|
|
|
.BR crypt (3).
|
|
|
|
They also are able to utilize
|
2007-12-24 16:10:29 +00:00
|
|
|
DES
|
2004-11-03 13:51:07 +00:00
|
|
|
hardware if it is available.
|
2005-10-19 07:29:28 +00:00
|
|
|
.BR ecb_crypt ()
|
2004-11-03 13:51:07 +00:00
|
|
|
encrypts in
|
2007-12-24 16:10:29 +00:00
|
|
|
ECB
|
2004-11-03 13:51:07 +00:00
|
|
|
(Electronic Code Book)
|
|
|
|
mode, which encrypts blocks of data independently.
|
2005-10-19 07:29:28 +00:00
|
|
|
.BR cbc_crypt ()
|
2004-11-03 13:51:07 +00:00
|
|
|
encrypts in
|
2007-12-24 16:10:29 +00:00
|
|
|
CBC
|
2004-11-03 13:51:07 +00:00
|
|
|
(Cipher Block Chaining)
|
|
|
|
mode, which chains together
|
|
|
|
successive blocks.
|
2007-12-24 16:10:29 +00:00
|
|
|
CBC
|
2004-11-03 13:51:07 +00:00
|
|
|
mode protects against insertions, deletions and
|
2007-04-12 22:42:49 +00:00
|
|
|
substitutions of blocks.
|
|
|
|
Also, regularities in the clear text will
|
2004-11-03 13:51:07 +00:00
|
|
|
not appear in the cipher text.
|
|
|
|
.LP
|
2007-04-12 22:42:49 +00:00
|
|
|
Here is how to use these routines.
|
2008-07-10 20:53:08 +00:00
|
|
|
The first argument,
|
2004-11-03 13:51:07 +00:00
|
|
|
.IR key ,
|
|
|
|
is the 8-byte encryption key with parity.
|
|
|
|
To set the key's parity, which for
|
2007-12-24 16:10:29 +00:00
|
|
|
DES
|
2004-11-03 13:51:07 +00:00
|
|
|
is in the low bit of each byte, use
|
2005-10-19 06:54:38 +00:00
|
|
|
.BR des_setparity ().
|
2008-07-10 20:53:08 +00:00
|
|
|
The second argument,
|
2004-11-03 13:51:07 +00:00
|
|
|
.IR data ,
|
2007-04-12 22:42:49 +00:00
|
|
|
contains the data to be encrypted or decrypted.
|
|
|
|
The
|
2008-07-10 20:53:08 +00:00
|
|
|
third argument,
|
2004-11-03 13:51:07 +00:00
|
|
|
.IR datalen ,
|
|
|
|
is the length in bytes of
|
|
|
|
.IR data ,
|
2007-04-12 22:42:49 +00:00
|
|
|
which must be a multiple of 8.
|
2008-07-10 20:53:08 +00:00
|
|
|
The fourth argument,
|
2004-11-03 13:51:07 +00:00
|
|
|
.IR mode ,
|
|
|
|
is formed by
|
2007-12-24 16:10:29 +00:00
|
|
|
OR 'ing
|
2007-04-12 22:42:49 +00:00
|
|
|
together some things.
|
2008-06-05 20:14:50 +00:00
|
|
|
For the encryption direction OR in either
|
2007-12-24 16:10:29 +00:00
|
|
|
.BR DES_ENCRYPT
|
2004-11-03 13:51:07 +00:00
|
|
|
or
|
2007-12-24 17:09:50 +00:00
|
|
|
.BR DES_DECRYPT .
|
2004-11-03 13:51:07 +00:00
|
|
|
For software versus hardware
|
2008-06-05 20:14:50 +00:00
|
|
|
encryption, OR in either
|
2007-12-24 16:10:29 +00:00
|
|
|
.BR DES_HW
|
2004-11-03 13:51:07 +00:00
|
|
|
or
|
2007-12-24 17:09:50 +00:00
|
|
|
.BR DES_SW .
|
2004-11-03 13:51:07 +00:00
|
|
|
If
|
2007-12-24 16:10:29 +00:00
|
|
|
.BR DES_HW
|
2004-11-03 13:51:07 +00:00
|
|
|
is specified, and there is no hardware, then the encryption is performed
|
|
|
|
in software and the routine returns
|
2007-12-24 17:09:50 +00:00
|
|
|
.BR DESERR_NOHWDEVICE .
|
2004-11-03 13:51:07 +00:00
|
|
|
For
|
2005-10-19 06:54:38 +00:00
|
|
|
.BR cbc_crypt (),
|
2008-07-10 20:53:08 +00:00
|
|
|
the argument
|
2004-11-03 13:51:07 +00:00
|
|
|
.I ivec
|
2005-07-05 13:53:03 +00:00
|
|
|
is the 8-byte initialization
|
2007-04-12 22:42:49 +00:00
|
|
|
vector for the chaining.
|
|
|
|
It is updated to the next initialization
|
2004-11-03 13:51:07 +00:00
|
|
|
vector upon return.
|
2007-05-16 17:35:34 +00:00
|
|
|
.SH RETURN VALUE
|
2004-11-03 13:51:07 +00:00
|
|
|
.PD 0
|
|
|
|
.TP 20
|
2007-12-24 16:10:29 +00:00
|
|
|
.BR DESERR_NONE
|
2004-11-03 13:51:07 +00:00
|
|
|
No error.
|
|
|
|
.TP
|
2007-12-24 16:10:29 +00:00
|
|
|
.BR DESERR_NOHWDEVICE
|
2004-11-03 13:51:07 +00:00
|
|
|
Encryption succeeded, but done in software instead of the requested hardware.
|
|
|
|
.TP
|
2007-12-24 16:10:29 +00:00
|
|
|
.BR DESERR_HWERROR
|
2004-11-03 13:51:07 +00:00
|
|
|
An error occurred in the hardware or driver.
|
|
|
|
.TP
|
2007-12-24 16:10:29 +00:00
|
|
|
.BR DESERR_BADPARAM
|
2008-07-10 20:53:08 +00:00
|
|
|
Bad argument to routine.
|
2004-11-03 13:51:07 +00:00
|
|
|
.PD
|
|
|
|
.LP
|
|
|
|
Given a result status
|
|
|
|
.IR stat ,
|
|
|
|
the macro
|
2007-12-24 16:10:29 +00:00
|
|
|
.\" .BR DES_FAILED\c
|
2004-11-03 13:51:07 +00:00
|
|
|
.\" .BR ( stat )
|
|
|
|
.BI DES_FAILED( stat )
|
|
|
|
is false only for the first two statuses.
|
|
|
|
.\" So far the Sun page
|
|
|
|
.\" Some additions - aeb
|
2007-05-16 04:53:05 +00:00
|
|
|
.SH VERSIONS
|
2004-11-03 13:51:07 +00:00
|
|
|
These routines are present in libc 4.6.27 and later, and in
|
|
|
|
glibc 2.1 and later.
|
2006-08-04 12:39:17 +00:00
|
|
|
.SH "CONFORMING TO"
|
2007-04-12 22:42:49 +00:00
|
|
|
4.3BSD.
|
|
|
|
Not in POSIX.1-2001.
|
2007-05-16 18:25:50 +00:00
|
|
|
.SH "SEE ALSO"
|
|
|
|
.BR des (1),
|
2007-12-17 11:27:53 +00:00
|
|
|
.BR crypt (3),
|
2007-05-16 18:25:50 +00:00
|
|
|
.BR xcrypt (3)
|