password-scheme.c revision 93b7c5ff4dc3f77e3248845dab1917241852514a
/* Copyright (C) 2003 Timo Sirainen */
#include "lib.h"
#include "buffer.h"
#include "base64.h"
#include "hex-binary.h"
#include "md5.h"
#include "module-dir.h"
#include "mycrypt.h"
#include "randgen.h"
#include "str.h"
#include "password-scheme.h"
#ifdef HAVE_OPENSSL_SHA1
#endif
static const char salt_chars[] =
"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
static buffer_t *schemes_buf;
static const struct password_scheme *schemes;
#ifdef HAVE_MODULES
static struct module *scheme_modules;
#endif
{
const struct password_scheme *s;
return 0;
}
return -1;
}
const char *password_get_scheme(const char **password)
{
const char *p, *scheme;
return NULL;
/* skip the salt */
if (p != NULL) {
/* stop at next '$' */
if (p != NULL)
return "MD5";
}
}
if (**password != '{')
return NULL;
if (p == NULL)
return NULL;
*password = p + 1;
return scheme;
}
const char *scheme)
{
const struct password_scheme *s;
}
return NULL;
}
const char *user __attr_unused__)
{
}
static const char *crypt_generate(const char *plaintext,
const char *user __attr_unused__)
{
char salt[9];
}
const char *user __attr_unused__)
{
const char *str;
}
static const char *md5_generate(const char *plaintext,
const char *user __attr_unused__)
{
char salt[9];
int i;
for (i = 0; i < 8; i++)
}
#ifdef HAVE_OPENSSL_SHA1
const char *user __attr_unused__)
{
unsigned char digest[SHA_DIGEST_LENGTH];
}
#endif
const char *user __attr_unused__)
{
}
static const char *plain_generate(const char *plaintext,
const char *user __attr_unused__)
{
return plaintext;
}
const char *user __attr_unused__)
{
}
static const char *hmac_md5_generate(const char *plaintext,
const char *user __attr_unused__)
{
return password_generate_cram_md5(plaintext);
}
const char *user)
{
unsigned char digest[16];
/* user:realm:passwd */
}
{
unsigned char digest[16];
/* user:realm:passwd */
}
const char *user __attr_unused__)
{
unsigned char digest[16];
const char *str;
}
static const char *plain_md5_generate(const char *plaintext,
const char *user __attr_unused__)
{
unsigned char digest[16];
}
static const struct password_scheme default_schemes[] = {
#ifdef HAVE_OPENSSL_SHA1
#endif
};
void password_schemes_init(void)
{
const struct password_scheme *s;
#ifdef HAVE_MODULES
const char *symbol;
#endif
buffer_append(schemes_buf, s, sizeof(*s));
#ifdef HAVE_MODULES
t_push();
if (s != NULL)
buffer_append(schemes_buf, s, sizeof(*s));
t_pop();
}
#endif
}
void password_schemes_deinit(void)
{
#ifdef HAVE_MODULES
#endif
}