test-checkpw.c   [plain text]




#include <security/checkpw.h>
#include <pwd.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>

const char *prompt = "checkpw test prompt:";

int
main(int argv, char *argc[])
{
	char *uname;
	int retval = 0;
	struct passwd *pw = NULL;

	uname = (char*)getenv("USER");
	if ( NULL == uname)
	{
		uid_t uid = getuid();
		struct passwd *pw = getpwuid(uid);
		uname = pw->pw_name;
	}

	retval = checkpw(uname, getpass(prompt));
	if (0 == retval)
	{
		printf("Password is okay.\n");
	} else {
		printf("Incorrect password.\n");
	}

	return retval;
}