|
|
1.1 ! root 1: .TH CRYPT 3 ! 2: .CT 2 data_man ! 3: .SH NAME ! 4: crypt, setkey, encrypt \(mi DES encryption ! 5: .SH SYNOPSIS ! 6: .nf ! 7: .B char *crypt(key, salt) ! 8: .B char *key, *salt; ! 9: .PP ! 10: .B setkey(key) ! 11: .B char *key; ! 12: .PP ! 13: .B encrypt(block, edflag) ! 14: .B char *block; ! 15: .fi ! 16: .SH DESCRIPTION ! 17: .I Crypt ! 18: is the password encryption routine. ! 19: It is based on the NBS Data Encryption Standard, with ! 20: variations intended (among other things) to frustrate use of hardware ! 21: implementations of the DES for key search. ! 22: .PP ! 23: The first argument to ! 24: .I crypt ! 25: is a user's typed password. ! 26: The second is a 2-character string chosen from the ! 27: set ! 28: .BR [a-zA-Z0-9./] . ! 29: The ! 30: .I salt ! 31: string is used to perturb the DES algorithm in one of 4096 ! 32: different ways, after which the password ! 33: is used as the key to encrypt repeatedly a constant string. ! 34: The returned value points to the encrypted password, ! 35: in the same alphabet as the salt. ! 36: The first two characters are the salt itself. ! 37: .PP ! 38: The other functions provide (rather primitive) ! 39: access to the actual DES algorithm. ! 40: The argument of ! 41: .I setkey ! 42: is a character array of length 64 containing only the characters ! 43: with numerical value 0 and 1. ! 44: If this string is divided into groups of 8, ! 45: the low-order bit in each group is ignored, ! 46: leading to a 56-bit key which is set into the machine. ! 47: .PP ! 48: The argument to ! 49: .I encrypt ! 50: is also a character array of length 64 ! 51: containing 0's and 1's. ! 52: The 64 argument `bits' are encrypted in place by the DES ! 53: algorithm using the key previously 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: .IR crypt (1), ! 62: .IR passwd (1), ! 63: .IR passwd (5), ! 64: .IR getpass (3) ! 65: .SH BUGS ! 66: The return value ! 67: points to static data whose content is overwritten ! 68: by each call. ! 69: .br ! 70: .I Encrypt ! 71: is not available outside the United States and Canada.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.