The FreeRADIUS server  $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
Data Structures | Functions | Variables
rlm_digest.c File Reference

Handles SIP digest authentication requests from Cisco SIP servers. More...

#include <freeradius-devel/server/base.h>
#include <freeradius-devel/server/module_rlm.h>
#include <freeradius-devel/util/base16.h>
#include <freeradius-devel/util/md5.h>
+ Include dependency graph for rlm_digest.c:

Go to the source code of this file.

Data Structures

struct  rlm_digest_t
 

Functions

static unlang_action_t mod_authenticate (rlm_rcode_t *p_result, UNUSED module_ctx_t const *mctx, request_t *request)
 
static unlang_action_t mod_authorize (rlm_rcode_t *p_result, module_ctx_t const *mctx, request_t *request)
 
static int mod_instantiate (module_inst_ctx_t const *mctx)
 

Variables

static const fr_dict_attr_tattr_auth_type
 
static const fr_dict_attr_tattr_cleartext_password
 
static const fr_dict_attr_tattr_digest_algorithm
 
static const fr_dict_attr_tattr_digest_attributes
 
static const fr_dict_attr_tattr_digest_body_digest
 
static const fr_dict_attr_tattr_digest_cnonce
 
static const fr_dict_attr_tattr_digest_ha1
 
static const fr_dict_attr_tattr_digest_method
 
static const fr_dict_attr_tattr_digest_nonce
 
static const fr_dict_attr_tattr_digest_nonce_count
 
static const fr_dict_attr_tattr_digest_qop
 
static const fr_dict_attr_tattr_digest_realm
 
static const fr_dict_attr_tattr_digest_response
 
static const fr_dict_attr_tattr_digest_uri
 
static const fr_dict_attr_tattr_digest_user_name
 
static fr_dict_t const * dict_freeradius
 
static fr_dict_t const * dict_radius
 
module_rlm_t rlm_digest
 
fr_dict_autoload_t rlm_digest_dict []
 
fr_dict_attr_autoload_t rlm_digest_dict_attr []
 

Detailed Description

Handles SIP digest authentication requests from Cisco SIP servers.

Id
dfbb50bbb97289a16bf43d165357505cf370beba

Definition in file rlm_digest.c.


Data Structure Documentation

◆ rlm_digest_t

struct rlm_digest_t

Definition at line 33 of file rlm_digest.c.

+ Collaboration diagram for rlm_digest_t:
Data Fields
fr_dict_enum_value_t * auth_type

Function Documentation

◆ mod_authenticate()

static unlang_action_t mod_authenticate ( rlm_rcode_t p_result,
UNUSED module_ctx_t const *  mctx,
request_t request 
)
static

Definition at line 114 of file rlm_digest.c.

+ Here is the call graph for this function:

◆ mod_authorize()

static unlang_action_t mod_authorize ( rlm_rcode_t p_result,
module_ctx_t const *  mctx,
request_t request 
)
static

Definition at line 86 of file rlm_digest.c.

+ Here is the call graph for this function:

◆ mod_instantiate()

static int mod_instantiate ( module_inst_ctx_t const *  mctx)
static

Definition at line 453 of file rlm_digest.c.

+ Here is the call graph for this function:

Variable Documentation

◆ attr_auth_type

const fr_dict_attr_t* attr_auth_type
static

Definition at line 47 of file rlm_digest.c.

◆ attr_cleartext_password

const fr_dict_attr_t* attr_cleartext_password
static

Definition at line 48 of file rlm_digest.c.

◆ attr_digest_algorithm

const fr_dict_attr_t* attr_digest_algorithm
static

Definition at line 52 of file rlm_digest.c.

◆ attr_digest_attributes

const fr_dict_attr_t* attr_digest_attributes
static

Definition at line 51 of file rlm_digest.c.

◆ attr_digest_body_digest

const fr_dict_attr_t* attr_digest_body_digest
static

