#ifndef __AUTH_H__
#define __AUTH_H__
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#include "url.h"
enum AuthParseHTTPAuthType_t { TYPENOTSET, BASIC, DIGEST };
enum AuthParseDigestAlgorithm_t { ALGORITHMNOTSET, MD5, MD5SESS };
enum AuthParseDigestQOP_t { QOPNOTSET, AUTH, AUTHINT };
typedef struct {
enum AuthParseHTTPAuthType_t type;
char *name;
Dlist *paths; /* stripped of any trailing '/', so the root path is "" */
char *authorization; /* BASIC: the authorization request header */
/* DIGEST: the hexdigest of A1 */
/* digest state ahead */
char *username;
char *cnonce;
unsigned int nonce_count;
char *nonce;
char *opaque;
enum AuthParseDigestAlgorithm_t algorithm;
char *domain; /* NOT USED */
enum AuthParseDigestQOP_t qop;
} AuthRealm_t;
char *a_Auth_get_auth_str(const DilloUrl *url, const char *request_uri);
int a_Auth_do_auth(Dlist *auth_string, const DilloUrl *url);
void a_Auth_init(void);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* !__AUTH_H__ */