--- /dev/null
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <string.h>
+#include <stdio.h>
+#include "config.h"
+#include "auth.h"
+
+int auth_set_password(const char *username, const char *password) {
+ char filename[512];
+ int fd;
+
+ if (!blerg_exists(username))
+ return 0;
+
+ snprintf(filename, 512, "%s/%s/password", DATA_PATH, username);
+ fd = open(filename, O_WRONLY | O_CREAT, 0600);
+ write(fd, password, strlen(password));
+ close(fd);
+
+ return 1;
+}
+
+int auth_get_password(const char *username, char *password) {
+ char filename[512];
+ int fd;
+ int len = 0;
+
+ sprintf(filename, "%s/%s/password", DATA_PATH, username);
+ fd = open(filename, O_RDONLY);
+ if (fd == -1)
+ return 0;
+ len = read(fd, password, 32);
+ close(fd);
+
+ password[len] = 0;
+
+ return 1;
+}
+
+int auth_check_password(const char *username, const char *password) {
+ char epw[33];
+
+ if (auth_get_password(username, epw) == 0)
+ return 0;
+
+ if (strncmp(password, epw, 32) == 0)
+ return 1;
+ else
+ return 0;
+}