#include	<stdlib.h>
#include	<string.h>

#include	<unistd.h>
#include	<shadow.h>
#include	<pwd.h>
#include	<sys/types.h>

int
check_password(char * p)
{
	char * logname;
	struct passwd * pwd;
	struct spwd* spwd;
	char * encrypted;

	if (p == 0)
		return 0;

	logname = getenv("LOGNAME");
	if (logname == 0)
		logname = getenv("USER");
	if (logname == 0)
		logname = getlogin();
	spwd = getspnam(logname);
	pwd  = getpwnam(logname);

	if (spwd != NULL && spwd->sp_pwdp != NULL)
		return !strcmp(spwd->sp_pwdp, 
			       crypt(p, spwd->sp_pwdp)); 

	if (pwd != NULL && pwd->pw_passwd != NULL)
		return !strcmp(pwd->pw_passwd, 
			       crypt(p, pwd->pw_passwd)); 

	return 0;
}
