verify.c revision 233294
118334Speter/*
250397Sobrien * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska H��gskolan
318334Speter * (Royal Institute of Technology, Stockholm, Sweden).
418334Speter * All rights reserved.
518334Speter *
618334Speter * Redistribution and use in source and binary forms, with or without
718334Speter * modification, are permitted provided that the following conditions
818334Speter * are met:
918334Speter *
1018334Speter * 1. Redistributions of source code must retain the above copyright
1118334Speter *    notice, this list of conditions and the following disclaimer.
1218334Speter *
1318334Speter * 2. Redistributions in binary form must reproduce the above copyright
1418334Speter *    notice, this list of conditions and the following disclaimer in the
1518334Speter *    documentation and/or other materials provided with the distribution.
1618334Speter *
1718334Speter * 3. Neither the name of the Institute nor the names of its contributors
1818334Speter *    may be used to endorse or promote products derived from this software
1918334Speter *    without specific prior written permission.
2018334Speter *
2118334Speter * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
2218334Speter * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2318334Speter * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2418334Speter * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
2590075Sobrien * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2618334Speter * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2790075Sobrien * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2818334Speter * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2990075Sobrien * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
3018334Speter * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3150397Sobrien * SUCH DAMAGE.
3250397Sobrien */
3318334Speter
3418334Speter#include <config.h>
3518334Speter
3618334Speter#include <stdio.h>
3718334Speter#ifdef HAVE_UNISTD_H
3818334Speter#include <unistd.h>
3918334Speter#endif
40#ifdef HAVE_CRYPT_H
41#include <crypt.h>
42#endif
43#include "roken.h"
44
45ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL
46unix_verify_user(char *user, char *password)
47{
48    struct passwd *pw;
49
50    pw = k_getpwnam(user);
51    if(pw == NULL)
52	return -1;
53    if(strlen(pw->pw_passwd) == 0 && strlen(password) == 0)
54	return 0;
55    if(strcmp(crypt(password, pw->pw_passwd), pw->pw_passwd) == 0)
56        return 0;
57    return -1;
58}
59
60