|
|
1.1 ! root 1: .TH CRYPT 3 "25 February 1983" ! 2: .SH NAME ! 3: crypt, setkey, encrypt \- DES encryption ! 4: .SH SYNOPSIS ! 5: .nf ! 6: .B char *crypt(key, salt) ! 7: .B char *key, *salt; ! 8: .PP ! 9: .B setkey(key) ! 10: .B char *key; ! 11: .PP ! 12: .B encrypt(block, edflag) ! 13: .B char *block; ! 14: .fi ! 15: .SH DESCRIPTION ! 16: .I Crypt ! 17: is the password encryption routine. ! 18: It is based on the NBS Data Encryption Standard, with ! 19: variations intended (among other things) to frustrate use of hardware ! 20: implementations of the DES for key search. ! 21: .PP ! 22: The first argument to ! 23: .I crypt ! 24: is normally a user's typed password. ! 25: The second is a 2-character string chosen from the ! 26: set [a-zA-Z0-9./]. ! 27: The ! 28: .I salt ! 29: string is used to perturb the DES algorithm in one of 4096 ! 30: different ways, after which the password ! 31: is used as the key to encrypt repeatedly a constant string. ! 32: The returned value points to the encrypted password, ! 33: in the same alphabet as the salt. ! 34: The first two characters are the salt itself. ! 35: .PP ! 36: The other entries provide (rather primitive) ! 37: access to the actual DES algorithm. ! 38: The argument of ! 39: .I setkey ! 40: is a character array of length 64 containing only the characters ! 41: with numerical value 0 and 1. ! 42: If this string is divided into groups of 8, ! 43: the low-order bit in each group is ignored, ! 44: leading to a 56-bit key which is set into the machine. ! 45: .PP ! 46: The argument to the ! 47: .I encrypt ! 48: entry is likewise a character array of length 64 ! 49: containing 0's and 1's. ! 50: The argument array is modified in place ! 51: to a similar array ! 52: representing the bits of the argument after having been ! 53: subjected to the DES algorithm using the key set by ! 54: .I setkey. ! 55: If ! 56: .I edflag ! 57: is 0, the argument is encrypted; ! 58: if non-zero, ! 59: it is decrypted. ! 60: .SH "SEE ALSO" ! 61: passwd(1), passwd(5), login(1), getpass(3) ! 62: .SH BUGS ! 63: The return value ! 64: points to static data whose content is overwritten ! 65: by each call.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.