25 lines
507 B
C
25 lines
507 B
C
#ifdef __FreeBSD__
|
|
#include <sys/types.h>
|
|
#endif
|
|
#include <md5.h>
|
|
#include "ldap.h"
|
|
#include "auth.h"
|
|
#include "str.h"
|
|
#include "textcode.h"
|
|
|
|
int check_password(const char* fromdb,struct string* plaintext) {
|
|
if (str_start(fromdb,"{MD5}")) {
|
|
char digest[17];
|
|
char md5[40];
|
|
MD5_CTX c;
|
|
MD5Init(&c);
|
|
MD5Update(&c,plaintext->s,plaintext->l);
|
|
MD5Final(digest,&c);
|
|
digest[16]=0;
|
|
md5[fmt_base64(md5,digest,16)]=0;
|
|
if (str_equal(md5,fromdb+5))
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|