Files
flenser/src/auth.hh
ADAM David Alan Martin 396b5fc2a6 This is a major lift into C++.
Much of the code is now building in C++, and I'm using C++23.

A spot test seems to work.  Now I can start to debride all the
painful memory management quirks...
2025-03-01 03:03:25 -05:00

31 lines
917 B
C++

#pragma once
#include "url.hh"
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);