From b9dfd01a7919df8faf8aa7f86554360444014e9d Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Fri, 26 Jul 2019 18:11:14 -0400 Subject: let httpd do the authentication --- auth.c | 56 -------------------------------------------------------- 1 file changed, 56 deletions(-) delete mode 100644 auth.c (limited to 'auth.c') diff --git a/auth.c b/auth.c deleted file mode 100644 index 7c20f9d..0000000 --- a/auth.c +++ /dev/null @@ -1,56 +0,0 @@ -#define _XOPEN_SOURCE 700 -#include -#include -#include -#include -#include "blog.h" - -int authenticate(const char *username, const char *password) -{ - int authenticated = 0; - - char *pwline = NULL; - FILE *pwfile = fopen(PASSWORD_FILE, "r"); - - if (!pwfile) { - goto end; - } - - size_t ulen = strlen(username); - - while (pwline == NULL) { - char *line = NULL; - size_t n = 0; - - if (getline(&line, &n, pwfile) == -1) { - goto end; - } - - if (strncmp(username, line, ulen) == 0 && line[ulen] == ':') { - pwline = line; - break; - } - - free(line); - } - - if (pwline == NULL) { - goto end; - } - - char *stored_password = pwline + ulen + 1; - char *match = crypt(password, stored_password); - if (!strncmp(match, stored_password, strlen(match))) { - authenticated = 1; - } - -end: - if (pwline) { - free(pwline); - } - - if (pwfile) { - fclose(pwfile); - } - return authenticated; -} -- cgit v1.2.1