From f863c308378b6becbdeb63f8b4f479180b363dbb Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Wed, 15 Aug 2018 00:43:05 +0200 Subject: [PATCH] remote connection is somewhat working --- libnymea-app-core/connection/awsclient.cpp | 6 +- libnymea-app-core/connection/awsclient.h | 3 +- .../connection/cloudtransport.cpp | 39 ++++- libnymea-app-core/connection/cloudtransport.h | 2 + .../discovery/nymeadiscovery.cpp | 3 + nymea-remoteproxy | 2 +- .../get-header-key-duplicate.authz | 1 + .../get-header-key-duplicate.creq | 9 ++ .../get-header-key-duplicate.req | 6 + .../get-header-key-duplicate.sreq | 7 + .../get-header-key-duplicate.sts | 4 + .../get-header-value-multiline.authz | 1 + .../get-header-value-multiline.creq | 9 ++ .../get-header-value-multiline.req | 6 + .../get-header-value-multiline.sreq | 7 + .../get-header-value-multiline.sts | 4 + .../get-header-value-order.authz | 1 + .../get-header-value-order.creq | 9 ++ .../get-header-value-order.req | 7 + .../get-header-value-order.sreq | 8 + .../get-header-value-order.sts | 4 + .../get-header-value-trim.authz | 1 + .../get-header-value-trim.creq | 10 ++ .../get-header-value-trim.req | 5 + .../get-header-value-trim.sreq | 6 + .../get-header-value-trim.sts | 4 + .../get-unreserved/get-unreserved.authz | 1 + .../get-unreserved/get-unreserved.creq | 8 + .../get-unreserved/get-unreserved.req | 3 + .../get-unreserved/get-unreserved.sreq | 4 + .../get-unreserved/get-unreserved.sts | 4 + .../get-vanilla-empty-query-key.authz | 1 + .../get-vanilla-empty-query-key.creq | 8 + .../get-vanilla-empty-query-key.req | 3 + .../get-vanilla-empty-query-key.sreq | 4 + .../get-vanilla-empty-query-key.sts | 4 + .../get-vanilla-query-order-key-case.authz | 1 + .../get-vanilla-query-order-key-case.creq | 8 + .../get-vanilla-query-order-key-case.req | 3 + .../get-vanilla-query-order-key-case.sreq | 4 + .../get-vanilla-query-order-key-case.sts | 4 + .../get-vanilla-query-order-key.authz | 1 + .../get-vanilla-query-order-key.creq | 8 + .../get-vanilla-query-order-key.req | 3 + .../get-vanilla-query-order-key.sreq | 4 + .../get-vanilla-query-order-key.sts | 4 + .../get-vanilla-query-order-value.authz | 1 + .../get-vanilla-query-order-value.creq | 8 + .../get-vanilla-query-order-value.req | 3 + .../get-vanilla-query-order-value.sreq | 4 + .../get-vanilla-query-order-value.sts | 4 + .../get-vanilla-query-unreserved.authz | 1 + .../get-vanilla-query-unreserved.creq | 8 + .../get-vanilla-query-unreserved.req | 3 + .../get-vanilla-query-unreserved.sreq | 4 + .../get-vanilla-query-unreserved.sts | 4 + .../get-vanilla-query/get-vanilla-query.authz | 1 + .../get-vanilla-query/get-vanilla-query.creq | 8 + .../get-vanilla-query/get-vanilla-query.req | 3 + .../get-vanilla-query/get-vanilla-query.sreq | 4 + .../get-vanilla-query/get-vanilla-query.sts | 4 + .../get-vanilla-utf8-query.authz | 1 + .../get-vanilla-utf8-query.creq | 8 + .../get-vanilla-utf8-query.req_disabled | 3 + .../get-vanilla-utf8-query.sreq | 4 + .../get-vanilla-utf8-query.sts | 4 + .../get-vanilla/get-vanilla.authz | 1 + .../get-vanilla/get-vanilla.creq | 8 + .../get-vanilla/get-vanilla.req | 3 + .../get-vanilla/get-vanilla.sreq | 4 + .../get-vanilla/get-vanilla.sts | 4 + .../get-relative-relative.authz | 1 + .../get-relative-relative.creq | 8 + .../get-relative-relative.req | 3 + .../get-relative-relative.sreq | 4 + .../get-relative-relative.sts | 4 + .../get-relative/get-relative.authz | 1 + .../get-relative/get-relative.creq | 8 + .../get-relative/get-relative.req | 3 + .../get-relative/get-relative.sreq | 4 + .../get-relative/get-relative.sts | 4 + .../get-slash-dot-slash.authz | 1 + .../get-slash-dot-slash.creq | 8 + .../get-slash-dot-slash.req | 3 + .../get-slash-dot-slash.sreq | 4 + .../get-slash-dot-slash.sts | 4 + .../get-slash-pointless-dot.authz | 1 + .../get-slash-pointless-dot.creq | 8 + .../get-slash-pointless-dot.req | 3 + .../get-slash-pointless-dot.sreq | 4 + .../get-slash-pointless-dot.sts | 4 + .../normalize-path/get-slash/get-slash.authz | 1 + .../normalize-path/get-slash/get-slash.creq | 8 + .../normalize-path/get-slash/get-slash.req | 3 + .../normalize-path/get-slash/get-slash.sreq | 4 + .../normalize-path/get-slash/get-slash.sts | 4 + .../get-slashes/get-slashes.authz | 1 + .../get-slashes/get-slashes.creq | 8 + .../get-slashes/get-slashes.req | 3 + .../get-slashes/get-slashes.sreq | 4 + .../get-slashes/get-slashes.sts | 4 + .../normalize-path/get-space/get-space.authz | 1 + .../normalize-path/get-space/get-space.creq | 8 + .../normalize-path/get-space/get-space.req | 3 + .../normalize-path/get-space/get-space.sreq | 4 + .../normalize-path/get-space/get-space.sts | 4 + .../normalize-path/normalize-path.txt | 3 + .../post-header-key-case.authz | 1 + .../post-header-key-case.creq | 8 + .../post-header-key-case.req | 3 + .../post-header-key-case.sreq | 4 + .../post-header-key-case.sts | 4 + .../post-header-key-sort.authz | 1 + .../post-header-key-sort.creq | 9 ++ .../post-header-key-sort.req | 4 + .../post-header-key-sort.sreq | 5 + .../post-header-key-sort.sts | 4 + .../post-header-value-case.authz | 1 + .../post-header-value-case.creq | 9 ++ .../post-header-value-case.req | 4 + .../post-header-value-case.sreq | 5 + .../post-header-value-case.sts | 4 + .../post-sts-header-after.authz | 1 + .../post-sts-header-after.creq | 8 + .../post-sts-header-after.req | 3 + .../post-sts-header-after.sreq | 5 + .../post-sts-header-after.sts | 4 + .../post-sts-header-before.authz | 1 + .../post-sts-header-before.creq | 9 ++ .../post-sts-header-before.req | 4 + .../post-sts-header-before.sreq | 5 + .../post-sts-header-before.sts | 4 + .../post-sts-token/readme.txt | 15 ++ .../post-vanilla-empty-query-value.authz | 1 + .../post-vanilla-empty-query-value.creq | 8 + .../post-vanilla-empty-query-value.req | 3 + .../post-vanilla-empty-query-value.sreq | 4 + .../post-vanilla-empty-query-value.sts | 4 + .../post-vanilla-query.authz | 1 + .../post-vanilla-query.creq | 8 + .../post-vanilla-query/post-vanilla-query.req | 3 + .../post-vanilla-query.sreq | 4 + .../post-vanilla-query/post-vanilla-query.sts | 4 + .../post-vanilla/post-vanilla.authz | 1 + .../post-vanilla/post-vanilla.creq | 8 + .../post-vanilla/post-vanilla.req | 3 + .../post-vanilla/post-vanilla.sreq | 4 + .../post-vanilla/post-vanilla.sts | 4 + ...ost-x-www-form-urlencoded-parameters.authz | 1 + ...post-x-www-form-urlencoded-parameters.creq | 9 ++ .../post-x-www-form-urlencoded-parameters.req | 6 + ...post-x-www-form-urlencoded-parameters.sreq | 7 + .../post-x-www-form-urlencoded-parameters.sts | 4 + .../post-x-www-form-urlencoded.authz | 1 + .../post-x-www-form-urlencoded.creq | 9 ++ .../post-x-www-form-urlencoded.req | 6 + .../post-x-www-form-urlencoded.sreq | 7 + .../post-x-www-form-urlencoded.sts | 4 + tests/unit/sigv4/sigv4.pro | 12 ++ tests/unit/sigv4/testsigv4.cpp | 150 ++++++++++++++++++ tests/unit/unit.pro | 4 + 161 files changed, 887 insertions(+), 5 deletions(-) create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.req_disabled create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/normalize-path.txt create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/readme.txt create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.sts create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.authz create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.creq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.req create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.sreq create mode 100644 tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.sts create mode 100644 tests/unit/sigv4/sigv4.pro create mode 100644 tests/unit/sigv4/testsigv4.cpp create mode 100644 tests/unit/unit.pro diff --git a/libnymea-app-core/connection/awsclient.cpp b/libnymea-app-core/connection/awsclient.cpp index 0d2734db..bb00d631 100644 --- a/libnymea-app-core/connection/awsclient.cpp +++ b/libnymea-app-core/connection/awsclient.cpp @@ -255,7 +255,7 @@ void AWSClient::connectMQTT() mqttClient->connectToHost(); } -void AWSClient::postToMQTT() +void AWSClient::postToMQTT(const QString &token) { QString host = "a2addxakg5juii.iot.eu-west-1.amazonaws.com"; QString topic = "850593e9-f2ab-4e89-913a-16f848d48867/eu-west-1:88c8b0f1-3f26-46cb-81f3-ccc37dcb543a/proxy"; @@ -270,7 +270,8 @@ void AWSClient::postToMQTT() QString path1 = "/topics/" + topic.toUtf8().toPercentEncoding() + "?qos=0"; QVariantMap params; - params.insert("message", "Hello box"); + params.insert("token", token); + params.insert("timestamp", QDateTime::currentDateTime().toSecsSinceEpoch()); QByteArray payload = QJsonDocument::fromVariant(params).toJson(QJsonDocument::Compact); @@ -324,6 +325,7 @@ void AWSClient::fetchDevices() d.id = entry.toMap().value("deviceId").toString(); d.name = entry.toMap().value("name").toString(); d.online = entry.toMap().value("online").toBool(); + d.token = m_accessToken; ret.append(d); } emit devicesFetched(ret); diff --git a/libnymea-app-core/connection/awsclient.h b/libnymea-app-core/connection/awsclient.h index 044e9ef4..68d3f5bd 100644 --- a/libnymea-app-core/connection/awsclient.h +++ b/libnymea-app-core/connection/awsclient.h @@ -12,6 +12,7 @@ public: QString id; QString name; bool online; + QByteArray token; }; class AWSClient : public QObject @@ -28,7 +29,7 @@ public: Q_INVOKABLE void fetchDevices(); - Q_INVOKABLE void postToMQTT(); + Q_INVOKABLE void postToMQTT(const QString &token); Q_INVOKABLE void getId(); QByteArray accessToken() const; diff --git a/libnymea-app-core/connection/cloudtransport.cpp b/libnymea-app-core/connection/cloudtransport.cpp index 6933b394..d5c150f9 100644 --- a/libnymea-app-core/connection/cloudtransport.cpp +++ b/libnymea-app-core/connection/cloudtransport.cpp @@ -3,6 +3,8 @@ #include "awsclient.h" #include "remoteproxyconnection.h" +#include + using namespace remoteproxyclient; CloudTransport::CloudTransport(AWSClient *awsClient, QObject *parent): @@ -10,6 +12,25 @@ CloudTransport::CloudTransport(AWSClient *awsClient, QObject *parent): m_awsClient(awsClient) { m_remoteproxyConnection = new RemoteProxyConnection(QUuid::createUuid(), "nymea:app", RemoteProxyConnection::ConnectionTypeWebSocket, this); + m_remoteproxyConnection->setInsecureConnection(true); + + QObject::connect(m_remoteproxyConnection, &RemoteProxyConnection::connected, this,[this]() { + qDebug() << "Connected to remote proxy"; + }); + QObject::connect(m_remoteproxyConnection, &RemoteProxyConnection::stateChanged, this,[this](RemoteProxyConnection::State state) { + qDebug() << "Proxy state changed:" << state; + if (state == RemoteProxyConnection::StateRemoteConnected) { + emit connected(); + } + }); + QObject::connect(m_remoteproxyConnection, &RemoteProxyConnection::ready, this,[this]() { + qDebug() << "Proxy ready:"; + m_remoteproxyConnection->authenticate(m_token); + }); + QObject::connect(m_remoteproxyConnection, &RemoteProxyConnection::dataReady, this, [this](const QByteArray &data) { + qDebug() << "Remote connection data received"; + emit dataReady(data); + }); } QStringList CloudTransport::supportedSchemes() const @@ -20,7 +41,9 @@ QStringList CloudTransport::supportedSchemes() const void CloudTransport::connect(const QUrl &url) { qDebug() << "should connect to" << url; - m_awsClient->postToMQTT(); + QUrlQuery query(url.query()); + QString m_token = query.queryItemValue("token"); + m_awsClient->postToMQTT(m_token); m_remoteproxyConnection->connectServer(QHostAddress("127.0.0.1"), 1212); @@ -33,10 +56,24 @@ void CloudTransport::disconnect() NymeaTransportInterface::ConnectionState CloudTransport::connectionState() const { + switch (m_remoteproxyConnection->state()) { + case RemoteProxyConnection::StateRemoteConnected: + return NymeaTransportInterface::ConnectionStateConnected; + case RemoteProxyConnection::StateInitializing: + case RemoteProxyConnection::StateConnecting: + case RemoteProxyConnection::StateConnected: + case RemoteProxyConnection::StateAuthenticating: + case RemoteProxyConnection::StateReady: + case RemoteProxyConnection::StateWaitTunnel: + return NymeaTransportInterface::ConnectionStateConnecting; + case RemoteProxyConnection::StateDisconnected: + return NymeaTransportInterface::ConnectionStateDisconnected; + } return ConnectionStateDisconnected; } void CloudTransport::sendData(const QByteArray &data) { qDebug() << "should send" << data; + m_remoteproxyConnection->sendData(data); } diff --git a/libnymea-app-core/connection/cloudtransport.h b/libnymea-app-core/connection/cloudtransport.h index d95c3057..a9fee5b3 100644 --- a/libnymea-app-core/connection/cloudtransport.h +++ b/libnymea-app-core/connection/cloudtransport.h @@ -26,6 +26,8 @@ public: private: AWSClient *m_awsClient = nullptr; remoteproxyclient::RemoteProxyConnection *m_remoteproxyConnection = nullptr; + + QString m_token; }; #endif // CLOUDTRANSPORT_H diff --git a/libnymea-app-core/discovery/nymeadiscovery.cpp b/libnymea-app-core/discovery/nymeadiscovery.cpp index c72692eb..d246cc9c 100644 --- a/libnymea-app-core/discovery/nymeadiscovery.cpp +++ b/libnymea-app-core/discovery/nymeadiscovery.cpp @@ -7,6 +7,7 @@ #include #include +#include NymeaDiscovery::NymeaDiscovery(QObject *parent) : QObject(parent) { @@ -71,6 +72,8 @@ void NymeaDiscovery::cloudDevicesFetched(const QList &devices) QUrl url; url.setScheme("cloud"); url.setHost(d.id); + QUrlQuery query; + query.addQueryItem("token", d.token); if (!device->connections()->find(url)) { Connection *conn = new Connection(url, Connection::BearerTypeCloud, true, d.id); device->connections()->addConnection(conn); diff --git a/nymea-remoteproxy b/nymea-remoteproxy index c2c3304a..a9e79bde 160000 --- a/nymea-remoteproxy +++ b/nymea-remoteproxy @@ -1 +1 @@ -Subproject commit c2c3304a558a434115c49e168155da8eba81cd98 +Subproject commit a9e79bde9703c842a7ca7adead22d84bcb9d6f53 diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.authz new file mode 100644 index 00000000..ade3ec75 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;my-header1;x-amz-date, Signature=c9d5ea9f3f72853aea855b47ea873832890dbdd183b4468f858259531a5138ea \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.creq new file mode 100644 index 00000000..fa8f49a1 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.creq @@ -0,0 +1,9 @@ +GET +/ + +host:example.amazonaws.com +my-header1:value2,value2,value1 +x-amz-date:20150830T123600Z + +host;my-header1;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.req b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.req new file mode 100644 index 00000000..08a0364c --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.req @@ -0,0 +1,6 @@ +GET / HTTP/1.1 +Host:example.amazonaws.com +My-Header1:value2 +My-Header1:value2 +My-Header1:value1 +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.sreq new file mode 100644 index 00000000..f0166e18 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.sreq @@ -0,0 +1,7 @@ +GET / HTTP/1.1 +Host:example.amazonaws.com +My-Header1:value2 +My-Header1:value2 +My-Header1:value1 +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;my-header1;x-amz-date, Signature=c9d5ea9f3f72853aea855b47ea873832890dbdd183b4468f858259531a5138ea \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.sts new file mode 100644 index 00000000..48a135ec --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +dc7f04a3abfde8d472b0ab1a418b741b7c67174dad1551b4117b15527fbe966c \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.authz new file mode 100644 index 00000000..e2717bf6 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;my-header1;x-amz-date, Signature=ba17b383a53190154eb5fa66a1b836cc297cc0a3d70a5d00705980573d8ff790 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.creq new file mode 100644 index 00000000..721a39ff --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.creq @@ -0,0 +1,9 @@ +GET +/ + +host:example.amazonaws.com +my-header1:value1,value2,value3 +x-amz-date:20150830T123600Z + +host;my-header1;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.req b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.req new file mode 100644 index 00000000..7caa6acc --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.req @@ -0,0 +1,6 @@ +GET / HTTP/1.1 +Host:example.amazonaws.com +My-Header1:value1 + value2 + value3 +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.sreq new file mode 100644 index 00000000..56955d9a --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.sreq @@ -0,0 +1,7 @@ +GET / HTTP/1.1 +Host:example.amazonaws.com +My-Header1:value1 + value2 + value3 +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;my-header1;x-amz-date, Signature=ba17b383a53190154eb5fa66a1b836cc297cc0a3d70a5d00705980573d8ff790 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.sts new file mode 100644 index 00000000..0a3350ab --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +b7b6cbfd8a0430b78891e986784da2630c8a135a8595cec25b26ea94f926ee55 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.authz new file mode 100644 index 00000000..c0409ab2 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;my-header1;x-amz-date, Signature=08c7e5a9acfcfeb3ab6b2185e75ce8b1deb5e634ec47601a50643f830c755c01 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.creq new file mode 100644 index 00000000..e336bc94 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.creq @@ -0,0 +1,9 @@ +GET +/ + +host:example.amazonaws.com +my-header1:value4,value1,value3,value2 +x-amz-date:20150830T123600Z + +host;my-header1;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.req b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.req new file mode 100644 index 00000000..f7bd9e66 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.req @@ -0,0 +1,7 @@ +GET / HTTP/1.1 +Host:example.amazonaws.com +My-Header1:value4 +My-Header1:value1 +My-Header1:value3 +My-Header1:value2 +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.sreq new file mode 100644 index 00000000..79e16a95 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.sreq @@ -0,0 +1,8 @@ +GET / HTTP/1.1 +Host:example.amazonaws.com +My-Header1:value4 +My-Header1:value1 +My-Header1:value3 +My-Header1:value2 +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;my-header1;x-amz-date, Signature=08c7e5a9acfcfeb3ab6b2185e75ce8b1deb5e634ec47601a50643f830c755c01 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.sts new file mode 100644 index 00000000..711a8d4d --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +31ce73cd3f3d9f66977ad3dd957dc47af14df92fcd8509f59b349e9137c58b86 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.authz new file mode 100644 index 00000000..4874ac0b --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;my-header1;my-header2;x-amz-date, Signature=acc3ed3afb60bb290fc8d2dd0098b9911fcaa05412b367055dee359757a9c736 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.creq new file mode 100644 index 00000000..a59087c9 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.creq @@ -0,0 +1,10 @@ +GET +/ + +host:example.amazonaws.com +my-header1:value1 +my-header2:"a b c" +x-amz-date:20150830T123600Z + +host;my-header1;my-header2;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.req b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.req new file mode 100644 index 00000000..901f36c3 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.req @@ -0,0 +1,5 @@ +GET / HTTP/1.1 +Host:example.amazonaws.com +My-Header1: value1 +My-Header2: "a b c" +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.sreq new file mode 100644 index 00000000..98224c9b --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.sreq @@ -0,0 +1,6 @@ +GET / HTTP/1.1 +Host:example.amazonaws.com +My-Header1: value1 +My-Header2: "a b c" +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;my-header1;my-header2;x-amz-date, Signature=acc3ed3afb60bb290fc8d2dd0098b9911fcaa05412b367055dee359757a9c736 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.sts new file mode 100644 index 00000000..a0b15cc7 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +a726db9b0df21c14f559d0a978e563112acb1b9e05476f0a6a1c7d68f28605c7 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.authz new file mode 100644 index 00000000..2943ec89 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=07ef7494c76fa4850883e2b006601f940f8a34d404d0cfa977f52a65bbf5f24f \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.creq new file mode 100644 index 00000000..8af54df2 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.creq @@ -0,0 +1,8 @@ +GET +/-._~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz + +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.req b/tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.req new file mode 100644 index 00000000..da760cdb --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.req @@ -0,0 +1,3 @@ +GET /-._~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.sreq new file mode 100644 index 00000000..8001b3d6 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.sreq @@ -0,0 +1,4 @@ +GET /-._~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=07ef7494c76fa4850883e2b006601f940f8a34d404d0cfa977f52a65bbf5f24f \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.sts new file mode 100644 index 00000000..e9dc5414 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-unreserved/get-unreserved.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +6a968768eefaa713e2a6b16b589a8ea192661f098f37349f4e2c0082757446f9 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.authz new file mode 100644 index 00000000..65b5c7ce --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=a67d582fa61cc504c4bae71f336f98b97f1ea3c7a6bfe1b6e45aec72011b9aeb \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.creq new file mode 100644 index 00000000..c6cdceda --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.creq @@ -0,0 +1,8 @@ +GET +/ +Param1=value1 +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.req b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.req new file mode 100644 index 00000000..970d0a05 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.req @@ -0,0 +1,3 @@ +GET /?Param1=value1 HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.sreq new file mode 100644 index 00000000..f0815913 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.sreq @@ -0,0 +1,4 @@ +GET /?Param1=value1 HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=a67d582fa61cc504c4bae71f336f98b97f1ea3c7a6bfe1b6e45aec72011b9aeb \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.sts new file mode 100644 index 00000000..c4ed216c --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +1e24db194ed7d0eec2de28d7369675a243488e08526e8c1c73571282f7c517ab \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.authz new file mode 100644 index 00000000..c781fe66 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=b97d918cfa904a5beff61c982a1b6f458b799221646efd99d3219ec94cdf2500 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.creq new file mode 100644 index 00000000..8ae02cd6 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.creq @@ -0,0 +1,8 @@ +GET +/ +Param1=value1&Param2=value2 +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.req b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.req new file mode 100644 index 00000000..8a56f15f --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.req @@ -0,0 +1,3 @@ +GET /?Param2=value2&Param1=value1 HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.sreq new file mode 100644 index 00000000..aa3162d8 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.sreq @@ -0,0 +1,4 @@ +GET /?Param2=value2&Param1=value1 HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=b97d918cfa904a5beff61c982a1b6f458b799221646efd99d3219ec94cdf2500 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.sts new file mode 100644 index 00000000..f773de59 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +816cd5b414d056048ba4f7c5386d6e0533120fb1fcfa93762cf0fc39e2cf19e0 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.authz new file mode 100644 index 00000000..812cd3fd --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=eedbc4e291e521cf13422ffca22be7d2eb8146eecf653089df300a15b2382bd1 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.creq new file mode 100644 index 00000000..36c3cdfa --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.creq @@ -0,0 +1,8 @@ +GET +/ +Param1=Value1&Param1=value2 +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.req b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.req new file mode 100644 index 00000000..375a4965 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.req @@ -0,0 +1,3 @@ +GET /?Param1=value2&Param1=Value1 HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.sreq new file mode 100644 index 00000000..bc8e6520 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.sreq @@ -0,0 +1,4 @@ +GET /?Param1=value2&Param1=Value1 HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=eedbc4e291e521cf13422ffca22be7d2eb8146eecf653089df300a15b2382bd1 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.sts new file mode 100644 index 00000000..fd43a414 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +704b4cef673542d84cdff252633f065e8daeba5f168b77116f8b1bcaf3d38f89 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.authz new file mode 100644 index 00000000..b8ad91f6 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5772eed61e12b33fae39ee5e7012498b51d56abc0abb7c60486157bd471c4694 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.creq new file mode 100644 index 00000000..26898ebe --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.creq @@ -0,0 +1,8 @@ +GET +/ +Param1=value1&Param1=value2 +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.req b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.req new file mode 100644 index 00000000..9255bee0 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.req @@ -0,0 +1,3 @@ +GET /?Param1=value2&Param1=value1 HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.sreq new file mode 100644 index 00000000..4793e218 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.sreq @@ -0,0 +1,4 @@ +GET /?Param1=value2&Param1=value1 HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5772eed61e12b33fae39ee5e7012498b51d56abc0abb7c60486157bd471c4694 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.sts new file mode 100644 index 00000000..90e66b8d --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +c968629d70850097a2d8781c9bf7edcb988b04cac14cca9be4acc3595f884606 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.authz new file mode 100644 index 00000000..a44ca5be --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=9c3e54bfcdf0b19771a7f523ee5669cdf59bc7cc0884027167c21bb143a40197 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.creq new file mode 100644 index 00000000..5249be3b --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.creq @@ -0,0 +1,8 @@ +GET +/ +-._~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz=-._~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.req b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.req new file mode 100644 index 00000000..d2833b32 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.req @@ -0,0 +1,3 @@ +GET /?-._~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz=-._~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.sreq new file mode 100644 index 00000000..ba1ef402 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.sreq @@ -0,0 +1,4 @@ +GET /?-._~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz=-._~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=9c3e54bfcdf0b19771a7f523ee5669cdf59bc7cc0884027167c21bb143a40197 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.sts new file mode 100644 index 00000000..24a97d20 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +c30d4703d9f799439be92736156d47ccfb2d879ddf56f5befa6d1d6aab979177 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.authz new file mode 100644 index 00000000..551c0271 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5fa00fa31553b73ebf1942676e86291e8372ff2a2260956d9b8aae1d763fbf31 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.creq new file mode 100644 index 00000000..ed91561f --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.creq @@ -0,0 +1,8 @@ +GET +/ + +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.req b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.req new file mode 100644 index 00000000..0f7a9bfa --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.req @@ -0,0 +1,3 @@ +GET / HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.sreq new file mode 100644 index 00000000..d739b01f --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.sreq @@ -0,0 +1,4 @@ +GET / HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5fa00fa31553b73ebf1942676e86291e8372ff2a2260956d9b8aae1d763fbf31 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.sts new file mode 100644 index 00000000..b187649c --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +bb579772317eb040ac9ed261061d46c1f17a8133879d6129b6e1c25292927e63 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.authz new file mode 100644 index 00000000..e016c3da --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=2cdec8eed098649ff3a119c94853b13c643bcf08f8b0a1d91e12c9027818dd04 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.creq new file mode 100644 index 00000000..a835c9e4 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.creq @@ -0,0 +1,8 @@ +GET +/ +%E1%88%B4=bar +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.req_disabled b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.req_disabled new file mode 100644 index 00000000..cc2757e1 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.req_disabled @@ -0,0 +1,3 @@ +GET /?ሴ=bar HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.sreq new file mode 100644 index 00000000..7baf4c82 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.sreq @@ -0,0 +1,4 @@ +GET /?ሴ=bar HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=2cdec8eed098649ff3a119c94853b13c643bcf08f8b0a1d91e12c9027818dd04 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.sts new file mode 100644 index 00000000..51ee71b7 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +eb30c5bed55734080471a834cc727ae56beb50e5f39d1bff6d0d38cb192a7073 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.authz new file mode 100644 index 00000000..551c0271 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5fa00fa31553b73ebf1942676e86291e8372ff2a2260956d9b8aae1d763fbf31 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.creq new file mode 100644 index 00000000..ed91561f --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.creq @@ -0,0 +1,8 @@ +GET +/ + +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.req b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.req new file mode 100644 index 00000000..0f7a9bfa --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.req @@ -0,0 +1,3 @@ +GET / HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.sreq new file mode 100644 index 00000000..d739b01f --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.sreq @@ -0,0 +1,4 @@ +GET / HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5fa00fa31553b73ebf1942676e86291e8372ff2a2260956d9b8aae1d763fbf31 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.sts new file mode 100644 index 00000000..b187649c --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/get-vanilla/get-vanilla.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +bb579772317eb040ac9ed261061d46c1f17a8133879d6129b6e1c25292927e63 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.authz new file mode 100644 index 00000000..551c0271 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5fa00fa31553b73ebf1942676e86291e8372ff2a2260956d9b8aae1d763fbf31 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.creq new file mode 100644 index 00000000..ed91561f --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.creq @@ -0,0 +1,8 @@ +GET +/ + +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.req b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.req new file mode 100644 index 00000000..cfd4e8b7 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.req @@ -0,0 +1,3 @@ +GET /example1/example2/../.. HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.sreq new file mode 100644 index 00000000..cbdebe2c --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.sreq @@ -0,0 +1,4 @@ +GET /example1/example2/../.. HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5fa00fa31553b73ebf1942676e86291e8372ff2a2260956d9b8aae1d763fbf31 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.sts new file mode 100644 index 00000000..b187649c --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +bb579772317eb040ac9ed261061d46c1f17a8133879d6129b6e1c25292927e63 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.authz new file mode 100644 index 00000000..551c0271 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5fa00fa31553b73ebf1942676e86291e8372ff2a2260956d9b8aae1d763fbf31 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.creq new file mode 100644 index 00000000..ed91561f --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.creq @@ -0,0 +1,8 @@ +GET +/ + +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.req b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.req new file mode 100644 index 00000000..9d6d7ca2 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.req @@ -0,0 +1,3 @@ +GET /example/.. HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.sreq new file mode 100644 index 00000000..4f59e7d2 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.sreq @@ -0,0 +1,4 @@ +GET /example/.. HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5fa00fa31553b73ebf1942676e86291e8372ff2a2260956d9b8aae1d763fbf31 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.sts new file mode 100644 index 00000000..b187649c --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +bb579772317eb040ac9ed261061d46c1f17a8133879d6129b6e1c25292927e63 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.authz new file mode 100644 index 00000000..551c0271 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5fa00fa31553b73ebf1942676e86291e8372ff2a2260956d9b8aae1d763fbf31 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.creq new file mode 100644 index 00000000..ed91561f --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.creq @@ -0,0 +1,8 @@ +GET +/ + +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.req b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.req new file mode 100644 index 00000000..f3537b70 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.req @@ -0,0 +1,3 @@ +GET /./ HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.sreq new file mode 100644 index 00000000..23a2b41c --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.sreq @@ -0,0 +1,4 @@ +GET /./ HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5fa00fa31553b73ebf1942676e86291e8372ff2a2260956d9b8aae1d763fbf31 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.sts new file mode 100644 index 00000000..b187649c --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +bb579772317eb040ac9ed261061d46c1f17a8133879d6129b6e1c25292927e63 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.authz new file mode 100644 index 00000000..b76ca1e2 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=ef75d96142cf21edca26f06005da7988e4f8dc83a165a80865db7089db637ec5 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.creq new file mode 100644 index 00000000..915c57f2 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.creq @@ -0,0 +1,8 @@ +GET +/example + +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.req b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.req new file mode 100644 index 00000000..3c910717 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.req @@ -0,0 +1,3 @@ +GET /./example HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.sreq new file mode 100644 index 00000000..80966096 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.sreq @@ -0,0 +1,4 @@ +GET /./example HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=ef75d96142cf21edca26f06005da7988e4f8dc83a165a80865db7089db637ec5 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.sts new file mode 100644 index 00000000..7429923e --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +214d50c111a8edc4819da6a636336472c916b5240f51e9a51b5c3305180cf702 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.authz new file mode 100644 index 00000000..551c0271 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5fa00fa31553b73ebf1942676e86291e8372ff2a2260956d9b8aae1d763fbf31 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.creq new file mode 100644 index 00000000..ed91561f --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.creq @@ -0,0 +1,8 @@ +GET +/ + +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.req b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.req new file mode 100644 index 00000000..ede8e3c8 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.req @@ -0,0 +1,3 @@ +GET // HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.sreq new file mode 100644 index 00000000..cde31b43 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.sreq @@ -0,0 +1,4 @@ +GET // HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5fa00fa31553b73ebf1942676e86291e8372ff2a2260956d9b8aae1d763fbf31 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.sts new file mode 100644 index 00000000..b187649c --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +bb579772317eb040ac9ed261061d46c1f17a8133879d6129b6e1c25292927e63 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.authz new file mode 100644 index 00000000..307c1051 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=9a624bd73a37c9a373b5312afbebe7a714a789de108f0bdfe846570885f57e84 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.creq new file mode 100644 index 00000000..2bdaf747 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.creq @@ -0,0 +1,8 @@ +GET +/example/ + +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.req b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.req new file mode 100644 index 00000000..a4307ce4 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.req @@ -0,0 +1,3 @@ +GET //example// HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.sreq new file mode 100644 index 00000000..c84a80d5 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.sreq @@ -0,0 +1,4 @@ +GET //example// HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=9a624bd73a37c9a373b5312afbebe7a714a789de108f0bdfe846570885f57e84 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.sts new file mode 100644 index 00000000..95d1fc25 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +cb96b4ac96d501f7c5c15bc6d67b3035061cfced4af6585ad927f7e6c985c015 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.authz new file mode 100644 index 00000000..832d8a50 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=652487583200325589f1fba4c7e578f72c47cb61beeca81406b39ddec1366741 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.creq new file mode 100644 index 00000000..124a7096 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.creq @@ -0,0 +1,8 @@ +GET +/example%20space/ + +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.req b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.req new file mode 100644 index 00000000..b7d5e8bb --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.req @@ -0,0 +1,3 @@ +GET /example space/ HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.sreq new file mode 100644 index 00000000..eefa20c4 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.sreq @@ -0,0 +1,4 @@ +GET /example space/ HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=652487583200325589f1fba4c7e578f72c47cb61beeca81406b39ddec1366741 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.sts new file mode 100644 index 00000000..a633f0c0 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/get-space/get-space.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +63ee75631ed7234ae61b5f736dfc7754cdccfedbff4b5128a915706ee9390d86 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/normalize-path.txt b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/normalize-path.txt new file mode 100644 index 00000000..c2fcb272 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/normalize-path/normalize-path.txt @@ -0,0 +1,3 @@ +A note about signing requests to Amazon S3: + +In exception to this, you do not normalize URI paths for requests to Amazon S3. For example, if you have a bucket with an object named my-object//example//photo.user, use that path. Normalizing the path to my-object/example/photo.user will cause the request to fail. For more information, see Task 1: Create a Canonical Request in the Amazon Simple Storage Service API Reference: http://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.html#canonical-request \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.authz new file mode 100644 index 00000000..89e572e6 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5da7c1a2acd57cee7505fc6676e4e544621c30862966e37dddb68e92efbe5d6b \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.creq new file mode 100644 index 00000000..5c3a9434 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.creq @@ -0,0 +1,8 @@ +POST +/ + +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.req b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.req new file mode 100644 index 00000000..3dc41790 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.req @@ -0,0 +1,3 @@ +POST / HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.sreq new file mode 100644 index 00000000..a5ada0d9 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.sreq @@ -0,0 +1,4 @@ +POST / HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5da7c1a2acd57cee7505fc6676e4e544621c30862966e37dddb68e92efbe5d6b \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.sts new file mode 100644 index 00000000..a6367039 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +553f88c9e4d10fc9e109e2aeb65f030801b70c2f6468faca261d401ae622fc87 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.authz new file mode 100644 index 00000000..a62589ff --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;my-header1;x-amz-date, Signature=c5410059b04c1ee005303aed430f6e6645f61f4dc9e1461ec8f8916fdf18852c \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.creq new file mode 100644 index 00000000..ebe943e8 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.creq @@ -0,0 +1,9 @@ +POST +/ + +host:example.amazonaws.com +my-header1:value1 +x-amz-date:20150830T123600Z + +host;my-header1;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.req b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.req new file mode 100644 index 00000000..0253f194 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.req @@ -0,0 +1,4 @@ +POST / HTTP/1.1 +Host:example.amazonaws.com +My-Header1:value1 +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.sreq new file mode 100644 index 00000000..b4b78a16 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.sreq @@ -0,0 +1,5 @@ +POST / HTTP/1.1 +Host:example.amazonaws.com +My-Header1:value1 +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;my-header1;x-amz-date, Signature=c5410059b04c1ee005303aed430f6e6645f61f4dc9e1461ec8f8916fdf18852c \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.sts new file mode 100644 index 00000000..eb663626 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +9368318c2967cf6de74404b30c65a91e8f6253e0a8659d6d5319f1a812f87d65 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.authz new file mode 100644 index 00000000..d9e52a37 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;my-header1;x-amz-date, Signature=cdbc9802e29d2942e5e10b5bccfdd67c5f22c7c4e8ae67b53629efa58b974b7d \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.creq new file mode 100644 index 00000000..af824c88 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.creq @@ -0,0 +1,9 @@ +POST +/ + +host:example.amazonaws.com +my-header1:VALUE1 +x-amz-date:20150830T123600Z + +host;my-header1;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.req b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.req new file mode 100644 index 00000000..3f9987af --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.req @@ -0,0 +1,4 @@ +POST / HTTP/1.1 +Host:example.amazonaws.com +My-Header1:VALUE1 +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.sreq new file mode 100644 index 00000000..99c3210c --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.sreq @@ -0,0 +1,5 @@ +POST / HTTP/1.1 +Host:example.amazonaws.com +My-Header1:VALUE1 +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;my-header1;x-amz-date, Signature=cdbc9802e29d2942e5e10b5bccfdd67c5f22c7c4e8ae67b53629efa58b974b7d \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.sts new file mode 100644 index 00000000..40062c79 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +d51ced243e649e3de6ef63afbbdcbca03131a21a7103a1583706a64618606a93 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.authz new file mode 100644 index 00000000..89e572e6 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5da7c1a2acd57cee7505fc6676e4e544621c30862966e37dddb68e92efbe5d6b \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.creq new file mode 100644 index 00000000..5c3a9434 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.creq @@ -0,0 +1,8 @@ +POST +/ + +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.req b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.req new file mode 100644 index 00000000..3dc41790 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.req @@ -0,0 +1,3 @@ +POST / HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.sreq new file mode 100644 index 00000000..291ed075 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.sreq @@ -0,0 +1,5 @@ +POST / HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +X-Amz-Security-Token:AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQWLWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGdQrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA== +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5da7c1a2acd57cee7505fc6676e4e544621c30862966e37dddb68e92efbe5d6b \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.sts new file mode 100644 index 00000000..a6367039 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +553f88c9e4d10fc9e109e2aeb65f030801b70c2f6468faca261d401ae622fc87 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.authz new file mode 100644 index 00000000..64aa046d --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date;x-amz-security-token, Signature=85d96828115b5dc0cfc3bd16ad9e210dd772bbebba041836c64533a82be05ead \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.creq new file mode 100644 index 00000000..1d5a462e --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.creq @@ -0,0 +1,9 @@ +POST +/ + +host:example.amazonaws.com +x-amz-date:20150830T123600Z +x-amz-security-token:AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQWLWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGdQrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA== + +host;x-amz-date;x-amz-security-token +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.req b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.req new file mode 100644 index 00000000..9d917755 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.req @@ -0,0 +1,4 @@ +POST / HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +X-Amz-Security-Token:AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQWLWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGdQrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA== \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.sreq new file mode 100644 index 00000000..37b2f041 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.sreq @@ -0,0 +1,5 @@ +POST / HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +X-Amz-Security-Token:AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQWLWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGdQrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA== +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date;x-amz-security-token, Signature=85d96828115b5dc0cfc3bd16ad9e210dd772bbebba041836c64533a82be05ead \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.sts new file mode 100644 index 00000000..bc39ccfc --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +c237e1b440d4c63c32ca95b5b99481081cb7b13c7e40434868e71567c1a882f6 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/readme.txt b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/readme.txt new file mode 100644 index 00000000..cc342823 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-sts-token/readme.txt @@ -0,0 +1,15 @@ +A note about using temporary security credentials: + +You can use temporary security credentials provided by the AWS Security Token Service (AWS STS) to sign a request. The process is the same as using long-term credentials but requires an additional HTTP header or query string parameter for the security token. The name of the header or query string parameter is X-Amz-Security-Token, and the value is the session token (the string that you received from AWS STS when you obtained temporary security credentials). + +When you add X-Amz-Security-Token, some services require that you include this parameter in the canonical (signed) request. For other services, you add this parameter at the end, after you calculate the signature. For details see the API reference documentation for that service. + +The test suite has 2 examples: + +post-sts-header-before - The X-Amz-Security-Token header is part of the canonical request. + +post-sts-header-after - The X-Amz-Security-Token header is added to the request after you calculate the signature. + +The test suite uses this example value for X-Amz-Security-Token: + +AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQWLWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGdQrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA== \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.authz new file mode 100644 index 00000000..44280cd7 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=28038455d6de14eafc1f9222cf5aa6f1a96197d7deb8263271d420d138af7f11 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.creq new file mode 100644 index 00000000..f5058d43 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.creq @@ -0,0 +1,8 @@ +POST +/ +Param1=value1 +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.req b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.req new file mode 100644 index 00000000..9157bc74 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.req @@ -0,0 +1,3 @@ +POST /?Param1=value1 HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.sreq new file mode 100644 index 00000000..82af1505 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.sreq @@ -0,0 +1,4 @@ +POST /?Param1=value1 HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=28038455d6de14eafc1f9222cf5aa6f1a96197d7deb8263271d420d138af7f11 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.sts new file mode 100644 index 00000000..ca7cc661 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +9d659678c1756bb3113e2ce898845a0a79dbbc57b740555917687f1b3340fbbd \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.authz new file mode 100644 index 00000000..44280cd7 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=28038455d6de14eafc1f9222cf5aa6f1a96197d7deb8263271d420d138af7f11 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.creq new file mode 100644 index 00000000..f5058d43 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.creq @@ -0,0 +1,8 @@ +POST +/ +Param1=value1 +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.req b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.req new file mode 100644 index 00000000..9157bc74 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.req @@ -0,0 +1,3 @@ +POST /?Param1=value1 HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.sreq new file mode 100644 index 00000000..82af1505 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.sreq @@ -0,0 +1,4 @@ +POST /?Param1=value1 HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=28038455d6de14eafc1f9222cf5aa6f1a96197d7deb8263271d420d138af7f11 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.sts new file mode 100644 index 00000000..ca7cc661 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +9d659678c1756bb3113e2ce898845a0a79dbbc57b740555917687f1b3340fbbd \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.authz new file mode 100644 index 00000000..89e572e6 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5da7c1a2acd57cee7505fc6676e4e544621c30862966e37dddb68e92efbe5d6b \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.creq new file mode 100644 index 00000000..5c3a9434 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.creq @@ -0,0 +1,8 @@ +POST +/ + +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +host;x-amz-date +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.req b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.req new file mode 100644 index 00000000..3dc41790 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.req @@ -0,0 +1,3 @@ +POST / HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.sreq new file mode 100644 index 00000000..a5ada0d9 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.sreq @@ -0,0 +1,4 @@ +POST / HTTP/1.1 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5da7c1a2acd57cee7505fc6676e4e544621c30862966e37dddb68e92efbe5d6b \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.sts new file mode 100644 index 00000000..a6367039 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-vanilla/post-vanilla.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +553f88c9e4d10fc9e109e2aeb65f030801b70c2f6468faca261d401ae622fc87 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.authz new file mode 100644 index 00000000..531b89b4 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=1a72ec8f64bd914b0e42e42607c7fbce7fb2c7465f63e3092b3b0d39fa77a6fe \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.creq new file mode 100644 index 00000000..8ec0d6cf --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.creq @@ -0,0 +1,9 @@ +POST +/ + +content-type:application/x-www-form-urlencoded; charset=utf8 +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +content-type;host;x-amz-date +9095672bbd1f56dfc5b65f3e153adc8731a4a654192329106275f4c7b24d0b6e \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.req b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.req new file mode 100644 index 00000000..5ce537e6 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.req @@ -0,0 +1,6 @@ +POST / HTTP/1.1 +Content-Type:application/x-www-form-urlencoded; charset=utf8 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z + +Param1=value1 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.sreq new file mode 100644 index 00000000..88beb82a --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.sreq @@ -0,0 +1,7 @@ +POST / HTTP/1.1 +Content-Type:application/x-www-form-urlencoded; charset=utf8 +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=1a72ec8f64bd914b0e42e42607c7fbce7fb2c7465f63e3092b3b0d39fa77a6fe + +Param1=value1 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.sts new file mode 100644 index 00000000..3e83c524 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +2e1cf7ed91881a30569e46552437e4156c823447bf1781b921b5d486c568dd1c \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.authz b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.authz new file mode 100644 index 00000000..d7baf535 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.authz @@ -0,0 +1 @@ +AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=ff11897932ad3f4e8b18135d722051e5ac45fc38421b1da7b9d196a0fe09473a \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.creq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.creq new file mode 100644 index 00000000..d7197f17 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.creq @@ -0,0 +1,9 @@ +POST +/ + +content-type:application/x-www-form-urlencoded +host:example.amazonaws.com +x-amz-date:20150830T123600Z + +content-type;host;x-amz-date +9095672bbd1f56dfc5b65f3e153adc8731a4a654192329106275f4c7b24d0b6e \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.req b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.req new file mode 100644 index 00000000..ada7f877 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.req @@ -0,0 +1,6 @@ +POST / HTTP/1.1 +Content-Type:application/x-www-form-urlencoded +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z + +Param1=value1 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.sreq b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.sreq new file mode 100644 index 00000000..9bac9311 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.sreq @@ -0,0 +1,7 @@ +POST / HTTP/1.1 +Content-Type:application/x-www-form-urlencoded +Host:example.amazonaws.com +X-Amz-Date:20150830T123600Z +Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=ff11897932ad3f4e8b18135d722051e5ac45fc38421b1da7b9d196a0fe09473a + +Param1=value1 \ No newline at end of file diff --git a/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.sts b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.sts new file mode 100644 index 00000000..65ab6637 --- /dev/null +++ b/tests/unit/sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.sts @@ -0,0 +1,4 @@ +AWS4-HMAC-SHA256 +20150830T123600Z +20150830/us-east-1/service/aws4_request +42a5e5bb34198acb3e84da4f085bb7927f2bc277ca766e6d19c73c2154021281 \ No newline at end of file diff --git a/tests/unit/sigv4/sigv4.pro b/tests/unit/sigv4/sigv4.pro new file mode 100644 index 00000000..d6bf65a8 --- /dev/null +++ b/tests/unit/sigv4/sigv4.pro @@ -0,0 +1,12 @@ +TARGET = testsigv4 + +include(../../../config.pri) +INCLUDEPATH += $$top_srcdir/libnymea-app-core +LIBS += -L$$top_builddir/libnymea-app-core/ -lnymea-app-core + +QT += testlib network sql +CONFIG += testcase + +DEFINES += TESTDATADIR=\\\"$${PWD}\/aws-sig-v4-test-suite\\\" + +SOURCES += testsigv4.cpp diff --git a/tests/unit/sigv4/testsigv4.cpp b/tests/unit/sigv4/testsigv4.cpp new file mode 100644 index 00000000..95f1418b --- /dev/null +++ b/tests/unit/sigv4/testsigv4.cpp @@ -0,0 +1,150 @@ +#include + +#include "connection/sigv4utils.h" + +class TestSigV4: public QObject +{ + Q_OBJECT +public: + TestSigV4(QObject* parent = nullptr); + +private slots: + void canonicalRequest_data(); + void canonicalRequest(); + +private: + QString m_region = "us-east-1"; + QString m_service = "service"; + QByteArray m_accessKeyId = "AKIDEXAMPLE"; + QByteArray m_secretAccessKey = "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY"; +}; + +Q_DECLARE_METATYPE(QNetworkAccessManager::Operation) + +TestSigV4::TestSigV4(QObject *parent): QObject(parent) +{ +} + +void TestSigV4::canonicalRequest_data() { + QTest::addColumn("method"); + QTest::addColumn("dateTime"); + QTest::addColumn("request"); + QTest::addColumn("payload"); + QTest::addColumn("expectedCanonicalRequest"); + QTest::addColumn("expectedStringToSign"); + QTest::addColumn("expectedSignature"); + + + QDir dir(TESTDATADIR); + foreach (const QString &subDirName, dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot)) { + QDir subDir(QString(TESTDATADIR) + '/' + subDirName); + if(subDir.entryList({"*.req"}).count() != 1) { + qWarning() << "Skipping folder:" << subDir.absolutePath(); + continue; + } + QFile f(subDir.entryInfoList({"*.req"}).first().absoluteFilePath()); + f.open(QFile::ReadOnly); + + // line 1, read operation and path + QByteArray line = f.readLine(); + QByteArray methodString = line.split(' ').first(); + QNetworkAccessManager::Operation operation; + if (methodString == "GET") { + operation = QNetworkAccessManager::GetOperation; + } else if (methodString == "POST") { + operation = QNetworkAccessManager::PostOperation; + } + QByteArray path = line.split(' ').at(1); + + + + QNetworkRequest request; + QByteArray host; + QByteArray dateTime; + + // read headers + QByteArray lastHeaderName; + while (!f.atEnd()) { + QByteArray line = f.readLine().trimmed(); + if (line.isEmpty()) { + break; + } + QByteArray header = QString(line).replace(QRegExp("[\\ ]{1,}"), " ").toUtf8(); + if (!header.contains(':')) { + request.setRawHeader(lastHeaderName, request.rawHeader(lastHeaderName) + ',' + header); + continue; + } + QByteArray headerName = header.split(':').first().trimmed(); + QByteArray headerValue = header.split(':').last().trimmed(); + qDebug() << "working on header:" << headerName << headerValue; + if (headerName == "Host") { + host = headerValue; + } + if (headerName == "X-Amz-Date") { + dateTime = headerValue; + } + if (!request.hasRawHeader(headerName)) { + request.setRawHeader(headerName, headerValue); + } else { + request.setRawHeader(headerName, request.rawHeader(headerName) + ',' + headerValue); + } + lastHeaderName = headerName; + } + + QByteArray payload; + if (!f.atEnd()) { + payload = f.readAll(); + } + + QUrl url = QUrl(QString("https://" + host + path)); + request.setUrl(url); + + // read creq file + QFile creq(subDir.entryInfoList({"*.creq"}).first().absoluteFilePath()); + creq.open(QFile::ReadOnly); + + // read sts file + QFile sts(subDir.entryInfoList({"*.sts"}).first().absoluteFilePath()); + sts.open(QFile::ReadOnly); + + // read authz file + QFile authz(subDir.entryInfoList({"*.authz"}).first().absoluteFilePath()); + authz.open(QFile::ReadOnly); + + QTest::newRow(f.fileName().split('/').last().toUtf8()) << operation << dateTime << request << payload << creq.readAll() << sts.readAll() << authz.readAll(); + } + + +} + +void TestSigV4::canonicalRequest() +{ + QFETCH(QNetworkAccessManager::Operation, method); + QFETCH(QByteArray, dateTime); + QFETCH(QNetworkRequest, request); + QFETCH(QByteArray, payload); + QFETCH(QByteArray, expectedCanonicalRequest); + QFETCH(QByteArray, expectedStringToSign); + QFETCH(QByteArray, expectedSignature); + + qDebug() << "Request:" << request.url() << "Host:" << request.url().host() << "Path:" << request.url().path() << "Query:" << request.url().query(); + QByteArray canonicalRequest = SigV4Utils::getCanonicalRequest(method, request, payload); + + QCOMPARE(canonicalRequest, expectedCanonicalRequest); + + QByteArray stringTosign = SigV4Utils::getStringToSign(canonicalRequest, dateTime, m_region.toUtf8(), m_service.toUtf8()); + + QCOMPARE(stringTosign, expectedStringToSign); + + QByteArray signature = SigV4Utils::getSignature(stringTosign, m_secretAccessKey, dateTime, m_region, m_service); + + QByteArray signHeader = SigV4Utils::getAuthorizationHeader(m_accessKeyId, dateTime, m_region, m_service, request, signature); + + QCOMPARE(signHeader, expectedSignature); +// qDebug() << "CanonicalRequest" << canonicalRequest; + +} + +#include "testsigv4.moc" +QTEST_MAIN(TestSigV4) + diff --git a/tests/unit/unit.pro b/tests/unit/unit.pro new file mode 100644 index 00000000..ecab530c --- /dev/null +++ b/tests/unit/unit.pro @@ -0,0 +1,4 @@ +TEMPLATE = subdirs + +SUBDIRS += sigv4 +