1*6236dae4SAndroid Build Coastguard Worker<testcase> 2*6236dae4SAndroid Build Coastguard Worker<info> 3*6236dae4SAndroid Build Coastguard Worker<keywords> 4*6236dae4SAndroid Build Coastguard WorkerHTTP 5*6236dae4SAndroid Build Coastguard WorkerHTTP POST 6*6236dae4SAndroid Build Coastguard WorkerHTTP Digest auth 7*6236dae4SAndroid Build Coastguard Worker</keywords> 8*6236dae4SAndroid Build Coastguard Worker</info> 9*6236dae4SAndroid Build Coastguard Worker 10*6236dae4SAndroid Build Coastguard Worker# Server-side 11*6236dae4SAndroid Build Coastguard Worker<reply> 12*6236dae4SAndroid Build Coastguard Worker<data> 13*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 authentication please swsbounce 14*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/6.0 15*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="1053604144", algorithm="SHA-256", userhash=true 16*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 17*6236dae4SAndroid Build Coastguard WorkerContent-Length: 0 18*6236dae4SAndroid Build Coastguard Worker 19*6236dae4SAndroid Build Coastguard Worker</data> 20*6236dae4SAndroid Build Coastguard Worker<data1000> 21*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 A OK 22*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/6.0 23*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 24*6236dae4SAndroid Build Coastguard WorkerContent-Length: 3 25*6236dae4SAndroid Build Coastguard Worker 26*6236dae4SAndroid Build Coastguard Workerok 27*6236dae4SAndroid Build Coastguard Worker</data1000> 28*6236dae4SAndroid Build Coastguard Worker 29*6236dae4SAndroid Build Coastguard Worker<datacheck> 30*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 401 authentication please swsbounce 31*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/6.0 32*6236dae4SAndroid Build Coastguard WorkerWWW-Authenticate: Digest realm="testrealm", nonce="1053604144", algorithm="SHA-256", userhash=true 33*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 34*6236dae4SAndroid Build Coastguard WorkerContent-Length: 0 35*6236dae4SAndroid Build Coastguard Worker 36*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 A OK 37*6236dae4SAndroid Build Coastguard WorkerServer: Microsoft-IIS/6.0 38*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/html; charset=iso-8859-1 39*6236dae4SAndroid Build Coastguard WorkerContent-Length: 3 40*6236dae4SAndroid Build Coastguard Worker 41*6236dae4SAndroid Build Coastguard Workerok 42*6236dae4SAndroid Build Coastguard Worker</datacheck> 43*6236dae4SAndroid Build Coastguard Worker 44*6236dae4SAndroid Build Coastguard Worker</reply> 45*6236dae4SAndroid Build Coastguard Worker 46*6236dae4SAndroid Build Coastguard Worker# Client-side 47*6236dae4SAndroid Build Coastguard Worker<client> 48*6236dae4SAndroid Build Coastguard Worker# 49*6236dae4SAndroid Build Coastguard Worker<server> 50*6236dae4SAndroid Build Coastguard Workerhttp 51*6236dae4SAndroid Build Coastguard Worker</server> 52*6236dae4SAndroid Build Coastguard Worker<features> 53*6236dae4SAndroid Build Coastguard Worker!SSPI 54*6236dae4SAndroid Build Coastguard Workercrypto 55*6236dae4SAndroid Build Coastguard Worker</features> 56*6236dae4SAndroid Build Coastguard Worker<name> 57*6236dae4SAndroid Build Coastguard WorkerHTTP POST --digest with SHA-256, userhash=true and user-specified Content-Length header 58*6236dae4SAndroid Build Coastguard Worker</name> 59*6236dae4SAndroid Build Coastguard Worker# This test is to ensure 'Content-Length: 0' is sent while negotiating auth 60*6236dae4SAndroid Build Coastguard Worker# even when there is a user-specified Content-Length header. 61*6236dae4SAndroid Build Coastguard Worker# https://github.com/curl/curl/pull/1242 62*6236dae4SAndroid Build Coastguard Worker<command> 63*6236dae4SAndroid Build Coastguard Worker-H "Content-Length: 11" -u auser:apasswd --digest -d "junkelijunk" http://%HOSTIP:%HTTPPORT/%TESTNUMBER 64*6236dae4SAndroid Build Coastguard Worker</command> 65*6236dae4SAndroid Build Coastguard Worker</client> 66*6236dae4SAndroid Build Coastguard Worker 67*6236dae4SAndroid Build Coastguard Worker# Verify data after the test has been "shot" 68*6236dae4SAndroid Build Coastguard Worker<verify> 69*6236dae4SAndroid Build Coastguard Worker<protocol nonewline="yes"> 70*6236dae4SAndroid Build Coastguard WorkerPOST /%TESTNUMBER HTTP/1.1 71*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 72*6236dae4SAndroid Build Coastguard WorkerUser-Agent: curl/%VERSION 73*6236dae4SAndroid Build Coastguard WorkerAccept: */* 74*6236dae4SAndroid Build Coastguard WorkerContent-Length: 0 75*6236dae4SAndroid Build Coastguard WorkerContent-Type: application/x-www-form-urlencoded 76*6236dae4SAndroid Build Coastguard Worker 77*6236dae4SAndroid Build Coastguard WorkerPOST /%TESTNUMBER HTTP/1.1 78*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 79*6236dae4SAndroid Build Coastguard WorkerAuthorization: Digest username="fddc3bc7b753b73ab0848fd83cb20cbbca971258eb8d20c941dd5e0b010d66be", realm="testrealm", nonce="1053604144", uri="/%TESTNUMBER", response="9a29f1dab407e62daa7121185f9f12db6177415e03f35d9a881550095a83378d", algorithm=SHA-256, userhash=true 80*6236dae4SAndroid Build Coastguard WorkerUser-Agent: curl/%VERSION 81*6236dae4SAndroid Build Coastguard WorkerAccept: */* 82*6236dae4SAndroid Build Coastguard WorkerContent-Length: 11 83*6236dae4SAndroid Build Coastguard WorkerContent-Type: application/x-www-form-urlencoded 84*6236dae4SAndroid Build Coastguard Worker 85*6236dae4SAndroid Build Coastguard Workerjunkelijunk 86*6236dae4SAndroid Build Coastguard Worker</protocol> 87*6236dae4SAndroid Build Coastguard Worker</verify> 88*6236dae4SAndroid Build Coastguard Worker</testcase> 89