man-pages/man3/des_crypt.3

139 lines
3.1 KiB
Groff
Raw Normal View History

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
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
.BR ecb_crypt ()
2004-11-03 13:51:07 +00:00
and
.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.
.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.
.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
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
Here is how to use these routines.
The first parameter,
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
.BR des_setparity ().
2004-11-03 13:51:07 +00:00
The second parameter,
.IR data ,
contains the data to be encrypted or decrypted.
The
2004-11-03 13:51:07 +00:00
third parameter,
.IR datalen ,
is the length in bytes of
.IR data ,
which must be a multiple of 8.
The fourth parameter,
2004-11-03 13:51:07 +00:00
.IR mode ,
is formed by
2007-12-24 16:10:29 +00:00
OR 'ing
together some things.
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
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
.BR cbc_crypt (),
2004-11-03 13:51:07 +00:00
the parameter
.I ivec
2005-07-05 13:53:03 +00:00
is the 8-byte initialization
vector for the chaining.
It is updated to the next initialization
2004-11-03 13:51:07 +00:00
vector upon return.
.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
2004-11-03 13:51:07 +00:00
Bad parameter to routine.
.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
.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.
.SH "CONFORMING TO"
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)