#include <config.h>
#include <sys/types.h>
#include <sys/param.h>
#include <stdio.h>
#ifdef STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# ifdef HAVE_STDLIB_H
# include <stdlib.h>
# endif
#endif
#ifdef HAVE_STRING_H
# include <string.h>
#endif
#ifdef HAVE_STRINGS_H
# include <strings.h>
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <pwd.h>
#ifdef __hpux
# undef MAXINT
# include <hpsecurity.h>
#else
# include <sys/security.h>
#endif
#include <prot.h>
#include "sudo.h"
#include "sudo_auth.h"
int
secureware_init(pw, promptp, auth)
struct passwd *pw;
char **promptp;
sudo_auth *auth;
{
#ifdef __alpha
extern int crypt_type;
if (crypt_type == INT_MAX)
return(AUTH_FAILURE);
#endif
return(AUTH_SUCCESS);
}
int
secureware_verify(pw, pass, auth)
struct passwd *pw;
char *pass;
sudo_auth *auth;
{
#ifdef __alpha
extern int crypt_type;
# ifdef HAVE_DISPCRYPT
if (strcmp(user_passwd, dispcrypt(pass, user_passwd, crypt_type)) == 0)
return(AUTH_SUCCESS);
# else
if (crypt_type == AUTH_CRYPT_BIGCRYPT) {
if (strcmp(user_passwd, bigcrypt(pass, user_passwd)) == 0)
return(AUTH_SUCCESS);
} else if (crypt_type == AUTH_CRYPT_CRYPT16) {
if (strcmp(user_passwd, crypt(pass, user_passwd)) == 0)
return(AUTH_SUCCESS);
}
# endif
#elif defined(HAVE_BIGCRYPT)
if (strcmp(user_passwd, bigcrypt(pass, user_passwd)) == 0)
return(AUTH_SUCCESS);
#endif
return(AUTH_FAILURE);
}