00001
00002
00003
00004
00005 #ifndef __HTTP_NTLM_H
00006 #define __HTTP_NTLM_H
00007
00008 typedef enum {
00009 CURLNTLM_NONE,
00010 CURLNTLM_BAD,
00011 CURLNTLM_FIRST,
00012 CURLNTLM_FINE,
00013
00014 CURLNTLM_LAST
00015 } CURLntlm;
00016
00017 CURLntlm Curl_input_ntlm(struct connectdata *conn, bool proxy, char *header);
00018
00019 CURLcode Curl_output_ntlm(struct connectdata *conn, bool proxy);
00020
00021 void Curl_ntlm_cleanup(struct connectdata *conn);
00022 #ifndef USE_NTLM
00023 #define Curl_ntlm_cleanup(x)
00024 #endif
00025
00026 #define NTLMFLAG_NEGOTIATE_UNICODE (1<<0)
00027
00028 #define NTLMFLAG_NEGOTIATE_OEM (1<<1)
00029
00030 #define NTLMFLAG_REQUEST_TARGET (1<<2)
00031
00032 #define NTLMFLAG_NEGOTIATE_SIGN (1<<4)
00033
00034 #define NTLMFLAG_NEGOTIATE_SEAL (1<<5)
00035
00036 #define NTLMFLAG_NEGOTIATE_DATAGRAM_STYLE (1<<6)
00037
00038 #define NTLMFLAG_NEGOTIATE_LM_KEY (1<<7)
00039
00040 #define NTLMFLAG_NEGOTIATE_NETWARE (1<<8)
00041
00042 #define NTLMFLAG_NEGOTIATE_NTLM_KEY (1<<9)
00043
00044 #define NTLMFLAG_NEGOTIATE_ANONYMOUS (1<<11)
00045
00046 #define NTLMFLAG_NEGOTIATE_DOMAIN_SUPPLIED (1<<12)
00047
00048 #define NTLMFLAG_NEGOTIATE_WORKSTATION_SUPPLIED (1<<13)
00049
00050 #define NTLMFLAG_NEGOTIATE_LOCAL_CALL (1<<14)
00051
00052 #define NTLMFLAG_NEGOTIATE_ALWAYS_SIGN (1<<15)
00053
00054 #define NTLMFLAG_TARGET_TYPE_DOMAIN (1<<16)
00055
00056 #define NTLMFLAG_TARGET_TYPE_SERVER (1<<17)
00057
00058 #define NTLMFLAG_TARGET_TYPE_SHARE (1<<18)
00059
00060 #define NTLMFLAG_NEGOTIATE_NTLM2_KEY (1<<19)
00061
00062 #define NTLMFLAG_REQUEST_INIT_RESPONSE (1<<20)
00063
00064 #define NTLMFLAG_REQUEST_ACCEPT_RESPONSE (1<<21)
00065
00066 #define NTLMFLAG_REQUEST_NONNT_SESSION_KEY (1<<22)
00067
00068 #define NTLMFLAG_NEGOTIATE_TARGET_INFO (1<<23)
00069
00070 #define NTLMFLAG_NEGOTIATE_128 (1<<29)
00071
00072 #define NTLMFLAG_NEGOTIATE_KEY_EXCHANGE (1<<30)
00073
00074 #define NTLMFLAG_NEGOTIATE_56 (1<<31)
00075
00076 #endif