HTTP HTTP GET HTTP proxy HTTP proxy NTLM auth HTTP Digest auth # Server-side # this is returned first since we get no proxy-auth HTTP/1.1 407 Authorization Required to proxy me my dear swsclose Proxy-Authenticate: NTLM And you should ignore this data. # then this is returned since we get no server-auth HTTP/1.1 200 Authorizated fine Content-Length: 27 Welcome to the end station HTTP/1.1 407 NTLM type-1 received sending back type-2 Server: Microsoft-IIS/5.0 Content-Length: 34 Content-Type: text/html; charset=iso-8859-1 Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== This is not the real page either! # This is supposed to be returned when the server gets the second # Authorization: NTLM line passed-in from the client HTTP/1.1 401 You now need to authenticate with the host Server: Microsoft-IIS/5.0 WWW-Authenticate: Digest realm="r e a l m", nonce="abcdef" Content-Length: 46 Content-Type: text/html; charset=iso-8859-1 We have not authenticated with the server yet HTTP/1.1 407 NTLM type-1 received sending back type-2 Server: Microsoft-IIS/5.0 Content-Length: 34 Content-Type: text/html; charset=iso-8859-1 Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== HTTP/1.1 401 You now need to authenticate with the host Server: Microsoft-IIS/5.0 WWW-Authenticate: Digest realm="r e a l m", nonce="abcdef" Content-Length: 46 Content-Type: text/html; charset=iso-8859-1 HTTP/1.1 200 Authorizated fine Content-Length: 27 Welcome to the end station # Client-side http NTLM HTTP with proxy-requiring-NTLM to site-requiring-Digest # we force our own host name, in order to make the test machine independent CURL_GETHOSTNAME=curlhost # we try to use the LD_PRELOAD hack, if not a debug build LD_PRELOAD=%PWD/libtest/.libs/libhostname.so http://data.from.server.requiring.digest.hohoho.com/169 --proxy http://%HOSTIP:%HTTPPORT --proxy-user foo:bar --proxy-ntlm --digest --user digest:alot chkhostname curlhost # Verify data after the test has been "shot" ^User-Agent: curl/.* GET http://data.from.server.requiring.digest.hohoho.com/169 HTTP/1.1 Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= User-Agent: curl/7.12.0-CVS (i686-pc-linux-gnu) libcurl/7.12.0-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.3 Host: data.from.server.requiring.digest.hohoho.com Accept: */* Proxy-Connection: Keep-Alive GET http://data.from.server.requiring.digest.hohoho.com/169 HTTP/1.1 Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAAAwADAHAAAAAIAAgAcwAAAAAAAAAAAAAABoKBAIP6B+XVQ6vQsx3DfDXUVhd9436GAxPu0IYcl2Z7LxHmNeOAWQ+vxUmhuCFJBUgXCWZvb2N1cmxob3N0 User-Agent: curl/7.12.0-CVS (i686-pc-linux-gnu) libcurl/7.12.0-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.3 Host: data.from.server.requiring.digest.hohoho.com Accept: */* Proxy-Connection: Keep-Alive GET http://data.from.server.requiring.digest.hohoho.com/169 HTTP/1.1 Authorization: Digest username="digest", realm="r e a l m", nonce="abcdef", uri="/169", response="95d48591985a03c4b49cb962aa7bd3e6" User-Agent: curl/7.12.0-CVS (i686-pc-linux-gnu) libcurl/7.12.0-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.3 Host: data.from.server.requiring.digest.hohoho.com Accept: */* Proxy-Connection: Keep-Alive