119 lines
2.3 KiB
Groff
119 lines
2.3 KiB
Groff
|
||
|
||
CRYPT(3) Minix Programmer's Manual CRYPT(3)
|
||
|
||
|
||
NAME
|
||
crypt - one-way password encryption function
|
||
|
||
SYNOPSIS
|
||
#define _MINIX_SOURCE 1
|
||
#include <unistd.h>
|
||
|
||
char *crypt(const char *key, const char *salt)
|
||
|
||
DESCRIPTION
|
||
The first use of crypt() is to encrypt a password. Its second use is to
|
||
authenticate a shadow password. In both cases crypt() calls pwdauth(8)
|
||
to do the real work.
|
||
|
||
Crypt() encrypts a password if called with a user typed key, and a salt
|
||
whose first two characters are in the set [./0-9A-Za-z]. The result is a
|
||
character string in the [./0-9A-Za-z] alphabet of which the first two
|
||
characters are equal to the salt, and the rest is the result of
|
||
encrypting the key and the salt.
|
||
|
||
If crypt() is called with a salt that has the form ##user then the key is
|
||
encrypted and compared to the encrypted password of user in the shadow
|
||
password file. If they are equal then crypt() returns the ##user
|
||
argument, if not then some other string is returned. This trick assures
|
||
that the normal way to authenticate a password still works:
|
||
|
||
if (strcmp(pw->pw_passwd, crypt(key, pw->pw_passwd))) ...
|
||
|
||
If key is a null string, and the shadow password is a null string or the
|
||
salt is a null string then the result equals salt. (This is because the
|
||
caller can't tell if a password field is empty in the shadow password
|
||
file.)
|
||
|
||
The key and salt are limited to 1024 bytes total including the null
|
||
bytes.
|
||
|
||
FILES
|
||
|
||
/usr/lib/pwdauth The password authentication program
|
||
|
||
SEE ALSO
|
||
getpass(3), getpwent(3), passwd(5), pwdauth(8).
|
||
|
||
NOTES
|
||
The result of an encryption is returned in a static array that is
|
||
overwritten by each call. The return value should not be modified.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
1
|
||
|
||
|
||
|
||
CRYPT(3) Minix Programmer's Manual CRYPT(3)
|
||
|
||
|
||
AUTHOR
|
||
Kees J. Bot (kjb@cs.vu.nl)
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
2
|
||
|