not quite so much needs to be delayed to the init() function
[personal-kdebase.git] / workspace / kcheckpass / kcheckpass.h
blobd75341c8bb308a346953eaa2164b570166fcdbf8
1 /*****************************************************************
3 * kcheckpass
5 * Simple password checker. Just invoke and send it
6 * the password on stdin.
8 * If the password was accepted, the program exits with 0;
9 * if it was rejected, it exits with 1. Any other exit
10 * code signals an error.
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public
15 * License as published by the Free Software Foundation; either
16 * version 2 of the License, or (at your option) any later version.
18 * This program is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 * General Public License for more details.
23 * You should have received a copy of the GNU General Public
24 * License along with this program; if not, write to the Free
25 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
27 * Copyright (C) 1998, Caldera, Inc.
28 * Released under the GNU General Public License
30 * Olaf Kirch <okir@caldera.de> General Framework and PAM support
31 * Christian Esken <esken@kde.org> Shadow and /etc/passwd support
32 * Oswald Buddenhagen <ossi@kde.org> Binary server mode
34 * Other parts were taken from kscreensaver's passwd.cpp
35 *****************************************************************/
37 #ifndef KCHECKPASS_H_
38 #define KCHECKPASS_H_
40 #include <config-workspace.h>
41 #include <config-unix.h>
42 #include <config-kcheckpass.h>
44 #ifdef HAVE_CRYPT_H
45 #include <crypt.h>
46 #endif
48 #ifdef HAVE_PATHS_H
49 #include <paths.h>
50 #endif
52 #include <pwd.h>
53 #include <sys/types.h>
55 #ifndef _PATH_TMP
56 #define _PATH_TMP "/tmp/"
57 #endif
60 #ifdef ultrix
61 #include <auth.h>
62 #endif
64 #include <unistd.h>
66 #ifdef OSF1_ENH_SEC
67 #include <sys/security.h>
68 #include <prot.h>
69 #endif
71 /* Make sure there is only one! */
72 #if defined(HAVE_PAM)
73 # undef HAVE_OSF_C2_PASSWD
74 #elif defined(HAVE_OSF_C2_PASSWD)
75 #elif defined(_AIX)
76 # define HAVE_AIX_AUTH
77 #elif defined(HAVE_GETSPNAM)
78 # define HAVE_SHADOW
79 #else
80 # define HAVE_ETCPASSWD
81 #endif
83 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
84 # define ATTR_UNUSED __attribute__((unused))
85 # define ATTR_NORETURN __attribute__((noreturn))
86 # define ATTR_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
87 #else
88 # define ATTR_UNUSED
89 # define ATTR_NORETURN
90 # define ATTR_PRINTFLIKE(fmt,var)
91 #endif
93 #include "kcheckpass-enums.h"
95 #ifdef __cplusplus
96 extern "C" {
97 #endif
99 /*****************************************************************
100 * Authenticates user
101 *****************************************************************/
102 AuthReturn Authenticate(
103 #ifdef HAVE_PAM
104 const char *caller,
105 #endif
106 const char *method,
107 const char *user,
108 char *(*conv) (ConvRequest, const char *));
110 /*****************************************************************
111 * Output a message to stderr
112 *****************************************************************/
113 void message(const char *, ...) ATTR_PRINTFLIKE(1, 2);
115 /*****************************************************************
116 * Overwrite and free the passed string
117 *****************************************************************/
118 void dispose(char *);
120 #ifdef __cplusplus
122 #endif
123 #endif