|
|
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.