![]() |
The FreeRADIUS server $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
|
#include <freeradius-devel/util/net.h>#include <freeradius-devel/util/md5.h>#include <freeradius-devel/util/struct.h>#include "tacacs.h"#include "attrs.h"
Include dependency graph for base.c:Go to the source code of this file.
Macros | |
| #define | ASCII(_prefix, _field) |
| #define | CHECK(_length) |
| #define | HEXIT(_prefix, _field) |
| #define | PRINT(_fmt, ...) fr_log(log, L_DBG, file, line, _fmt, ## __VA_ARGS__) |
| #define | REQUIRE(_length) |
Functions | |
| void | _fr_tacacs_packet_log_hex (fr_log_t const *log, fr_tacacs_packet_t const *packet, size_t packet_len, char const *file, int line) |
| static bool | attr_valid (fr_dict_attr_t *da) |
| int | fr_tacacs_body_xor (fr_tacacs_packet_t const *pkt, uint8_t *body, size_t body_len, char const *secret, size_t secret_len) |
| XOR the body based on the secret key. | |
| void | fr_tacacs_global_free (void) |
| int | fr_tacacs_global_init (void) |
| ssize_t | fr_tacacs_length (uint8_t const *buffer, size_t buffer_len) |
| static void | print_args (fr_log_t const *log, char const *file, int line, size_t arg_cnt, uint8_t const *argv, uint8_t const *start, uint8_t const *end) |
| static void | print_ascii (fr_log_t const *log, char const *file, int line, char const *prefix, uint8_t const *data, size_t datalen) |
| static void | print_hex (fr_log_t const *log, char const *file, int line, char const *prefix, uint8_t const *data, size_t datalen) |
| #define ASCII | ( | _prefix, | |
| _field | |||
| ) |
| #define CHECK | ( | _length | ) |
| #define HEXIT | ( | _prefix, | |
| _field | |||
| ) |
| #define REQUIRE | ( | _length | ) |
| void _fr_tacacs_packet_log_hex | ( | fr_log_t const * | log, |
| fr_tacacs_packet_t const * | packet, | ||
| size_t | packet_len, | ||
| char const * | file, | ||
| int | line | ||
| ) |
|
static |
| int fr_tacacs_body_xor | ( | fr_tacacs_packet_t const * | pkt, |
| uint8_t * | body, | ||
| size_t | body_len, | ||
| char const * | secret, | ||
| size_t | secret_len | ||
| ) |
| void fr_tacacs_global_free | ( | void | ) |
| int fr_tacacs_global_init | ( | void | ) |
Return how long a TACACS+ packet is Note that we only look at the 12 byte packet header. We don't (yet) do validation on authentication / authorization / accounting headers. The packet may still be determined later to be invalid.
| buffer | to check |
| buffer_len | length of the buffer |
Definition at line 211 of file base.c.
Here is the caller graph for this function:| fr_dict_attr_t const* attr_tacacs_accounting_flags |
| fr_dict_attr_t const* attr_tacacs_accounting_status |
| fr_dict_attr_t const* attr_tacacs_action |
| fr_dict_attr_t const* attr_tacacs_argument_list |
| fr_dict_attr_t const* attr_tacacs_authentication_continue_flags |
| fr_dict_attr_t const* attr_tacacs_authentication_flags |
| fr_dict_attr_t const* attr_tacacs_authentication_method |
| fr_dict_attr_t const* attr_tacacs_authentication_service |
| fr_dict_attr_t const* attr_tacacs_authentication_status |
| fr_dict_attr_t const* attr_tacacs_authentication_type |
| fr_dict_attr_t const* attr_tacacs_authorization_status |
| fr_dict_attr_t const* attr_tacacs_chap_challenge |
| fr_dict_attr_t const* attr_tacacs_chap_password |
| fr_dict_attr_t const* attr_tacacs_client_port |
| fr_dict_attr_t const* attr_tacacs_data |
| fr_dict_attr_t const* attr_tacacs_flags |
| fr_dict_attr_t const* attr_tacacs_length |
| fr_dict_attr_t const* attr_tacacs_mschap2_response |
| fr_dict_attr_t const* attr_tacacs_mschap_challenge |
| fr_dict_attr_t const* attr_tacacs_mschap_response |
| fr_dict_attr_t const* attr_tacacs_packet |
| fr_dict_attr_t const* attr_tacacs_packet_body_type |
| fr_dict_attr_t const* attr_tacacs_packet_type |
| fr_dict_attr_t const* attr_tacacs_privilege_level |
| fr_dict_attr_t const* attr_tacacs_remote_address |
| fr_dict_attr_t const* attr_tacacs_sequence_number |
| fr_dict_attr_t const* attr_tacacs_server_message |
| fr_dict_attr_t const* attr_tacacs_session_id |
| fr_dict_attr_t const* attr_tacacs_user_message |
| fr_dict_attr_t const* attr_tacacs_user_name |
| fr_dict_attr_t const* attr_tacacs_user_password |
| fr_dict_attr_t const* attr_tacacs_version_major |
| fr_dict_attr_t const* attr_tacacs_version_minor |
| char const* fr_tacacs_packet_names[FR_TACACS_CODE_MAX] |
| fr_dict_autoload_t libfreeradius_tacacs_dict |
| fr_dict_attr_autoload_t libfreeradius_tacacs_dict_attr |
| fr_dict_protocol_t libfreeradius_tacacs_dict_protocol |
1.9.8