GNU libmicrohttpd
0.9.62
|
Macros | |
#define | MHD_INVALID_NONCE -1 |
#define | MHD_INVALID_NONCE -1 |
Functions | |
_MHD_EXTERN char * | MHD_digest_auth_get_username (struct MHD_Connection *connection) |
_MHD_EXTERN int | MHD_digest_auth_check2 (struct MHD_Connection *connection, const char *realm, const char *username, const char *password, unsigned int nonce_timeout, enum MHD_DigestAuthAlgorithm algo) |
_MHD_EXTERN int | MHD_digest_auth_check (struct MHD_Connection *connection, const char *realm, const char *username, const char *password, unsigned int nonce_timeout) |
_MHD_EXTERN int | MHD_digest_auth_check_digest2 (struct MHD_Connection *connection, const char *realm, const char *username, const uint8_t *digest, size_t digest_size, unsigned int nonce_timeout, enum MHD_DigestAuthAlgorithm algo) |
_MHD_EXTERN int | MHD_digest_auth_check_digest (struct MHD_Connection *connection, const char *realm, const char *username, const uint8_t digest[MHD_MD5_DIGEST_SIZE], unsigned int nonce_timeout) |
_MHD_EXTERN int | MHD_queue_auth_fail_response2 (struct MHD_Connection *connection, const char *realm, const char *opaque, struct MHD_Response *response, int signal_stale, enum MHD_DigestAuthAlgorithm algo) |
_MHD_EXTERN int | MHD_queue_auth_fail_response (struct MHD_Connection *connection, const char *realm, const char *opaque, struct MHD_Response *response, int signal_stale) |
_MHD_EXTERN char * | MHD_basic_auth_get_username_password (struct MHD_Connection *connection, char **password) |
_MHD_EXTERN int | MHD_queue_basic_auth_fail_response (struct MHD_Connection *connection, const char *realm, struct MHD_Response *response) |
static int | digest_auth_check_all (struct MHD_Connection *connection, struct DigestAlgorithm *da, const char *realm, const char *username, const char *password, const uint8_t *digest, unsigned int nonce_timeout) |
MHD API related to basic and digest HTTP authentication.
#define MHD_INVALID_NONCE -1 |
MHD digest auth internal code for an invalid nonce.
Constant to indicate that the nonce of the provided authentication code was wrong.
Definition at line 3167 of file microhttpd.h.
Referenced by digest_auth_check_all().
#define MHD_INVALID_NONCE -1 |
MHD digest auth internal code for an invalid nonce.
Constant to indicate that the nonce of the provided authentication code was wrong.
Definition at line 3167 of file microhttpd.h.
|
static |
Authenticates the authorization header sent by the client
connection | The MHD connection structure |
da[in,out] | digest algorithm to use for checking (written to as part of the calculations, but the values left in the struct are not actually expected to be useful for the caller) |
realm | The realm presented to the client |
username | The username needs to be authenticated |
password | The password used in the authentication |
digest | An optional binary hash of the precalculated hash value "username:realm:password" (must contain "da->digest_size" bytes or be NULL) |
nonce_timeout | The amount of time for a nonce to be invalid in seconds |
Definition at line 805 of file digestauth.c.
References _, _BASE, calculate_nonce(), check_argument_match(), check_nonce_nc(), daemon, MHD_Connection::daemon, digest_calc_ha1_from_digest(), digest_calc_ha1_from_user(), digest_calc_response(), lookup_sub_value(), MAX_AUTH_RESPONSE_LENGTH, MAX_NONCE_LENGTH, MAX_REALM_LENGTH, MAX_USERNAME_LENGTH, MHD_Connection::method, MHD_HEADER_KIND, MHD_HTTP_HEADER_AUTHORIZATION, MHD_INVALID_NONCE, MHD_lookup_connection_value(), MHD_monotonic_sec_counter(), MHD_NO, MHD_STATICSTR_LEN_, MHD_strx_to_uint32_n_(), MHD_strx_to_uint64_n_(), MHD_YES, NONCE_STD_LEN, NULL, TIMESTAMP_BIN_SIZE, MHD_Daemon::unescape_callback, MHD_Daemon::unescape_callback_cls, and MHD_Connection::url.
Referenced by MHD_digest_auth_check2(), and MHD_digest_auth_check_digest2().
char * MHD_basic_auth_get_username_password | ( | struct MHD_Connection * | connection, |
char ** | password | ||
) |
Get the username and password from the basic authorization header sent by the client
connection | The MHD connection structure | |
[out] | password | a pointer for the password, free using MHD_free(). |
Get the username and password from the basic authorization header sent by the client
connection | The MHD connection structure |
password | a pointer for the password |
Definition at line 47 of file basicauth.c.
References _, _BASIC_BASE, BASE64Decode(), MHD_Connection::daemon, MHD_HEADER_KIND, MHD_HTTP_HEADER_AUTHORIZATION, MHD_lookup_connection_value(), MHD_STATICSTR_LEN_, and NULL.
_MHD_EXTERN int MHD_digest_auth_check | ( | struct MHD_Connection * | connection, |
const char * | realm, | ||
const char * | username, | ||
const char * | password, | ||
unsigned int | nonce_timeout | ||
) |
Authenticates the authorization header sent by the client. Uses MHD_DIGEST_ALG_MD5 (for now, for backwards-compatibility). Note that this MAY change to MHD_DIGEST_ALG_AUTO in the future. If you want to be sure you get MD5, use MHD_digest_auth_check2() and specifiy MD5 explicitly.
connection | The MHD connection structure |
realm | The realm presented to the client |
username | The username needs to be authenticated |
password | The password used in the authentication |
nonce_timeout | The amount of time for a nonce to be invalid in seconds |
Authenticates the authorization header sent by the client. Uses MHD_DIGEST_ALG_MD5 (for now, for backwards-compatibility). Note that this MAY change to MHD_DIGEST_ALG_AUTO in the future. If you want to be sure you get MD5, use MHD_digest_auth_check2 and specifiy MD5 explicitly.
connection | The MHD connection structure |
realm | The realm presented to the client |
username | The username needs to be authenticated |
password | The password used in the authentication |
nonce_timeout | The amount of time for a nonce to be invalid in seconds |
Definition at line 1102 of file digestauth.c.
References MHD_DIGEST_ALG_MD5, and MHD_digest_auth_check2().
_MHD_EXTERN int MHD_digest_auth_check2 | ( | struct MHD_Connection * | connection, |
const char * | realm, | ||
const char * | username, | ||
const char * | password, | ||
unsigned int | nonce_timeout, | ||
enum MHD_DigestAuthAlgorithm | algo | ||
) |
Authenticates the authorization header sent by the client.
connection | The MHD connection structure |
realm | The realm presented to the client |
username | The username needs to be authenticated |
password | The password used in the authentication |
nonce_timeout | The amount of time for a nonce to be invalid in seconds |
algo | digest algorithms allowed for verification |
Definition at line 1176 of file digestauth.c.
References digest_auth_check_all(), NULL, and SETUP_DA.
Referenced by MHD_digest_auth_check().
_MHD_EXTERN int MHD_digest_auth_check_digest | ( | struct MHD_Connection * | connection, |
const char * | realm, | ||
const char * | username, | ||
const uint8_t | digest[MHD_MD5_DIGEST_SIZE], | ||
unsigned int | nonce_timeout | ||
) |
Authenticates the authorization header sent by the client Uses MHD_DIGEST_ALG_MD5 (required, as digest is of fixed size).
connection | The MHD connection structure |
realm | The realm presented to the client |
username | The username needs to be authenticated |
digest | An `unsigned char *' pointer to the binary hash for the precalculated hash value "username:realm:password"; length must be MHD_MD5_DIGEST_SIZE bytes |
nonce_timeout | The amount of time for a nonce to be invalid in seconds |
Authenticates the authorization header sent by the client. Uses MHD_DIGEST_ALG_MD5 (required, as digest is of fixed size).
connection | The MHD connection structure |
realm | The realm presented to the client |
username | The username needs to be authenticated |
digest | An `unsigned char *' pointer to the binary digest for the precalculated hash value "username:realm:password" of digest_size bytes |
nonce_timeout | The amount of time for a nonce to be invalid in seconds |
Definition at line 1253 of file digestauth.c.
References MHD_DIGEST_ALG_MD5, and MHD_digest_auth_check_digest2().
_MHD_EXTERN int MHD_digest_auth_check_digest2 | ( | struct MHD_Connection * | connection, |
const char * | realm, | ||
const char * | username, | ||
const uint8_t * | digest, | ||
size_t | digest_size, | ||
unsigned int | nonce_timeout, | ||
enum MHD_DigestAuthAlgorithm | algo | ||
) |
Authenticates the authorization header sent by the client.
connection | The MHD connection structure |
realm | The realm presented to the client |
username | The username needs to be authenticated |
digest | An `unsigned char *' pointer to the binary MD5 sum for the precalculated hash value "username:realm:password" of digest_size bytes |
digest_size | number of bytes in digest (size must match algo!) |
nonce_timeout | The amount of time for a nonce to be invalid in seconds |
algo | digest algorithms allowed for verification |
Authenticates the authorization header sent by the client.
connection | The MHD connection structure |
realm | The realm presented to the client |
username | The username needs to be authenticated |
digest | An `unsigned char *' pointer to the binary MD5 sum for the precalculated hash value "username:realm:password" of MHD_MD5_DIGEST_SIZE bytes |
digest_size | number of bytes in digest |
nonce_timeout | The amount of time for a nonce to be invalid in seconds |
algo | digest algorithms allowed for verification |
Definition at line 1213 of file digestauth.c.
References _, digest_auth_check_all(), MHD_PANIC, NULL, and SETUP_DA.
Referenced by MHD_digest_auth_check_digest().
char * MHD_digest_auth_get_username | ( | struct MHD_Connection * | connection | ) |
Get the username from the authorization header sent by the client
connection | The MHD connection structure |
Get the username from the authorization header sent by the client
connection | The MHD connection structure |
Definition at line 590 of file digestauth.c.
References _BASE, lookup_sub_value(), MAX_USERNAME_LENGTH, MHD_HEADER_KIND, MHD_HTTP_HEADER_AUTHORIZATION, MHD_lookup_connection_value(), MHD_STATICSTR_LEN_, and NULL.
int MHD_queue_auth_fail_response | ( | struct MHD_Connection * | connection, |
const char * | realm, | ||
const char * | opaque, | ||
struct MHD_Response * | response, | ||
int | signal_stale | ||
) |
Queues a response to request authentication from the client For now uses MD5 (for backwards-compatibility). Still, if you need to be sure, use #MHD_queue_fail_auth_response2().
connection | The MHD connection structure |
realm | The realm presented to the client |
opaque | string to user for opaque value |
response | reply to send; should contain the "access denied" body; note that this function will set the "WWW Authenticate" header and that the caller should not do this |
signal_stale | MHD_YES if the nonce is invalid to add 'stale=true' to the authentication header |
Queues a response to request authentication from the client. For now uses MD5 (for backwards-compatibility). Still, if you need to be sure, use #MHD_queue_fail_auth_response2().
connection | The MHD connection structure |
realm | the realm presented to the client |
opaque | string to user for opaque value |
response | reply to send; should contain the "access denied" body; note that this function will set the "WWW Authenticate" header and that the caller should not do this |
signal_stale | MHD_YES if the nonce is invalid to add 'stale=true' to the authentication header |
Definition at line 1399 of file digestauth.c.
References MHD_DIGEST_ALG_MD5, and MHD_queue_auth_fail_response2().
int MHD_queue_auth_fail_response2 | ( | struct MHD_Connection * | connection, |
const char * | realm, | ||
const char * | opaque, | ||
struct MHD_Response * | response, | ||
int | signal_stale, | ||
enum MHD_DigestAuthAlgorithm | algo | ||
) |
Queues a response to request authentication from the client
connection | The MHD connection structure |
realm | the realm presented to the client |
opaque | string to user for opaque value |
response | reply to send; should contain the "access denied" body; note that this function will set the "WWW Authenticate" header and that the caller should not do this |
signal_stale | MHD_YES if the nonce is invalid to add 'stale=true' to the authentication header |
algo | digest algorithm to use |
Definition at line 1285 of file digestauth.c.
References _, calculate_nonce(), check_nonce_nc(), MHD_Connection::daemon, MHD_Connection::method, MHD_add_response_header(), MHD_calloc_(), MHD_HTTP_HEADER_WWW_AUTHENTICATE, MHD_HTTP_UNAUTHORIZED, MHD_monotonic_sec_counter(), MHD_NO, MHD_queue_response(), MHD_YES, NONCE_STD_LEN, NULL, ret, SETUP_DA, and MHD_Connection::url.
Referenced by MHD_queue_auth_fail_response().
int MHD_queue_basic_auth_fail_response | ( | struct MHD_Connection * | connection, |
const char * | realm, | ||
struct MHD_Response * | response | ||
) |
Queues a response to request basic authentication from the client The given response object is expected to include the payload for the response; the "WWW-Authenticate" header will be added and the response queued with the 'UNAUTHORIZED' status code.
connection | The MHD connection structure |
realm | the realm presented to the client |
response | response object to modify and queue |
Queues a response to request basic authentication from the client. The given response object is expected to include the payload for the response; the "WWW-Authenticate" header will be added and the response queued with the 'UNAUTHORIZED' status code.
connection | The MHD connection structure |
realm | the realm presented to the client |
response | response object to modify and queue |
Definition at line 120 of file basicauth.c.
References _, MHD_Connection::daemon, MHD_add_response_header(), MHD_HTTP_HEADER_WWW_AUTHENTICATE, MHD_HTTP_UNAUTHORIZED, MHD_NO, MHD_queue_response(), MHD_YES, NULL, and ret.