#include "squid.h"#include "auth/CredentialsCache.h"#include "auth/digest/Config.h"#include "auth/digest/Scheme.h"#include "auth/digest/User.h"#include "auth/digest/UserRequest.h"#include "auth/Gadgets.h"#include "auth/State.h"#include "auth/toUtf.h"#include "base/LookupTable.h"#include "base/Random.h"#include "cache_cf.h"#include "event.h"#include "helper.h"#include "HttpHeaderTools.h"#include "HttpReply.h"#include "HttpRequest.h"#include "md5.h"#include "mgr/Registration.h"#include "rfc2617.h"#include "sbuf/SBuf.h"#include "sbuf/StringConvert.h"#include "Store.h"#include "StrList.h"#include "wordlist.h"#include "mem/Allocator.h"#include "mem/Pool.h"
Go to the source code of this file.
Enumerations | |
| enum | http_digest_attr_type { DIGEST_USERNAME , DIGEST_REALM , DIGEST_QOP , DIGEST_ALGORITHM , DIGEST_URI , DIGEST_NONCE , DIGEST_NC , DIGEST_CNONCE , DIGEST_RESPONSE , DIGEST_INVALID_ATTR } |
Functions | |
| static void | authenticateDigestNonceCacheCleanup (void *data) |
| static digest_nonce_h * | authenticateDigestNonceFindNonce (const char *noncehex) |
| static void | authenticateDigestNonceDelete (digest_nonce_h *nonce) |
| static void | authenticateDigestNonceSetup (void) |
| static void | authDigestNonceEncode (digest_nonce_h *nonce) |
| static void | authDigestNonceLink (digest_nonce_h *nonce) |
| static void | authDigestNonceUserUnlink (digest_nonce_h *nonce) |
| digest_nonce_h * | authenticateDigestNonceNew (void) |
| void | authenticateDigestNonceShutdown (void) |
| void | authDigestNonceUnlink (digest_nonce_h *nonce) |
| const char * | authenticateDigestNonceNonceHex (const digest_nonce_h *nonce) |
| int | authDigestNonceIsValid (digest_nonce_h *nonce, char nc[9]) |
| int | authDigestNonceIsStale (digest_nonce_h *nonce) |
| int | authDigestNonceLastRequest (digest_nonce_h *nonce) |
| void | authDigestNoncePurge (digest_nonce_h *nonce) |
| static void | authenticateDigestStats (StoreEntry *sentry) |
| void | authDigestUserLinkNonce (Auth::Digest::User *user, digest_nonce_h *nonce) |
| static Auth::UserRequest::Pointer | authDigestLogUsername (char *username, Auth::UserRequest::Pointer auth_user_request, const char *requestRealm) |
Variables | |
| static AUTHSSTATS | authenticateDigestStats |
| Helper::ClientPointer | digestauthenticators |
| static hash_table * | digest_nonce_cache |
| static int | authdigest_initialised = 0 |
| static Mem::Allocator * | digest_nonce_pool = nullptr |
| static const LookupTable< http_digest_attr_type >::Record | DigestAttrs [] |
| LookupTable< http_digest_attr_type > | DigestFieldsLookupTable (DIGEST_INVALID_ATTR, DigestAttrs) |
Enumeration Type Documentation
◆ http_digest_attr_type
Function Documentation
◆ authDigestLogUsername()
|
static |
Definition at line 684 of file Config.cc.
References assert, Auth::AUTH_BROKEN, Config, debugs, Auth::SchemeConfig::Find(), and Auth::UserRequest::user().
◆ authDigestNonceEncode()
|
static |
Definition at line 101 of file Config.cc.
References CvtHex(), H(), SquidMD5Final(), SquidMD5Init(), SquidMD5Update(), xcalloc(), and xfree.
Referenced by authenticateDigestNonceNew().
◆ authDigestNonceIsStale()
| int authDigestNonceIsStale | ( | digest_nonce_h * | nonce | ) |
Definition at line 363 of file Config.cc.
References Config, current_time, debugs, and Auth::SchemeConfig::Find().
Referenced by authDigestNonceIsValid(), and authenticateDigestNonceCacheCleanup().
◆ authDigestNonceIsValid()
| int authDigestNonceIsValid | ( | digest_nonce_h * | nonce, |
| char | nc[9] | ||
| ) |
Definition at line 325 of file Config.cc.
References authDigestNonceIsStale(), Config, debugs, and Auth::SchemeConfig::Find().
◆ authDigestNonceLastRequest()
| int authDigestNonceLastRequest | ( | digest_nonce_h * | nonce | ) |
- Return values
-
0 the digest is not stale yet -1 the digest will be stale on the next request
Definition at line 406 of file Config.cc.
References Config, debugs, and Auth::SchemeConfig::Find().
◆ authDigestNonceLink()
|
static |
Definition at line 270 of file Config.cc.
References assert, and debugs.
Referenced by authDigestUserLinkNonce(), and authenticateDigestNonceNew().
◆ authDigestNoncePurge()
| void authDigestNoncePurge | ( | digest_nonce_h * | nonce | ) |
Definition at line 426 of file Config.cc.
References authDigestNonceUnlink(), digest_nonce_cache, and hash_remove_link().
Referenced by authenticateDigestNonceCacheCleanup(), and authenticateDigestNonceShutdown().
◆ authDigestNonceUnlink()
| void authDigestNonceUnlink | ( | digest_nonce_h * | nonce | ) |
Definition at line 279 of file Config.cc.
References assert, authenticateDigestNonceDelete(), DBG_IMPORTANT, and debugs.
Referenced by authDigestNoncePurge(), and authDigestNonceUserUnlink().
◆ authDigestNonceUserUnlink()
|
static |
Definition at line 612 of file Config.cc.
References authDigestNonceUnlink(), dlink_node::data, dlinkDelete(), and dlink_node::next.
Referenced by authenticateDigestNonceCacheCleanup().
◆ authDigestUserLinkNonce()
| void authDigestUserLinkNonce | ( | Auth::Digest::User * | user, |
| digest_nonce_h * | nonce | ||
| ) |
Definition at line 650 of file Config.cc.
References assert, authDigestNonceLink(), dlinkAddTail(), and node::next.
◆ authenticateDigestNonceCacheCleanup()
|
static |
Definition at line 235 of file Config.cc.
References assert, authDigestNonceIsStale(), authDigestNoncePurge(), authDigestNonceUserUnlink(), authenticateDigestNonceCacheCleanup(), Config, current_time, debugs, digest_nonce_cache, eventAdd(), Auth::SchemeConfig::Find(), hash_first(), and hash_next().
Referenced by authenticateDigestNonceCacheCleanup(), and authenticateDigestNonceSetup().
◆ authenticateDigestNonceDelete()
|
static |
Definition at line 188 of file Config.cc.
References assert, digest_nonce_pool, Mem::Allocator::freeOne(), and safe_free.
Referenced by authDigestNonceUnlink().
◆ authenticateDigestNonceFindNonce()
|
static |
Definition at line 305 of file Config.cc.
References authenticateDigestNonceNonceHex(), debugs, digest_nonce_cache, and hash_lookup().
Referenced by authenticateDigestNonceNew().
◆ authenticateDigestNonceNew()
| digest_nonce_h * authenticateDigestNonceNew | ( | void | ) |
Definition at line 120 of file Config.cc.
References Mem::Allocator::alloc(), authDigestNonceEncode(), authDigestNonceLink(), authenticateDigestNonceFindNonce(), current_time, debugs, digest_nonce_cache, digest_nonce_pool, hash_join(), and RandomSeed32().
◆ authenticateDigestNonceNonceHex()
| const char * authenticateDigestNonceNonceHex | ( | const digest_nonce_h * | nonce | ) |
Definition at line 296 of file Config.cc.
Referenced by authenticateDigestNonceFindNonce().
◆ authenticateDigestNonceSetup()
|
static |
Definition at line 201 of file Config.cc.
References assert, authenticateDigestNonceCacheCleanup(), Config, digest_nonce_cache, digest_nonce_pool, eventAdd(), Auth::SchemeConfig::Find(), hash_create(), hash_string, and memPoolCreate.
◆ authenticateDigestNonceShutdown()
| void authenticateDigestNonceShutdown | ( | void | ) |
Definition at line 214 of file Config.cc.
References assert, authDigestNoncePurge(), debugs, digest_nonce_cache, hash_first(), and hash_next().
◆ authenticateDigestStats()
|
static |
Definition at line 603 of file Config.cc.
References digestauthenticators.
Variable Documentation
◆ authdigest_initialised
◆ authenticateDigestStats
|
static |
◆ digest_nonce_cache
|
static |
Definition at line 51 of file Config.cc.
Referenced by authDigestNoncePurge(), authenticateDigestNonceCacheCleanup(), authenticateDigestNonceFindNonce(), authenticateDigestNonceNew(), authenticateDigestNonceSetup(), and authenticateDigestNonceShutdown().
◆ digest_nonce_pool
|
static |
Definition at line 54 of file Config.cc.
Referenced by authenticateDigestNonceDelete(), authenticateDigestNonceNew(), and authenticateDigestNonceSetup().
◆ DigestAttrs
|
static |
◆ digestauthenticators
| Helper::ClientPointer digestauthenticators |
Definition at line 49 of file Config.cc.
Referenced by authenticateDigestStats().
◆ DigestFieldsLookupTable
| LookupTable< http_digest_attr_type > DigestFieldsLookupTable(DIGEST_INVALID_ATTR, DigestAttrs) | ( | DIGEST_INVALID_ATTR | , |
| DigestAttrs | |||
| ) |
