HTTP HTTP GET HTTP proxy HTTP proxy Digest auth multi # Server-side # this is returned first since we get no proxy-auth HTTP/1.1 407 Authorization Required to proxy me my dear Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345" Content-Length: 33 And you should ignore this data. # then this is returned when we get proxy-auth HTTP/1.1 200 OK Content-Length: 21 Server: no Nice proxy auth sir! HTTP/1.1 407 Authorization Required to proxy me my dear Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345" Content-Length: 33 HTTP/1.1 200 OK Content-Length: 21 Server: no Nice proxy auth sir! HTTP/1.1 407 Authorization Required to proxy me my dear Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345" Content-Length: 33 HTTP/1.1 200 OK Content-Length: 21 Server: no Nice proxy auth sir! # Client-side http # tool is what to use instead of 'curl' lib%TESTNUMBER !SSPI crypto proxy digest HTTP proxy auth Digest, then change proxy and do it again http://test.remote.example.com/path/%TESTNUMBER %HOSTIP %HTTPPORT silly:person custom.set.host.name # Verify data after the test has been "shot" GET http://test.remote.example.com/path/1588 HTTP/1.1 Host: test.remote.example.com Accept: */* Proxy-Connection: Keep-Alive GET http://test.remote.example.com/path/1588 HTTP/1.1 Host: test.remote.example.com Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="/path/1588", response="d0b2f000c7e3fca24452b5810713404a" Accept: */* Proxy-Connection: Keep-Alive GET http://test.remote.example.com/path/1588 HTTP/1.1 Host: test.remote.example.com Accept: */* Proxy-Connection: Keep-Alive GET http://test.remote.example.com/path/1588 HTTP/1.1 Host: test.remote.example.com Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="/path/1588", response="d0b2f000c7e3fca24452b5810713404a" Accept: */* Proxy-Connection: Keep-Alive