]> code.citadel.org Git - citadel.git/blobdiff - citadel/utils/chkpwd.c
Moved 'setup' to the utils directory and converted the build
[citadel.git] / citadel / utils / chkpwd.c
diff --git a/citadel/utils/chkpwd.c b/citadel/utils/chkpwd.c
new file mode 100644 (file)
index 0000000..96fed66
--- /dev/null
@@ -0,0 +1,48 @@
+//
+// a setuid helper program for machines which use shadow passwords
+// by Nathan Bryant, March 1999
+//
+// Copyright (c) 1987-2012 by the citadel.org team
+//
+// This program is open source software.  Use, duplication, or disclosure
+// is subject to the terms of the GNU General Public License, version 3.
+// The program is distributed without any warranty, expressed or implied.
+
+#include <pwd.h>
+#include <stdio.h>
+#include <limits.h>
+#include <stdlib.h>
+#include <string.h>
+#include <syslog.h>
+#include <unistd.h>
+#include <sys/types.h>
+
+#include <libcitadel.h>
+
+#include "auth.h"
+#include "config.h"
+#include "citadel_dirs.h"
+#include "citadel.h"
+
+int main(void)
+{
+       uid_t uid;
+       char buf[SIZ];
+
+       while (1) {
+               buf[0] = '\0';
+               read(0, &uid, sizeof(uid_t));   /* uid */
+               read(0, buf, 256);      /* password */
+
+               if (buf[0] == '\0') 
+                       return (0);
+               if (validate_password(uid, buf)) {
+                       write(1, "PASS", 4);
+               }
+               else {
+                       write(1, "FAIL", 4);
+               }
+       }
+
+       return(0);
+}