Definition at line 53 of file rlm_digest.c.

◆ attr_digest_cnonce

const fr_dict_attr_t* attr_digest_cnonce
static

Definition at line 54 of file rlm_digest.c.

◆ attr_digest_ha1

const fr_dict_attr_t* attr_digest_ha1
static

Definition at line 55 of file rlm_digest.c.

◆ attr_digest_method

const fr_dict_attr_t* attr_digest_method
static

Definition at line 56 of file rlm_digest.c.

◆ attr_digest_nonce

const fr_dict_attr_t* attr_digest_nonce
static

Definition at line 57 of file rlm_digest.c.

◆ attr_digest_nonce_count

const fr_dict_attr_t* attr_digest_nonce_count
static

Definition at line 58 of file rlm_digest.c.

◆ attr_digest_qop

const fr_dict_attr_t* attr_digest_qop
static

Definition at line 59 of file rlm_digest.c.

◆ attr_digest_realm

const fr_dict_attr_t* attr_digest_realm
static

Definition at line 60 of file rlm_digest.c.

◆ attr_digest_response

const fr_dict_attr_t* attr_digest_response
static

Definition at line 50 of file rlm_digest.c.

◆ attr_digest_uri

const fr_dict_attr_t* attr_digest_uri
static

Definition at line 61 of file rlm_digest.c.

◆ attr_digest_user_name

const fr_dict_attr_t* attr_digest_user_name
static

Definition at line 62 of file rlm_digest.c.

◆ dict_freeradius

fr_dict_t const* dict_freeradius
static

Definition at line 37 of file rlm_digest.c.

◆ dict_radius

fr_dict_t const* dict_radius
static

Definition at line 38 of file rlm_digest.c.

◆ rlm_digest

module_rlm_t rlm_digest
Initial value:
= {
.common = {
.name = "digest",
.inst_size = sizeof(rlm_digest_t),
},
.method_group = {
.bindings = (module_method_binding_t[]){
{ .section = SECTION_NAME("authenticate", CF_IDENT_ANY), .method = mod_authenticate },
{ .section = SECTION_NAME("recv", "Access-Request"), .method = mod_authorize },
}
}
}
#define CF_IDENT_ANY
Definition: cf_util.h:78
#define MODULE_MAGIC_INIT
Stop people using different module/library/server versions together.
Definition: dl_module.h:63
static unlang_action_t mod_authenticate(rlm_rcode_t *p_result, UNUSED module_ctx_t const *mctx, request_t *request)
Definition: rlm_digest.c:114
static unlang_action_t mod_authorize(rlm_rcode_t *p_result, module_ctx_t const *mctx, request_t *request)
Definition: rlm_digest.c:86
static int mod_instantiate(module_inst_ctx_t const *mctx)
Definition: rlm_digest.c:453
static int instantiate(module_inst_ctx_t const *mctx)
Definition: rlm_rest.c:1302
#define SECTION_NAME(_name1, _name2)
Define a section name consisting of a verb and a noun.
Definition: section.h:40
#define MODULE_BINDING_TERMINATOR
Terminate a module binding list.
Definition: module.h:151
Named methods exported by a module.
Definition: module.h:173

Definition at line 476 of file rlm_digest.c.

◆ rlm_digest_dict

fr_dict_autoload_t rlm_digest_dict
Initial value:
= {
{ .out = &dict_freeradius, .proto = "freeradius" },
{ .out = &dict_radius, .proto = "radius" },
{ NULL }
}
static fr_dict_t const * dict_freeradius
Definition: rlm_digest.c:37
static fr_dict_t const * dict_radius
Definition: rlm_digest.c:38

Definition at line 41 of file rlm_digest.c.

◆ rlm_digest_dict_attr

