xntlm

xntlm — Microsoft NTLM Authentication

Synopsis

GByteArray *        xntlm_negotiate                     (void);
gboolean            xntlm_parse_challenge               (gpointer challenge,
                                                         gint len,
                                                         gchar **nonce,
                                                         gchar **nt_domain,
                                                         gchar **w2k_domain);
GByteArray *        xntlm_authenticate                  (const gchar *nonce,
                                                         const gchar *domain,
                                                         const gchar *user,
                                                         const gchar *password,
                                                         const gchar *workstation);

Description

These functions are the main interface to the xntlm library.

Details

xntlm_negotiate ()

GByteArray *        xntlm_negotiate                     (void);

Creates an NTLM Type 1 (Negotiate) message

Returns :

the message

xntlm_parse_challenge ()

gboolean            xntlm_parse_challenge               (gpointer challenge,
                                                         gint len,
                                                         gchar **nonce,
                                                         gchar **nt_domain,
                                                         gchar **w2k_domain);

Attempts to parse the challenge in challenge. If nonce is non-NULL, the 8-byte nonce from challenge will be returned in it. Likewise, if nt_domain and/or w2k_domain are non-NULL, the server's domain names will be returned in them. The strings returned must be freed with g_free().

challenge :

buffer containing an NTLM Type 2 (Challenge) message

len :

the length of challenge

nonce :

return variable for the challenge nonce, or NULL

nt_domain :

return variable for the server NT domain, or NULL

w2k_domain :

return variable for the server W2k domain, or NULL

Returns :

TRUE if the challenge could be parsed, FALSE otherwise.

xntlm_authenticate ()

GByteArray *        xntlm_authenticate                  (const gchar *nonce,
                                                         const gchar *domain,
                                                         const gchar *user,
                                                         const gchar *password,
                                                         const gchar *workstation);

Generates an NTLM Type 3 (Authenticate) message from the given data. workstation is provided for completeness, but can basically always be left NULL.

nonce :

the nonce from an NTLM Type 2 (Challenge) message

domain :

the NT domain to authenticate against

user :

the name of the user in domain

password :

user's password

workstation :

the name of the local workstation authenticated against, or NULL.

Returns :

the NTLM Type 3 message