|
|
1.1 ! root 1: ! 2: ! 3: ! 4: CRYPT(3) 1986 CRYPT(3) ! 5: ! 6: ! 7: ! 8: NNAAMMEE ! 9: crypt, setkey, encrypt - DES encryption ! 10: ! 11: SSYYNNOOPPSSIISS ! 12: cchhaarr **ccrryypptt((kkeeyy,, ssaalltt)) ! 13: cchhaarr **kkeeyy,, **ssaalltt;; ! 14: ! 15: sseettkkeeyy((kkeeyy)) ! 16: cchhaarr **kkeeyy;; ! 17: ! 18: eennccrryypptt((bblloocckk,, eeddffllaagg)) ! 19: cchhaarr **bblloocckk;; ! 20: ! 21: DDEESSCCRRIIPPTTIIOONN ! 22: _C_r_y_p_t is the password encryption routine. It is based on ! 23: the NBS Data Encryption Standard, with variations intended ! 24: (among other things) to frustrate use of hardware implemen- ! 25: tations of the DES for key search. ! 26: ! 27: The first argument to _c_r_y_p_t is normally a user's typed pass- ! 28: word. The second is a 2-character string chosen from the ! 29: set [a-zA-Z0-9./]. The _s_a_l_t string is used to perturb the ! 30: DES algorithm in one of 4096 different ways, after which the ! 31: password is used as the key to encrypt repeatedly a constant ! 32: string. The returned value points to the encrypted pass- ! 33: word, in the same alphabet as the salt. The first two char- ! 34: acters are the salt itself. ! 35: ! 36: The other entries provide (rather primitive) access to the ! 37: actual DES algorithm. The argument of _s_e_t_k_e_y is a character ! 38: array of length 64 containing only the characters with ! 39: numerical value 0 and 1. If this string is divided into ! 40: groups of 8, the low-order bit in each group is ignored, ! 41: leading to a 56-bit key which is set into the machine. ! 42: ! 43: The argument to the _e_n_c_r_y_p_t entry is likewise a character ! 44: array of length 64 containing 0's and 1's. The argument ! 45: array is modified in place to a similar array representing ! 46: the bits of the argument after having been subjected to the ! 47: DES algorithm using the key set by _s_e_t_k_e_y. The _e_d_f_l_a_g flag ! 48: is ignored; the argument can only be encrypted. ! 49: ! 50: SSEEEE AALLSSOO ! 51: passwd(1), passwd(5), login(1), getpass(3) ! 52: ! 53: BBUUGGSS ! 54: The return value points to static data whose content is ! 55: overwritten by each call. ! 56: ! 57: ! 58: ! 59: ! 60: ! 61: ! 62: ! 63: Printed 10/21/90 August 1 ! 64: ! 65: ! 66:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.