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"
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) |
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. More... | |
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 | ||
) |
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 242 of file base.c.
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 |