FreeTDS API

- Main Page
- Related Pages
- Modules
- Classes
- Files

All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Classes | Macros | Typedefs | Functions | Variables
Authentication
LibTDS API

Functions for handling authentication. More...

## Classes

struct | names_blob_prefix_t
struct | tds_answer
struct | tds_ntlm_auth

## Macros

#define | offsetof(st, m) ((size_t) ( (char *)&((st *)(0))->m - (char *)0 ))

## Typedefs

typedef struct tds_answer | TDSANSWER
typedef struct tds_ntlm_auth | TDSNTLMAUTH

## Functions

static void | convert_to_upper (char *buf, size_t len)
static size_t | convert_to_usc2le_string (TDSSOCKET *tds, const char *s, size_t len, char *out)
static void | fill_names_blob_prefix (names_blob_prefix_t *prefix)
static void | generate_random_buffer (unsigned char *out, int len)
static unsigned char * | make_lm_v2_response (const unsigned char ntlm_v2_hash[16], const unsigned char *client_data, TDS_INT client_data_len, const unsigned char challenge[8])
static int | make_ntlm_hash (TDSSOCKET *tds, const char *passwd, unsigned char ntlm_hash[16])
static int | make_ntlm_v2_hash (TDSSOCKET *tds, const char *passwd, unsigned char ntlm_v2_hash[16])
static int | tds7_send_auth (TDSSOCKET *tds, const unsigned char *challenge, TDS_UINT flags, const unsigned char *names_blob, TDS_INT names_blob_len)
static int | tds_answer_challenge (TDSSOCKET *tds, TDSCONNECTION *connection, const unsigned char *challenge, TDS_UINT *flags, const unsigned char *names_blob, TDS_INT names_blob_len, TDSANSWER *answer, unsigned char **ntlm_v2_response)
| Crypt a given password using schema required for NTLMv1 or NTLM2 authentication.
static int | tds_answer_challenge_ntlmv2 (TDSSOCKET *tds, TDSCONNECTION *connection, const unsigned char *challenge, TDS_UINT *flags, const unsigned char *names_blob, TDS_INT names_blob_len, TDSANSWER *answer, unsigned char **ntlm_v2_response)
static void | tds_convert_key (const unsigned char *key_56, DES_KEY *ks)
static void | tds_encrypt_answer (const unsigned char *hash, const unsigned char *challenge, unsigned char *answer)
static int | tds_ntlm_free (TDSSOCKET *tds, TDSAUTHENTICATION *tds_auth)
TDSAUTHENTICATION * | tds_ntlm_get_auth (TDSSOCKET *tds)
| Build a NTLMSPP packet to send to server.
static int | tds_ntlm_handle_next (TDSSOCKET *tds, struct tds_authentication *auth, size_t len)
static void | unix_to_nt_time (TDS_UINT8 *nt, time_t t)
| put a 8 byte filetime from a time_t This takes GMT as input

## Variables

static const unsigned char | ntlm_id [] = "NTLMSSP"

## Detailed Description

Functions for handling authentication.

## Function Documentation

static int tds_answer_challenge | ( | TDSSOCKET * | tds,
|  | TDSCONNECTION * | connection,
|  | const unsigned char * | challenge,
|  | TDS_UINT * | flags,
|  | const unsigned char * | names_blob,
|  | TDS_INT | names_blob_len,
|  | TDSANSWER * | answer,
|  | unsigned char ** | ntlm_v2_response
| ) |  |

static

Crypt a given password using schema required for NTLMv1 or NTLM2 authentication.

Parameters

  passwd | clear text domain password
  challenge | challenge data given by server
  flags | NTLM flags from server side
  answer | buffer where to store crypted password

TDSAUTHENTICATION* tds_ntlm_get_auth | ( | TDSSOCKET * | tds | ) |

Build a NTLMSPP packet to send to server.

Parameters

  tds | A pointer to the TDSSOCKET structure managing a client/server operation.

Returns
  authentication info