1CRYPT(3)                   Library Functions Manual                   CRYPT(3)
2
3
4

NAME

6       crypt, setkey, encrypt - DES encryption
7

SYNOPSIS

9       char *crypt(key, salt)
10       char *key, *salt;
11
12       setkey(key)
13       char *key;
14
15       encrypt(block, edflag)
16       char *block;
17

DESCRIPTION

19       Crypt  is the password encryption routine.  It is based on the NBS Data
20       Encryption Standard, with variations intended (among other  things)  to
21       frustrate use of hardware implementations of the DES for key search.
22
23       The  first argument to crypt is a user's typed password.  The second is
24       a 2-character string chosen  from  the  set  [a-zA-Z0-9./].   The  salt
25       string  is  used  to perturb the DES algorithm in one of 4096 different
26       ways, after which the password is used as the key to encrypt repeatedly
27       a  constant  string.   The returned value points to the encrypted pass‐
28       word, in the same alphabet as the salt.  The first two  characters  are
29       the salt itself.
30
31       The  other  entries provide (rather primitive) access to the actual DES
32       algorithm.  The argument of setkey is a character array  of  length  64
33       containing  only  the characters with numerical value 0 and 1.  If this
34       string is divided into groups of 8, the low-order bit in each group  is
35       ignored, leading to a 56-bit key which is set into the machine.
36
37       The  argument  to  the  encrypt  entry is likewise a character array of
38       length 64 containing 0's and 1's.  The argument array  is  modified  in
39       place  to  a  similar array representing the bits of the argument after
40       having been subjected to the DES algorithm using the key set by setkey.
41       If  edflag  is  0,  the  argument  is  encrypted;  if  non-zero,  it is
42       decrypted.
43

SEE ALSO

45       passwd(1), passwd(5), login(1), getpass(3)
46

BUGS

48       The return value points to static data whose content is overwritten  by
49       each call.
50
51
52
53                                                                      CRYPT(3)
Impressum