unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (v7man)
Page:
Section:
Apropos / Subsearch:
optional field

CRYPT(3)                   Library Functions Manual                   CRYPT(3)



NAME
       crypt, setkey, encrypt - DES encryption

SYNOPSIS
       char *crypt(key, salt)
       char *key, *salt;

       setkey(key)
       char *key;

       encrypt(block, edflag)
       char *block;

DESCRIPTION
       Crypt  is the password encryption routine.  It is based on the NBS Data
       Encryption Standard, with variations intended (among other  things)  to
       frustrate use of hardware implementations of the DES for key search.

       The  first argument to crypt is a user's typed password.  The second is
       a 2-character string chosen  from  the  set  [a-zA-Z0-9./].   The  salt
       string  is  used  to perturb the DES algorithm in one of 4096 different
       ways, after which the password is used as the key to encrypt repeatedly
       a  constant  string.   The returned value points to the encrypted pass-
       word, in the same alphabet as the salt.  The first two  characters  are
       the salt itself.

       The  other  entries provide (rather primitive) access to the actual DES
       algorithm.  The argument of setkey is a character array  of  length  64
       containing  only  the characters with numerical value 0 and 1.  If this
       string is divided into groups of 8, the low-order bit in each group  is
       ignored, leading to a 56-bit key which is set into the machine.

       The  argument  to  the  encrypt  entry is likewise a character array of
       length 64 containing 0's and 1's.  The argument array  is  modified  in
       place  to  a  similar array representing the bits of the argument after
       having been subjected to the DES algorithm using the key set by setkey.
       If  edflag  is  0,  the  argument  is  encrypted;  if  non-zero,  it is
       decrypted.

SEE ALSO
       passwd(1), passwd(5), login(1), getpass(3)

BUGS
       The return value points to static data whose content is overwritten  by
       each call.



                                                                      CRYPT(3)