fr_dict_attr_autoload_t rlm_digest_dict_attr
Initial value:
= {
{ .out = &attr_auth_type, .name = "Auth-Type", .type = FR_TYPE_UINT32, .dict = &dict_freeradius },
{ .out = &attr_cleartext_password, .name = "Password.Cleartext", .type = FR_TYPE_STRING, .dict = &dict_freeradius },
{ .out = &attr_digest_response, .name = "Digest-Response", .type = FR_TYPE_STRING, .dict = &dict_radius },
{ .out = &attr_digest_attributes, .name = "Digest-Attributes", .type = FR_TYPE_TLV, .dict = &dict_radius },
{ .out = &attr_digest_algorithm, .name = "Digest-Attributes.Algorithm", .type = FR_TYPE_STRING, .dict = &dict_radius },
{ .out = &attr_digest_body_digest, .name = "Digest-Attributes.Body-Digest", .type = FR_TYPE_STRING, .dict = &dict_radius },
{ .out = &attr_digest_cnonce, .name = "Digest-Attributes.Cnonce", .type = FR_TYPE_STRING, .dict = &dict_radius },
{ .out = &attr_digest_ha1, .name = "Digest-Attributes.HA1", .type = FR_TYPE_STRING, .dict = &dict_radius },
{ .out = &attr_digest_method, .name = "Digest-Attributes.Method", .type = FR_TYPE_STRING, .dict = &dict_radius },
{ .out = &attr_digest_nonce, .name = "Digest-Attributes.Nonce", .type = FR_TYPE_STRING, .dict = &dict_radius },
{ .out = &attr_digest_nonce_count, .name = "Digest-Attributes.Nonce-Count", .type = FR_TYPE_STRING, .dict = &dict_radius },
{ .out = &attr_digest_qop, .name = "Digest-Attributes.Qop", .type = FR_TYPE_STRING, .dict = &dict_radius },
{ .out = &attr_digest_realm, .name = "Digest-Attributes.Realm", .type = FR_TYPE_STRING, .dict = &dict_radius },
{ .out = &attr_digest_uri, .name = "Digest-Attributes.Uri", .type = FR_TYPE_STRING, .dict = &dict_radius },
{ .out = &attr_digest_user_name, .name = "Digest-Attributes.User-Name", .type = FR_TYPE_STRING, .dict = &dict_radius },
{ NULL }
}
@ FR_TYPE_TLV
Contains nested attributes.
Definition: merged_model.c:118
@ FR_TYPE_STRING
String of printable characters.
Definition: merged_model.c:83
@ FR_TYPE_UINT32
32 Bit unsigned integer.
Definition: merged_model.c:99
static const fr_dict_attr_t * attr_digest_user_name
Definition: rlm_digest.c:62
static const fr_dict_attr_t * attr_digest_body_digest
Definition: rlm_digest.c:53
static const fr_dict_attr_t * attr_digest_ha1
Definition: rlm_digest.c:55
static const fr_dict_attr_t * attr_digest_method
Definition: rlm_digest.c:56
static const fr_dict_attr_t * attr_digest_qop
Definition: rlm_digest.c:59
static const fr_dict_attr_t * attr_cleartext_password
Definition: rlm_digest.c:48
static const fr_dict_attr_t * attr_digest_attributes
Definition: rlm_digest.c:51
static const fr_dict_attr_t * attr_digest_cnonce
Definition: rlm_digest.c:54
static const fr_dict_attr_t * attr_digest_algorithm
Definition: rlm_digest.c:52
static const fr_dict_attr_t * attr_digest_response
Definition: rlm_digest.c:50
static const fr_dict_attr_t * attr_digest_uri
Definition: rlm_digest.c:61
static const fr_dict_attr_t * attr_digest_realm
Definition: rlm_digest.c:60
static const fr_dict_attr_t * attr_digest_nonce_count
Definition: rlm_digest.c:58
static const fr_dict_attr_t * attr_auth_type
Definition: rlm_digest.c:47
static const fr_dict_attr_t * attr_digest_nonce
Definition: rlm_digest.c:57

Definition at line 65 of file rlm_digest.c.