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 WorkerCURLOPT_AWS_SIGV4 6*6236dae4SAndroid Build Coastguard Worker</keywords> 7*6236dae4SAndroid Build Coastguard Worker</info> 8*6236dae4SAndroid Build Coastguard Worker 9*6236dae4SAndroid Build Coastguard Worker# Server-side 10*6236dae4SAndroid Build Coastguard Worker<reply> 11*6236dae4SAndroid Build Coastguard Worker<data> 12*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 OK 13*6236dae4SAndroid Build Coastguard WorkerDate: Thu, 09 Nov 2010 14:49:00 GMT 14*6236dae4SAndroid Build Coastguard WorkerServer: test-server/fake 15*6236dae4SAndroid Build Coastguard WorkerContent-Length: 0 16*6236dae4SAndroid Build Coastguard Worker 17*6236dae4SAndroid Build Coastguard Worker</data> 18*6236dae4SAndroid Build Coastguard Worker</reply> 19*6236dae4SAndroid Build Coastguard Worker 20*6236dae4SAndroid Build Coastguard Worker# Client-side 21*6236dae4SAndroid Build Coastguard Worker<client> 22*6236dae4SAndroid Build Coastguard Worker<server> 23*6236dae4SAndroid Build Coastguard Workerhttp 24*6236dae4SAndroid Build Coastguard Worker</server> 25*6236dae4SAndroid Build Coastguard Worker<features> 26*6236dae4SAndroid Build Coastguard WorkerSSL 27*6236dae4SAndroid Build Coastguard WorkerDebug 28*6236dae4SAndroid Build Coastguard Workercrypto 29*6236dae4SAndroid Build Coastguard Worker</features> 30*6236dae4SAndroid Build Coastguard Worker<name> 31*6236dae4SAndroid Build Coastguard WorkerHTTP AWS_SIGV4 canonical request header sorting test 32*6236dae4SAndroid Build Coastguard Worker</name> 33*6236dae4SAndroid Build Coastguard Worker<command> 34*6236dae4SAndroid Build Coastguard Worker-X PUT -H "X-Amz-Meta-Test-Two: test2" -H "x-amz-meta-test: test" --aws-sigv4 "aws:amz:us-east-1:s3" -u "xxx:yyy" http://%HOSTIP:%HTTPPORT/%TESTNUMBER 35*6236dae4SAndroid Build Coastguard Worker</command> 36*6236dae4SAndroid Build Coastguard Worker</client> 37*6236dae4SAndroid Build Coastguard Worker 38*6236dae4SAndroid Build Coastguard Worker# Verify data after the test has been "shot" 39*6236dae4SAndroid Build Coastguard Worker<verify> 40*6236dae4SAndroid Build Coastguard Worker<strip> 41*6236dae4SAndroid Build Coastguard Worker^User-Agent:.* 42*6236dae4SAndroid Build Coastguard Worker^Content-Length:.* 43*6236dae4SAndroid Build Coastguard Worker^Accept:.* 44*6236dae4SAndroid Build Coastguard Worker</strip> 45*6236dae4SAndroid Build Coastguard Worker<strippart> 46*6236dae4SAndroid Build Coastguard Worker# Strip the actual signature. We only care about header order in this test 47*6236dae4SAndroid Build Coastguard Workers/Signature=[a-f0-9]{64}/Signature=stripped/ 48*6236dae4SAndroid Build Coastguard Worker</strippart> 49*6236dae4SAndroid Build Coastguard Worker<protocol crlf="yes"> 50*6236dae4SAndroid Build Coastguard WorkerPUT /%TESTNUMBER HTTP/1.1 51*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 52*6236dae4SAndroid Build Coastguard WorkerAuthorization: AWS4-HMAC-SHA256 Credential=xxx/19700101/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date;x-amz-meta-test;x-amz-meta-test-two, Signature=stripped 53*6236dae4SAndroid Build Coastguard WorkerX-Amz-Date: 19700101T000000Z 54*6236dae4SAndroid Build Coastguard Workerx-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 55*6236dae4SAndroid Build Coastguard WorkerX-Amz-Meta-Test-Two: test2 56*6236dae4SAndroid Build Coastguard Workerx-amz-meta-test: test 57*6236dae4SAndroid Build Coastguard Worker 58*6236dae4SAndroid Build Coastguard Worker</protocol> 59*6236dae4SAndroid Build Coastguard Worker</verify> 60*6236dae4SAndroid Build Coastguard Worker</testcase> 61