|  | 
| static enum asn1_iterator_result | asn1_der_iterator_first (struct asn1_der_iterator *der, int size, const void *der_buf) | 
|  | 
| static enum asn1_iterator_result | asn1_der_iterator_next (struct asn1_der_iterator *der) | 
|  | 
| 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 unsigned char * | make_lm_v2_response (const unsigned char ntlm_v2_hash[16], const unsigned char *client_data, int client_data_len, const unsigned char challenge[8]) | 
|  | 
| static TDSRET | make_ntlm_hash (TDSSOCKET *tds, const char *passwd, unsigned char ntlm_hash[16]) | 
|  | 
| static TDSRET | make_ntlm_v2_hash (TDSSOCKET *tds, const char *passwd, unsigned char ntlm_v2_hash[16]) | 
|  | 
| static void | memxor (uint8_t *dest, const uint8_t *src, size_t len) | 
|  | 
| static void | mgf_mask (uint8_t *dest, size_t dest_len, const uint8_t *mask, size_t mask_len) | 
|  | 
| static void | nettle_mpz_get_str_256 (unsigned length, uint8_t *s, const mpz_t x) | 
|  | 
| static void | nettle_mpz_set_str_256_u (mpz_t x, unsigned length, const uint8_t *s) | 
|  | 
| static int | oaep_encrypt (size_t key_size, size_t length, const uint8_t *message, mpz_t m) | 
|  | 
| static int | rsa_encrypt_oaep (const struct rsa_public_key *key, size_t length, const uint8_t *message, mpz_t gibberish) | 
|  | 
| static const BIGNUM * | rsa_get_n (const RSA *rsa) | 
|  | 
| static void | rsa_public_key_clear (struct rsa_public_key *key) | 
|  | 
| static int | rsa_public_key_from_der_iterator (struct rsa_public_key *key, unsigned key_bits, struct asn1_der_iterator *der) | 
|  | 
| static void | rsa_public_key_init (struct rsa_public_key *key) | 
|  | 
| static void | sha1 (uint8_t *hash, const void *data, size_t len) | 
|  | 
| TDSAUTHENTICATION * | tds5_negotiate_get_auth (TDSSOCKET *tds) | 
|  | 
| static void * | tds5_rsa_encrypt (const void *key, size_t key_len, const void *nonce, size_t nonce_len, const char *pwd, size_t *em_size) | 
|  | 
| static TDSRET | tds7_send_auth (TDSSOCKET *tds, const unsigned char *challenge, uint32_t flags, const unsigned char *names_blob, int names_blob_len) | 
|  | 
| static TDSRET | tds_answer_challenge (TDSSOCKET *tds, TDSLOGIN *login, const unsigned char *challenge, uint32_t *flags, const unsigned char *names_blob, int names_blob_len, TDSANSWER *answer, unsigned char **ntlm_v2_response) | 
|  | Crypt a given password using schema required for NTLMv1 or NTLM2 authentication. 
 | 
|  | 
| static TDSRET | tds_answer_challenge_ntlmv2 (TDSSOCKET *tds, TDSLOGIN *login, const unsigned char *challenge, uint32_t *flags, const unsigned char *names_blob, 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 TDSRET | tds_ntlm_free (TDSCONNECTION *conn, TDSAUTHENTICATION *tds_auth) | 
|  | 
| TDSAUTHENTICATION * | tds_ntlm_get_auth (TDSSOCKET *tds) | 
|  | Build a NTLMSPP packet to send to server. 
 | 
|  | 
| static TDSRET | tds_ntlm_handle_next (TDSSOCKET *tds, struct tds_authentication *auth, size_t len) | 
|  | 
| static void | unix_to_nt_time (uint64_t *nt, struct timeval *tv) | 
|  | put a 8 byte filetime from a time_t This takes GMT as input 
 | 
|  | 
Functions for handling authentication.