int main() { char password[] = "password"; char pbkstr[] = "PBKDF2$sha1$98$XaIs9vQgmLujKHZG4/B3dNTbeP2PyaVKySTirZznBrE=$2DX/HZDTojVbfgAIdozBi6CihjWP1+akYnh/h9uQfIVl6pLoAiwJe1ey2WW2BnT+"; int match; printf("Checking password [%s] for %s\n", password, pbkstr); match = pbkdf2_check(password, pbkstr); printf("match == %d\n", match); return match; }
int main() { // char password[] = "hello"; // char PB1[] = "PBKDF2$sha256$10000$eytf9sEo8EprP9P3$2eO6tROHiqI3bm+gg+vpmWooWMpz1zji"; char password[] = "supersecret"; char PB1[] = "PBKDF2$sha256$10000$YEbSTt8FaMRDq/ib$Kt97+sMCYg00mqMOBAYinqZlnxX8HqHk"; // char PB1[] = "PBKDF2$sha1$10000$XWfyPLeC9gsD6SbI$HOnjU4Ux7RpeBHdqYxpIGH1R5qCCtNA1"; // char PB1[] = "PBKDF2$sha512$10000$v/aaCgBZ+VZN5L8n$BpgjSTyb4weVxr9cA2mvQ+jaCyaAPeYe"; int match; printf("Checking password [%s] for %s\n", password, PB1); match = pbkdf2_check(password, PB1); printf("match == %d\n", match); return match; }
int mosquitto_auth_unpwd_check(void *userdata, const char *username, const char *password) { struct userdata *ud = (struct userdata *)userdata; struct backend_p **bep; char *phash = NULL, *backend_name = NULL; int match, authenticated = FALSE, nord; if (!username || !*username || !password || !*password) return MOSQ_ERR_AUTH; ud->authentication_be = -1; _log(LOG_DEBUG, "mosquitto_auth_unpwd_check(%s)", (username) ? username : "******"); for (nord = 0, bep = ud->be_list; bep && *bep; bep++, nord++) { struct backend_p *b = *bep; _log(LOG_DEBUG, "** checking backend %s", b->name); phash = b->getuser(b->conf, username); if (phash != NULL) { match = pbkdf2_check((char *)password, phash); if (match == 1) { authenticated = TRUE; /* Mark backend index in userdata so we can check * authorization in this back-end only. */ ud->authentication_be = nord; break; } } } /* Set name of back-end which authenticated */ backend_name = (authenticated) ? (*bep)->name : "none"; _log(DEBUG, "getuser(%s) AUTHENTICATED=%d by %s", username, authenticated, backend_name); if (phash != NULL) { free(phash); } return (authenticated) ? MOSQ_ERR_SUCCESS : MOSQ_ERR_AUTH; }