72 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .TH CRYPT 3
 | |
| .SH NAME
 | |
| crypt \- one-way password encryption function
 | |
| .SH SYNOPSIS
 | |
| .ft B
 | |
| .nf
 | |
| #define _MINIX_SOURCE 1
 | |
| #include <unistd.h>
 | |
| 
 | |
| char *crypt(const char *\fIkey\fP, const char *\fIsalt\fP)
 | |
| .fi
 | |
| .ft P
 | |
| .SH DESCRIPTION
 | |
| The first use of
 | |
| .B crypt()
 | |
| is to encrypt a password.  Its second use is to authenticate a shadow
 | |
| password.  In both cases
 | |
| .B crypt()
 | |
| calls
 | |
| .BR pwdauth (8)
 | |
| to do the real work.
 | |
| .PP
 | |
| .B 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.
 | |
| .PP
 | |
| If
 | |
| .B crypt()
 | |
| is called with a salt that has the form
 | |
| .BI "##" user
 | |
| then the key is encrypted and compared to the encrypted password of
 | |
| .I user
 | |
| in the shadow password file.  If they are equal then
 | |
| .B crypt()
 | |
| returns the
 | |
| .BI "##" user
 | |
| argument, if not then some other string is returned.  This trick assures
 | |
| that the normal way to authenticate a password still works:
 | |
| .PP
 | |
| .RS
 | |
| .nf
 | |
| if (strcmp(pw->pw_passwd, crypt(key, pw->pw_passwd))) ...
 | |
| .fi
 | |
| .RE
 | |
| .PP
 | |
| If
 | |
| .I key
 | |
| is a null string, and the shadow password is a null string or the salt is a
 | |
| null string then the result equals
 | |
| .IR salt .
 | |
| (This is because the caller can't tell if a password field is empty in the
 | |
| shadow password file.)
 | |
| .PP
 | |
| The key and salt are limited to 1024 bytes total including the null bytes.
 | |
| .SH FILES
 | |
| .TP 25
 | |
| /usr/lib/pwdauth
 | |
| The password authentication program
 | |
| .SH "SEE ALSO"
 | |
| .BR getpass (3),
 | |
| .BR getpwent (3),
 | |
| .BR passwd (5),
 | |
| .BR pwdauth (8).
 | |
| .SH 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.
 | |
| .SH AUTHOR
 | |
| Kees J. Bot (kjb@cs.vu.nl)
 | 
