Split the libcrypt and libcipher man pages.
This commit is contained in:
parent
74bf61cc44
commit
bb230f68ca
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=15225
@ -1,17 +1,15 @@
|
|||||||
#
|
#
|
||||||
# $Id: Makefile,v 1.5 1996/03/17 15:43:32 markm Exp $
|
# $Id: Makefile,v 1.8 1996/04/11 07:08:09 markm Exp $
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
LIB= cipher
|
LIB= cipher
|
||||||
SRCS= crypt.c
|
SRCS= crypt.c
|
||||||
PRECIOUSLIB= yes
|
PRECIOUSLIB= yes
|
||||||
#NOPROFILE= yes
|
#NOPROFILE= yes
|
||||||
|
|
||||||
#MAN3= crypt.0
|
MAN3= cipher.3
|
||||||
MAN3= crypt.3
|
MLINKS= cipher.3 encrypt.3 cipher.3 setkey.3
|
||||||
MLINKS= crypt.3 encrypt.3 crypt.3 setkey.3
|
MLINKS+=cipher.3 des_cipher.3 cipher.3 des_setkey.3
|
||||||
MLINKS+=crypt.3 des_cipher.3 crypt.3 des_setkey.3
|
|
||||||
|
|
||||||
#SUBDIR= test
|
#SUBDIR= test
|
||||||
|
|
||||||
|
@ -27,23 +27,20 @@
|
|||||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
.\" SUCH DAMAGE.
|
.\" SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.\" $Id: crypt.3,v 1.1 1994/09/07 08:55:24 g89r4222 Exp $
|
.\" $Id: crypt.3,v 1.5 1995/07/25 14:03:49 mark Exp $
|
||||||
.\"
|
.\"
|
||||||
.\" Manual page, using -mandoc macros
|
.\" Manual page, using -mandoc macros
|
||||||
.\"
|
.\"
|
||||||
.Dd March 9, 1994
|
.Dd March 9, 1994
|
||||||
.Dt CRYPT 3
|
.Dt CIPHER 3
|
||||||
.Os "FreeSec 1.0"
|
.Os "FreeSec 1.0"
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
.Nm crypt ,
|
|
||||||
.Nm setkey ,
|
.Nm setkey ,
|
||||||
.Nm encrypt ,
|
.Nm encrypt ,
|
||||||
.Nm des_setkey ,
|
.Nm des_setkey ,
|
||||||
.Nm des_cipher ,
|
.Nm des_cipher ,
|
||||||
.Nd DES encryption
|
.Nd DES encryption
|
||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
.Ft char
|
|
||||||
.Fn *crypt "const char *key" "const char *setting"
|
|
||||||
.Ft int
|
.Ft int
|
||||||
.Fn setkey "char *key"
|
.Fn setkey "char *key"
|
||||||
.Ft int
|
.Ft int
|
||||||
@ -53,82 +50,6 @@
|
|||||||
.Ft int
|
.Ft int
|
||||||
.Fn des_cipher "const char *in" "char *out" "long salt" "int count"
|
.Fn des_cipher "const char *in" "char *out" "long salt" "int count"
|
||||||
.Sh DESCRIPTION
|
.Sh DESCRIPTION
|
||||||
The
|
|
||||||
.Fn crypt
|
|
||||||
function performs password encryption, based on the
|
|
||||||
.Tn NBS
|
|
||||||
Data Encryption Standard (DES).
|
|
||||||
Additional code has been added to deter key search attempts.
|
|
||||||
The first argument to
|
|
||||||
.Nm crypt
|
|
||||||
is a
|
|
||||||
.Dv null Ns -terminated
|
|
||||||
string, typically a user's typed password.
|
|
||||||
The second is in one of two forms:
|
|
||||||
if it begins with an underscore (``_'') then an extended format is used
|
|
||||||
in interpreting both the the key and the setting, as outlined below.
|
|
||||||
.Ss Extended crypt:
|
|
||||||
.Pp
|
|
||||||
The
|
|
||||||
.Ar key
|
|
||||||
is divided into groups of 8 characters (the last group is null-padded)
|
|
||||||
and the low-order 7 bits of each each character (56 bits per group) are
|
|
||||||
used to form the DES key as follows:
|
|
||||||
the first group of 56 bits becomes the initial DES key.
|
|
||||||
For each additional group, the XOR of the encryption of the current DES
|
|
||||||
key with itself and the group bits becomes the next DES key.
|
|
||||||
.Pp
|
|
||||||
The setting is a 9-character array consisting of an underscore followed
|
|
||||||
by 4 bytes of iteration count and 4 bytes of salt.
|
|
||||||
These are encoded as printable characters, 6 bits per character,
|
|
||||||
least significant character first.
|
|
||||||
The values 0 to 63 are encoded as ``./0-9A-Za-z''.
|
|
||||||
This allows 24 bits for both
|
|
||||||
.Fa count
|
|
||||||
and
|
|
||||||
.Fa salt .
|
|
||||||
.Ss "Traditional" crypt:
|
|
||||||
.Pp
|
|
||||||
The first 8 bytes of the key are null-padded, and the low-order 7 bits of
|
|
||||||
each character is used to form the 56-bit
|
|
||||||
.Tn DES
|
|
||||||
key.
|
|
||||||
.Pp
|
|
||||||
The setting is a 2-character array of the ASCII-encoded salt.
|
|
||||||
Thus only 12 bits of
|
|
||||||
.Fa salt
|
|
||||||
are used.
|
|
||||||
.Fa count
|
|
||||||
is set to 25.
|
|
||||||
.Ss Algorithm:
|
|
||||||
.Pp
|
|
||||||
The
|
|
||||||
.Fa salt
|
|
||||||
introduces disorder in the
|
|
||||||
.Tn DES
|
|
||||||
algorithm in one of 16777216 or 4096 possible ways
|
|
||||||
(ie. with 24 or 12 bits: if bit
|
|
||||||
.Em i
|
|
||||||
of the
|
|
||||||
.Ar salt
|
|
||||||
is set, then bits
|
|
||||||
.Em i
|
|
||||||
and
|
|
||||||
.Em i+24
|
|
||||||
are swapped in the
|
|
||||||
.Tn DES
|
|
||||||
E-box output).
|
|
||||||
.Pp
|
|
||||||
The DES key is used to encrypt a 64-bit constant using
|
|
||||||
.Ar count
|
|
||||||
iterations of
|
|
||||||
.Tn DES .
|
|
||||||
The value returned is a
|
|
||||||
.Dv null Ns -terminated
|
|
||||||
string, 20 or 13 bytes (plus null) in length, consisting of the
|
|
||||||
.Ar setting
|
|
||||||
followed by the encoded 64-bit encryption.
|
|
||||||
.Pp
|
|
||||||
The functions,
|
The functions,
|
||||||
.Fn encrypt ,
|
.Fn encrypt ,
|
||||||
.Fn setkey ,
|
.Fn setkey ,
|
||||||
@ -137,7 +58,7 @@ and
|
|||||||
.Fn des_cipher
|
.Fn des_cipher
|
||||||
provide access to the
|
provide access to the
|
||||||
.Tn DES
|
.Tn DES
|
||||||
algorithm itself.
|
algorithm.
|
||||||
.Fn setkey
|
.Fn setkey
|
||||||
is passed a 64-byte array of binary values (numeric 0 or 1).
|
is passed a 64-byte array of binary values (numeric 0 or 1).
|
||||||
A 56-bit key is extracted from this array by dividing the
|
A 56-bit key is extracted from this array by dividing the
|
||||||
@ -185,13 +106,21 @@ and stores the 64-bit result in the 8 characters at
|
|||||||
).
|
).
|
||||||
The
|
The
|
||||||
.Fa salt
|
.Fa salt
|
||||||
specifies perturbations to the
|
introduces disorder in the
|
||||||
.Tn DES
|
.Tn DES
|
||||||
E-box output as described above.
|
algorithm in one of 16777216 or 4096 possible ways
|
||||||
|
(ie. with 24 or 12 bits: if bit
|
||||||
|
.Em i
|
||||||
|
of the
|
||||||
|
.Ar salt
|
||||||
|
is set, then bits
|
||||||
|
.Em i
|
||||||
|
and
|
||||||
|
.Em i+24
|
||||||
|
are swapped in the
|
||||||
|
.Tn DES
|
||||||
|
E-box output).
|
||||||
.Pp
|
.Pp
|
||||||
The function
|
|
||||||
.Fn crypt
|
|
||||||
returns a pointer to the encrypted value on success, and NULL on failure.
|
|
||||||
The functions
|
The functions
|
||||||
.Fn setkey ,
|
.Fn setkey ,
|
||||||
.Fn encrypt ,
|
.Fn encrypt ,
|
||||||
@ -201,32 +130,17 @@ and
|
|||||||
return 0 on success and 1 on failure.
|
return 0 on success and 1 on failure.
|
||||||
.Pp
|
.Pp
|
||||||
The
|
The
|
||||||
.Fn crypt ,
|
|
||||||
.Fn setkey
|
.Fn setkey
|
||||||
and
|
and
|
||||||
.Fn des_setkey
|
.Fn des_setkey
|
||||||
functions all manipulate the same key space.
|
functions manipulate the same key space.
|
||||||
.Sh SEE ALSO
|
.Sh SEE ALSO
|
||||||
.Xr login 1 ,
|
.Xr login 1 ,
|
||||||
.Xr passwd 1 ,
|
.Xr passwd 1 ,
|
||||||
.Xr getpass 3 ,
|
.Xr getpass 3 ,
|
||||||
|
.Xr crypt 3 ,
|
||||||
.Xr passwd 5
|
.Xr passwd 5
|
||||||
.Sh BUGS
|
|
||||||
The
|
|
||||||
.Fn crypt
|
|
||||||
function returns a pointer to static data, and subsequent calls to
|
|
||||||
.Fn crypt
|
|
||||||
will modify the same object.
|
|
||||||
.Sh HISTORY
|
.Sh HISTORY
|
||||||
A rotor-based
|
|
||||||
.Fn crypt
|
|
||||||
function appeared in
|
|
||||||
.At v6 .
|
|
||||||
The current style
|
|
||||||
.Fn crypt
|
|
||||||
first appeared in
|
|
||||||
.At v7 .
|
|
||||||
.Pp
|
|
||||||
This library (FreeSec 1.0) was developed outside the United States of America
|
This library (FreeSec 1.0) was developed outside the United States of America
|
||||||
as an unencumbered replacement for the U.S.-only NetBSD libcrypt encryption
|
as an unencumbered replacement for the U.S.-only NetBSD libcrypt encryption
|
||||||
library.
|
library.
|
Loading…
Reference in New Issue
Block a user