diff options
Diffstat (limited to 'data/lighttpd/lighttpd-1.4.53/src/http_auth.h')
-rw-r--r-- | data/lighttpd/lighttpd-1.4.53/src/http_auth.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/data/lighttpd/lighttpd-1.4.53/src/http_auth.h b/data/lighttpd/lighttpd-1.4.53/src/http_auth.h new file mode 100644 index 000000000..e652d71bd --- /dev/null +++ b/data/lighttpd/lighttpd-1.4.53/src/http_auth.h @@ -0,0 +1,52 @@ +#ifndef _HTTP_AUTH_H_ +#define _HTTP_AUTH_H_ +#include "first.h" + +#include "base_decls.h" +#include "buffer.h" +#include "array.h" + +void http_auth_dumbdata_reset (void); + +struct http_auth_scheme_t; +struct http_auth_require_t; +struct http_auth_backend_t; + +typedef struct http_auth_require_t { + const struct http_auth_scheme_t *scheme; + buffer *realm; + int valid_user; + array *user; + array *group; + array *host; +} http_auth_require_t; + +http_auth_require_t * http_auth_require_init (void); +void http_auth_require_free (http_auth_require_t *require); +int http_auth_match_rules (const http_auth_require_t *require, const char *user, const char *group, const char *host); + +typedef struct http_auth_backend_t { + const char *name; + handler_t(*basic)(server *srv, connection *con, void *p_d, const http_auth_require_t *require, const buffer *username, const char *pw); + handler_t(*digest)(server *srv, connection *con, void *p_d, const char *username, const char *realm, unsigned char HA1[16]); + void *p_d; +} http_auth_backend_t; + +typedef struct http_auth_scheme_t { + const char *name; + handler_t(*checkfn)(server *srv, connection *con, void *p_d, const struct http_auth_require_t *require, const struct http_auth_backend_t *backend); + /*(backend is arg only because auth.backend is separate config directive)*/ + void *p_d; +} http_auth_scheme_t; + +const http_auth_scheme_t * http_auth_scheme_get (const buffer *name); +void http_auth_scheme_set (const http_auth_scheme_t *scheme); +const http_auth_backend_t * http_auth_backend_get (const buffer *name); +void http_auth_backend_set (const http_auth_backend_t *backend); +int http_auth_const_time_memeq (const char *a, size_t alen, const char *b, size_t blen); + +void http_auth_setenv(connection *con, const char *username, size_t ulen, const char *auth_type, size_t alen); + +int http_auth_md5_hex2bin (const char *md5hex, size_t len, unsigned char md5bin[16]); + +#endif |