The FreeRADIUS server $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
Loading...
Searching...
No Matches
rlm_mschap.h
Go to the documentation of this file.
1#pragma once
2/* @copyright 2006-2015 The FreeRADIUS server project */
3RCSIDH(rlm_mschap_h, "$Id: a90d61621f82047e786e07051d5fea1079b4a6ff $")
4
5#include "config.h"
6#include "mschap.h"
7
8#include <freeradius-devel/util/dict.h>
9#include <freeradius-devel/util/slab.h>
10#include <freeradius-devel/server/tmpl.h>
11
12#ifdef WITH_AUTH_WINBIND
13# include <wbclient.h>
14#endif
15
16/* Method of authentication we are going to use */
17typedef enum {
18 AUTH_INTERNAL = 0, /* MS-CHAP-Use-NTLM-Auth = no */
19 AUTH_NTLMAUTH_EXEC = 1, /* MS-CHAP-Use-NTLM-Auth = yes */
20 AUTH_AUTO = 2, /* MS-CHAP-Use-NTLM-Auth = auto */
21#ifdef WITH_AUTH_WINBIND
22 AUTH_WBCLIENT = 3
23#endif
25
32
34
40
41typedef struct {
43
44 bool normify;
45
49 bool with_ntdomain_hack; /* this should be in another module */
50
51 char const *ntlm_auth;
53 char const *ntlm_cpw;
54
56 char const *retry_msg;
58 char const *wb_username;
59#ifdef WITH_AUTH_WINBIND
60 bool wb_retry_with_normalised_username;
61 fr_slab_config_t reuse;
62#endif
63#ifdef __APPLE__
64 bool open_directory;
65#endif
67
68#ifdef WITH_AUTH_WINBIND
69typedef struct {
70 struct wbcContext *ctx;
72
75
76typedef struct {
77 rlm_mschap_t const *inst; //!< Instance of rlm_mschap.
78 mschap_slab_list_t *slab; //!< Slab list for winbind handles.
79} rlm_mschap_thread_t;
80#endif
101
102typedef struct {
103 fr_value_box_list_t cpw_user;
104 fr_value_box_list_t cpw_domain;
105 fr_value_box_list_t local_cpw_result;
106 uint8_t new_nt_encrypted[516];
110
111typedef struct {
112 char const *name;
120#ifdef WITH_AUTH_WINBIND
121 rlm_mschap_thread_t *t;
122#endif
#define RCSIDH(h, id)
Definition build.h:484
#define HIDDEN
Definition build.h:314
Value of an enumerated attribute.
Definition dict.h:227
unsigned char uint8_t
#define NT_DIGEST_LENGTH
Definition mschap.h:7
char const * ntlm_cpw
Definition rlm_mschap.h:53
HIDDEN fr_dict_attr_t const * attr_smb_account_ctrl
Definition rlm_mschap.c:243
char const * wb_username
Definition rlm_mschap.h:58
tmpl_t const * username
Definition rlm_mschap.h:82
fr_dict_enum_value_t * auth_type
Definition rlm_mschap.h:42
HIDDEN fr_dict_attr_t const * attr_auth_type
fr_value_box_t wb_domain
Definition rlm_mschap.h:96
MSCHAP_AUTH_METHOD method
Definition rlm_mschap.h:115
MSCHAP_AUTH_METHOD method
Definition rlm_mschap.h:57
tmpl_t const * mppe_encryption_types
Definition rlm_mschap.h:92
fr_time_delta_t ntlm_auth_timeout
Definition rlm_mschap.h:52
fr_pair_t * cpw
Definition rlm_mschap.h:118
HIDDEN fr_dict_attr_t const * attr_eap_identity
Definition base.c:91
HIDDEN fr_dict_attr_t const * attr_nt_password
Definition rlm_ldap.c:323
char const * ntlm_auth
Definition rlm_mschap.h:51
char const * name
Definition rlm_mschap.h:112
HIDDEN fr_dict_attr_t const * attr_ms_chap_new_nt_password
Definition rlm_mschap.c:237
HIDDEN fr_dict_attr_t const * attr_ms_chap_peer_challenge
tmpl_t const * ntlm_cpw_domain
Definition rlm_mschap.h:98
fr_pair_t * new_hash
Definition rlm_mschap.h:108
tmpl_t const * ntlm_cpw_username
Definition rlm_mschap.h:97
fr_value_box_t wb_username
Definition rlm_mschap.h:95
HIDDEN fr_dict_attr_t const * attr_lm_password
tmpl_t const * chap_nt_enc_pw
Definition rlm_mschap.h:94
tmpl_t const * mppe_send_key
Definition rlm_mschap.h:91
HIDDEN fr_dict_attr_t const * attr_ms_chap_new_cleartext_password
Definition rlm_mschap.c:236
char const * retry_msg
Definition rlm_mschap.h:56
bool allow_retry
Definition rlm_mschap.h:55
rlm_mschap_t const * inst
Definition rlm_mschap.h:113
fr_value_box_list_t cpw_user
Definition rlm_mschap.h:103
tmpl_t const * chap_response
Definition rlm_mschap.h:85
bool require_encryption
Definition rlm_mschap.h:47
tmpl_t const * local_cpw
Definition rlm_mschap.h:99
fr_value_box_list_t cpw_domain
Definition rlm_mschap.h:104
fr_pair_t * smb_ctrl
Definition rlm_mschap.h:117
tmpl_t const * chap_challenge
Definition rlm_mschap.h:84
tmpl_t const * chap2_response
Definition rlm_mschap.h:86
bool require_strong
Definition rlm_mschap.h:48
fr_value_box_list_t local_cpw_result
Definition rlm_mschap.h:105
tmpl_t const * mppe_encryption_policy
Definition rlm_mschap.h:89
bool with_ntdomain_hack
Definition rlm_mschap.h:49
mschap_auth_call_env_t * env_data
Definition rlm_mschap.h:114
HIDDEN fr_dict_attr_t const * attr_ms_chap_user_name
Definition rlm_mschap.c:240
tmpl_t const * mppe_recv_key
Definition rlm_mschap.h:90
tmpl_t const * chap_error
Definition rlm_mschap.h:83
tmpl_t const * chap2_cpw
Definition rlm_mschap.h:93
tmpl_t const * chap2_success
Definition rlm_mschap.h:87
mschap_cpw_ctx_t * cpw_ctx
Definition rlm_mschap.h:119
fr_pair_t * nt_password
Definition rlm_mschap.h:116
MSCHAP_AUTH_METHOD
Definition rlm_mschap.h:17
@ AUTH_AUTO
Definition rlm_mschap.h:20
@ AUTH_INTERNAL
Definition rlm_mschap.h:18
@ AUTH_NTLMAUTH_EXEC
Definition rlm_mschap.h:19
HIDDEN fr_dict_attr_t const * attr_smb_account_ctrl_text
Definition rlm_mschap.c:242
HIDDEN fr_dict_attr_t const * attr_cleartext_password
Definition rlm_ldap.c:320
tmpl_t const * chap_mppe_keys
Definition rlm_mschap.h:88
HIDDEN fr_dict_attr_t const * attr_ms_chap_use_ntlm_auth
Definition rlm_mschap.c:239
#define FR_SLAB_FUNCS(_name, _type)
Define type specific wrapper functions for slabs and slab elements.
Definition slab.h:120
#define FR_SLAB_TYPES(_name, _type)
Define type specific wrapper structs for slabs and slab elements.
Definition slab.h:72
Tuneable parameters for slabs.
Definition slab.h:42
eap_aka_sim_process_conf_t * inst
Stores an attribute, a value and various bits of other data.
Definition pair.h:68
A time delta, a difference in time measured in nanoseconds.
Definition time.h:80