1 + | 304402203a4d2e9bd05ccf8b1e5834f2bb5ab81ea3b1dfbeb84388f07ab3b61ab519332a02204db83afae56ac4e713f631cd15268605d7b36119e672458d86df0cfcb68fe836
|
\ | No newline at end of file
|
0 2 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-sts-header-before/query-signed-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-sts-header-before/query-signed-request.txt
|
1 3 | new file mode 100644
|
2 4 | index 0000000..32c3bb3
|
3 - | -- /dev/null
|
5 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-sts-header-before/query-signed-request.txt
|
4 6 | @@ -0,0 +1,3 @@
|
7 + | POST /?X-Amz-Algorithm=AWS4-ECDSA-P256-SHA256&X-Amz-Credential=AKIDEXAMPLE%2F20150830%2Fservice%2Faws4_request&X-Amz-Date=20150830T123600Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Security-Token=AQoDYXdzEPT%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQWLWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI%2FqkPpKPi%2FkMcGdQrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d%2Bxo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz%2BscqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR%2FoLxBA%3D%3D&X-Amz-Region-Set=us-east-1&X-Amz-Signature=304402207e41aee2d6ea2a3868b3dea7b04caeb14d23ee696a76b93467213cd18467cbf502202a05e108d8feb197a62b4ea4b8a9d11aa4dc92bcfaf6e5fe185efac4bafd0802 HTTP/1.1
|
8 + | Host:example.amazonaws.com
|
9 + |
|
5 10 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-sts-header-before/query-string-to-sign.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-sts-header-before/query-string-to-sign.txt
|
6 11 | similarity index 99%
|
7 12 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-sts-header-before/query-string-to-sign.txt
|
8 13 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-sts-header-before/query-string-to-sign.txt
|
9 14 | index d7f3668..b46cd8c 100644
|
10 15 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.req b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-sts-header-before/request.txt
|
11 16 | similarity index 60%
|
12 17 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.req
|
13 18 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-sts-header-before/request.txt
|
14 19 | index 8b5efc8..3f0a82a 100644
|
15 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.req
|
20 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-sts-header-before/request.txt
|
16 21 | @@ -1,3 +1,2 @@
|
17 22 | POST / HTTP/1.1
|
18 23 | Host:example.amazonaws.com
|
19 - | X-Amz-Date:20150830T123600Z
|
20 24 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/context.json b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/context.json
|
21 25 | new file mode 100644
|
22 26 | index 0000000..0468d80
|
23 - | -- /dev/null
|
27 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/context.json
|
24 28 | @@ -0,0 +1,12 @@
|
29 + | {
|
30 + | "credentials": {
|
31 + | "access_key_id": "AKIDEXAMPLE",
|
32 + | "secret_access_key": "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY"
|
33 + | },
|
34 + | "expiration_in_seconds": 3600,
|
35 + | "normalize": true,
|
36 + | "region": "us-east-1",
|
37 + | "service": "service",
|
38 + | "sign_body": false,
|
39 + | "timestamp": "2015-08-30T12:36:00Z"
|
40 + | }
|
\ | No newline at end of file
|
25 41 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla-query/header-canonical-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/header-canonical-request.txt
|
26 42 | similarity index 99%
|
27 43 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla-query/header-canonical-request.txt
|
28 44 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/header-canonical-request.txt
|
29 45 | index 02af60f..34b8c11 100644
|
30 46 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/header-signature.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/header-signature.txt
|
31 47 | new file mode 100644
|
32 48 | index 0000000..aac6427
|
33 - | -- /dev/null
|
49 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/header-signature.txt
|
34 50 | @@ -0,0 +1 @@
|
51 + | 3045022077e142d360c6c3d6768c94c89856f6de0e4fe088328ed0a2324d78ffb73570f1022100ed84c9cd071b43d78f2d70cc1694b3ea807638c648d29a2c401cf3301b34e081
|
\ | No newline at end of file
|
35 52 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/header-signed-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/header-signed-request.txt
|
36 53 | new file mode 100644
|
37 54 | index 0000000..a611436
|
38 - | -- /dev/null
|
55 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/header-signed-request.txt
|
39 56 | @@ -0,0 +1,6 @@
|
57 + | POST /?Param1=value1 HTTP/1.1
|
58 + | Host:example.amazonaws.com
|
59 + | X-Amz-Date:20150830T123600Z
|
60 + | X-Amz-Region-Set:us-east-1
|
61 + | Authorization:AWS4-ECDSA-P256-SHA256 Credential=AKIDEXAMPLE/20150830/service/aws4_request, SignedHeaders=host;x-amz-date;x-amz-region-set, Signature=304402203129b52c7149bcf5761f83d023986576af5846b9e9f11050651639f9e24c9ebd02200f7e2f6c2aed2bbb76580e50d32e8aa09dc65f7544cdb169b4a690a2a248efd3
|
62 + |
|
40 63 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla-empty-query-value/header-string-to-sign.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/header-string-to-sign.txt
|
41 64 | similarity index 99%
|
42 65 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla-empty-query-value/header-string-to-sign.txt
|
43 66 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/header-string-to-sign.txt
|
44 67 | index 4256b4f..ad88dff 100644
|
45 68 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/public-key.json b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/public-key.json
|
46 69 | new file mode 100644
|
47 70 | index 0000000..379dcb2
|
48 - | -- /dev/null
|
71 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/public-key.json
|
49 72 | @@ -0,0 +1,4 @@
|
73 + | {
|
74 + | "X":"b6618f6a65740a99e650b33b6b4b5bd0d43b176d721a3edfea7e7d2d56d936b1",
|
75 + | "Y":"865ed22a7eadc9c5cb9d2cbaca1b3699139fedc5043dc6661864218330c8e518"
|
76 + | }
|
50 77 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla-query/query-canonical-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/query-canonical-request.txt
|
51 78 | similarity index 99%
|
52 79 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla-query/query-canonical-request.txt
|
53 80 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/query-canonical-request.txt
|
54 81 | index fa84bbd..76d5ad6 100644
|
55 82 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/query-signature.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/query-signature.txt
|
56 83 | new file mode 100644
|
57 84 | index 0000000..4cb1c94
|
58 - | -- /dev/null
|
85 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/query-signature.txt
|
59 86 | @@ -0,0 +1 @@
|
87 + | 3045022100df7ad6c7c07d989d8bf5bdc3953a5992ceb0e0acb40c8fba0fdb2e12b1003a0e022002a3b1109182bf60285df0b581ce2d8c6665215d7c0ae4bc32a43a30bad21626
|
\ | No newline at end of file
|
60 88 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/query-signed-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/query-signed-request.txt
|
61 89 | new file mode 100644
|
62 90 | index 0000000..bd22b97
|
63 - | -- /dev/null
|
91 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/query-signed-request.txt
|
64 92 | @@ -0,0 +1,3 @@
|
93 + | POST /?Param1=value1&X-Amz-Algorithm=AWS4-ECDSA-P256-SHA256&X-Amz-Credential=AKIDEXAMPLE%2F20150830%2Fservice%2Faws4_request&X-Amz-Date=20150830T123600Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Region-Set=us-east-1&X-Amz-Signature=3045022025fbe60840e867e12ed08dde14cb7b65da87de27afd012fd2bef96c7bc5b6bfe022100ab6eaea845c3d8b65b39d4506cdd36232f10dae092ddd4d54f887d2f979821d9 HTTP/1.1
|
94 + | Host:example.amazonaws.com
|
95 + |
|
65 96 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla-empty-query-value/query-string-to-sign.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/query-string-to-sign.txt
|
66 97 | similarity index 99%
|
67 98 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla-empty-query-value/query-string-to-sign.txt
|
68 99 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/query-string-to-sign.txt
|
69 100 | index de270ef..8c9d319 100644
|
70 101 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.req b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/request.txt
|
71 102 | similarity index 67%
|
72 103 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.req
|
73 104 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/request.txt
|
74 105 | index 9157bc7..c9d6e5d 100644
|
75 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.req
|
106 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-empty-query-value/request.txt
|
76 107 | @@ -1,3 +1,2 @@
|
77 108 | POST /?Param1=value1 HTTP/1.1
|
78 109 | Host:example.amazonaws.com
|
79 - | X-Amz-Date:20150830T123600Z
|
\ | No newline at end of file
|
80 110 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/context.json b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/context.json
|
81 111 | new file mode 100644
|
82 112 | index 0000000..0468d80
|
83 - | -- /dev/null
|
113 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/context.json
|
84 114 | @@ -0,0 +1,12 @@
|
115 + | {
|
116 + | "credentials": {
|
117 + | "access_key_id": "AKIDEXAMPLE",
|
118 + | "secret_access_key": "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY"
|
119 + | },
|
120 + | "expiration_in_seconds": 3600,
|
121 + | "normalize": true,
|
122 + | "region": "us-east-1",
|
123 + | "service": "service",
|
124 + | "sign_body": false,
|
125 + | "timestamp": "2015-08-30T12:36:00Z"
|
126 + | }
|
\ | No newline at end of file
|
85 127 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla-empty-query-value/header-canonical-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/header-canonical-request.txt
|
86 128 | similarity index 99%
|
87 129 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla-empty-query-value/header-canonical-request.txt
|
88 130 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/header-canonical-request.txt
|
89 131 | index 02af60f..34b8c11 100644
|
90 132 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/header-signature.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/header-signature.txt
|
91 133 | new file mode 100644
|
92 134 | index 0000000..34f75c8
|
93 - | -- /dev/null
|
135 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/header-signature.txt
|
94 136 | @@ -0,0 +1 @@
|
137 + | 3046022100b876f1bd2e85da20227bf515463de11ed5334e78e559bf814ce39c6a500af453022100a0a4797c60fda7bca3af5ae71680853b0c4e401d3da0821e3266062ff3463275
|
\ | No newline at end of file
|
95 138 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/header-signed-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/header-signed-request.txt
|
96 139 | new file mode 100644
|
97 140 | index 0000000..c731408
|
98 - | -- /dev/null
|
141 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/header-signed-request.txt
|
99 142 | @@ -0,0 +1,6 @@
|
143 + | POST /?Param1=value1 HTTP/1.1
|
144 + | Host:example.amazonaws.com
|
145 + | X-Amz-Date:20150830T123600Z
|
146 + | X-Amz-Region-Set:us-east-1
|
147 + | Authorization:AWS4-ECDSA-P256-SHA256 Credential=AKIDEXAMPLE/20150830/service/aws4_request, SignedHeaders=host;x-amz-date;x-amz-region-set, Signature=304402202785ef1eddce96aa4f4cb359f00fcb1155fa7f679b4af8949a8ea097381543fc02205a9719949fcc5452e690dcd2426318aa17d87aa67c68fdd66f815ae2d3591b49
|
148 + |
|
100 149 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla-query/header-string-to-sign.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/header-string-to-sign.txt
|
101 150 | similarity index 99%
|
102 151 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla-query/header-string-to-sign.txt
|
103 152 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/header-string-to-sign.txt
|
104 153 | index 4256b4f..ad88dff 100644
|
105 154 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/public-key.json b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/public-key.json
|
106 155 | new file mode 100644
|
107 156 | index 0000000..379dcb2
|
108 - | -- /dev/null
|
157 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/public-key.json
|
109 158 | @@ -0,0 +1,4 @@
|
159 + | {
|
160 + | "X":"b6618f6a65740a99e650b33b6b4b5bd0d43b176d721a3edfea7e7d2d56d936b1",
|
161 + | "Y":"865ed22a7eadc9c5cb9d2cbaca1b3699139fedc5043dc6661864218330c8e518"
|
162 + | }
|
110 163 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla-empty-query-value/query-canonical-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/query-canonical-request.txt
|
111 164 | similarity index 99%
|
112 165 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla-empty-query-value/query-canonical-request.txt
|
113 166 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/query-canonical-request.txt
|
114 167 | index fa84bbd..76d5ad6 100644
|
115 168 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/query-signature.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/query-signature.txt
|
116 169 | new file mode 100644
|
117 170 | index 0000000..ae000d6
|
118 - | -- /dev/null
|
171 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/query-signature.txt
|
119 172 | @@ -0,0 +1 @@
|
173 + | 304402206c9877a31b4f7d0118d45b1e1ac58ed605f2d7ded4005d59c86ac7331737097302201772085759c0ab0ecbf67a85128823319866ee7118945cf569dd17f678aafce5
|
\ | No newline at end of file
|
120 174 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/query-signed-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/query-signed-request.txt
|
121 175 | new file mode 100644
|
122 176 | index 0000000..a868f7d
|
123 - | -- /dev/null
|
177 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/query-signed-request.txt
|
124 178 | @@ -0,0 +1,3 @@
|
179 + | POST /?Param1=value1&X-Amz-Algorithm=AWS4-ECDSA-P256-SHA256&X-Amz-Credential=AKIDEXAMPLE%2F20150830%2Fservice%2Faws4_request&X-Amz-Date=20150830T123600Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Region-Set=us-east-1&X-Amz-Signature=304402207a361da47ef99ca9b92f2a8d5f8f0214a9580491aa78413733200307498bae3d02207072a6f2a774fa336cc5fb84daf553f70ed1867f2e35563e3a24fdf4a329713d HTTP/1.1
|
180 + | Host:example.amazonaws.com
|
181 + |
|
125 182 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla-query/query-string-to-sign.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/query-string-to-sign.txt
|
126 183 | similarity index 99%
|
127 184 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla-query/query-string-to-sign.txt
|
128 185 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/query-string-to-sign.txt
|
129 186 | index de270ef..8c9d319 100644
|
130 187 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.req b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/request.txt
|
131 188 | similarity index 67%
|
132 189 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.req
|
133 190 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/request.txt
|
134 191 | index 9157bc7..c9d6e5d 100644
|
135 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.req
|
192 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla-query/request.txt
|
136 193 | @@ -1,3 +1,2 @@
|
137 194 | POST /?Param1=value1 HTTP/1.1
|
138 195 | Host:example.amazonaws.com
|
139 - | X-Amz-Date:20150830T123600Z
|
\ | No newline at end of file
|
140 196 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/context.json b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/context.json
|
141 197 | new file mode 100644
|
142 198 | index 0000000..0468d80
|
143 - | -- /dev/null
|
199 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/context.json
|
144 200 | @@ -0,0 +1,12 @@
|
201 + | {
|
202 + | "credentials": {
|
203 + | "access_key_id": "AKIDEXAMPLE",
|
204 + | "secret_access_key": "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY"
|
205 + | },
|
206 + | "expiration_in_seconds": 3600,
|
207 + | "normalize": true,
|
208 + | "region": "us-east-1",
|
209 + | "service": "service",
|
210 + | "sign_body": false,
|
211 + | "timestamp": "2015-08-30T12:36:00Z"
|
212 + | }
|
\ | No newline at end of file
|
145 213 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla/header-canonical-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/header-canonical-request.txt
|
146 214 | similarity index 99%
|
147 215 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla/header-canonical-request.txt
|
148 216 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/header-canonical-request.txt
|
149 217 | index a6942c1..e881ac7 100644
|
150 218 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/header-signature.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/header-signature.txt
|
151 219 | new file mode 100644
|
152 220 | index 0000000..7c5e47b
|
153 - | -- /dev/null
|
221 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/header-signature.txt
|
154 222 | @@ -0,0 +1 @@
|
223 + | 3044022051fe398025aafbfc21d054bc78e5edfb96c9acb7fd272795565181d757815e4702202e7b8d2b92324290b1d95f8b0fc5e333bb8b5e333f6160bcab39d7258156d224
|
\ | No newline at end of file
|
155 224 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/header-signed-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/header-signed-request.txt
|
156 225 | new file mode 100644
|
157 226 | index 0000000..c0e50a0
|
158 - | -- /dev/null
|
227 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/header-signed-request.txt
|
159 228 | @@ -0,0 +1,6 @@
|
229 + | POST / HTTP/1.1
|
230 + | Host:example.amazonaws.com
|
231 + | X-Amz-Date:20150830T123600Z
|
232 + | X-Amz-Region-Set:us-east-1
|
233 + | Authorization:AWS4-ECDSA-P256-SHA256 Credential=AKIDEXAMPLE/20150830/service/aws4_request, SignedHeaders=host;x-amz-date;x-amz-region-set, Signature=3044022020e04d83be1fc4c7669eb2530c48444ff2ef65e73ab6d4084ba89b886b70d01a0220570df05bd3ba39ccd96a3e831ed8757fbb516baa603d78eaed3ccc95d50a2abb
|
234 + |
|
160 235 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla/header-string-to-sign.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/header-string-to-sign.txt
|
161 236 | similarity index 99%
|
162 237 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla/header-string-to-sign.txt
|
163 238 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/header-string-to-sign.txt
|
164 239 | index d5650cb..f8adf13 100644
|
165 240 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/public-key.json b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/public-key.json
|
166 241 | new file mode 100644
|
167 242 | index 0000000..379dcb2
|
168 - | -- /dev/null
|
243 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/public-key.json
|
169 244 | @@ -0,0 +1,4 @@
|
245 + | {
|
246 + | "X":"b6618f6a65740a99e650b33b6b4b5bd0d43b176d721a3edfea7e7d2d56d936b1",
|
247 + | "Y":"865ed22a7eadc9c5cb9d2cbaca1b3699139fedc5043dc6661864218330c8e518"
|
248 + | }
|
170 249 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla/query-canonical-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/query-canonical-request.txt
|
171 250 | similarity index 99%
|
172 251 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla/query-canonical-request.txt
|
173 252 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/query-canonical-request.txt
|
174 253 | index e48ce07..5ea8e3c 100644
|
175 254 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/query-signature.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/query-signature.txt
|
176 255 | new file mode 100644
|
177 256 | index 0000000..ea8e3b4
|
178 - | -- /dev/null
|
257 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/query-signature.txt
|
179 258 | @@ -0,0 +1 @@
|
259 + | 30440220158b75ce84ef2d97a0b287759f9104b9e093ef3a912a84bd78d30274d08c10c4022064fb9961da1d951aba42455df5752c3e3fa8055cd053b59ad53b140d54f6aafd
|
\ | No newline at end of file
|
180 260 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/query-signed-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/query-signed-request.txt
|
181 261 | new file mode 100644
|
182 262 | index 0000000..616973f
|
183 - | -- /dev/null
|
263 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/query-signed-request.txt
|
184 264 | @@ -0,0 +1,3 @@
|
265 + | POST /?X-Amz-Algorithm=AWS4-ECDSA-P256-SHA256&X-Amz-Credential=AKIDEXAMPLE%2F20150830%2Fservice%2Faws4_request&X-Amz-Date=20150830T123600Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Region-Set=us-east-1&X-Amz-Signature=3044022034768b9f03c61ee7f93b1e23198ff08923345e32f25e662afa5794997f00ebb102205813497325d50d374e486a3fce997e02ae9610a8eb81af01128103dd9d2d997d HTTP/1.1
|
266 + | Host:example.amazonaws.com
|
267 + |
|
185 268 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla/query-string-to-sign.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/query-string-to-sign.txt
|
186 269 | similarity index 99%
|
187 270 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-vanilla/query-string-to-sign.txt
|
188 271 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/query-string-to-sign.txt
|
189 272 | index 34e3382..711c162 100644
|
190 273 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/request.txt
|
191 274 | new file mode 100644
|
192 275 | index 0000000..3f0a82a
|
193 - | -- /dev/null
|
276 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-vanilla/request.txt
|
194 277 | @@ -0,0 +1,2 @@
|
278 + | POST / HTTP/1.1
|
279 + | Host:example.amazonaws.com
|
195 280 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/context.json b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/context.json
|
196 281 | new file mode 100644
|
197 282 | index 0000000..0db1df1
|
198 - | -- /dev/null
|
283 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/context.json
|
199 284 | @@ -0,0 +1,12 @@
|
285 + | {
|
286 + | "credentials": {
|
287 + | "access_key_id": "AKIDEXAMPLE",
|
288 + | "secret_access_key": "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY"
|
289 + | },
|
290 + | "expiration_in_seconds": 3600,
|
291 + | "normalize": true,
|
292 + | "region": "us-east-1",
|
293 + | "service": "service",
|
294 + | "sign_body": true,
|
295 + | "timestamp": "2015-08-30T12:36:00Z"
|
296 + | }
|
\ | No newline at end of file
|
200 297 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded-parameters/header-canonical-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/header-canonical-request.txt
|
201 298 | similarity index 62%
|
202 299 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded-parameters/header-canonical-request.txt
|
203 300 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/header-canonical-request.txt
|
204 301 | index 05ab787..62639b2 100644
|
205 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded-parameters/header-canonical-request.txt
|
302 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/header-canonical-request.txt
|
206 303 | @@ -1,12 +1,12 @@
|
207 304 | POST
|
208 305 | /
|
209 306 |
|
210 307 | content-length:13
|
211 308 | content-type:application/x-www-form-urlencoded; charset=utf-8
|
212 309 | host:example.amazonaws.com
|
213 - | x-amz-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
310 + | x-amz-content-sha256:9095672bbd1f56dfc5b65f3e153adc8731a4a654192329106275f4c7b24d0b6e
|
214 311 | x-amz-date:20150830T123600Z
|
215 312 | x-amz-region-set:us-east-1
|
216 313 |
|
217 314 | content-length;content-type;host;x-amz-content-sha256;x-amz-date;x-amz-region-set
|
218 - | e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
315 + | 9095672bbd1f56dfc5b65f3e153adc8731a4a654192329106275f4c7b24d0b6e
|
\ | No newline at end of file
|
219 316 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/header-signature.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/header-signature.txt
|
220 317 | new file mode 100644
|
221 318 | index 0000000..006ec2e
|
222 - | -- /dev/null
|
319 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/header-signature.txt
|
223 320 | @@ -0,0 +1 @@
|
321 + | 3045022100eaa8151b5a6e60d9c52dfa60d186a304d0226984aa9ed21f2913267cdfd365c902203bfd4e6dfea58e68d3cb892939f3a00ac91e80c8df69828aefa1e48245928678
|
\ | No newline at end of file
|
224 322 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/header-signed-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/header-signed-request.txt
|
225 323 | new file mode 100644
|
226 324 | index 0000000..87a11f2
|
227 - | -- /dev/null
|
325 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/header-signed-request.txt
|
228 326 | @@ -0,0 +1,10 @@
|
327 + | POST / HTTP/1.1
|
328 + | Content-Type:application/x-www-form-urlencoded; charset=utf-8
|
329 + | Host:example.amazonaws.com
|
330 + | Content-Length:13
|
331 + | X-Amz-Date:20150830T123600Z
|
332 + | X-Amz-Region-Set:us-east-1
|
333 + | x-amz-content-sha256:9095672bbd1f56dfc5b65f3e153adc8731a4a654192329106275f4c7b24d0b6e
|
334 + | Authorization:AWS4-ECDSA-P256-SHA256 Credential=AKIDEXAMPLE/20150830/service/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-content-sha256;x-amz-date;x-amz-region-set, Signature=3045022100c016dc61cbd380cf8160711320957071f5c122ef69164d56d02f79daf51a0603022043e3313aa2f6b46285cc89dfe5616ccc74c810a3d7ea25b76ee1ca496f7facba
|
335 + |
|
336 + | Param1=value1
|
\ | No newline at end of file
|
229 337 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/header-string-to-sign.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/header-string-to-sign.txt
|
230 338 | new file mode 100644
|
231 339 | index 0000000..c047afb
|
232 - | -- /dev/null
|
340 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/header-string-to-sign.txt
|
233 341 | @@ -0,0 +1,4 @@
|
342 + | AWS4-ECDSA-P256-SHA256
|
343 + | 20150830T123600Z
|
344 + | 20150830/service/aws4_request
|
345 + | bcdb9ab3050c0bb18c5e9eb60e6eb1aaaf00907920065569a99b0c51278639b5
|
\ | No newline at end of file
|
234 346 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/public-key.json b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/public-key.json
|
235 347 | new file mode 100644
|
236 348 | index 0000000..379dcb2
|
237 - | -- /dev/null
|
349 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/public-key.json
|
238 350 | @@ -0,0 +1,4 @@
|
351 + | {
|
352 + | "X":"b6618f6a65740a99e650b33b6b4b5bd0d43b176d721a3edfea7e7d2d56d936b1",
|
353 + | "Y":"865ed22a7eadc9c5cb9d2cbaca1b3699139fedc5043dc6661864218330c8e518"
|
354 + | }
|
239 355 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded-parameters/query-canonical-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-canonical-request.txt
|
240 356 | similarity index 85%
|
241 357 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded-parameters/query-canonical-request.txt
|
242 358 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-canonical-request.txt
|
243 359 | index fcc454f..6933a8c 100644
|
244 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded-parameters/query-canonical-request.txt
|
360 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-canonical-request.txt
|
245 361 | @@ -1,9 +1,9 @@
|
246 362 | POST
|
247 363 | /
|
248 364 | X-Amz-Algorithm=AWS4-ECDSA-P256-SHA256&X-Amz-Credential=AKIDEXAMPLE%2F20150830%2Fservice%2Faws4_request&X-Amz-Date=20150830T123600Z&X-Amz-Expires=3600&X-Amz-Region-Set=us-east-1&X-Amz-SignedHeaders=content-length%3Bcontent-type%3Bhost
|
249 365 | content-length:13
|
250 366 | content-type:application/x-www-form-urlencoded; charset=utf-8
|
251 367 | host:example.amazonaws.com
|
252 368 |
|
253 369 | content-length;content-type;host
|
254 - | e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
370 + | 9095672bbd1f56dfc5b65f3e153adc8731a4a654192329106275f4c7b24d0b6e
|
\ | No newline at end of file
|
255 371 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-signature.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-signature.txt
|
256 372 | new file mode 100644
|
257 373 | index 0000000..34a2e12
|
258 - | -- /dev/null
|
374 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-signature.txt
|
259 375 | @@ -0,0 +1 @@
|
376 + | 3046022100dcfa462c480d85707221a690323639df78fb10eb2f4913abcfc4eec215c39fb8022100bad863cf9d951963fc2d8068a2887742d553283e5086f644e3ca9ff8b262e13c
|
\ | No newline at end of file
|
260 377 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-signed-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-signed-request.txt
|
261 378 | new file mode 100644
|
262 379 | index 0000000..197b99e
|
263 - | -- /dev/null
|
380 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-signed-request.txt
|
264 381 | @@ -0,0 +1,6 @@
|
382 + | POST /?X-Amz-Algorithm=AWS4-ECDSA-P256-SHA256&X-Amz-Credential=AKIDEXAMPLE%2F20150830%2Fservice%2Faws4_request&X-Amz-Date=20150830T123600Z&X-Amz-SignedHeaders=content-length%3Bcontent-type%3Bhost&X-Amz-Expires=3600&X-Amz-Region-Set=us-east-1&X-Amz-Signature=30450220128d491ccca3f9a7988d00454d2210dd884d7990ca2cb844d4968c8fa9e937f8022100b3668dd440d8206074460567cee98691f66412fe5a83d8e32c601e1331f2ec2b HTTP/1.1
|
383 + | Content-Type:application/x-www-form-urlencoded; charset=utf-8
|
384 + | Host:example.amazonaws.com
|
385 + | Content-Length:13
|
386 + |
|
387 + | Param1=value1
|
\ | No newline at end of file
|
265 388 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-string-to-sign.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-string-to-sign.txt
|
266 389 | new file mode 100644
|
267 390 | index 0000000..9d2bc74
|
268 - | -- /dev/null
|
391 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/query-string-to-sign.txt
|
269 392 | @@ -0,0 +1,4 @@
|
393 + | AWS4-ECDSA-P256-SHA256
|
394 + | 20150830T123600Z
|
395 + | 20150830/service/aws4_request
|
396 + | d4dab970413a0459d2a3bb644b278e96e85f2f6ac8fa09a74bbd6a269ec3dd82
|
\ | No newline at end of file
|
270 397 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.req b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/request.txt
|
271 398 | similarity index 80%
|
272 399 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.req
|
273 400 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/request.txt
|
274 401 | index 36015f1..8289eaa 100644
|
275 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.req
|
402 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded-parameters/request.txt
|
276 403 | @@ -1,6 +1,6 @@
|
277 404 | POST / HTTP/1.1
|
278 405 | Content-Type:application/x-www-form-urlencoded; charset=utf-8
|
279 406 | Host:example.amazonaws.com
|
280 - | X-Amz-Date:20150830T123600Z
|
407 + | Content-Length:13
|
281 408 |
|
282 409 | Param1=value1
|
\ | No newline at end of file
|
283 410 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/context.json b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/context.json
|
284 411 | new file mode 100644
|
285 412 | index 0000000..0db1df1
|
286 - | -- /dev/null
|
413 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/context.json
|
287 414 | @@ -0,0 +1,12 @@
|
415 + | {
|
416 + | "credentials": {
|
417 + | "access_key_id": "AKIDEXAMPLE",
|
418 + | "secret_access_key": "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY"
|
419 + | },
|
420 + | "expiration_in_seconds": 3600,
|
421 + | "normalize": true,
|
422 + | "region": "us-east-1",
|
423 + | "service": "service",
|
424 + | "sign_body": true,
|
425 + | "timestamp": "2015-08-30T12:36:00Z"
|
426 + | }
|
\ | No newline at end of file
|
288 427 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded/header-canonical-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-canonical-request.txt
|
289 428 | similarity index 61%
|
290 429 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded/header-canonical-request.txt
|
291 430 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-canonical-request.txt
|
292 431 | index 69009dc..797632b 100644
|
293 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded/header-canonical-request.txt
|
432 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-canonical-request.txt
|
294 433 | @@ -1,12 +1,12 @@
|
295 434 | POST
|
296 435 | /
|
297 436 |
|
298 437 | content-length:13
|
299 438 | content-type:application/x-www-form-urlencoded
|
300 439 | host:example.amazonaws.com
|
301 - | x-amz-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
440 + | x-amz-content-sha256:9095672bbd1f56dfc5b65f3e153adc8731a4a654192329106275f4c7b24d0b6e
|
302 441 | x-amz-date:20150830T123600Z
|
303 442 | x-amz-region-set:us-east-1
|
304 443 |
|
305 444 | content-length;content-type;host;x-amz-content-sha256;x-amz-date;x-amz-region-set
|
306 - | e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
445 + | 9095672bbd1f56dfc5b65f3e153adc8731a4a654192329106275f4c7b24d0b6e
|
\ | No newline at end of file
|
307 446 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-signature.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-signature.txt
|
308 447 | new file mode 100644
|
309 448 | index 0000000..f5a641c
|
310 - | -- /dev/null
|
449 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-signature.txt
|
311 450 | @@ -0,0 +1 @@
|
451 + | 304402202dc0a1ca6ca9308bece143f48201f2500761a242ba6efc7857e1ba01a022e843022053f570cb5adf521df2f6732b5077becd86bc2073b30e9d48c2057851902c1c0e
|
\ | No newline at end of file
|
312 452 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-signed-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-signed-request.txt
|
313 453 | new file mode 100644
|
314 454 | index 0000000..7bd94a7
|
315 - | -- /dev/null
|
455 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-signed-request.txt
|
316 456 | @@ -0,0 +1,10 @@
|
457 + | POST / HTTP/1.1
|
458 + | Content-Type:application/x-www-form-urlencoded
|
459 + | Host:example.amazonaws.com
|
460 + | Content-Length:13
|
461 + | X-Amz-Date:20150830T123600Z
|
462 + | X-Amz-Region-Set:us-east-1
|
463 + | x-amz-content-sha256:9095672bbd1f56dfc5b65f3e153adc8731a4a654192329106275f4c7b24d0b6e
|
464 + | Authorization:AWS4-ECDSA-P256-SHA256 Credential=AKIDEXAMPLE/20150830/service/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-content-sha256;x-amz-date;x-amz-region-set, Signature=3045022100955bbc0f0b9d4284719808642167f7d5ea4a72f8c296b75b442898c8b81cd7e502202425fb97620fa9a20344d22b248dd00db07524fc39b5ad77533e00b277331241
|
465 + |
|
466 + | Param1=value1
|
\ | No newline at end of file
|
317 467 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-string-to-sign.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-string-to-sign.txt
|
318 468 | new file mode 100644
|
319 469 | index 0000000..8d25ba9
|
320 - | -- /dev/null
|
470 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/header-string-to-sign.txt
|
321 471 | @@ -0,0 +1,4 @@
|
472 + | AWS4-ECDSA-P256-SHA256
|
473 + | 20150830T123600Z
|
474 + | 20150830/service/aws4_request
|
475 + | ba7fa291aefad463b308fdc89b33d852aea9fbcfa151d820117bd8189066cb91
|
\ | No newline at end of file
|
322 476 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/public-key.json b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/public-key.json
|
323 477 | new file mode 100644
|
324 478 | index 0000000..379dcb2
|
325 - | -- /dev/null
|
479 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/public-key.json
|
326 480 | @@ -0,0 +1,4 @@
|
481 + | {
|
482 + | "X":"b6618f6a65740a99e650b33b6b4b5bd0d43b176d721a3edfea7e7d2d56d936b1",
|
483 + | "Y":"865ed22a7eadc9c5cb9d2cbaca1b3699139fedc5043dc6661864218330c8e518"
|
484 + | }
|
327 485 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded/query-canonical-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-canonical-request.txt
|
328 486 | similarity index 99%
|
329 487 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded/query-canonical-request.txt
|
330 488 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-canonical-request.txt
|
331 489 | index 9ed065b..563ff58 100644
|
332 490 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-signature.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-signature.txt
|
333 491 | new file mode 100644
|
334 492 | index 0000000..0c77daf
|
335 - | -- /dev/null
|
493 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-signature.txt
|
336 494 | @@ -0,0 +1 @@
|
495 + | 304402205e21d399153f879b0f32c38742d12941299467bfdc213224cc76a97acffd6ec6022035a9be37a38c19e98e5cfc536fabe885e82fbf999081234b364cab5cacff8733
|
\ | No newline at end of file
|
337 496 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-signed-request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-signed-request.txt
|
338 497 | new file mode 100644
|
339 498 | index 0000000..71d6de9
|
340 - | -- /dev/null
|
499 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-signed-request.txt
|
341 500 | @@ -0,0 +1,6 @@
|
501 + | POST /?X-Amz-Algorithm=AWS4-ECDSA-P256-SHA256&X-Amz-Credential=AKIDEXAMPLE%2F20150830%2Fservice%2Faws4_request&X-Amz-Date=20150830T123600Z&X-Amz-SignedHeaders=content-length%3Bcontent-type%3Bhost&X-Amz-Expires=3600&X-Amz-Region-Set=us-east-1&X-Amz-Signature=30450221008d8a6aa0bc3f651e6c14c52e9e24dbca58964641c9cb6e55169f9dc74766ae3d022016126756ce1523ac972f66f6bf6e981f44572d3c8916f1f43d428fb2caa0e1ea HTTP/1.1
|
502 + | Content-Type:application/x-www-form-urlencoded
|
503 + | Host:example.amazonaws.com
|
504 + | Content-Length:13
|
505 + |
|
506 + | Param1=value1
|
\ | No newline at end of file
|
342 507 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded/query-string-to-sign.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-string-to-sign.txt
|
343 508 | similarity index 99%
|
344 509 | rename from tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-sig-v4a-test-suite/post-x-www-form-urlencoded/query-string-to-sign.txt
|
345 510 | rename to tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/query-string-to-sign.txt
|
346 511 | index bef3143..cc7a224 100644
|
347 512 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/request.txt b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/request.txt
|
348 513 | new file mode 100644
|
349 514 | index 0000000..760b2d3
|
350 - | -- /dev/null
|
515 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/aws-signing-test-suite/v4a/post-x-www-form-urlencoded/request.txt
|
351 516 | @@ -0,0 +1,6 @@
|
517 + | POST / HTTP/1.1
|
518 + | Content-Type:application/x-www-form-urlencoded
|
519 + | Host:example.amazonaws.com
|
520 + | Content-Length:13
|
521 + |
|
522 + | Param1=value1
|
\ | No newline at end of file
|
352 523 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/canonical_request.rs b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/canonical_request.rs
|
353 524 | index 9bd636f..b53f33f 100644
|
354 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/canonical_request.rs
|
525 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/canonical_request.rs
|
355 526 | @@ -346,67 +346,78 @@ impl CanonicalRequest<'_> {
|
356 527 | params.push((Cow::Borrowed(k), Cow::Borrowed(v)));
|
357 528 | }
|
358 529 |
|
359 530 | if let SignatureValues::QueryParams(values) = values {
|
360 531 | add_param(&mut params, param::X_AMZ_DATE, &values.date_time);
|
361 532 | add_param(&mut params, param::X_AMZ_EXPIRES, &values.expires);
|
362 533 |
|
363 534 | #[cfg(feature = "sigv4a")]
|
364 535 | if let Some(regions) = values.region_set {
|
365 536 | add_param(&mut params, sigv4a::param::X_AMZ_REGION_SET, regions);
|
366 537 | }
|
367 538 |
|
368 539 | add_param(&mut params, param::X_AMZ_ALGORITHM, values.algorithm);
|
369 540 | add_param(&mut params, param::X_AMZ_CREDENTIAL, &values.credential);
|
370 541 | add_param(
|
371 542 | &mut params,
|
372 543 | param::X_AMZ_SIGNED_HEADERS,
|
373 544 | values.signed_headers.as_str(),
|
374 545 | );
|
375 546 |
|
376 547 | if let Some(security_token) = values.security_token {
|
377 548 | add_param(
|
378 549 | &mut params,
|
379 550 | settings
|
380 551 | .session_token_name_override
|
381 552 | .unwrap_or(param::X_AMZ_SECURITY_TOKEN),
|
382 553 | security_token,
|
383 554 | );
|
384 555 | }
|
385 556 | }
|
386 - | // Sort by param name, and then by param value
|
557 + |
|
558 + | // Sort on the _encoded_ key/value pairs
|
559 + | let mut params: Vec<(String, String)> = params
|
560 + | .into_iter()
|
561 + | .map(|x| {
|
562 + | use aws_smithy_http::query::fmt_string;
|
563 + | let enc_k = fmt_string(&x.0);
|
564 + | let enc_v = fmt_string(&x.1);
|
565 + | (enc_k, enc_v)
|
566 + | })
|
567 + | .collect();
|
568 + |
|
387 569 | params.sort();
|
388 570 |
|
389 571 | let mut query = QueryWriter::new(uri);
|
390 572 | query.clear_params();
|
391 573 | for (key, value) in params {
|
392 - | query.insert(&key, &value);
|
574 + | query.insert_encoded(&key, &value);
|
393 575 | }
|
394 576 |
|
395 577 | let query = query.build_query();
|
396 578 | if query.is_empty() {
|
397 579 | None
|
398 580 | } else {
|
399 581 | Some(query)
|
400 582 | }
|
401 583 | }
|
402 584 |
|
403 585 | fn insert_host_header(
|
404 586 | canonical_headers: &mut HeaderMap<HeaderValue>,
|
405 587 | uri: &Uri,
|
406 588 | ) -> HeaderValue {
|
407 589 | match canonical_headers.get(&HOST) {
|
408 590 | Some(header) => header.clone(),
|
409 591 | None => {
|
410 592 | let port = uri.port();
|
411 593 | let scheme = uri.scheme();
|
412 594 | let authority = uri
|
413 595 | .authority()
|
414 596 | .expect("request uri authority must be set for signing")
|
415 597 | .as_str();
|
416 598 | let host = uri
|
417 599 | .host()
|
418 600 | .expect("request uri host must be set for signing");
|
419 601 |
|
420 602 | // Check if port is default (80 for HTTP, 443 for HTTPS) and if so exclude it from the
|
421 603 | // Host header when signing since RFC 2616 indicates that the default port should not be
|
422 604 | // sent in the Host header (and Hyper strips default ports if they are present)
|
423 605 | @@ -642,310 +653,320 @@ impl<'a> StringToSign<'a> {
|
424 606 | service,
|
425 607 | hashed_creq,
|
426 608 | signature_version: SignatureVersion::V4a,
|
427 609 | }
|
428 610 | }
|
429 611 | }
|
430 612 |
|
431 613 | impl fmt::Display for StringToSign<'_> {
|
432 614 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
433 615 | write!(
|
434 616 | f,
|
435 617 | "{}\n{}\n{}\n{}",
|
436 618 | self.algorithm,
|
437 619 | format_date_time(self.time),
|
438 620 | match self.signature_version {
|
439 621 | SignatureVersion::V4 => self.scope.to_string(),
|
440 622 | SignatureVersion::V4a => self.scope.v4a_display(),
|
441 623 | },
|
442 624 | self.hashed_creq
|
443 625 | )
|
444 626 | }
|
445 627 | }
|
446 628 |
|
447 629 | #[cfg(test)]
|
448 630 | mod tests {
|
449 631 | use crate::date_time::test_parsers::parse_date_time;
|
450 632 | use crate::http_request::canonical_request::{
|
451 633 | normalize_header_value, trim_all, CanonicalRequest, SigningScope, StringToSign,
|
452 634 | };
|
453 635 | use crate::http_request::test;
|
636 + | use crate::http_request::test::SigningSuiteTest;
|
454 637 | use crate::http_request::{
|
455 638 | PayloadChecksumKind, SessionTokenMode, SignableBody, SignableRequest, SignatureLocation,
|
456 639 | SigningParams, SigningSettings,
|
457 640 | };
|
458 641 | use crate::sign::v4;
|
459 642 | use crate::sign::v4::sha256_hex_string;
|
460 643 | use aws_credential_types::Credentials;
|
461 644 | use aws_smithy_http::query_writer::QueryWriter;
|
462 645 | use aws_smithy_runtime_api::client::identity::Identity;
|
463 646 | use http0::{HeaderValue, Uri};
|
464 647 | use pretty_assertions::assert_eq;
|
465 648 | use proptest::{prelude::*, proptest};
|
466 649 | use std::borrow::Cow;
|
467 650 | use std::time::Duration;
|
468 651 |
|
469 652 | fn signing_params(identity: &Identity, settings: SigningSettings) -> SigningParams<'_> {
|
470 653 | v4::signing_params::Builder::default()
|
471 654 | .identity(identity)
|
472 655 | .region("test-region")
|
473 656 | .name("testservicename")
|
474 657 | .time(parse_date_time("20210511T154045Z").unwrap())
|
475 658 | .settings(settings)
|
476 659 | .build()
|
477 660 | .unwrap()
|
478 661 | .into()
|
479 662 | }
|
480 663 |
|
481 664 | #[test]
|
482 665 | fn test_repeated_header() {
|
483 - | let mut req = test::v4::test_request("get-vanilla-query-order-key-case");
|
666 + | let test = test::SigningSuiteTest::v4("get-vanilla-query-order-key-case");
|
667 + | let mut req = test.request();
|
484 668 | req.headers.push((
|
485 669 | "x-amz-object-attributes".to_string(),
|
486 670 | "Checksum".to_string(),
|
487 671 | ));
|
488 672 | req.headers.push((
|
489 673 | "x-amz-object-attributes".to_string(),
|
490 674 | "ObjectSize".to_string(),
|
491 675 | ));
|
492 676 | let req = SignableRequest::from(&req);
|
493 677 | let settings = SigningSettings {
|
494 678 | payload_checksum_kind: PayloadChecksumKind::XAmzSha256,
|
495 679 | session_token_mode: SessionTokenMode::Exclude,
|
496 680 | ..Default::default()
|
497 681 | };
|
498 682 | let identity = Credentials::for_tests().into();
|
499 683 | let signing_params = signing_params(&identity, settings);
|
500 684 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
501 685 |
|
502 686 | assert_eq!(
|
503 687 | creq.values.signed_headers().to_string(),
|
504 688 | "host;x-amz-content-sha256;x-amz-date;x-amz-object-attributes"
|
505 689 | );
|
506 690 | assert_eq!(
|
507 691 | creq.header_values_for("x-amz-object-attributes"),
|
508 692 | "Checksum,ObjectSize",
|
509 693 | );
|
510 694 | }
|
511 695 |
|
512 696 | #[test]
|
513 697 | fn test_host_header_properly_handles_ports() {
|
514 698 | fn host_header_test_setup(endpoint: String) -> String {
|
515 - | let mut req = test::v4::test_request("get-vanilla");
|
699 + | let test = SigningSuiteTest::v4("get-vanilla");
|
700 + | let mut req = test.request();
|
516 701 | req.uri = endpoint;
|
517 702 | let req = SignableRequest::from(&req);
|
518 703 | let settings = SigningSettings {
|
519 704 | payload_checksum_kind: PayloadChecksumKind::XAmzSha256,
|
520 705 | session_token_mode: SessionTokenMode::Exclude,
|
521 706 | ..Default::default()
|
522 707 | };
|
523 708 | let identity = Credentials::for_tests().into();
|
524 709 | let signing_params = signing_params(&identity, settings);
|
525 710 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
526 711 | creq.header_values_for("host")
|
527 712 | }
|
528 713 |
|
529 714 | // HTTP request with 80 port should not be signed with that port
|
530 715 | let http_80_host_header = host_header_test_setup("http://localhost:80".into());
|
531 716 | assert_eq!(http_80_host_header, "localhost",);
|
532 717 |
|
533 718 | // HTTP request with non-80 port should be signed with that port
|
534 719 | let http_1234_host_header = host_header_test_setup("http://localhost:1234".into());
|
535 720 | assert_eq!(http_1234_host_header, "localhost:1234",);
|
536 721 |
|
537 722 | // HTTPS request with 443 port should not be signed with that port
|
538 723 | let https_443_host_header = host_header_test_setup("https://localhost:443".into());
|
539 724 | assert_eq!(https_443_host_header, "localhost",);
|
540 725 |
|
541 726 | // HTTPS request with non-443 port should be signed with that port
|
542 727 | let https_1234_host_header = host_header_test_setup("https://localhost:1234".into());
|
543 728 | assert_eq!(https_1234_host_header, "localhost:1234",);
|
544 729 | }
|
545 730 |
|
546 731 | #[test]
|
547 732 | fn test_set_xamz_sha_256() {
|
548 - | let req = test::v4::test_request("get-vanilla-query-order-key-case");
|
733 + | let test = SigningSuiteTest::v4("get-vanilla-query-order-key-case");
|
734 + | let req = test.request();
|
549 735 | let req = SignableRequest::from(&req);
|
550 736 | let settings = SigningSettings {
|
551 737 | payload_checksum_kind: PayloadChecksumKind::XAmzSha256,
|
552 738 | session_token_mode: SessionTokenMode::Exclude,
|
553 739 | ..Default::default()
|
554 740 | };
|
555 741 | let identity = Credentials::for_tests().into();
|
556 742 | let mut signing_params = signing_params(&identity, settings);
|
557 743 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
558 744 | assert_eq!(
|
559 745 | creq.values.content_sha256(),
|
560 746 | "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
561 747 | );
|
562 748 | // assert that the sha256 header was added
|
563 749 | assert_eq!(
|
564 750 | creq.values.signed_headers().as_str(),
|
565 751 | "host;x-amz-content-sha256;x-amz-date"
|
566 752 | );
|
567 753 |
|
568 754 | signing_params.set_payload_checksum_kind(PayloadChecksumKind::NoHeader);
|
569 755 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
570 756 | assert_eq!(creq.values.signed_headers().as_str(), "host;x-amz-date");
|
571 757 | }
|
572 758 |
|
573 759 | #[test]
|
574 760 | fn test_unsigned_payload() {
|
575 - | let mut req = test::v4::test_request("get-vanilla-query-order-key-case");
|
761 + | let test = SigningSuiteTest::v4("get-vanilla-query-order-key-case");
|
762 + | let mut req = test.request();
|
576 763 | req.set_body(SignableBody::UnsignedPayload);
|
577 764 | let req: SignableRequest<'_> = SignableRequest::from(&req);
|
578 765 |
|
579 766 | let settings = SigningSettings {
|
580 767 | payload_checksum_kind: PayloadChecksumKind::XAmzSha256,
|
581 768 | ..Default::default()
|
582 769 | };
|
583 770 | let identity = Credentials::for_tests().into();
|
584 771 | let signing_params = signing_params(&identity, settings);
|
585 772 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
586 773 | assert_eq!(creq.values.content_sha256(), "UNSIGNED-PAYLOAD");
|
587 774 | assert!(creq.to_string().ends_with("UNSIGNED-PAYLOAD"));
|
588 775 | }
|
589 776 |
|
590 777 | #[test]
|
591 778 | fn test_precomputed_payload() {
|
592 779 | let payload_hash = "44ce7dd67c959e0d3524ffac1771dfbba87d2b6b4b4e99e42034a8b803f8b072";
|
593 - | let mut req = test::v4::test_request("get-vanilla-query-order-key-case");
|
780 + | let test = SigningSuiteTest::v4("get-vanilla-query-order-key-case");
|
781 + | let mut req = test.request();
|
594 782 | req.set_body(SignableBody::Precomputed(String::from(payload_hash)));
|
595 783 | let req = SignableRequest::from(&req);
|
596 784 | let settings = SigningSettings {
|
597 785 | payload_checksum_kind: PayloadChecksumKind::XAmzSha256,
|
598 786 | ..Default::default()
|
599 787 | };
|
600 788 | let identity = Credentials::for_tests().into();
|
601 789 | let signing_params = signing_params(&identity, settings);
|
602 790 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
603 791 | assert_eq!(creq.values.content_sha256(), payload_hash);
|
604 792 | assert!(creq.to_string().ends_with(payload_hash));
|
605 793 | }
|
606 794 |
|
607 795 | #[test]
|
608 796 | fn test_generate_scope() {
|
609 797 | let expected = "20150830/us-east-1/iam/aws4_request\n";
|
610 798 | let scope = SigningScope {
|
611 799 | time: parse_date_time("20150830T123600Z").unwrap(),
|
612 800 | region: "us-east-1",
|
613 801 | service: "iam",
|
614 802 | };
|
615 803 | assert_eq!(format!("{}\n", scope), expected);
|
616 804 | }
|
617 805 |
|
618 806 | #[test]
|
619 807 | fn test_string_to_sign() {
|
620 808 | let time = parse_date_time("20150830T123600Z").unwrap();
|
621 - | let creq = test::v4::test_canonical_request("get-vanilla-query-order-key-case");
|
622 - | let expected_sts = test::v4::test_sts("get-vanilla-query-order-key-case");
|
809 + | let test = SigningSuiteTest::v4("get-vanilla-query-order-key-case");
|
810 + | let creq = test.canonical_request(SignatureLocation::Headers);
|
811 + | let expected_sts = test.string_to_sign(SignatureLocation::Headers);
|
623 812 | let encoded = sha256_hex_string(creq.as_bytes());
|
624 813 |
|
625 814 | let actual = StringToSign::new_v4(time, "us-east-1", "service", &encoded);
|
626 815 | assert_eq!(expected_sts, actual.to_string());
|
627 816 | }
|
628 817 |
|
629 818 | #[test]
|
630 819 | fn test_digest_of_canonical_request() {
|
631 - | let creq = test::v4::test_canonical_request("get-vanilla-query-order-key-case");
|
820 + | let test = SigningSuiteTest::v4("get-vanilla-query-order-key-case");
|
821 + | let creq = test.canonical_request(SignatureLocation::Headers);
|
632 822 | let expected = "816cd5b414d056048ba4f7c5386d6e0533120fb1fcfa93762cf0fc39e2cf19e0";
|
633 823 | let actual = sha256_hex_string(creq.as_bytes());
|
634 824 | assert_eq!(expected, actual);
|
635 825 | }
|
636 826 |
|
637 827 | #[test]
|
638 828 | fn test_double_url_encode_path() {
|
639 - | let req = test::v4::test_request("double-encode-path");
|
829 + | let test = SigningSuiteTest::v4("double-encode-path");
|
830 + | let req = test.request();
|
640 831 | let req = SignableRequest::from(&req);
|
641 832 | let identity = Credentials::for_tests().into();
|
642 833 | let signing_params = signing_params(&identity, SigningSettings::default());
|
643 834 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
644 835 |
|
645 - | let expected = test::v4::test_canonical_request("double-encode-path");
|
836 + | let expected = test.canonical_request(SignatureLocation::Headers);
|
646 837 | let actual = format!("{}", creq);
|
647 838 | assert_eq!(actual, expected);
|
648 839 | }
|
649 840 |
|
650 841 | #[test]
|
651 842 | fn test_double_url_encode() {
|
652 - | let req = test::v4::test_request("double-url-encode");
|
843 + | let test = SigningSuiteTest::v4("double-url-encode");
|
844 + | let req = test.request();
|
653 845 | let req = SignableRequest::from(&req);
|
654 846 | let identity = Credentials::for_tests().into();
|
655 847 | let signing_params = signing_params(&identity, SigningSettings::default());
|
656 848 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
657 - |
|
658 - | let expected = test::v4::test_canonical_request("double-url-encode");
|
849 + | let expected = test.canonical_request(SignatureLocation::Headers);
|
659 850 | let actual = format!("{}", creq);
|
660 851 | assert_eq!(actual, expected);
|
661 852 | }
|
662 853 |
|
663 854 | #[test]
|
664 855 | fn test_tilde_in_uri() {
|
665 856 | let req = http0::Request::builder()
|
666 857 | .uri("https://s3.us-east-1.amazonaws.com/my-bucket?list-type=2&prefix=~objprefix&single&k=&unreserved=-_.~").body("").unwrap().into();
|
667 858 | let req = SignableRequest::from(&req);
|
668 859 | let identity = Credentials::for_tests().into();
|
669 860 | let signing_params = signing_params(&identity, SigningSettings::default());
|
670 861 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
671 862 | assert_eq!(
|
672 863 | Some("k=&list-type=2&prefix=~objprefix&single=&unreserved=-_.~"),
|
673 864 | creq.params.as_deref(),
|
674 865 | );
|
675 866 | }
|
676 867 |
|
677 868 | #[test]
|
678 869 | fn test_signing_urls_with_percent_encoded_query_strings() {
|
679 870 | let all_printable_ascii_chars: String = (32u8..127).map(char::from).collect();
|
680 871 | let uri = Uri::from_static("https://s3.us-east-1.amazonaws.com/my-bucket");
|
681 872 |
|
682 873 | let mut query_writer = QueryWriter::new(&uri);
|
683 874 | query_writer.insert("list-type", "2");
|
684 875 | query_writer.insert("prefix", &all_printable_ascii_chars);
|
685 876 |
|
686 877 | let req = http0::Request::builder()
|
687 878 | .uri(query_writer.build_uri())
|
688 879 | .body("")
|
689 880 | .unwrap()
|
690 881 | .into();
|
691 882 | let req = SignableRequest::from(&req);
|
692 883 | let identity = Credentials::for_tests().into();
|
693 884 | let signing_params = signing_params(&identity, SigningSettings::default());
|
694 885 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
695 886 |
|
696 887 | let expected = "list-type=2&prefix=%20%21%22%23%24%25%26%27%28%29%2A%2B%2C-.%2F0123456789%3A%3B%3C%3D%3E%3F%40ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D~";
|
697 888 | let actual = creq.params.unwrap();
|
698 889 | assert_eq!(expected, actual);
|
699 890 | }
|
700 891 |
|
701 892 | #[test]
|
702 893 | fn test_omit_session_token() {
|
703 - | let req = test::v4::test_request("get-vanilla-query-order-key-case");
|
894 + | let test = SigningSuiteTest::v4("get-vanilla-query-order-key-case");
|
895 + | let req = test.request();
|
704 896 | let req = SignableRequest::from(&req);
|
705 897 | let settings = SigningSettings {
|
706 898 | session_token_mode: SessionTokenMode::Include,
|
707 899 | ..Default::default()
|
708 900 | };
|
709 901 | let identity = Credentials::for_tests_with_session_token().into();
|
710 902 | let mut signing_params = signing_params(&identity, settings);
|
711 903 |
|
712 904 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
713 905 | assert_eq!(
|
714 906 | creq.values.signed_headers().as_str(),
|
715 907 | "host;x-amz-date;x-amz-security-token"
|
716 908 | );
|
717 909 | assert_eq!(
|
718 910 | creq.headers.get("x-amz-security-token").unwrap(),
|
719 911 | "notarealsessiontoken"
|
720 912 | );
|
721 913 |
|
722 914 | signing_params.set_session_token_mode(SessionTokenMode::Exclude);
|
723 915 | let creq = CanonicalRequest::from(&req, &signing_params).unwrap();
|
724 916 | assert_eq!(
|
725 917 | creq.headers.get("x-amz-security-token").unwrap(),
|
726 918 | "notarealsessiontoken"
|
727 919 | );
|
728 920 | assert_eq!(creq.values.signed_headers().as_str(), "host;x-amz-date");
|
729 921 | }
|
730 922 |
|
731 923 | // It should exclude authorization, user-agent, x-amzn-trace-id, and transfer-encoding headers from presigning
|
732 924 | #[test]
|
733 925 | fn non_presigning_header_exclusion() {
|
734 926 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/sign.rs b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/sign.rs
|
735 927 | index c4bbbee..30b4743 100644
|
736 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/sign.rs
|
928 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/sign.rs
|
737 929 | @@ -478,436 +478,324 @@ fn add_header(map: &mut Vec<Header>, key: &'static str, value: &str, sensitive:
|
738 930 | sensitive,
|
739 931 | });
|
740 932 | }
|
741 933 |
|
742 934 | // add signature to authorization header
|
743 935 | // Authorization: algorithm Credential=access key ID/credential scope, SignedHeaders=SignedHeaders, Signature=signature
|
744 936 | fn build_authorization_header(
|
745 937 | access_key: &str,
|
746 938 | creq: &CanonicalRequest<'_>,
|
747 939 | sts: StringToSign<'_>,
|
748 940 | signature: &str,
|
749 941 | signature_version: SignatureVersion,
|
750 942 | ) -> String {
|
751 943 | let scope = match signature_version {
|
752 944 | SignatureVersion::V4 => sts.scope.to_string(),
|
753 945 | SignatureVersion::V4a => sts.scope.v4a_display(),
|
754 946 | };
|
755 947 | format!(
|
756 948 | "{} Credential={}/{}, SignedHeaders={}, Signature={}",
|
757 949 | sts.algorithm,
|
758 950 | access_key,
|
759 951 | scope,
|
760 952 | creq.values.signed_headers().as_str(),
|
761 953 | signature
|
762 954 | )
|
763 955 | }
|
764 956 | #[cfg(test)]
|
765 957 | mod tests {
|
766 958 | use crate::date_time::test_parsers::parse_date_time;
|
767 959 | use crate::http_request::sign::{add_header, SignableRequest};
|
960 + | use crate::http_request::test::SigningSuiteTest;
|
768 961 | use crate::http_request::{
|
769 - | sign, test, SessionTokenMode, SignableBody, SignatureLocation, SigningInstructions,
|
962 + | sign, SessionTokenMode, SignableBody, SignatureLocation, SigningInstructions,
|
770 963 | SigningSettings,
|
771 964 | };
|
772 965 | use crate::sign::v4;
|
773 966 | use aws_credential_types::Credentials;
|
774 967 | use http0::{HeaderValue, Request};
|
775 968 | use pretty_assertions::assert_eq;
|
776 969 | use proptest::proptest;
|
777 970 | use std::borrow::Cow;
|
778 971 | use std::iter;
|
779 - | use std::time::Duration;
|
780 972 |
|
781 973 | macro_rules! assert_req_eq {
|
782 974 | (http: $expected:expr, $actual:expr) => {
|
783 975 | let mut expected = ($expected).map(|_b|"body");
|
784 976 | let mut actual = ($actual).map(|_b|"body");
|
785 977 | make_headers_comparable(&mut expected);
|
786 978 | make_headers_comparable(&mut actual);
|
787 979 | assert_eq!(format!("{:?}", expected), format!("{:?}", actual));
|
788 980 | };
|
789 981 | ($expected:tt, $actual:tt) => {
|
790 982 | assert_req_eq!(http: ($expected).as_http_request(), $actual);
|
791 983 | };
|
792 984 | }
|
793 985 |
|
794 986 | pub(crate) fn make_headers_comparable<B>(request: &mut Request<B>) {
|
795 987 | for (_name, value) in request.headers_mut() {
|
796 988 | value.set_sensitive(false);
|
797 989 | }
|
798 990 | }
|
799 991 |
|
800 - | #[test]
|
801 - | fn test_sign_vanilla_with_headers() {
|
802 - | let settings = SigningSettings::default();
|
803 - | let identity = &Credentials::for_tests().into();
|
804 - | let params = v4::SigningParams {
|
805 - | identity,
|
806 - | region: "us-east-1",
|
807 - | name: "service",
|
808 - | time: parse_date_time("20150830T123600Z").unwrap(),
|
809 - | settings,
|
810 - | }
|
811 - | .into();
|
812 - |
|
813 - | let original = test::v4::test_request("get-vanilla-query-order-key-case");
|
814 - | let signable = SignableRequest::from(&original);
|
815 - | let out = sign(signable, ¶ms).unwrap();
|
816 - | assert_eq!(
|
817 - | "5557820e7380d585310524bd93d51a08d7757fb5efd7344ee12088f2b0860947",
|
818 - | out.signature
|
819 - | );
|
820 - |
|
821 - | let mut signed = original.as_http_request();
|
822 - | out.output.apply_to_request_http0x(&mut signed);
|
823 - |
|
824 - | let expected = test::v4::test_signed_request("get-vanilla-query-order-key-case");
|
825 - | assert_req_eq!(expected, signed);
|
826 - | }
|
827 - |
|
992 + | // Sigv4A suite tests
|
828 993 | #[cfg(feature = "sigv4a")]
|
829 - | mod sigv4a_tests {
|
830 - | use super::*;
|
831 - | use crate::http_request::canonical_request::{CanonicalRequest, StringToSign};
|
832 - | use crate::http_request::{sign, test, SigningParams};
|
833 - | use crate::sign::v4a;
|
834 - | use p256::ecdsa::signature::{Signature, Verifier};
|
835 - | use p256::ecdsa::{DerSignature, SigningKey};
|
836 - | use pretty_assertions::assert_eq;
|
837 - |
|
838 - | fn new_v4a_signing_params_from_context(
|
839 - | test_context: &'_ test::v4a::TestContext,
|
840 - | signature_location: SignatureLocation,
|
841 - | ) -> SigningParams<'_> {
|
842 - | let mut params = v4a::SigningParams::from(test_context);
|
843 - | params.settings.signature_location = signature_location;
|
844 - |
|
845 - | params.into()
|
846 - | }
|
847 - |
|
848 - | fn run_v4a_test_suite(test_name: &str, signature_location: SignatureLocation) {
|
849 - | let tc = test::v4a::test_context(test_name);
|
850 - | let params = new_v4a_signing_params_from_context(&tc, signature_location);
|
851 - |
|
852 - | let req = test::v4a::test_request(test_name);
|
853 - | let expected_creq = test::v4a::test_canonical_request(test_name, signature_location);
|
854 - | let signable_req = SignableRequest::from(&req);
|
855 - | let actual_creq = CanonicalRequest::from(&signable_req, ¶ms).unwrap();
|
856 - |
|
857 - | assert_eq!(expected_creq, actual_creq.to_string(), "creq didn't match");
|
994 + | mod v4a_suite {
|
995 + | use crate::http_request::test::v4a::run_test_suite_v4a;
|
858 996 |
|
859 - | let expected_string_to_sign =
|
860 - | test::v4a::test_string_to_sign(test_name, signature_location);
|
861 - | let hashed_creq = &v4::sha256_hex_string(actual_creq.to_string().as_bytes());
|
862 - | let actual_string_to_sign = StringToSign::new_v4a(
|
863 - | *params.time(),
|
864 - | params.region_set().unwrap(),
|
865 - | params.name(),
|
866 - | hashed_creq,
|
867 - | )
|
868 - | .to_string();
|
869 - |
|
870 - | assert_eq!(
|
871 - | expected_string_to_sign, actual_string_to_sign,
|
872 - | "'string to sign' didn't match"
|
873 - | );
|
874 - |
|
875 - | let out = sign(signable_req, ¶ms).unwrap();
|
876 - | // Sigv4a signatures are non-deterministic, so we can't compare the signature directly.
|
877 - | out.output
|
878 - | .apply_to_request_http0x(&mut req.as_http_request());
|
879 - |
|
880 - | let creds = params.credentials().unwrap();
|
881 - | let signing_key =
|
882 - | v4a::generate_signing_key(creds.access_key_id(), creds.secret_access_key());
|
883 - | let sig = DerSignature::from_bytes(&hex::decode(out.signature).unwrap()).unwrap();
|
884 - | let sig = sig
|
885 - | .try_into()
|
886 - | .expect("DER-style signatures are always convertible into fixed-size signatures");
|
887 - |
|
888 - | let signing_key = SigningKey::from_bytes(signing_key.as_ref()).unwrap();
|
889 - | let peer_public_key = signing_key.verifying_key();
|
890 - | let sts = actual_string_to_sign.as_bytes();
|
891 - | peer_public_key.verify(sts, &sig).unwrap();
|
997 + | #[test]
|
998 + | fn test_get_header_key_duplicate() {
|
999 + | run_test_suite_v4a("get-header-key-duplicate")
|
892 1000 | }
|
893 1001 |
|
894 1002 | #[test]
|
895 - | fn test_get_header_key_duplicate() {
|
896 - | run_v4a_test_suite("get-header-key-duplicate", SignatureLocation::Headers);
|
1003 + | #[ignore = "httpparse doesn't support parsing multiline headers since they are deprecated in RFC7230"]
|
1004 + | fn test_get_header_value_multiline() {
|
1005 + | run_test_suite_v4a("get-header-value-multiline")
|
897 1006 | }
|
898 1007 |
|
899 1008 | #[test]
|
900 1009 | fn test_get_header_value_order() {
|
901 - | run_v4a_test_suite("get-header-value-order", SignatureLocation::Headers);
|
1010 + | run_test_suite_v4a("get-header-value-order")
|
902 1011 | }
|
903 1012 |
|
904 1013 | #[test]
|
905 1014 | fn test_get_header_value_trim() {
|
906 - | run_v4a_test_suite("get-header-value-trim", SignatureLocation::Headers);
|
1015 + | run_test_suite_v4a("get-header-value-trim");
|
907 1016 | }
|
908 1017 |
|
909 1018 | #[test]
|
910 1019 | fn test_get_relative_normalized() {
|
911 - | run_v4a_test_suite("get-relative-normalized", SignatureLocation::Headers);
|
1020 + | run_test_suite_v4a("get-relative-normalized");
|
912 1021 | }
|
913 1022 |
|
914 1023 | #[test]
|
915 1024 | fn test_get_relative_relative_normalized() {
|
916 - | run_v4a_test_suite(
|
917 - | "get-relative-relative-normalized",
|
918 - | SignatureLocation::Headers,
|
919 - | );
|
1025 + | run_test_suite_v4a("get-relative-relative-normalized");
|
920 1026 | }
|
921 1027 |
|
922 1028 | #[test]
|
923 1029 | fn test_get_relative_relative_unnormalized() {
|
924 - | run_v4a_test_suite(
|
925 - | "get-relative-relative-unnormalized",
|
926 - | SignatureLocation::Headers,
|
927 - | );
|
1030 + | run_test_suite_v4a("get-relative-relative-unnormalized");
|
928 1031 | }
|
929 1032 |
|
930 1033 | #[test]
|
931 1034 | fn test_get_relative_unnormalized() {
|
932 - | run_v4a_test_suite("get-relative-unnormalized", SignatureLocation::Headers);
|
1035 + | run_test_suite_v4a("get-relative-unnormalized");
|
933 1036 | }
|
934 1037 |
|
935 1038 | #[test]
|
936 1039 | fn test_get_slash_dot_slash_normalized() {
|
937 - | run_v4a_test_suite("get-slash-dot-slash-normalized", SignatureLocation::Headers);
|
1040 + | run_test_suite_v4a("get-slash-dot-slash-normalized");
|
938 1041 | }
|
939 1042 |
|
940 1043 | #[test]
|
941 1044 | fn test_get_slash_dot_slash_unnormalized() {
|
942 - | run_v4a_test_suite(
|
943 - | "get-slash-dot-slash-unnormalized",
|
944 - | SignatureLocation::Headers,
|
945 - | );
|
1045 + | run_test_suite_v4a("get-slash-dot-slash-unnormalized");
|
946 1046 | }
|
947 1047 |
|
948 1048 | #[test]
|
949 1049 | fn test_get_slash_normalized() {
|
950 - | run_v4a_test_suite("get-slash-normalized", SignatureLocation::Headers);
|
1050 + | run_test_suite_v4a("get-slash-normalized");
|
951 1051 | }
|
952 1052 |
|
953 1053 | #[test]
|
954 1054 | fn test_get_slash_pointless_dot_normalized() {
|
955 - | run_v4a_test_suite(
|
956 - | "get-slash-pointless-dot-normalized",
|
957 - | SignatureLocation::Headers,
|
958 - | );
|
1055 + | run_test_suite_v4a("get-slash-pointless-dot-normalized");
|
959 1056 | }
|
960 1057 |
|
961 1058 | #[test]
|
962 1059 | fn test_get_slash_pointless_dot_unnormalized() {
|
963 - | run_v4a_test_suite(
|
964 - | "get-slash-pointless-dot-unnormalized",
|
965 - | SignatureLocation::Headers,
|
966 - | );
|
1060 + | run_test_suite_v4a("get-slash-pointless-dot-unnormalized");
|
967 1061 | }
|
968 1062 |
|
969 1063 | #[test]
|
970 1064 | fn test_get_slash_unnormalized() {
|
971 - | run_v4a_test_suite("get-slash-unnormalized", SignatureLocation::Headers);
|
1065 + | run_test_suite_v4a("get-slash-unnormalized");
|
972 1066 | }
|
973 1067 |
|
974 1068 | #[test]
|
975 1069 | fn test_get_slashes_normalized() {
|
976 - | run_v4a_test_suite("get-slashes-normalized", SignatureLocation::Headers);
|
1070 + | run_test_suite_v4a("get-slashes-normalized");
|
977 1071 | }
|
978 1072 |
|
979 1073 | #[test]
|
980 1074 | fn test_get_slashes_unnormalized() {
|
981 - | run_v4a_test_suite("get-slashes-unnormalized", SignatureLocation::Headers);
|
1075 + | run_test_suite_v4a("get-slashes-unnormalized");
|
1076 + | }
|
1077 + |
|
1078 + | #[test]
|
1079 + | #[ignore = "relies on single encode of path segments"]
|
1080 + | // rely on single encoding of path segments, i.e. string-to-sign contains %20 for spaces rather than %25%20 as it should.
|
1081 + | // skipped until we add control over double_uri_encode in context.json
|
1082 + | fn test_get_space_normalized() {
|
1083 + | run_test_suite_v4a("get-space-normalized");
|
1084 + | }
|
1085 + |
|
1086 + | #[test]
|
1087 + | #[ignore = "httpparse fails on unencoded spaces in path"]
|
1088 + | // the input request has unencoded space ' ' in the path which fails to parse
|
1089 + | fn test_get_space_unnormalized() {
|
1090 + | run_test_suite_v4a("get-space-unnormalized");
|
982 1091 | }
|
983 1092 |
|
984 1093 | #[test]
|
985 1094 | fn test_get_unreserved() {
|
986 - | run_v4a_test_suite("get-unreserved", SignatureLocation::Headers);
|
1095 + | run_test_suite_v4a("get-unreserved");
|
1096 + | }
|
1097 + |
|
1098 + | #[test]
|
1099 + | #[ignore = "httparse fails on invalid uri character"]
|
1100 + | // relies on /ሴ canonicalized as /%E1%88%B4 when it should be /%25%E1%25%88%25%B4
|
1101 + | fn test_get_utf8() {
|
1102 + | run_test_suite_v4a("get-utf8");
|
987 1103 | }
|
988 1104 |
|
989 1105 | #[test]
|
990 1106 | fn test_get_vanilla() {
|
991 - | run_v4a_test_suite("get-vanilla", SignatureLocation::Headers);
|
1107 + | run_test_suite_v4a("get-vanilla");
|
992 1108 | }
|
993 1109 |
|
994 1110 | #[test]
|
995 1111 | fn test_get_vanilla_empty_query_key() {
|
996 - | run_v4a_test_suite(
|
997 - | "get-vanilla-empty-query-key",
|
998 - | SignatureLocation::QueryParams,
|
999 - | );
|
1112 + | run_test_suite_v4a("get-vanilla-empty-query-key");
|
1000 1113 | }
|
1001 1114 |
|
1002 1115 | #[test]
|
1003 1116 | fn test_get_vanilla_query() {
|
1004 - | run_v4a_test_suite("get-vanilla-query", SignatureLocation::QueryParams);
|
1117 + | run_test_suite_v4a("get-vanilla-query");
|
1118 + | }
|
1119 + |
|
1120 + | #[test]
|
1121 + | fn test_get_vanilla_query_order_encoded() {
|
1122 + | run_test_suite_v4a("get-vanilla-query-order-encoded");
|
1005 1123 | }
|
1006 1124 |
|
1007 1125 | #[test]
|
1008 1126 | fn test_get_vanilla_query_order_key_case() {
|
1009 - | run_v4a_test_suite(
|
1010 - | "get-vanilla-query-order-key-case",
|
1011 - | SignatureLocation::QueryParams,
|
1012 - | );
|
1127 + | run_test_suite_v4a("get-vanilla-query-order-key-case");
|
1013 1128 | }
|
1014 1129 |
|
1015 1130 | #[test]
|
1016 1131 | fn test_get_vanilla_query_unreserved() {
|
1017 - | run_v4a_test_suite(
|
1018 - | "get-vanilla-query-unreserved",
|
1019 - | SignatureLocation::QueryParams,
|
1020 - | );
|
1132 + | run_test_suite_v4a("get-vanilla-query-unreserved");
|
1133 + | }
|
1134 + |
|
1135 + | #[test]
|
1136 + | #[ignore = "httparse fails on invalid uri character"]
|
1137 + | // relies on /ሴ canonicalized as /%E1%88%B4 when it should be /%25%E1%25%88%25%B4
|
1138 + | fn test_get_vanilla_utf8_query() {
|
1139 + | run_test_suite_v4a("get-vanilla-utf8-query");
|
1021 1140 | }
|
1022 1141 |
|
1023 1142 | #[test]
|
1024 1143 | fn test_get_vanilla_with_session_token() {
|
1025 - | run_v4a_test_suite("get-vanilla-with-session-token", SignatureLocation::Headers);
|
1144 + | run_test_suite_v4a("get-vanilla-with-session-token")
|
1026 1145 | }
|
1027 1146 |
|
1028 1147 | #[test]
|
1029 1148 | fn test_post_header_key_case() {
|
1030 - | run_v4a_test_suite("post-header-key-case", SignatureLocation::Headers);
|
1149 + | run_test_suite_v4a("post-header-key-case");
|
1031 1150 | }
|
1032 1151 |
|
1033 1152 | #[test]
|
1034 1153 | fn test_post_header_key_sort() {
|
1035 - | run_v4a_test_suite("post-header-key-sort", SignatureLocation::Headers);
|
1154 + | run_test_suite_v4a("post-header-key-sort");
|
1036 1155 | }
|
1037 1156 |
|
1038 1157 | #[test]
|
1039 1158 | fn test_post_header_value_case() {
|
1040 - | run_v4a_test_suite("post-header-value-case", SignatureLocation::Headers);
|
1159 + | run_test_suite_v4a("post-header-value-case");
|
1041 1160 | }
|
1042 1161 |
|
1043 1162 | #[test]
|
1044 1163 | fn test_post_sts_header_after() {
|
1045 - | run_v4a_test_suite("post-sts-header-after", SignatureLocation::Headers);
|
1164 + | run_test_suite_v4a("post-sts-header-after");
|
1046 1165 | }
|
1047 1166 |
|
1048 1167 | #[test]
|
1049 1168 | fn test_post_sts_header_before() {
|
1050 - | run_v4a_test_suite("post-sts-header-before", SignatureLocation::Headers);
|
1169 + | run_test_suite_v4a("post-sts-header-before");
|
1051 1170 | }
|
1052 1171 |
|
1053 1172 | #[test]
|
1054 1173 | fn test_post_vanilla() {
|
1055 - | run_v4a_test_suite("post-vanilla", SignatureLocation::Headers);
|
1174 + | run_test_suite_v4a("post-vanilla");
|
1056 1175 | }
|
1057 1176 |
|
1058 1177 | #[test]
|
1059 1178 | fn test_post_vanilla_empty_query_value() {
|
1060 - | run_v4a_test_suite(
|
1061 - | "post-vanilla-empty-query-value",
|
1062 - | SignatureLocation::QueryParams,
|
1063 - | );
|
1179 + | run_test_suite_v4a("post-vanilla-empty-query-value");
|
1064 1180 | }
|
1065 1181 |
|
1066 1182 | #[test]
|
1067 1183 | fn test_post_vanilla_query() {
|
1068 - | run_v4a_test_suite("post-vanilla-query", SignatureLocation::QueryParams);
|
1184 + | run_test_suite_v4a("post-vanilla-query");
|
1069 1185 | }
|
1070 1186 |
|
1071 1187 | #[test]
|
1072 1188 | fn test_post_x_www_form_urlencoded() {
|
1073 - | run_v4a_test_suite("post-x-www-form-urlencoded", SignatureLocation::Headers);
|
1189 + | run_test_suite_v4a("post-x-www-form-urlencoded");
|
1074 1190 | }
|
1075 1191 |
|
1076 1192 | #[test]
|
1077 1193 | fn test_post_x_www_form_urlencoded_parameters() {
|
1078 - | run_v4a_test_suite(
|
1079 - | "post-x-www-form-urlencoded-parameters",
|
1080 - | SignatureLocation::QueryParams,
|
1081 - | );
|
1194 + | run_test_suite_v4a("post-x-www-form-urlencoded-parameters");
|
1082 1195 | }
|
1083 1196 | }
|
1084 1197 |
|
1085 1198 | #[test]
|
1086 1199 | fn test_sign_url_escape() {
|
1087 - | let test = "double-encode-path";
|
1200 + | let test = SigningSuiteTest::v4("double-encode-path");
|
1088 1201 | let settings = SigningSettings::default();
|
1089 1202 | let identity = &Credentials::for_tests().into();
|
1090 1203 | let params = v4::SigningParams {
|
1091 1204 | identity,
|
1092 1205 | region: "us-east-1",
|
1093 1206 | name: "service",
|
1094 1207 | time: parse_date_time("20150830T123600Z").unwrap(),
|
1095 1208 | settings,
|
1096 1209 | }
|
1097 1210 | .into();
|
1098 1211 |
|
1099 - | let original = test::v4::test_request(test);
|
1212 + | let original = test.request();
|
1100 1213 | let signable = SignableRequest::from(&original);
|
1101 1214 | let out = sign(signable, ¶ms).unwrap();
|
1102 1215 | assert_eq!(
|
1103 1216 | "57d157672191bac40bae387e48bbe14b15303c001fdbb01f4abf295dccb09705",
|
1104 1217 | out.signature
|
1105 1218 | );
|
1106 1219 |
|
1107 1220 | let mut signed = original.as_http_request();
|
1108 1221 | out.output.apply_to_request_http0x(&mut signed);
|
1109 1222 |
|
1110 - | let expected = test::v4::test_signed_request(test);
|
1111 - | assert_req_eq!(expected, signed);
|
1112 - | }
|
1113 - |
|
1114 - | #[test]
|
1115 - | fn test_sign_vanilla_with_query_params() {
|
1116 - | let settings = SigningSettings {
|
1117 - | signature_location: SignatureLocation::QueryParams,
|
1118 - | expires_in: Some(Duration::from_secs(35)),
|
1119 - | ..Default::default()
|
1120 - | };
|
1121 - | let identity = &Credentials::for_tests().into();
|
1122 - | let params = v4::SigningParams {
|
1123 - | identity,
|
1124 - | region: "us-east-1",
|
1125 - | name: "service",
|
1126 - | time: parse_date_time("20150830T123600Z").unwrap(),
|
1127 - | settings,
|
1128 - | }
|
1129 - | .into();
|
1130 - |
|
1131 - | let original = test::v4::test_request("get-vanilla-query-order-key-case");
|
1132 - | let signable = SignableRequest::from(&original);
|
1133 - | let out = sign(signable, ¶ms).unwrap();
|
1134 - | assert_eq!(
|
1135 - | "ecce208e4b4f7d7e3a4cc22ced6acc2ad1d170ee8ba87d7165f6fa4b9aff09ab",
|
1136 - | out.signature
|
1137 - | );
|
1138 - |
|
1139 - | let mut signed = original.as_http_request();
|
1140 - | out.output.apply_to_request_http0x(&mut signed);
|
1141 - |
|
1142 - | let expected =
|
1143 - | test::v4::test_signed_request_query_params("get-vanilla-query-order-key-case");
|
1223 + | let expected = test.signed_request(SignatureLocation::Headers);
|
1144 1224 | assert_req_eq!(expected, signed);
|
1145 1225 | }
|
1146 1226 |
|
1147 1227 | #[test]
|
1148 1228 | fn test_sign_headers_utf8() {
|
1149 1229 | let settings = SigningSettings::default();
|
1150 1230 | let identity = &Credentials::for_tests().into();
|
1151 1231 | let params = v4::SigningParams {
|
1152 1232 | identity,
|
1153 1233 | region: "us-east-1",
|
1154 1234 | name: "service",
|
1155 1235 | time: parse_date_time("20150830T123600Z").unwrap(),
|
1156 1236 | settings,
|
1157 1237 | }
|
1158 1238 | .into();
|
1159 1239 |
|
1160 1240 | let original = http0::Request::builder()
|
1161 1241 | .uri("https://some-endpoint.some-region.amazonaws.com")
|
1162 1242 | .header("some-header", HeaderValue::from_str("テスト").unwrap())
|
1163 1243 | .body("")
|
1164 1244 | .unwrap()
|
1165 1245 | .into();
|
1166 1246 | let signable = SignableRequest::from(&original);
|
1167 1247 | let out = sign(signable, ¶ms).unwrap();
|
1168 1248 | assert_eq!(
|
1169 1249 | "55e16b31f9bde5fd04f9d3b780dd2b5e5f11a5219001f91a8ca9ec83eaf1618f",
|
1170 1250 | out.signature
|
1171 1251 | );
|
1172 1252 |
|
1173 1253 | let mut signed = original.as_http_request();
|
1174 1254 | @@ -1138,31 +1026,236 @@ mod tests {
|
1175 1255 | let mut request = http::Request::builder()
|
1176 1256 | .uri("https://some-endpoint.some-region.amazonaws.com/some/path")
|
1177 1257 | .body("")
|
1178 1258 | .unwrap();
|
1179 1259 |
|
1180 1260 | instructions.apply_to_request_http1x(&mut request);
|
1181 1261 |
|
1182 1262 | assert_eq!(
|
1183 1263 | "/some/path?some-param=f%26o%3Fo&some-other-param%3F=bar",
|
1184 1264 | request.uri().path_and_query().unwrap().to_string()
|
1185 1265 | );
|
1186 1266 | }
|
1187 1267 |
|
1188 1268 | #[test]
|
1189 1269 | fn test_debug_signable_body() {
|
1190 1270 | let sut = SignableBody::Bytes(b"hello signable body");
|
1191 1271 | assert_eq!(
|
1192 1272 | "Bytes(\"** REDACTED **. To print 19 bytes of raw data, set environment variable `LOG_SIGNABLE_BODY=true`\")",
|
1193 1273 | format!("{sut:?}")
|
1194 1274 | );
|
1195 1275 |
|
1196 1276 | let sut = SignableBody::UnsignedPayload;
|
1197 1277 | assert_eq!("UnsignedPayload", format!("{sut:?}"));
|
1198 1278 |
|
1199 1279 | let sut = SignableBody::Precomputed("precomputed".to_owned());
|
1200 1280 | assert_eq!("Precomputed(\"precomputed\")", format!("{sut:?}"));
|
1201 1281 |
|
1202 1282 | let sut = SignableBody::StreamingUnsignedPayloadTrailer;
|
1203 1283 | assert_eq!("StreamingUnsignedPayloadTrailer", format!("{sut:?}"));
|
1204 1284 | }
|
1285 + |
|
1286 + | // v4 test suite
|
1287 + | mod v4_suite {
|
1288 + | use crate::http_request::test::run_test_suite_v4;
|
1289 + |
|
1290 + | #[test]
|
1291 + | fn test_get_header_key_duplicate() {
|
1292 + | run_test_suite_v4("get-header-key-duplicate");
|
1293 + | }
|
1294 + |
|
1295 + | #[test]
|
1296 + | #[ignore = "httpparse doesn't support parsing multiline headers since they are deprecated in RFC7230"]
|
1297 + | fn test_get_header_value_multiline() {
|
1298 + | run_test_suite_v4("get-header-value-multiline");
|
1299 + | }
|
1300 + |
|
1301 + | #[test]
|
1302 + | fn test_get_header_value_order() {
|
1303 + | run_test_suite_v4("get-header-value-order");
|
1304 + | }
|
1305 + |
|
1306 + | #[test]
|
1307 + | fn test_get_header_value_trim() {
|
1308 + | run_test_suite_v4("get-header-value-trim");
|
1309 + | }
|
1310 + |
|
1311 + | #[test]
|
1312 + | fn test_get_relative_normalized() {
|
1313 + | run_test_suite_v4("get-relative-normalized");
|
1314 + | }
|
1315 + |
|
1316 + | #[test]
|
1317 + | fn test_get_relative_relative_normalized() {
|
1318 + | run_test_suite_v4("get-relative-relative-normalized");
|
1319 + | }
|
1320 + |
|
1321 + | #[test]
|
1322 + | fn test_get_relative_relative_unnormalized() {
|
1323 + | run_test_suite_v4("get-relative-relative-unnormalized");
|
1324 + | }
|
1325 + |
|
1326 + | #[test]
|
1327 + | fn test_get_relative_unnormalized() {
|
1328 + | run_test_suite_v4("get-relative-unnormalized");
|
1329 + | }
|
1330 + |
|
1331 + | #[test]
|
1332 + | fn test_get_slash_dot_slash_normalized() {
|
1333 + | run_test_suite_v4("get-slash-dot-slash-normalized");
|
1334 + | }
|
1335 + |
|
1336 + | #[test]
|
1337 + | fn test_get_slash_dot_slash_unnormalized() {
|
1338 + | run_test_suite_v4("get-slash-dot-slash-unnormalized");
|
1339 + | }
|
1340 + |
|
1341 + | #[test]
|
1342 + | fn test_get_slash_normalized() {
|
1343 + | run_test_suite_v4("get-slash-normalized");
|
1344 + | }
|
1345 + |
|
1346 + | #[test]
|
1347 + | fn test_get_slash_pointless_dot_normalized() {
|
1348 + | run_test_suite_v4("get-slash-pointless-dot-normalized");
|
1349 + | }
|
1350 + |
|
1351 + | #[test]
|
1352 + | fn test_get_slash_pointless_dot_unnormalized() {
|
1353 + | run_test_suite_v4("get-slash-pointless-dot-unnormalized");
|
1354 + | }
|
1355 + |
|
1356 + | #[test]
|
1357 + | fn test_get_slash_unnormalized() {
|
1358 + | run_test_suite_v4("get-slash-unnormalized");
|
1359 + | }
|
1360 + |
|
1361 + | #[test]
|
1362 + | fn test_get_slashes_normalized() {
|
1363 + | run_test_suite_v4("get-slashes-normalized");
|
1364 + | }
|
1365 + |
|
1366 + | #[test]
|
1367 + | fn test_get_slashes_unnormalized() {
|
1368 + | run_test_suite_v4("get-slashes-unnormalized");
|
1369 + | }
|
1370 + |
|
1371 + | #[test]
|
1372 + | #[ignore = "relies on single encode of path segments"]
|
1373 + | // rely on single encoding of path segments, i.e. string-to-sign contains %20 for spaces rather than %25%20 as it should.
|
1374 + | // skipped until we add control over double_uri_encode in context.json
|
1375 + | fn test_get_space_normalized() {
|
1376 + | run_test_suite_v4("get-space-normalized");
|
1377 + | }
|
1378 + |
|
1379 + | #[test]
|
1380 + | #[ignore = "httpparse fails on unencoded spaces in path"]
|
1381 + | // the input request has unencoded space ' ' in the path which fails to parse
|
1382 + | fn test_get_space_unnormalized() {
|
1383 + | run_test_suite_v4("get-space-unnormalized");
|
1384 + | }
|
1385 + |
|
1386 + | #[test]
|
1387 + | fn test_get_unreserved() {
|
1388 + | run_test_suite_v4("get-unreserved");
|
1389 + | }
|
1390 + |
|
1391 + | #[test]
|
1392 + | #[ignore = "httparse fails on invalid uri character"]
|
1393 + | // relies on /ሴ canonicalized as /%E1%88%B4 when it should be /%25%E1%25%88%25%B4
|
1394 + | fn test_get_utf8() {
|
1395 + | run_test_suite_v4("get-utf8");
|
1396 + | }
|
1397 + |
|
1398 + | #[test]
|
1399 + | fn test_get_vanilla() {
|
1400 + | run_test_suite_v4("get-vanilla");
|
1401 + | }
|
1402 + |
|
1403 + | #[test]
|
1404 + | fn test_get_vanilla_empty_query_key() {
|
1405 + | run_test_suite_v4("get-vanilla-empty-query-key");
|
1406 + | }
|
1407 + |
|
1408 + | #[test]
|
1409 + | fn test_get_vanilla_query() {
|
1410 + | run_test_suite_v4("get-vanilla-query");
|
1411 + | }
|
1412 + |
|
1413 + | #[test]
|
1414 + | fn test_get_vanilla_query_order_encoded() {
|
1415 + | run_test_suite_v4("get-vanilla-query-order-encoded");
|
1416 + | }
|
1417 + |
|
1418 + | #[test]
|
1419 + | fn test_get_vanilla_query_order_key_case() {
|
1420 + | run_test_suite_v4("get-vanilla-query-order-key-case");
|
1421 + | }
|
1422 + |
|
1423 + | #[test]
|
1424 + | fn test_get_vanilla_query_unreserved() {
|
1425 + | run_test_suite_v4("get-vanilla-query-unreserved");
|
1426 + | }
|
1427 + |
|
1428 + | #[test]
|
1429 + | #[ignore = "httparse fails on invalid uri character"]
|
1430 + | // relies on /ሴ canonicalized as /%E1%88%B4 when it should be /%25%E1%25%88%25%B4
|
1431 + | fn test_get_vanilla_utf8_query() {
|
1432 + | run_test_suite_v4("get-vanilla-utf8-query");
|
1433 + | }
|
1434 + |
|
1435 + | #[test]
|
1436 + | fn test_get_vanilla_with_session_token() {
|
1437 + | run_test_suite_v4("get-vanilla-with-session-token");
|
1438 + | }
|
1439 + |
|
1440 + | #[test]
|
1441 + | fn test_post_header_key_case() {
|
1442 + | run_test_suite_v4("post-header-key-case");
|
1443 + | }
|
1444 + |
|
1445 + | #[test]
|
1446 + | fn test_post_header_key_sort() {
|
1447 + | run_test_suite_v4("post-header-key-sort");
|
1448 + | }
|
1449 + |
|
1450 + | #[test]
|
1451 + | fn test_post_header_value_case() {
|
1452 + | run_test_suite_v4("post-header-value-case");
|
1453 + | }
|
1454 + |
|
1455 + | #[test]
|
1456 + | fn test_post_sts_header_after() {
|
1457 + | run_test_suite_v4("post-sts-header-after");
|
1458 + | }
|
1459 + |
|
1460 + | #[test]
|
1461 + | fn test_post_sts_header_before() {
|
1462 + | run_test_suite_v4("post-sts-header-before");
|
1463 + | }
|
1464 + |
|
1465 + | #[test]
|
1466 + | fn test_post_vanilla() {
|
1467 + | run_test_suite_v4("post-vanilla");
|
1468 + | }
|
1469 + |
|
1470 + | #[test]
|
1471 + | fn test_post_vanilla_empty_query_value() {
|
1472 + | run_test_suite_v4("post-vanilla-empty-query-value");
|
1473 + | }
|
1474 + |
|
1475 + | #[test]
|
1476 + | fn test_post_vanilla_query() {
|
1477 + | run_test_suite_v4("post-vanilla-query");
|
1478 + | }
|
1479 + |
|
1480 + | #[test]
|
1481 + | fn test_post_x_www_form_urlencoded() {
|
1482 + | run_test_suite_v4("post-x-www-form-urlencoded");
|
1483 + | }
|
1484 + |
|
1485 + | #[test]
|
1486 + | fn test_post_x_www_form_urlencoded_parameters() {
|
1487 + | run_test_suite_v4("post-x-www-form-urlencoded-parameters");
|
1488 + | }
|
1489 + | }
|
1205 1490 | }
|
1206 1491 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/test.rs b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/test.rs
|
1207 1492 | index be6c496..86eec20 100644
|
1208 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/test.rs
|
1493 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/http_request/test.rs
|
1209 1494 | @@ -1,242 +1,453 @@
|
1210 1495 | /*
|
1211 1496 | * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
1212 1497 | * SPDX-License-Identifier: Apache-2.0
|
1213 1498 | */
|
1214 1499 |
|
1215 1500 | //! Functions shared between the tests of several modules.
|
1216 1501 |
|
1217 - | use crate::http_request::{SignableBody, SignableRequest};
|
1502 + | use crate::http_request::canonical_request::{CanonicalRequest, StringToSign};
|
1503 + | use crate::http_request::{
|
1504 + | PayloadChecksumKind, SessionTokenMode, SignableBody, SignableRequest, SignatureLocation,
|
1505 + | SigningSettings,
|
1506 + | };
|
1507 + | use aws_credential_types::Credentials;
|
1508 + | use aws_smithy_runtime_api::client::identity::Identity;
|
1218 1509 | use http0::{Method, Uri};
|
1510 + | use std::borrow::Cow;
|
1219 1511 | use std::error::Error as StdError;
|
1512 + | use std::time::{Duration, SystemTime};
|
1513 + | use time::format_description::well_known::Rfc3339;
|
1514 + | use time::OffsetDateTime;
|
1515 + |
|
1516 + | /// Common test suite collection
|
1517 + | #[derive(Debug, Clone, Copy, Eq, PartialEq)]
|
1518 + | enum Collection {
|
1519 + | V4,
|
1520 + | V4A,
|
1521 + | }
|
1220 1522 |
|
1221 - | pub(crate) mod v4 {
|
1222 - | use super::*;
|
1523 + | /// A test from the common CRT test suite
|
1524 + | #[derive(Debug, Clone)]
|
1525 + | pub(crate) struct SigningSuiteTest {
|
1526 + | test_name: &'static str,
|
1527 + | collection: Collection,
|
1528 + | }
|
1223 1529 |
|
1224 - | fn path(name: &str, ext: &str) -> String {
|
1225 - | format!("aws-sig-v4-test-suite/{}/{}.{}", name, name, ext)
|
1530 + | impl SigningSuiteTest {
|
1531 + | /// Create a new test from the V4 test suite
|
1532 + | pub(crate) fn v4(test_name: &'static str) -> Self {
|
1533 + | Self {
|
1534 + | test_name,
|
1535 + | collection: Collection::V4,
|
1226 1536 | }
|
1227 - |
|
1228 - | pub(crate) fn test_canonical_request(name: &str) -> String {
|
1229 - | // Tests fail if there's a trailing newline in the file, and pre-commit requires trailing newlines
|
1230 - | read(&path(name, "creq")).trim().to_string()
|
1231 1537 | }
|
1232 1538 |
|
1233 - | pub(crate) fn test_sts(name: &str) -> String {
|
1234 - | read(&path(name, "sts"))
|
1539 + | /// Create a new test from the V4a test suite
|
1540 + | pub(crate) fn v4a(test_name: &'static str) -> Self {
|
1541 + | Self {
|
1542 + | test_name,
|
1543 + | collection: Collection::V4A,
|
1235 1544 | }
|
1236 - |
|
1237 - | pub(crate) fn test_request(name: &str) -> TestRequest {
|
1238 - | test_parsed_request(name, "req")
|
1239 1545 | }
|
1240 1546 |
|
1241 - | pub(crate) fn test_signed_request(name: &str) -> TestRequest {
|
1242 - | test_parsed_request(name, "sreq")
|
1547 + | /// Get the path to a file in this test suite directory
|
1548 + | fn path(&self, filename: &str) -> String {
|
1549 + | let dir = match self.collection {
|
1550 + | Collection::V4 => "v4",
|
1551 + | Collection::V4A => "v4a",
|
1552 + | };
|
1553 + | format!("aws-signing-test-suite/{dir}/{}/{filename}", self.test_name)
|
1243 1554 | }
|
1244 1555 |
|
1245 - | pub(crate) fn test_signed_request_query_params(name: &str) -> TestRequest {
|
1246 - | test_parsed_request(name, "qpsreq")
|
1556 + | /// Get the HTTP request for the test
|
1557 + | pub(crate) fn request(&self) -> TestRequest {
|
1558 + | test_parsed_request(&self.path("request.txt"))
|
1247 1559 | }
|
1248 1560 |
|
1249 - | fn test_parsed_request(name: &str, ext: &str) -> TestRequest {
|
1250 - | let path = path(name, ext);
|
1251 - | match parse_request(read(&path).as_bytes()) {
|
1252 - | Ok(parsed) => parsed,
|
1253 - | Err(err) => panic!("Failed to parse {}: {}", path, err),
|
1561 + | /// Get the signed HTTP request for the test
|
1562 + | pub(crate) fn signed_request(&self, signature_location: SignatureLocation) -> TestRequest {
|
1563 + | match signature_location {
|
1564 + | SignatureLocation::QueryParams => {
|
1565 + | test_parsed_request(&self.path("query-signed-request.txt"))
|
1254 1566 | }
|
1567 + | SignatureLocation::Headers => {
|
1568 + | test_parsed_request(&self.path("header-signed-request.txt"))
|
1255 1569 | }
|
1256 - |
|
1257 - | #[test]
|
1258 - | fn test_parse() {
|
1259 - | test_request("post-header-key-case");
|
1260 1570 | }
|
1261 - |
|
1262 - | #[test]
|
1263 - | fn test_read_query_params() {
|
1264 - | test_request("get-vanilla-query-order-key-case");
|
1265 1571 | }
|
1266 - | }
|
1267 - |
|
1268 - | #[cfg(feature = "sigv4a")]
|
1269 - | pub(crate) mod v4a {
|
1270 - | use super::*;
|
1271 - | use crate::http_request::{
|
1272 - | PayloadChecksumKind, SessionTokenMode, SignatureLocation, SigningSettings,
|
1273 - | };
|
1274 - | use aws_credential_types::Credentials;
|
1275 - | use aws_smithy_runtime_api::client::identity::Identity;
|
1276 - | use serde_derive::Deserialize;
|
1277 - | use std::time::{Duration, SystemTime};
|
1278 - | use time::format_description::well_known::Rfc3339;
|
1279 - | use time::OffsetDateTime;
|
1280 1572 |
|
1281 - | fn path(test_name: &str, definition_name: &str) -> String {
|
1282 - | format!("aws-sig-v4a-test-suite/{test_name}/{definition_name}.txt")
|
1573 + | /// Get the canonical request for the test
|
1574 + | pub(crate) fn canonical_request(&self, signature_location: SignatureLocation) -> String {
|
1575 + | match signature_location {
|
1576 + | SignatureLocation::QueryParams => read(&self.path("query-canonical-request.txt")),
|
1577 + | SignatureLocation::Headers => read(&self.path("header-canonical-request.txt")),
|
1283 1578 | }
|
1284 - |
|
1285 - | pub(crate) fn test_request(name: &str) -> TestRequest {
|
1286 - | test_parsed_request(&path(name, "request"))
|
1287 1579 | }
|
1288 1580 |
|
1289 - | pub(crate) fn test_canonical_request(
|
1290 - | name: &str,
|
1291 - | signature_location: SignatureLocation,
|
1292 - | ) -> String {
|
1581 + | /// Get the string to sign for the test
|
1582 + | pub(crate) fn string_to_sign(&self, signature_location: SignatureLocation) -> String {
|
1293 1583 | match signature_location {
|
1294 - | SignatureLocation::QueryParams => read(&path(name, "query-canonical-request")),
|
1295 - | SignatureLocation::Headers => read(&path(name, "header-canonical-request")),
|
1584 + | SignatureLocation::QueryParams => read(&self.path("query-string-to-sign.txt")),
|
1585 + | SignatureLocation::Headers => read(&self.path("header-string-to-sign.txt")),
|
1296 1586 | }
|
1297 1587 | }
|
1298 1588 |
|
1299 - | pub(crate) fn test_string_to_sign(name: &str, signature_location: SignatureLocation) -> String {
|
1589 + | /// Get the signature for the test
|
1590 + | pub(crate) fn signature(&self, signature_location: SignatureLocation) -> String {
|
1300 1591 | match signature_location {
|
1301 - | SignatureLocation::QueryParams => read(&path(name, "query-string-to-sign")),
|
1302 - | SignatureLocation::Headers => read(&path(name, "header-string-to-sign")),
|
1592 + | SignatureLocation::QueryParams => read(&self.path("query-signature.txt")),
|
1593 + | SignatureLocation::Headers => read(&self.path("header-signature.txt")),
|
1594 + | }
|
1303 1595 | }
|
1596 + |
|
1597 + | /// Get the test context for the test
|
1598 + | pub(crate) fn context(&self) -> TestContext {
|
1599 + | let context = read(&self.path("context.json"));
|
1600 + | let tc_builder: TestContextBuilder = serde_json::from_str(&context).unwrap();
|
1601 + | tc_builder.build()
|
1304 1602 | }
|
1603 + | }
|
1305 1604 |
|
1306 - | fn test_parsed_request(path: &str) -> TestRequest {
|
1605 + | fn test_parsed_request(path: &str) -> TestRequest {
|
1307 1606 | match parse_request(read(path).as_bytes()) {
|
1308 1607 | Ok(parsed) => parsed,
|
1309 1608 | Err(err) => panic!("Failed to parse {}: {}", path, err),
|
1310 1609 | }
|
1311 - | }
|
1610 + | }
|
1312 1611 |
|
1313 - | pub(crate) fn test_context(test_name: &str) -> TestContext {
|
1314 - | let path = format!("aws-sig-v4a-test-suite/{test_name}/context.json");
|
1315 - | let context = read(&path);
|
1316 - | let tc_builder: TestContextBuilder = serde_json::from_str(&context).unwrap();
|
1317 - | tc_builder.build()
|
1318 - | }
|
1612 + | fn new_v4_signing_params_from_context(
|
1613 + | test_context: &'_ TestContext,
|
1614 + | signature_location: SignatureLocation,
|
1615 + | ) -> crate::http_request::SigningParams<'_> {
|
1616 + | let mut params = crate::sign::v4::SigningParams::from(test_context);
|
1617 + | params.settings.signature_location = signature_location;
|
1618 + | params.into()
|
1619 + | }
|
1620 + |
|
1621 + | /// Run the given test from the v4 suite for both header and query
|
1622 + | /// signature locations
|
1623 + | pub(crate) fn run_test_suite_v4(test_name: &'static str) {
|
1624 + | run_v4_test(test_name, SignatureLocation::Headers);
|
1625 + | run_v4_test(test_name, SignatureLocation::QueryParams);
|
1626 + | }
|
1627 + |
|
1628 + | fn assert_uri_eq(expected: &Uri, actual: &Uri) {
|
1629 + | assert_eq!(expected.scheme(), actual.scheme());
|
1630 + | assert_eq!(expected.authority(), actual.authority());
|
1631 + | assert_eq!(expected.path(), actual.path());
|
1632 + |
|
1633 + | // query params may be out of order
|
1634 + | let mut expected_params: Vec<(Cow<'_, str>, Cow<'_, str>)> =
|
1635 + | form_urlencoded::parse(expected.query().unwrap_or_default().as_bytes()).collect();
|
1636 + | expected_params.sort();
|
1637 + |
|
1638 + | let mut actual_params: Vec<(Cow<'_, str>, Cow<'_, str>)> =
|
1639 + | form_urlencoded::parse(actual.query().unwrap_or_default().as_bytes()).collect();
|
1640 + | actual_params.sort();
|
1641 + |
|
1642 + | assert_eq!(expected_params, actual_params);
|
1643 + | }
|
1319 1644 |
|
1320 - | pub(crate) struct TestContext {
|
1645 + | fn assert_requests_eq(expected: TestRequest, actual: http0::Request<&str>) {
|
1646 + | let expected = expected.as_http_request();
|
1647 + | let actual = actual;
|
1648 + | assert_eq!(expected.method(), actual.method());
|
1649 + | assert_eq!(
|
1650 + | expected.headers().len(),
|
1651 + | actual.headers().len(),
|
1652 + | "extra or missing headers"
|
1653 + | );
|
1654 + | assert_eq!(expected.headers(), actual.headers(), "headers mismatch");
|
1655 + | assert_uri_eq(expected.uri(), actual.uri());
|
1656 + | assert_eq!(*expected.body(), *actual.body(), "body mismatch");
|
1657 + | }
|
1658 + |
|
1659 + | /// Run the given test from the v4 suite for the given signature location
|
1660 + | pub(crate) fn run_v4_test(test_name: &'static str, signature_location: SignatureLocation) {
|
1661 + | let test = SigningSuiteTest::v4(test_name);
|
1662 + | let tc = test.context();
|
1663 + | let params = new_v4_signing_params_from_context(&tc, signature_location);
|
1664 + |
|
1665 + | let req = test.request();
|
1666 + | let expected_creq = test.canonical_request(signature_location);
|
1667 + | let signable_req = SignableRequest::from(&req);
|
1668 + | let actual_creq = CanonicalRequest::from(&signable_req, ¶ms).unwrap();
|
1669 + |
|
1670 + | // check canonical request
|
1671 + | assert_eq!(
|
1672 + | expected_creq,
|
1673 + | actual_creq.to_string(),
|
1674 + | "canonical request didn't match (signature location: {signature_location:?})"
|
1675 + | );
|
1676 + |
|
1677 + | let expected_string_to_sign = test.string_to_sign(signature_location);
|
1678 + | let hashed_creq = &crate::sign::v4::sha256_hex_string(actual_creq.to_string().as_bytes());
|
1679 + | let actual_string_to_sign = StringToSign::new_v4(
|
1680 + | *params.time(),
|
1681 + | params.region().unwrap(),
|
1682 + | params.name(),
|
1683 + | hashed_creq,
|
1684 + | )
|
1685 + | .to_string();
|
1686 + |
|
1687 + | // check string to sign
|
1688 + | assert_eq!(
|
1689 + | expected_string_to_sign, actual_string_to_sign,
|
1690 + | "'string to sign' didn't match (signature location: {signature_location:?})"
|
1691 + | );
|
1692 + |
|
1693 + | let out = crate::http_request::sign(signable_req, ¶ms).unwrap();
|
1694 + | let mut signed = req.as_http_request();
|
1695 + | out.output.apply_to_request_http0x(&mut signed);
|
1696 + |
|
1697 + | // check signature
|
1698 + | assert_eq!(
|
1699 + | test.signature(signature_location),
|
1700 + | out.signature,
|
1701 + | "signature didn't match (signature location: {signature_location:?})"
|
1702 + | );
|
1703 + |
|
1704 + | let expected = test.signed_request(signature_location);
|
1705 + | assert_requests_eq(expected, signed);
|
1706 + | }
|
1707 + |
|
1708 + | /// Test suite context.json
|
1709 + | pub(crate) struct TestContext {
|
1321 1710 | pub(crate) identity: Identity,
|
1322 1711 | pub(crate) expiration_in_seconds: u64,
|
1323 1712 | pub(crate) normalize: bool,
|
1324 1713 | pub(crate) region: String,
|
1325 1714 | pub(crate) service: String,
|
1326 1715 | pub(crate) timestamp: String,
|
1327 1716 | pub(crate) omit_session_token: bool,
|
1328 1717 | pub(crate) sign_body: bool,
|
1329 - | }
|
1330 - |
|
1331 - | impl<'a> From<&'a TestContext> for crate::sign::v4a::SigningParams<'a, SigningSettings> {
|
1332 - | fn from(tc: &'a TestContext) -> Self {
|
1333 - | crate::sign::v4a::SigningParams {
|
1334 - | identity: &tc.identity,
|
1335 - | region_set: &tc.region,
|
1336 - | name: &tc.service,
|
1337 - | time: OffsetDateTime::parse(&tc.timestamp, &Rfc3339)
|
1338 - | .unwrap()
|
1339 - | .into(),
|
1340 - | settings: SigningSettings {
|
1341 - | // payload_checksum_kind: PayloadChecksumKind::XAmzSha256,
|
1342 - | expires_in: Some(Duration::from_secs(tc.expiration_in_seconds)),
|
1343 - | uri_path_normalization_mode: tc.normalize.into(),
|
1344 - | session_token_mode: if tc.omit_session_token {
|
1345 - | SessionTokenMode::Exclude
|
1346 - | } else {
|
1347 - | SessionTokenMode::Include
|
1348 - | },
|
1349 - | payload_checksum_kind: if tc.sign_body {
|
1350 - | PayloadChecksumKind::XAmzSha256
|
1351 - | } else {
|
1352 - | PayloadChecksumKind::NoHeader
|
1353 - | },
|
1354 - | ..Default::default()
|
1355 - | },
|
1356 - | }
|
1357 - | }
|
1358 - | }
|
1718 + | }
|
1359 1719 |
|
1360 - | // Serde has limitations requiring this odd workaround.
|
1361 - | // See https://github.com/serde-rs/serde/issues/368 for more info.
|
1362 - | fn return_true() -> bool {
|
1720 + | // Serde has limitations requiring this odd workaround.
|
1721 + | // See https://github.com/serde-rs/serde/issues/368 for more info.
|
1722 + | fn return_true() -> bool {
|
1363 1723 | true
|
1364 - | }
|
1724 + | }
|
1365 1725 |
|
1366 - | #[derive(Deserialize)]
|
1367 - | pub(crate) struct TestContextBuilder {
|
1726 + | #[derive(serde_derive::Deserialize)]
|
1727 + | pub(crate) struct TestContextBuilder {
|
1368 1728 | credentials: TestContextCreds,
|
1369 1729 | expiration_in_seconds: u64,
|
1370 1730 | normalize: bool,
|
1371 1731 | region: String,
|
1372 1732 | service: String,
|
1373 1733 | timestamp: String,
|
1374 1734 | #[serde(default)]
|
1375 1735 | omit_session_token: bool,
|
1376 1736 | #[serde(default = "return_true")]
|
1377 1737 | sign_body: bool,
|
1378 - | }
|
1738 + | }
|
1379 1739 |
|
1380 - | impl TestContextBuilder {
|
1740 + | impl TestContextBuilder {
|
1381 1741 | pub(crate) fn build(self) -> TestContext {
|
1382 1742 | let identity = Identity::new(
|
1383 1743 | Credentials::from_keys(
|
1384 1744 | &self.credentials.access_key_id,
|
1385 1745 | &self.credentials.secret_access_key,
|
1386 1746 | self.credentials.token.clone(),
|
1387 1747 | ),
|
1388 1748 | Some(SystemTime::UNIX_EPOCH + Duration::from_secs(self.expiration_in_seconds)),
|
1389 1749 | );
|
1390 1750 |
|
1391 1751 | TestContext {
|
1392 1752 | identity,
|
1393 1753 | expiration_in_seconds: self.expiration_in_seconds,
|
1394 1754 | normalize: self.normalize,
|
1395 1755 | region: self.region,
|
1396 1756 | service: self.service,
|
1397 1757 | timestamp: self.timestamp,
|
1398 1758 | omit_session_token: self.omit_session_token,
|
1399 1759 | sign_body: self.sign_body,
|
1400 1760 | }
|
1401 1761 | }
|
1402 - | }
|
1762 + | }
|
1403 1763 |
|
1404 - | #[derive(Deserialize)]
|
1405 - | pub(crate) struct TestContextCreds {
|
1764 + | #[derive(serde_derive::Deserialize)]
|
1765 + | pub(crate) struct TestContextCreds {
|
1406 1766 | access_key_id: String,
|
1407 1767 | secret_access_key: String,
|
1408 1768 | token: Option<String>,
|
1769 + | }
|
1770 + |
|
1771 + | impl<'a> From<&'a TestContext> for crate::sign::v4::SigningParams<'a, SigningSettings> {
|
1772 + | fn from(tc: &'a TestContext) -> Self {
|
1773 + | crate::sign::v4::SigningParams {
|
1774 + | identity: &tc.identity,
|
1775 + | region: &tc.region,
|
1776 + | name: &tc.service,
|
1777 + | time: OffsetDateTime::parse(&tc.timestamp, &Rfc3339)
|
1778 + | .unwrap()
|
1779 + | .into(),
|
1780 + | settings: SigningSettings {
|
1781 + | // payload_checksum_kind: PayloadChecksumKind::XAmzSha256,
|
1782 + | expires_in: Some(Duration::from_secs(tc.expiration_in_seconds)),
|
1783 + | uri_path_normalization_mode: tc.normalize.into(),
|
1784 + | session_token_mode: if tc.omit_session_token {
|
1785 + | SessionTokenMode::Exclude
|
1786 + | } else {
|
1787 + | SessionTokenMode::Include
|
1788 + | },
|
1789 + | payload_checksum_kind: if tc.sign_body {
|
1790 + | PayloadChecksumKind::XAmzSha256
|
1791 + | } else {
|
1792 + | PayloadChecksumKind::NoHeader
|
1793 + | },
|
1794 + | ..Default::default()
|
1795 + | },
|
1796 + | }
|
1797 + | }
|
1798 + | }
|
1799 + |
|
1800 + | #[cfg(feature = "sigv4a")]
|
1801 + | pub(crate) mod v4a {
|
1802 + | use super::*;
|
1803 + | use crate::http_request::{
|
1804 + | sign, PayloadChecksumKind, SessionTokenMode, SignatureLocation, SigningSettings,
|
1805 + | };
|
1806 + | use crate::sign::v4a;
|
1807 + | use p256::ecdsa::signature::{Signature, Verifier};
|
1808 + | use p256::ecdsa::{DerSignature, SigningKey};
|
1809 + | use std::time::Duration;
|
1810 + | use time::format_description::well_known::Rfc3339;
|
1811 + | use time::OffsetDateTime;
|
1812 + |
|
1813 + | fn new_v4a_signing_params_from_context(
|
1814 + | test_context: &'_ TestContext,
|
1815 + | signature_location: SignatureLocation,
|
1816 + | ) -> crate::http_request::SigningParams<'_> {
|
1817 + | let mut params = crate::sign::v4a::SigningParams::from(test_context);
|
1818 + | params.settings.signature_location = signature_location;
|
1819 + | params.into()
|
1820 + | }
|
1821 + |
|
1822 + | pub(crate) fn run_test_suite_v4a(test_name: &'static str) {
|
1823 + | run_v4a_test(test_name, SignatureLocation::Headers);
|
1824 + | run_v4a_test(test_name, SignatureLocation::QueryParams);
|
1825 + | }
|
1826 + |
|
1827 + | pub(crate) fn run_v4a_test(test_name: &'static str, signature_location: SignatureLocation) {
|
1828 + | let test = SigningSuiteTest::v4a(test_name);
|
1829 + | let tc = test.context();
|
1830 + | let params = new_v4a_signing_params_from_context(&tc, signature_location);
|
1831 + |
|
1832 + | let req = test.request();
|
1833 + | let expected_creq = test.canonical_request(signature_location);
|
1834 + | let signable_req = SignableRequest::from(&req);
|
1835 + | let actual_creq = CanonicalRequest::from(&signable_req, ¶ms).unwrap();
|
1836 + |
|
1837 + | assert_eq!(
|
1838 + | expected_creq,
|
1839 + | actual_creq.to_string(),
|
1840 + | "canonical request didn't match (signature location: {signature_location:?})"
|
1841 + | );
|
1842 + |
|
1843 + | let expected_string_to_sign = test.string_to_sign(signature_location);
|
1844 + | let hashed_creq = &crate::sign::v4::sha256_hex_string(actual_creq.to_string().as_bytes());
|
1845 + | let actual_string_to_sign = StringToSign::new_v4a(
|
1846 + | *params.time(),
|
1847 + | params.region_set().unwrap(),
|
1848 + | params.name(),
|
1849 + | hashed_creq,
|
1850 + | )
|
1851 + | .to_string();
|
1852 + |
|
1853 + | assert_eq!(
|
1854 + | expected_string_to_sign, actual_string_to_sign,
|
1855 + | "'string to sign' didn't match (signature location: {signature_location:?})"
|
1856 + | );
|
1857 + |
|
1858 + | let out = sign(signable_req, ¶ms).unwrap();
|
1859 + | // Sigv4a signatures are non-deterministic, so we can't compare the signature directly.
|
1860 + | out.output
|
1861 + | .apply_to_request_http0x(&mut req.as_http_request());
|
1862 + |
|
1863 + | let creds = params.credentials().unwrap();
|
1864 + | let signing_key =
|
1865 + | v4a::generate_signing_key(creds.access_key_id(), creds.secret_access_key());
|
1866 + | let sig = DerSignature::from_bytes(&hex::decode(out.signature).unwrap()).unwrap();
|
1867 + | let sig = sig
|
1868 + | .try_into()
|
1869 + | .expect("DER-style signatures are always convertible into fixed-size signatures");
|
1870 + |
|
1871 + | let signing_key = SigningKey::from_bytes(signing_key.as_ref()).unwrap();
|
1872 + | let peer_public_key = signing_key.verifying_key();
|
1873 + | let sts = actual_string_to_sign.as_bytes();
|
1874 + | peer_public_key.verify(sts, &sig).unwrap();
|
1875 + | // TODO(sigv4a) - use public.key.json as verifying key?
|
1876 + | }
|
1877 + |
|
1878 + | impl<'a> From<&'a TestContext> for crate::sign::v4a::SigningParams<'a, SigningSettings> {
|
1879 + | fn from(tc: &'a TestContext) -> Self {
|
1880 + | crate::sign::v4a::SigningParams {
|
1881 + | identity: &tc.identity,
|
1882 + | region_set: &tc.region,
|
1883 + | name: &tc.service,
|
1884 + | time: OffsetDateTime::parse(&tc.timestamp, &Rfc3339)
|
1885 + | .unwrap()
|
1886 + | .into(),
|
1887 + | settings: SigningSettings {
|
1888 + | // payload_checksum_kind: PayloadChecksumKind::XAmzSha256,
|
1889 + | expires_in: Some(Duration::from_secs(tc.expiration_in_seconds)),
|
1890 + | uri_path_normalization_mode: tc.normalize.into(),
|
1891 + | session_token_mode: if tc.omit_session_token {
|
1892 + | SessionTokenMode::Exclude
|
1893 + | } else {
|
1894 + | SessionTokenMode::Include
|
1895 + | },
|
1896 + | payload_checksum_kind: if tc.sign_body {
|
1897 + | PayloadChecksumKind::XAmzSha256
|
1898 + | } else {
|
1899 + | PayloadChecksumKind::NoHeader
|
1900 + | },
|
1901 + | ..Default::default()
|
1902 + | },
|
1903 + | }
|
1904 + | }
|
1409 1905 | }
|
1410 1906 |
|
1411 1907 | #[test]
|
1412 1908 | fn test_parse() {
|
1413 - | let req = test_request("post-header-key-case");
|
1909 + | let req = SigningSuiteTest::v4a("post-header-key-case").request();
|
1414 1910 | assert_eq!(req.method, "POST");
|
1415 1911 | assert_eq!(req.uri, "https://example.amazonaws.com/");
|
1416 1912 | assert!(req.headers.is_empty());
|
1417 1913 | }
|
1418 1914 |
|
1419 1915 | #[test]
|
1420 1916 | fn test_read_query_params() {
|
1421 - | let req = test_request("get-header-value-trim");
|
1917 + | let req = SigningSuiteTest::v4a("get-header-value-trim").request();
|
1422 1918 | assert_eq!(req.method, "GET");
|
1423 1919 | assert_eq!(req.uri, "https://example.amazonaws.com/");
|
1424 1920 | assert!(!req.headers.is_empty());
|
1425 1921 | }
|
1426 1922 | }
|
1427 1923 |
|
1428 1924 | fn read(path: &str) -> String {
|
1429 1925 | println!("Loading `{}` for test case...", path);
|
1430 1926 | let v = {
|
1431 1927 | match std::fs::read_to_string(path) {
|
1432 1928 | // This replacement is necessary for tests to pass on Windows, as reading the
|
1433 1929 | // test snapshots from the file system results in CRLF line endings being inserted.
|
1434 1930 | Ok(value) => value.replace("\r\n", "\n"),
|
1435 1931 | Err(err) => {
|
1436 1932 | panic!("failed to load test case `{}`: {}", path, err);
|
1437 1933 | }
|
1438 1934 | }
|
1439 1935 | };
|
1440 1936 |
|
1441 1937 | v.trim().to_string()
|
1442 1938 | }
|
1443 1939 |
|
1444 1940 | pub(crate) struct TestRequest {
|
1445 1941 | pub(crate) uri: String,
|
1446 1942 | pub(crate) method: String,
|
1447 1943 | pub(crate) headers: Vec<(String, String)>,
|
1448 1944 | pub(crate) body: TestSignedBody,
|
1449 1945 | }
|
1450 1946 |
|
1451 1947 | pub(crate) enum TestSignedBody {
|
1452 1948 | @@ -290,79 +501,87 @@ impl<B: AsRef<[u8]>> From<http0::Request<B>> for TestRequest {
|
1453 1949 | String::from_utf8(v.as_bytes().to_vec()).unwrap(),
|
1454 1950 | )
|
1455 1951 | })
|
1456 1952 | .collect::<Vec<_>>(),
|
1457 1953 | body: TestSignedBody::Bytes(value.body().as_ref().to_vec()),
|
1458 1954 | }
|
1459 1955 | }
|
1460 1956 | }
|
1461 1957 |
|
1462 1958 | impl<'a> From<&'a TestRequest> for SignableRequest<'a> {
|
1463 1959 | fn from(request: &'a TestRequest) -> SignableRequest<'a> {
|
1464 1960 | SignableRequest::new(
|
1465 1961 | &request.method,
|
1466 1962 | &request.uri,
|
1467 1963 | request
|
1468 1964 | .headers
|
1469 1965 | .iter()
|
1470 1966 | .map(|(k, v)| (k.as_str(), v.as_str())),
|
1471 1967 | request.body.as_signable_body(),
|
1472 1968 | )
|
1473 1969 | .expect("URI MUST be valid")
|
1474 1970 | }
|
1475 1971 | }
|
1476 1972 |
|
1477 1973 | fn parse_request(s: &[u8]) -> Result<TestRequest, Box<dyn StdError + Send + Sync + 'static>> {
|
1478 1974 | let mut headers = [httparse::EMPTY_HEADER; 64];
|
1479 1975 | // httparse 1.5 requires two trailing newlines to head the header section.
|
1480 1976 | let mut with_newline = Vec::from(s);
|
1481 1977 | with_newline.push(b'\n');
|
1482 1978 | let mut req = httparse::Request::new(&mut headers);
|
1483 - | let _ = req.parse(&with_newline).unwrap();
|
1979 + | let status = req.parse(&with_newline).unwrap();
|
1980 + |
|
1981 + | let body = if status.is_complete() {
|
1982 + | let body_offset = status.unwrap();
|
1983 + | // ignore the newline we added, take from original
|
1984 + | &s[body_offset..]
|
1985 + | } else {
|
1986 + | &[]
|
1987 + | };
|
1484 1988 |
|
1485 1989 | let mut uri_builder = Uri::builder().scheme("https");
|
1486 1990 | if let Some(path) = req.path {
|
1487 1991 | uri_builder = uri_builder.path_and_query(path);
|
1488 1992 | }
|
1489 1993 |
|
1490 1994 | let mut headers = vec![];
|
1491 1995 | for header in req.headers {
|
1492 1996 | let name = header.name.to_lowercase();
|
1493 1997 | if name == "host" {
|
1494 1998 | uri_builder = uri_builder.authority(header.value);
|
1495 1999 | } else if !name.is_empty() {
|
1496 2000 | headers.push((
|
1497 2001 | header.name.to_string(),
|
1498 2002 | std::str::from_utf8(header.value)?.to_string(),
|
1499 2003 | ));
|
1500 2004 | }
|
1501 2005 | }
|
1502 2006 |
|
1503 2007 | Ok(TestRequest {
|
1504 2008 | uri: uri_builder.build()?.to_string(),
|
1505 2009 | method: req.method.unwrap().to_string(),
|
1506 2010 | headers,
|
1507 - | body: TestSignedBody::Bytes(vec![]),
|
2011 + | body: TestSignedBody::Bytes(Vec::from(body)),
|
1508 2012 | })
|
1509 2013 | }
|
1510 2014 |
|
1511 2015 | #[test]
|
1512 2016 | fn test_parse_headers() {
|
1513 2017 | let buf = b"Host:example.amazonaws.com\nX-Amz-Date:20150830T123600Z\n\nblah blah";
|
1514 2018 | let mut headers = [httparse::EMPTY_HEADER; 4];
|
1515 2019 | assert_eq!(
|
1516 2020 | httparse::parse_headers(buf, &mut headers),
|
1517 2021 | Ok(httparse::Status::Complete((
|
1518 2022 | 56,
|
1519 2023 | &[
|
1520 2024 | httparse::Header {
|
1521 2025 | name: "Host",
|
1522 2026 | value: b"example.amazonaws.com",
|
1523 2027 | },
|
1524 2028 | httparse::Header {
|
1525 2029 | name: "X-Amz-Date",
|
1526 2030 | value: b"20150830T123600Z",
|
1527 2031 | }
|
1528 2032 | ][..]
|
1529 2033 | )))
|
1530 2034 | );
|
1531 2035 | }
|
1532 2036 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/sign/v4.rs b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/sign/v4.rs
|
1533 2037 | index a208453..fc00249 100644
|
1534 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/sign/v4.rs
|
2038 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-sigv4/src/sign/v4.rs
|
1535 2039 | @@ -168,52 +168,54 @@ pub mod signing_params {
|
1536 2040 | );
|
1537 2041 |
|
1538 2042 | /// Builds an instance of [`SigningParams`]. Will yield a [`BuildError`] if
|
1539 2043 | /// a required argument was not given.
|
1540 2044 | pub fn build(self) -> Result<SigningParams<'a, S>, BuildError> {
|
1541 2045 | Ok(SigningParams {
|
1542 2046 | identity: self
|
1543 2047 | .identity
|
1544 2048 | .ok_or_else(|| BuildError::new("identity is required"))?,
|
1545 2049 | region: self
|
1546 2050 | .region
|
1547 2051 | .ok_or_else(|| BuildError::new("region is required"))?,
|
1548 2052 | name: self
|
1549 2053 | .name
|
1550 2054 | .ok_or_else(|| BuildError::new("name is required"))?,
|
1551 2055 | time: self
|
1552 2056 | .time
|
1553 2057 | .ok_or_else(|| BuildError::new("time is required"))?,
|
1554 2058 | settings: self
|
1555 2059 | .settings
|
1556 2060 | .ok_or_else(|| BuildError::new("settings are required"))?,
|
1557 2061 | })
|
1558 2062 | }
|
1559 2063 | }
|
1560 2064 | }
|
1561 2065 |
|
1562 2066 | #[cfg(test)]
|
1563 2067 | mod tests {
|
1564 2068 | use super::{calculate_signature, generate_signing_key, sha256_hex_string};
|
1565 2069 | use crate::date_time::test_parsers::parse_date_time;
|
1566 - | use crate::http_request::test;
|
1567 2070 |
|
1568 2071 | #[test]
|
1569 2072 | fn test_signature_calculation() {
|
1570 2073 | let secret = "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY";
|
1571 - | let creq = test::v4::test_canonical_request("iam");
|
2074 + | let creq = r#"AWS4-HMAC-SHA256
|
2075 + | 20150830T123600Z
|
2076 + | 20150830/us-east-1/iam/aws4_request
|
2077 + | f536975d06c0309214f805bb90ccff089219ecd68b2577efef23edd43b7e1a59"#;
|
1572 2078 | let time = parse_date_time("20150830T123600Z").unwrap();
|
1573 2079 |
|
1574 2080 | let derived_key = generate_signing_key(secret, time, "us-east-1", "iam");
|
1575 2081 | let signature = calculate_signature(derived_key, creq.as_bytes());
|
1576 2082 |
|
1577 2083 | let expected = "5d672d79c15b13162d9279b0855cfba6789a8edb4c82c400e06b5924a6f2b5d7";
|
1578 2084 | assert_eq!(expected, &signature);
|
1579 2085 | }
|
1580 2086 |
|
1581 2087 | #[test]
|
1582 2088 | fn sign_payload_empty_string() {
|
1583 2089 | let expected = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";
|
1584 2090 | let actual = sha256_hex_string([]);
|
1585 2091 | assert_eq!(expected, actual);
|
1586 2092 | }
|
1587 2093 | }
|
1588 2094 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-checksums/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-checksums/Cargo.toml
|
1589 2095 | index ce78c38..8c2f591 100644
|
1590 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-checksums/Cargo.toml
|
2096 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-checksums/Cargo.toml
|
1591 2097 | @@ -1,43 +1,43 @@
|
1592 2098 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
1593 2099 | [package]
|
1594 2100 | name = "aws-smithy-checksums"
|
1595 2101 | version = "0.63.5"
|
1596 2102 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Zelda Hessler <zhessler@amazon.com>"]
|
1597 2103 | description = "Checksum calculation and verification callbacks"
|
1598 2104 | edition = "2021"
|
1599 2105 | license = "Apache-2.0"
|
1600 2106 | repository = "https://github.com/smithy-lang/smithy-rs"
|
1601 2107 | [package.metadata.docs.rs]
|
1602 2108 | all-features = true
|
1603 2109 | targets = ["x86_64-unknown-linux-gnu"]
|
1604 2110 | cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]
|
1605 2111 | rustdoc-args = ["--cfg", "docsrs"]
|
1606 2112 |
|
1607 2113 | [dependencies]
|
1608 2114 | bytes = "1.10.0"
|
1609 2115 | crc-fast = "1.3.0"
|
1610 2116 | hex = "0.4.3"
|
1611 2117 | http = "0.2.9"
|
1612 2118 | http-body = "0.4.5"
|
1613 2119 | md-5 = "0.10"
|
1614 2120 | pin-project-lite = "0.2.14"
|
1615 2121 | sha1 = "0.10"
|
1616 2122 | sha2 = "0.10"
|
1617 2123 | tracing = "0.1.40"
|
1618 2124 |
|
1619 2125 | [dependencies.aws-smithy-http]
|
1620 2126 | path = "../aws-smithy-http"
|
1621 - | version = "0.62.2"
|
2127 + | version = "0.62.3"
|
1622 2128 |
|
1623 2129 | [dependencies.aws-smithy-types]
|
1624 2130 | path = "../aws-smithy-types"
|
1625 2131 | version = "1.3.2"
|
1626 2132 |
|
1627 2133 | [dev-dependencies]
|
1628 2134 | bytes-utils = "0.1.2"
|
1629 2135 | pretty_assertions = "1.3"
|
1630 2136 | tracing-test = "0.2.1"
|
1631 2137 |
|
1632 2138 | [dev-dependencies.tokio]
|
1633 2139 | version = "1.23.1"
|
1634 2140 | features = ["macros", "rt"]
|
1635 2141 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/Cargo.toml
|
1636 2142 | index 970c99e..d3c7a49 100644
|
1637 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/Cargo.toml
|
2143 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/Cargo.toml
|
1638 2144 | @@ -1,34 +1,34 @@
|
1639 2145 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
1640 2146 | [package]
|
1641 2147 | name = "aws-smithy-http"
|
1642 - | version = "0.62.2"
|
2148 + | version = "0.62.3"
|
1643 2149 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
1644 2150 | description = "Smithy HTTP logic for smithy-rs."
|
1645 2151 | edition = "2021"
|
1646 2152 | license = "Apache-2.0"
|
1647 2153 | repository = "https://github.com/smithy-lang/smithy-rs"
|
1648 2154 | [package.metadata.docs.rs]
|
1649 2155 | all-features = true
|
1650 2156 | targets = ["x86_64-unknown-linux-gnu"]
|
1651 2157 | cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]
|
1652 2158 | rustdoc-args = ["--cfg", "docsrs"]
|
1653 2159 |
|
1654 2160 | [features]
|
1655 2161 | event-stream = ["aws-smithy-eventstream"]
|
1656 2162 | rt-tokio = ["aws-smithy-types/rt-tokio"]
|
1657 2163 |
|
1658 2164 | [dependencies]
|
1659 2165 | bytes = "1.10.0"
|
1660 2166 | bytes-utils = "0.1"
|
1661 2167 | percent-encoding = "2.3.1"
|
1662 2168 | pin-project-lite = "0.2.14"
|
1663 2169 | pin-utils = "0.1.0"
|
1664 2170 | tracing = "0.1.40"
|
1665 2171 | futures-core = "0.3.31"
|
1666 2172 |
|
1667 2173 | [dependencies.aws-smithy-eventstream]
|
1668 2174 | path = "../aws-smithy-eventstream"
|
1669 2175 | optional = true
|
1670 2176 | version = "0.60.10"
|
1671 2177 |
|
1672 2178 | [dependencies.aws-smithy-runtime-api]
|
1673 2179 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/fuzz/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/fuzz/Cargo.toml
|
1674 2180 | index 508f7a2..361545e 100644
|
1675 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/fuzz/Cargo.toml
|
2181 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/fuzz/Cargo.toml
|
1676 2182 | @@ -1,27 +1,27 @@
|
1677 2183 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
1678 2184 | [[bin]]
|
1679 2185 | name = "read_many_from_str"
|
1680 2186 | path = "fuzz_targets/read_many_from_str.rs"
|
1681 2187 | test = false
|
1682 2188 | doc = false
|
1683 2189 |
|
1684 2190 | [package]
|
1685 2191 | name = "aws-smithy-http-fuzz"
|
1686 2192 | version = "0.0.0"
|
1687 2193 | authors = ["Automatically generated"]
|
1688 2194 | publish = false
|
1689 2195 | edition = "2021"
|
1690 2196 |
|
1691 2197 | [package.metadata]
|
1692 2198 | cargo-fuzz = true
|
1693 2199 |
|
1694 2200 | [dependencies]
|
1695 2201 | libfuzzer-sys = "=0.4.7"
|
1696 2202 | http = "0.2.3"
|
1697 2203 |
|
1698 2204 | [dependencies.aws-smithy-http]
|
1699 2205 | path = ".."
|
1700 - | version = "0.62.2"
|
2206 + | version = "0.62.3"
|
1701 2207 |
|
1702 2208 | [workspace]
|
1703 2209 | members = ["."]
|
1704 2210 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/src/query_writer.rs b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/src/query_writer.rs
|
1705 2211 | index fef41d0..2792229 100644
|
1706 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/src/query_writer.rs
|
2212 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-http/src/query_writer.rs
|
1707 2213 | @@ -25,68 +25,74 @@ impl QueryWriter {
|
1708 2214 | pub fn new(uri: &Uri) -> Self {
|
1709 2215 | let new_path_and_query = uri
|
1710 2216 | .path_and_query()
|
1711 2217 | .map(|pq| pq.to_string())
|
1712 2218 | .unwrap_or_default();
|
1713 2219 | let prefix = if uri.query().is_none() {
|
1714 2220 | Some('?')
|
1715 2221 | } else if !uri.query().unwrap_or_default().is_empty() {
|
1716 2222 | Some('&')
|
1717 2223 | } else {
|
1718 2224 | None
|
1719 2225 | };
|
1720 2226 | QueryWriter {
|
1721 2227 | base_uri: uri.clone(),
|
1722 2228 | new_path_and_query,
|
1723 2229 | prefix,
|
1724 2230 | }
|
1725 2231 | }
|
1726 2232 |
|
1727 2233 | /// Clears all query parameters.
|
1728 2234 | pub fn clear_params(&mut self) {
|
1729 2235 | if let Some(index) = self.new_path_and_query.find('?') {
|
1730 2236 | self.new_path_and_query.truncate(index);
|
1731 2237 | self.prefix = Some('?');
|
1732 2238 | }
|
1733 2239 | }
|
1734 2240 |
|
1735 2241 | /// Inserts a new query parameter. The key and value are percent encoded
|
1736 2242 | /// by `QueryWriter`. Passing in percent encoded values will result in double encoding.
|
1737 2243 | pub fn insert(&mut self, k: &str, v: &str) {
|
2244 + | self.insert_encoded(&percent_encode_query(k), &percent_encode_query(v));
|
2245 + | }
|
2246 + |
|
2247 + | /// Inserts a new already encoded query parameter. The key and value will be inserted
|
2248 + | /// as is.
|
2249 + | pub fn insert_encoded(&mut self, encoded_k: &str, encoded_v: &str) {
|
1738 2250 | if let Some(prefix) = self.prefix {
|
1739 2251 | self.new_path_and_query.push(prefix);
|
1740 2252 | }
|
1741 2253 | self.prefix = Some('&');
|
1742 - | self.new_path_and_query.push_str(&percent_encode_query(k));
|
2254 + | self.new_path_and_query.push_str(encoded_k);
|
1743 2255 | self.new_path_and_query.push('=');
|
2256 + | self.new_path_and_query.push_str(encoded_v)
|
1744 2257 |
|
1745 - | self.new_path_and_query.push_str(&percent_encode_query(v));
|
1746 2258 | }
|
1747 2259 |
|
1748 2260 | /// Returns just the built query string.
|
1749 2261 | pub fn build_query(self) -> String {
|
1750 2262 | self.build_uri().query().unwrap_or_default().to_string()
|
1751 2263 | }
|
1752 2264 |
|
1753 2265 | /// Returns a full [`Uri`] with the query string updated.
|
1754 2266 | pub fn build_uri(self) -> Uri {
|
1755 2267 | let mut parts = self.base_uri.into_parts();
|
1756 2268 | parts.path_and_query = Some(
|
1757 2269 | self.new_path_and_query
|
1758 2270 | .parse()
|
1759 2271 | .expect("adding query should not invalidate URI"),
|
1760 2272 | );
|
1761 2273 | Uri::from_parts(parts).expect("a valid URL in should always produce a valid URL out")
|
1762 2274 | }
|
1763 2275 | }
|
1764 2276 |
|
1765 2277 | #[cfg(test)]
|
1766 2278 | mod test {
|
1767 2279 | use super::QueryWriter;
|
1768 2280 | use http_02x::Uri;
|
1769 2281 |
|
1770 2282 | #[test]
|
1771 2283 | fn empty_uri() {
|
1772 2284 | let uri = Uri::from_static("http://www.example.com");
|
1773 2285 | let mut query_writer = QueryWriter::new(&uri);
|
1774 2286 | query_writer.insert("key", "val%ue");
|
1775 2287 | query_writer.insert("another", "value");
|
1776 2288 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-runtime/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-runtime/Cargo.toml
|
1777 2289 | index f108978..df7a9fe 100644
|
1778 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-runtime/Cargo.toml
|
2290 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-runtime/Cargo.toml
|
1779 2291 | @@ -15,61 +15,61 @@ rustdoc-args = ["--cfg", "docsrs"]
|
1780 2292 |
|
1781 2293 | [package.metadata.smithy-rs-release-tooling]
|
1782 2294 | stable = true
|
1783 2295 | [package.metadata.cargo-udeps.ignore]
|
1784 2296 | normal = ["aws-smithy-http"]
|
1785 2297 |
|
1786 2298 | [features]
|
1787 2299 | client = ["aws-smithy-runtime-api/client", "aws-smithy-types/http-body-1-x"]
|
1788 2300 | http-auth = ["aws-smithy-runtime-api/http-auth"]
|
1789 2301 | connector-hyper-0-14-x = ["dep:aws-smithy-http-client", "aws-smithy-http-client?/hyper-014"]
|
1790 2302 | tls-rustls = ["dep:aws-smithy-http-client", "aws-smithy-http-client?/legacy-rustls-ring", "connector-hyper-0-14-x"]
|
1791 2303 | default-https-client = ["dep:aws-smithy-http-client", "aws-smithy-http-client?/rustls-aws-lc"]
|
1792 2304 | rt-tokio = ["tokio/rt"]
|
1793 2305 | test-util = ["aws-smithy-runtime-api/test-util", "dep:tracing-subscriber", "aws-smithy-http-client/test-util", "legacy-test-util"]
|
1794 2306 | legacy-test-util = ["aws-smithy-runtime-api/test-util", "dep:tracing-subscriber", "aws-smithy-http-client/test-util", "connector-hyper-0-14-x", "aws-smithy-http-client/legacy-test-util"]
|
1795 2307 | wire-mock = ["legacy-test-util", "aws-smithy-http-client/wire-mock"]
|
1796 2308 |
|
1797 2309 | [dependencies]
|
1798 2310 | bytes = "1.10.0"
|
1799 2311 | fastrand = "2.3.0"
|
1800 2312 | pin-project-lite = "0.2.14"
|
1801 2313 | pin-utils = "0.1.0"
|
1802 2314 | tracing = "0.1.40"
|
1803 2315 |
|
1804 2316 | [dependencies.aws-smithy-async]
|
1805 2317 | path = "../aws-smithy-async"
|
1806 2318 | version = "1.2.5"
|
1807 2319 |
|
1808 2320 | [dependencies.aws-smithy-http]
|
1809 2321 | path = "../aws-smithy-http"
|
1810 - | version = "0.62.2"
|
2322 + | version = "0.62.3"
|
1811 2323 |
|
1812 2324 | [dependencies.aws-smithy-observability]
|
1813 2325 | path = "../aws-smithy-observability"
|
1814 2326 | version = "0.1.3"
|
1815 2327 |
|
1816 2328 | [dependencies.aws-smithy-runtime-api]
|
1817 2329 | path = "../aws-smithy-runtime-api"
|
1818 2330 | version = "1.8.5"
|
1819 2331 |
|
1820 2332 | [dependencies.aws-smithy-types]
|
1821 2333 | path = "../aws-smithy-types"
|
1822 2334 | features = ["http-body-0-4-x"]
|
1823 2335 | version = "1.3.2"
|
1824 2336 |
|
1825 2337 | [dependencies.aws-smithy-http-client]
|
1826 2338 | path = "../aws-smithy-http-client"
|
1827 2339 | optional = true
|
1828 2340 | version = "1.0.6"
|
1829 2341 |
|
1830 2342 | [dependencies.http-02x]
|
1831 2343 | package = "http"
|
1832 2344 | version = "0.2.9"
|
1833 2345 |
|
1834 2346 | [dependencies.http-1x]
|
1835 2347 | package = "http"
|
1836 2348 | version = "1"
|
1837 2349 |
|
1838 2350 | [dependencies.http-body-04x]
|
1839 2351 | package = "http-body"
|
1840 2352 | version = "0.4.5"
|
1841 2353 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-wasm/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-wasm/Cargo.toml
|
1842 2354 | index 4e050c6..f58eb1c 100644
|
1843 - | -- a/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-wasm/Cargo.toml
|
2355 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/aws-smithy-wasm/Cargo.toml
|
1844 2356 | @@ -1,33 +1,33 @@
|
1845 2357 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
1846 2358 | [package]
|
1847 2359 | name = "aws-smithy-wasm"
|
1848 2360 | version = "0.1.4"
|
1849 2361 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Eduardo Rodrigues <16357187+eduardomourar@users.noreply.github.com>"]
|
1850 2362 | description = "Smithy WebAssembly configuration for smithy-rs."
|
1851 2363 | edition = "2021"
|
1852 2364 | license = "Apache-2.0"
|
1853 2365 | repository = "https://github.com/awslabs/smithy-rs"
|
1854 2366 | [package.metadata.docs.rs]
|
1855 2367 | all-features = true
|
1856 2368 | targets = ["x86_64-unknown-linux-gnu"]
|
1857 2369 | cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]
|
1858 2370 | rustdoc-args = ["--cfg", "docsrs"]
|
1859 2371 |
|
1860 2372 | [dependencies]
|
1861 2373 | bytes = "1.10.0"
|
1862 2374 | http = "1.0.0"
|
1863 2375 | tracing = "0.1.40"
|
1864 2376 | wasi = "0.12.1"
|
1865 2377 |
|
1866 2378 | [dependencies.aws-smithy-runtime-api]
|
1867 2379 | path = "../aws-smithy-runtime-api"
|
1868 2380 | features = ["http-1x"]
|
1869 2381 | version = "1.8.5"
|
1870 2382 |
|
1871 2383 | [dependencies.aws-smithy-http]
|
1872 2384 | path = "../aws-smithy-http"
|
1873 - | version = "0.62.2"
|
2385 + | version = "0.62.3"
|
1874 2386 |
|
1875 2387 | [dependencies.aws-smithy-types]
|
1876 2388 | path = "../aws-smithy-types"
|
1877 2389 | version = "1.3.2"
|
1878 2390 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/bedrockruntime/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/bedrockruntime/Cargo.toml
|
1879 2391 | index a880648..139e808 100644
|
1880 - | -- a/tmp-codegen-diff/aws-sdk/sdk/bedrockruntime/Cargo.toml
|
2392 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/bedrockruntime/Cargo.toml
|
1881 2393 | @@ -7,61 +7,61 @@ description = "AWS SDK for Amazon Bedrock Runtime"
|
1882 2394 | edition = "2021"
|
1883 2395 | license = "Apache-2.0"
|
1884 2396 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
1885 2397 | rust-version = "1.86.0"
|
1886 2398 | readme = "README.md"
|
1887 2399 | [package.metadata.smithy]
|
1888 2400 | codegen-version = "ci"
|
1889 2401 | [package.metadata.docs.rs]
|
1890 2402 | all-features = true
|
1891 2403 | targets = ["x86_64-unknown-linux-gnu"]
|
1892 2404 | [dependencies.aws-credential-types]
|
1893 2405 | path = "../aws-credential-types"
|
1894 2406 | version = "1.2.4"
|
1895 2407 |
|
1896 2408 | [dependencies.aws-runtime]
|
1897 2409 | path = "../aws-runtime"
|
1898 2410 | features = ["event-stream"]
|
1899 2411 | version = "1.5.9"
|
1900 2412 |
|
1901 2413 | [dependencies.aws-smithy-async]
|
1902 2414 | path = "../aws-smithy-async"
|
1903 2415 | version = "1.2.5"
|
1904 2416 |
|
1905 2417 | [dependencies.aws-smithy-eventstream]
|
1906 2418 | path = "../aws-smithy-eventstream"
|
1907 2419 | version = "0.60.10"
|
1908 2420 |
|
1909 2421 | [dependencies.aws-smithy-http]
|
1910 2422 | path = "../aws-smithy-http"
|
1911 2423 | features = ["event-stream"]
|
1912 - | version = "0.62.2"
|
2424 + | version = "0.62.3"
|
1913 2425 |
|
1914 2426 | [dependencies.aws-smithy-json]
|
1915 2427 | path = "../aws-smithy-json"
|
1916 2428 | version = "0.61.4"
|
1917 2429 |
|
1918 2430 | [dependencies.aws-smithy-runtime]
|
1919 2431 | path = "../aws-smithy-runtime"
|
1920 2432 | features = ["client"]
|
1921 2433 | version = "1.8.5"
|
1922 2434 |
|
1923 2435 | [dependencies.aws-smithy-runtime-api]
|
1924 2436 | path = "../aws-smithy-runtime-api"
|
1925 2437 | features = ["client", "http-02x"]
|
1926 2438 | version = "1.8.5"
|
1927 2439 |
|
1928 2440 | [dependencies.aws-smithy-types]
|
1929 2441 | path = "../aws-smithy-types"
|
1930 2442 | version = "1.3.2"
|
1931 2443 |
|
1932 2444 | [dependencies.aws-types]
|
1933 2445 | path = "../aws-types"
|
1934 2446 | version = "1.3.8"
|
1935 2447 |
|
1936 2448 | [dependencies.bytes]
|
1937 2449 | version = "1.4.0"
|
1938 2450 |
|
1939 2451 | [dependencies.fastrand]
|
1940 2452 | version = "2.0.0"
|
1941 2453 |
|
1942 2454 | [dependencies.http]
|
1943 2455 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/cloudwatchlogs/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/cloudwatchlogs/Cargo.toml
|
1944 2456 | index 415ecc9..667d12b 100644
|
1945 - | -- a/tmp-codegen-diff/aws-sdk/sdk/cloudwatchlogs/Cargo.toml
|
2457 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/cloudwatchlogs/Cargo.toml
|
1946 2458 | @@ -7,61 +7,61 @@ description = "AWS SDK for Amazon CloudWatch Logs"
|
1947 2459 | edition = "2021"
|
1948 2460 | license = "Apache-2.0"
|
1949 2461 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
1950 2462 | rust-version = "1.86.0"
|
1951 2463 | readme = "README.md"
|
1952 2464 | [package.metadata.smithy]
|
1953 2465 | codegen-version = "ci"
|
1954 2466 | [package.metadata.docs.rs]
|
1955 2467 | all-features = true
|
1956 2468 | targets = ["x86_64-unknown-linux-gnu"]
|
1957 2469 | [dependencies.aws-credential-types]
|
1958 2470 | path = "../aws-credential-types"
|
1959 2471 | version = "1.2.4"
|
1960 2472 |
|
1961 2473 | [dependencies.aws-runtime]
|
1962 2474 | path = "../aws-runtime"
|
1963 2475 | features = ["event-stream"]
|
1964 2476 | version = "1.5.9"
|
1965 2477 |
|
1966 2478 | [dependencies.aws-smithy-async]
|
1967 2479 | path = "../aws-smithy-async"
|
1968 2480 | version = "1.2.5"
|
1969 2481 |
|
1970 2482 | [dependencies.aws-smithy-eventstream]
|
1971 2483 | path = "../aws-smithy-eventstream"
|
1972 2484 | version = "0.60.10"
|
1973 2485 |
|
1974 2486 | [dependencies.aws-smithy-http]
|
1975 2487 | path = "../aws-smithy-http"
|
1976 2488 | features = ["event-stream"]
|
1977 - | version = "0.62.2"
|
2489 + | version = "0.62.3"
|
1978 2490 |
|
1979 2491 | [dependencies.aws-smithy-json]
|
1980 2492 | path = "../aws-smithy-json"
|
1981 2493 | version = "0.61.4"
|
1982 2494 |
|
1983 2495 | [dependencies.aws-smithy-runtime]
|
1984 2496 | path = "../aws-smithy-runtime"
|
1985 2497 | features = ["client"]
|
1986 2498 | version = "1.8.5"
|
1987 2499 |
|
1988 2500 | [dependencies.aws-smithy-runtime-api]
|
1989 2501 | path = "../aws-smithy-runtime-api"
|
1990 2502 | features = ["client", "http-02x"]
|
1991 2503 | version = "1.8.5"
|
1992 2504 |
|
1993 2505 | [dependencies.aws-smithy-types]
|
1994 2506 | path = "../aws-smithy-types"
|
1995 2507 | version = "1.3.2"
|
1996 2508 |
|
1997 2509 | [dependencies.aws-types]
|
1998 2510 | path = "../aws-types"
|
1999 2511 | version = "1.3.8"
|
2000 2512 |
|
2001 2513 | [dependencies.bytes]
|
2002 2514 | version = "1.4.0"
|
2003 2515 |
|
2004 2516 | [dependencies.fastrand]
|
2005 2517 | version = "2.0.0"
|
2006 2518 |
|
2007 2519 | [dependencies.http]
|
2008 2520 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/codecatalyst/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/codecatalyst/Cargo.toml
|
2009 2521 | index 8871cab..ed88de6 100644
|
2010 - | -- a/tmp-codegen-diff/aws-sdk/sdk/codecatalyst/Cargo.toml
|
2522 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/codecatalyst/Cargo.toml
|
2011 2523 | @@ -1,61 +1,61 @@
|
2012 2524 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2013 2525 | [package]
|
2014 2526 | name = "aws-sdk-codecatalyst"
|
2015 2527 | version = "0.0.0-local"
|
2016 2528 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2017 2529 | description = "AWS SDK for Amazon CodeCatalyst"
|
2018 2530 | edition = "2021"
|
2019 2531 | license = "Apache-2.0"
|
2020 2532 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2021 2533 | rust-version = "1.86.0"
|
2022 2534 | readme = "README.md"
|
2023 2535 | [package.metadata.smithy]
|
2024 2536 | codegen-version = "ci"
|
2025 2537 | [package.metadata.docs.rs]
|
2026 2538 | all-features = true
|
2027 2539 | targets = ["x86_64-unknown-linux-gnu"]
|
2028 2540 | [dependencies.aws-credential-types]
|
2029 2541 | path = "../aws-credential-types"
|
2030 2542 | version = "1.2.4"
|
2031 2543 |
|
2032 2544 | [dependencies.aws-runtime]
|
2033 2545 | path = "../aws-runtime"
|
2034 2546 | version = "1.5.9"
|
2035 2547 |
|
2036 2548 | [dependencies.aws-smithy-async]
|
2037 2549 | path = "../aws-smithy-async"
|
2038 2550 | version = "1.2.5"
|
2039 2551 |
|
2040 2552 | [dependencies.aws-smithy-http]
|
2041 2553 | path = "../aws-smithy-http"
|
2042 - | version = "0.62.2"
|
2554 + | version = "0.62.3"
|
2043 2555 |
|
2044 2556 | [dependencies.aws-smithy-json]
|
2045 2557 | path = "../aws-smithy-json"
|
2046 2558 | version = "0.61.4"
|
2047 2559 |
|
2048 2560 | [dependencies.aws-smithy-runtime]
|
2049 2561 | path = "../aws-smithy-runtime"
|
2050 2562 | features = ["client", "http-auth"]
|
2051 2563 | version = "1.8.5"
|
2052 2564 |
|
2053 2565 | [dependencies.aws-smithy-runtime-api]
|
2054 2566 | path = "../aws-smithy-runtime-api"
|
2055 2567 | features = ["client", "http-02x", "http-auth"]
|
2056 2568 | version = "1.8.5"
|
2057 2569 |
|
2058 2570 | [dependencies.aws-smithy-types]
|
2059 2571 | path = "../aws-smithy-types"
|
2060 2572 | version = "1.3.2"
|
2061 2573 |
|
2062 2574 | [dependencies.aws-types]
|
2063 2575 | path = "../aws-types"
|
2064 2576 | version = "1.3.8"
|
2065 2577 |
|
2066 2578 | [dependencies.bytes]
|
2067 2579 | version = "1.4.0"
|
2068 2580 |
|
2069 2581 | [dependencies.fastrand]
|
2070 2582 | version = "2.0.0"
|
2071 2583 |
|
2072 2584 | [dependencies.http]
|
2073 2585 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/config/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/config/Cargo.toml
|
2074 2586 | index 89573ff..05238af 100644
|
2075 - | -- a/tmp-codegen-diff/aws-sdk/sdk/config/Cargo.toml
|
2587 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/config/Cargo.toml
|
2076 2588 | @@ -1,61 +1,61 @@
|
2077 2589 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2078 2590 | [package]
|
2079 2591 | name = "aws-sdk-config"
|
2080 2592 | version = "0.0.0-local"
|
2081 2593 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2082 2594 | description = "AWS SDK for AWS Config"
|
2083 2595 | edition = "2021"
|
2084 2596 | license = "Apache-2.0"
|
2085 2597 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2086 2598 | rust-version = "1.86.0"
|
2087 2599 | readme = "README.md"
|
2088 2600 | [package.metadata.smithy]
|
2089 2601 | codegen-version = "ci"
|
2090 2602 | [package.metadata.docs.rs]
|
2091 2603 | all-features = true
|
2092 2604 | targets = ["x86_64-unknown-linux-gnu"]
|
2093 2605 | [dependencies.aws-credential-types]
|
2094 2606 | path = "../aws-credential-types"
|
2095 2607 | version = "1.2.4"
|
2096 2608 |
|
2097 2609 | [dependencies.aws-runtime]
|
2098 2610 | path = "../aws-runtime"
|
2099 2611 | version = "1.5.9"
|
2100 2612 |
|
2101 2613 | [dependencies.aws-smithy-async]
|
2102 2614 | path = "../aws-smithy-async"
|
2103 2615 | version = "1.2.5"
|
2104 2616 |
|
2105 2617 | [dependencies.aws-smithy-http]
|
2106 2618 | path = "../aws-smithy-http"
|
2107 - | version = "0.62.2"
|
2619 + | version = "0.62.3"
|
2108 2620 |
|
2109 2621 | [dependencies.aws-smithy-json]
|
2110 2622 | path = "../aws-smithy-json"
|
2111 2623 | version = "0.61.4"
|
2112 2624 |
|
2113 2625 | [dependencies.aws-smithy-runtime]
|
2114 2626 | path = "../aws-smithy-runtime"
|
2115 2627 | features = ["client"]
|
2116 2628 | version = "1.8.5"
|
2117 2629 |
|
2118 2630 | [dependencies.aws-smithy-runtime-api]
|
2119 2631 | path = "../aws-smithy-runtime-api"
|
2120 2632 | features = ["client", "http-02x"]
|
2121 2633 | version = "1.8.5"
|
2122 2634 |
|
2123 2635 | [dependencies.aws-smithy-types]
|
2124 2636 | path = "../aws-smithy-types"
|
2125 2637 | version = "1.3.2"
|
2126 2638 |
|
2127 2639 | [dependencies.aws-types]
|
2128 2640 | path = "../aws-types"
|
2129 2641 | version = "1.3.8"
|
2130 2642 |
|
2131 2643 | [dependencies.bytes]
|
2132 2644 | version = "1.4.0"
|
2133 2645 |
|
2134 2646 | [dependencies.fastrand]
|
2135 2647 | version = "2.0.0"
|
2136 2648 |
|
2137 2649 | [dependencies.http]
|
2138 2650 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/dynamodb/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/dynamodb/Cargo.toml
|
2139 2651 | index d397c58..2c1062b 100644
|
2140 - | -- a/tmp-codegen-diff/aws-sdk/sdk/dynamodb/Cargo.toml
|
2652 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/dynamodb/Cargo.toml
|
2141 2653 | @@ -1,61 +1,61 @@
|
2142 2654 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2143 2655 | [package]
|
2144 2656 | name = "aws-sdk-dynamodb"
|
2145 2657 | version = "0.0.0-local"
|
2146 2658 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2147 2659 | description = "AWS SDK for Amazon DynamoDB"
|
2148 2660 | edition = "2021"
|
2149 2661 | license = "Apache-2.0"
|
2150 2662 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2151 2663 | rust-version = "1.86.0"
|
2152 2664 | readme = "README.md"
|
2153 2665 | [package.metadata.smithy]
|
2154 2666 | codegen-version = "ci"
|
2155 2667 | [package.metadata.docs.rs]
|
2156 2668 | all-features = true
|
2157 2669 | targets = ["x86_64-unknown-linux-gnu"]
|
2158 2670 | [dependencies.aws-credential-types]
|
2159 2671 | path = "../aws-credential-types"
|
2160 2672 | version = "1.2.4"
|
2161 2673 |
|
2162 2674 | [dependencies.aws-runtime]
|
2163 2675 | path = "../aws-runtime"
|
2164 2676 | version = "1.5.9"
|
2165 2677 |
|
2166 2678 | [dependencies.aws-smithy-async]
|
2167 2679 | path = "../aws-smithy-async"
|
2168 2680 | version = "1.2.5"
|
2169 2681 |
|
2170 2682 | [dependencies.aws-smithy-http]
|
2171 2683 | path = "../aws-smithy-http"
|
2172 - | version = "0.62.2"
|
2684 + | version = "0.62.3"
|
2173 2685 |
|
2174 2686 | [dependencies.aws-smithy-json]
|
2175 2687 | path = "../aws-smithy-json"
|
2176 2688 | version = "0.61.4"
|
2177 2689 |
|
2178 2690 | [dependencies.aws-smithy-runtime]
|
2179 2691 | path = "../aws-smithy-runtime"
|
2180 2692 | features = ["client"]
|
2181 2693 | version = "1.8.5"
|
2182 2694 |
|
2183 2695 | [dependencies.aws-smithy-runtime-api]
|
2184 2696 | path = "../aws-smithy-runtime-api"
|
2185 2697 | features = ["client", "http-02x"]
|
2186 2698 | version = "1.8.5"
|
2187 2699 |
|
2188 2700 | [dependencies.aws-smithy-types]
|
2189 2701 | path = "../aws-smithy-types"
|
2190 2702 | version = "1.3.2"
|
2191 2703 |
|
2192 2704 | [dependencies.aws-types]
|
2193 2705 | path = "../aws-types"
|
2194 2706 | version = "1.3.8"
|
2195 2707 |
|
2196 2708 | [dependencies.bytes]
|
2197 2709 | version = "1.4.0"
|
2198 2710 |
|
2199 2711 | [dependencies.fastrand]
|
2200 2712 | version = "2.0.0"
|
2201 2713 |
|
2202 2714 | [dependencies.http]
|
2203 2715 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/ec2/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/ec2/Cargo.toml
|
2204 2716 | index c0ba315..46168af 100644
|
2205 - | -- a/tmp-codegen-diff/aws-sdk/sdk/ec2/Cargo.toml
|
2717 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/ec2/Cargo.toml
|
2206 2718 | @@ -1,61 +1,61 @@
|
2207 2719 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2208 2720 | [package]
|
2209 2721 | name = "aws-sdk-ec2"
|
2210 2722 | version = "0.0.0-local"
|
2211 2723 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2212 2724 | description = "AWS SDK for Amazon Elastic Compute Cloud"
|
2213 2725 | edition = "2021"
|
2214 2726 | license = "Apache-2.0"
|
2215 2727 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2216 2728 | rust-version = "1.86.0"
|
2217 2729 | readme = "README.md"
|
2218 2730 | [package.metadata.smithy]
|
2219 2731 | codegen-version = "ci"
|
2220 2732 | [package.metadata.docs.rs]
|
2221 2733 | all-features = true
|
2222 2734 | targets = ["x86_64-unknown-linux-gnu"]
|
2223 2735 | [dependencies.aws-credential-types]
|
2224 2736 | path = "../aws-credential-types"
|
2225 2737 | version = "1.2.4"
|
2226 2738 |
|
2227 2739 | [dependencies.aws-runtime]
|
2228 2740 | path = "../aws-runtime"
|
2229 2741 | version = "1.5.9"
|
2230 2742 |
|
2231 2743 | [dependencies.aws-smithy-async]
|
2232 2744 | path = "../aws-smithy-async"
|
2233 2745 | version = "1.2.5"
|
2234 2746 |
|
2235 2747 | [dependencies.aws-smithy-http]
|
2236 2748 | path = "../aws-smithy-http"
|
2237 - | version = "0.62.2"
|
2749 + | version = "0.62.3"
|
2238 2750 |
|
2239 2751 | [dependencies.aws-smithy-json]
|
2240 2752 | path = "../aws-smithy-json"
|
2241 2753 | version = "0.61.4"
|
2242 2754 |
|
2243 2755 | [dependencies.aws-smithy-query]
|
2244 2756 | path = "../aws-smithy-query"
|
2245 2757 | version = "0.60.7"
|
2246 2758 |
|
2247 2759 | [dependencies.aws-smithy-runtime]
|
2248 2760 | path = "../aws-smithy-runtime"
|
2249 2761 | features = ["client"]
|
2250 2762 | version = "1.8.5"
|
2251 2763 |
|
2252 2764 | [dependencies.aws-smithy-runtime-api]
|
2253 2765 | path = "../aws-smithy-runtime-api"
|
2254 2766 | features = ["client", "http-02x"]
|
2255 2767 | version = "1.8.5"
|
2256 2768 |
|
2257 2769 | [dependencies.aws-smithy-types]
|
2258 2770 | path = "../aws-smithy-types"
|
2259 2771 | version = "1.3.2"
|
2260 2772 |
|
2261 2773 | [dependencies.aws-smithy-xml]
|
2262 2774 | path = "../aws-smithy-xml"
|
2263 2775 | version = "0.60.10"
|
2264 2776 |
|
2265 2777 | [dependencies.aws-types]
|
2266 2778 | path = "../aws-types"
|
2267 2779 | version = "1.3.8"
|
2268 2780 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/ecs/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/ecs/Cargo.toml
|
2269 2781 | index 4474d17..095d40e 100644
|
2270 - | -- a/tmp-codegen-diff/aws-sdk/sdk/ecs/Cargo.toml
|
2782 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/ecs/Cargo.toml
|
2271 2783 | @@ -1,61 +1,61 @@
|
2272 2784 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2273 2785 | [package]
|
2274 2786 | name = "aws-sdk-ecs"
|
2275 2787 | version = "0.0.0-local"
|
2276 2788 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2277 2789 | description = "AWS SDK for Amazon EC2 Container Service"
|
2278 2790 | edition = "2021"
|
2279 2791 | license = "Apache-2.0"
|
2280 2792 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2281 2793 | rust-version = "1.86.0"
|
2282 2794 | readme = "README.md"
|
2283 2795 | [package.metadata.smithy]
|
2284 2796 | codegen-version = "ci"
|
2285 2797 | [package.metadata.docs.rs]
|
2286 2798 | all-features = true
|
2287 2799 | targets = ["x86_64-unknown-linux-gnu"]
|
2288 2800 | [dependencies.aws-credential-types]
|
2289 2801 | path = "../aws-credential-types"
|
2290 2802 | version = "1.2.4"
|
2291 2803 |
|
2292 2804 | [dependencies.aws-runtime]
|
2293 2805 | path = "../aws-runtime"
|
2294 2806 | version = "1.5.9"
|
2295 2807 |
|
2296 2808 | [dependencies.aws-smithy-async]
|
2297 2809 | path = "../aws-smithy-async"
|
2298 2810 | version = "1.2.5"
|
2299 2811 |
|
2300 2812 | [dependencies.aws-smithy-http]
|
2301 2813 | path = "../aws-smithy-http"
|
2302 - | version = "0.62.2"
|
2814 + | version = "0.62.3"
|
2303 2815 |
|
2304 2816 | [dependencies.aws-smithy-json]
|
2305 2817 | path = "../aws-smithy-json"
|
2306 2818 | version = "0.61.4"
|
2307 2819 |
|
2308 2820 | [dependencies.aws-smithy-runtime]
|
2309 2821 | path = "../aws-smithy-runtime"
|
2310 2822 | features = ["client"]
|
2311 2823 | version = "1.8.5"
|
2312 2824 |
|
2313 2825 | [dependencies.aws-smithy-runtime-api]
|
2314 2826 | path = "../aws-smithy-runtime-api"
|
2315 2827 | features = ["client", "http-02x"]
|
2316 2828 | version = "1.8.5"
|
2317 2829 |
|
2318 2830 | [dependencies.aws-smithy-types]
|
2319 2831 | path = "../aws-smithy-types"
|
2320 2832 | version = "1.3.2"
|
2321 2833 |
|
2322 2834 | [dependencies.aws-types]
|
2323 2835 | path = "../aws-types"
|
2324 2836 | version = "1.3.8"
|
2325 2837 |
|
2326 2838 | [dependencies.bytes]
|
2327 2839 | version = "1.4.0"
|
2328 2840 |
|
2329 2841 | [dependencies.fastrand]
|
2330 2842 | version = "2.0.0"
|
2331 2843 |
|
2332 2844 | [dependencies.http]
|
2333 2845 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/glacier/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/glacier/Cargo.toml
|
2334 2846 | index 15b1d77..16d7d89 100644
|
2335 - | -- a/tmp-codegen-diff/aws-sdk/sdk/glacier/Cargo.toml
|
2847 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/glacier/Cargo.toml
|
2336 2848 | @@ -1,65 +1,65 @@
|
2337 2849 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2338 2850 | [package]
|
2339 2851 | name = "aws-sdk-glacier"
|
2340 2852 | version = "0.0.0-local"
|
2341 2853 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2342 2854 | description = "AWS SDK for Amazon Glacier"
|
2343 2855 | edition = "2021"
|
2344 2856 | license = "Apache-2.0"
|
2345 2857 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2346 2858 | rust-version = "1.86.0"
|
2347 2859 | readme = "README.md"
|
2348 2860 | [package.metadata.smithy]
|
2349 2861 | codegen-version = "ci"
|
2350 2862 | [package.metadata.docs.rs]
|
2351 2863 | all-features = true
|
2352 2864 | targets = ["x86_64-unknown-linux-gnu"]
|
2353 2865 | [dependencies.aws-credential-types]
|
2354 2866 | path = "../aws-credential-types"
|
2355 2867 | version = "1.2.4"
|
2356 2868 |
|
2357 2869 | [dependencies.aws-runtime]
|
2358 2870 | path = "../aws-runtime"
|
2359 2871 | version = "1.5.9"
|
2360 2872 |
|
2361 2873 | [dependencies.aws-sigv4]
|
2362 2874 | path = "../aws-sigv4"
|
2363 - | version = "1.3.3"
|
2875 + | version = "1.3.4"
|
2364 2876 |
|
2365 2877 | [dependencies.aws-smithy-async]
|
2366 2878 | path = "../aws-smithy-async"
|
2367 2879 | version = "1.2.5"
|
2368 2880 |
|
2369 2881 | [dependencies.aws-smithy-http]
|
2370 2882 | path = "../aws-smithy-http"
|
2371 - | version = "0.62.2"
|
2883 + | version = "0.62.3"
|
2372 2884 |
|
2373 2885 | [dependencies.aws-smithy-json]
|
2374 2886 | path = "../aws-smithy-json"
|
2375 2887 | version = "0.61.4"
|
2376 2888 |
|
2377 2889 | [dependencies.aws-smithy-runtime]
|
2378 2890 | path = "../aws-smithy-runtime"
|
2379 2891 | features = ["client"]
|
2380 2892 | version = "1.8.5"
|
2381 2893 |
|
2382 2894 | [dependencies.aws-smithy-runtime-api]
|
2383 2895 | path = "../aws-smithy-runtime-api"
|
2384 2896 | features = ["client", "http-02x"]
|
2385 2897 | version = "1.8.5"
|
2386 2898 |
|
2387 2899 | [dependencies.aws-smithy-types]
|
2388 2900 | path = "../aws-smithy-types"
|
2389 2901 | version = "1.3.2"
|
2390 2902 |
|
2391 2903 | [dependencies.aws-types]
|
2392 2904 | path = "../aws-types"
|
2393 2905 | version = "1.3.8"
|
2394 2906 |
|
2395 2907 | [dependencies.bytes]
|
2396 2908 | version = "1.4.0"
|
2397 2909 |
|
2398 2910 | [dependencies.fastrand]
|
2399 2911 | version = "2.0.0"
|
2400 2912 |
|
2401 2913 | [dependencies.hex]
|
2402 2914 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/iam/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/iam/Cargo.toml
|
2403 2915 | index d718a3a..65e6f24 100644
|
2404 - | -- a/tmp-codegen-diff/aws-sdk/sdk/iam/Cargo.toml
|
2916 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/iam/Cargo.toml
|
2405 2917 | @@ -1,61 +1,61 @@
|
2406 2918 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2407 2919 | [package]
|
2408 2920 | name = "aws-sdk-iam"
|
2409 2921 | version = "0.0.0-local"
|
2410 2922 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2411 2923 | description = "AWS SDK for AWS Identity and Access Management"
|
2412 2924 | edition = "2021"
|
2413 2925 | license = "Apache-2.0"
|
2414 2926 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2415 2927 | rust-version = "1.86.0"
|
2416 2928 | readme = "README.md"
|
2417 2929 | [package.metadata.smithy]
|
2418 2930 | codegen-version = "ci"
|
2419 2931 | [package.metadata.docs.rs]
|
2420 2932 | all-features = true
|
2421 2933 | targets = ["x86_64-unknown-linux-gnu"]
|
2422 2934 | [dependencies.aws-credential-types]
|
2423 2935 | path = "../aws-credential-types"
|
2424 2936 | version = "1.2.4"
|
2425 2937 |
|
2426 2938 | [dependencies.aws-runtime]
|
2427 2939 | path = "../aws-runtime"
|
2428 2940 | version = "1.5.9"
|
2429 2941 |
|
2430 2942 | [dependencies.aws-smithy-async]
|
2431 2943 | path = "../aws-smithy-async"
|
2432 2944 | version = "1.2.5"
|
2433 2945 |
|
2434 2946 | [dependencies.aws-smithy-http]
|
2435 2947 | path = "../aws-smithy-http"
|
2436 - | version = "0.62.2"
|
2948 + | version = "0.62.3"
|
2437 2949 |
|
2438 2950 | [dependencies.aws-smithy-json]
|
2439 2951 | path = "../aws-smithy-json"
|
2440 2952 | version = "0.61.4"
|
2441 2953 |
|
2442 2954 | [dependencies.aws-smithy-query]
|
2443 2955 | path = "../aws-smithy-query"
|
2444 2956 | version = "0.60.7"
|
2445 2957 |
|
2446 2958 | [dependencies.aws-smithy-runtime]
|
2447 2959 | path = "../aws-smithy-runtime"
|
2448 2960 | features = ["client"]
|
2449 2961 | version = "1.8.5"
|
2450 2962 |
|
2451 2963 | [dependencies.aws-smithy-runtime-api]
|
2452 2964 | path = "../aws-smithy-runtime-api"
|
2453 2965 | features = ["client", "http-02x"]
|
2454 2966 | version = "1.8.5"
|
2455 2967 |
|
2456 2968 | [dependencies.aws-smithy-types]
|
2457 2969 | path = "../aws-smithy-types"
|
2458 2970 | version = "1.3.2"
|
2459 2971 |
|
2460 2972 | [dependencies.aws-smithy-xml]
|
2461 2973 | path = "../aws-smithy-xml"
|
2462 2974 | version = "0.60.10"
|
2463 2975 |
|
2464 2976 | [dependencies.aws-types]
|
2465 2977 | path = "../aws-types"
|
2466 2978 | version = "1.3.8"
|
2467 2979 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/kms/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/kms/Cargo.toml
|
2468 2980 | index 0ed4302..3d828a5 100644
|
2469 - | -- a/tmp-codegen-diff/aws-sdk/sdk/kms/Cargo.toml
|
2981 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/kms/Cargo.toml
|
2470 2982 | @@ -1,61 +1,61 @@
|
2471 2983 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2472 2984 | [package]
|
2473 2985 | name = "aws-sdk-kms"
|
2474 2986 | version = "0.0.0-local"
|
2475 2987 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2476 2988 | description = "AWS SDK for AWS Key Management Service"
|
2477 2989 | edition = "2021"
|
2478 2990 | license = "Apache-2.0"
|
2479 2991 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2480 2992 | rust-version = "1.86.0"
|
2481 2993 | readme = "README.md"
|
2482 2994 | [package.metadata.smithy]
|
2483 2995 | codegen-version = "ci"
|
2484 2996 | [package.metadata.docs.rs]
|
2485 2997 | all-features = true
|
2486 2998 | targets = ["x86_64-unknown-linux-gnu"]
|
2487 2999 | [dependencies.aws-credential-types]
|
2488 3000 | path = "../aws-credential-types"
|
2489 3001 | version = "1.2.4"
|
2490 3002 |
|
2491 3003 | [dependencies.aws-runtime]
|
2492 3004 | path = "../aws-runtime"
|
2493 3005 | version = "1.5.9"
|
2494 3006 |
|
2495 3007 | [dependencies.aws-smithy-async]
|
2496 3008 | path = "../aws-smithy-async"
|
2497 3009 | version = "1.2.5"
|
2498 3010 |
|
2499 3011 | [dependencies.aws-smithy-http]
|
2500 3012 | path = "../aws-smithy-http"
|
2501 - | version = "0.62.2"
|
3013 + | version = "0.62.3"
|
2502 3014 |
|
2503 3015 | [dependencies.aws-smithy-json]
|
2504 3016 | path = "../aws-smithy-json"
|
2505 3017 | version = "0.61.4"
|
2506 3018 |
|
2507 3019 | [dependencies.aws-smithy-runtime]
|
2508 3020 | path = "../aws-smithy-runtime"
|
2509 3021 | features = ["client"]
|
2510 3022 | version = "1.8.5"
|
2511 3023 |
|
2512 3024 | [dependencies.aws-smithy-runtime-api]
|
2513 3025 | path = "../aws-smithy-runtime-api"
|
2514 3026 | features = ["client", "http-02x"]
|
2515 3027 | version = "1.8.5"
|
2516 3028 |
|
2517 3029 | [dependencies.aws-smithy-types]
|
2518 3030 | path = "../aws-smithy-types"
|
2519 3031 | version = "1.3.2"
|
2520 3032 |
|
2521 3033 | [dependencies.aws-types]
|
2522 3034 | path = "../aws-types"
|
2523 3035 | version = "1.3.8"
|
2524 3036 |
|
2525 3037 | [dependencies.bytes]
|
2526 3038 | version = "1.4.0"
|
2527 3039 |
|
2528 3040 | [dependencies.fastrand]
|
2529 3041 | version = "2.0.0"
|
2530 3042 |
|
2531 3043 | [dependencies.http]
|
2532 3044 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/lambda/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/lambda/Cargo.toml
|
2533 3045 | index 6518dfc..6b94752 100644
|
2534 - | -- a/tmp-codegen-diff/aws-sdk/sdk/lambda/Cargo.toml
|
3046 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/lambda/Cargo.toml
|
2535 3047 | @@ -7,61 +7,61 @@ description = "AWS SDK for AWS Lambda"
|
2536 3048 | edition = "2021"
|
2537 3049 | license = "Apache-2.0"
|
2538 3050 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2539 3051 | rust-version = "1.86.0"
|
2540 3052 | readme = "README.md"
|
2541 3053 | [package.metadata.smithy]
|
2542 3054 | codegen-version = "ci"
|
2543 3055 | [package.metadata.docs.rs]
|
2544 3056 | all-features = true
|
2545 3057 | targets = ["x86_64-unknown-linux-gnu"]
|
2546 3058 | [dependencies.aws-credential-types]
|
2547 3059 | path = "../aws-credential-types"
|
2548 3060 | version = "1.2.4"
|
2549 3061 |
|
2550 3062 | [dependencies.aws-runtime]
|
2551 3063 | path = "../aws-runtime"
|
2552 3064 | features = ["event-stream"]
|
2553 3065 | version = "1.5.9"
|
2554 3066 |
|
2555 3067 | [dependencies.aws-smithy-async]
|
2556 3068 | path = "../aws-smithy-async"
|
2557 3069 | version = "1.2.5"
|
2558 3070 |
|
2559 3071 | [dependencies.aws-smithy-eventstream]
|
2560 3072 | path = "../aws-smithy-eventstream"
|
2561 3073 | version = "0.60.10"
|
2562 3074 |
|
2563 3075 | [dependencies.aws-smithy-http]
|
2564 3076 | path = "../aws-smithy-http"
|
2565 3077 | features = ["event-stream"]
|
2566 - | version = "0.62.2"
|
3078 + | version = "0.62.3"
|
2567 3079 |
|
2568 3080 | [dependencies.aws-smithy-json]
|
2569 3081 | path = "../aws-smithy-json"
|
2570 3082 | version = "0.61.4"
|
2571 3083 |
|
2572 3084 | [dependencies.aws-smithy-runtime]
|
2573 3085 | path = "../aws-smithy-runtime"
|
2574 3086 | features = ["client"]
|
2575 3087 | version = "1.8.5"
|
2576 3088 |
|
2577 3089 | [dependencies.aws-smithy-runtime-api]
|
2578 3090 | path = "../aws-smithy-runtime-api"
|
2579 3091 | features = ["client", "http-02x"]
|
2580 3092 | version = "1.8.5"
|
2581 3093 |
|
2582 3094 | [dependencies.aws-smithy-types]
|
2583 3095 | path = "../aws-smithy-types"
|
2584 3096 | version = "1.3.2"
|
2585 3097 |
|
2586 3098 | [dependencies.aws-types]
|
2587 3099 | path = "../aws-types"
|
2588 3100 | version = "1.3.8"
|
2589 3101 |
|
2590 3102 | [dependencies.bytes]
|
2591 3103 | version = "1.4.0"
|
2592 3104 |
|
2593 3105 | [dependencies.fastrand]
|
2594 3106 | version = "2.0.0"
|
2595 3107 |
|
2596 3108 | [dependencies.http]
|
2597 3109 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/polly/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/polly/Cargo.toml
|
2598 3110 | index dabb0e0..34cbc15 100644
|
2599 - | -- a/tmp-codegen-diff/aws-sdk/sdk/polly/Cargo.toml
|
3111 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/polly/Cargo.toml
|
2600 3112 | @@ -1,65 +1,65 @@
|
2601 3113 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2602 3114 | [package]
|
2603 3115 | name = "aws-sdk-polly"
|
2604 3116 | version = "0.0.0-local"
|
2605 3117 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2606 3118 | description = "AWS SDK for Amazon Polly"
|
2607 3119 | edition = "2021"
|
2608 3120 | license = "Apache-2.0"
|
2609 3121 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2610 3122 | rust-version = "1.86.0"
|
2611 3123 | readme = "README.md"
|
2612 3124 | [package.metadata.smithy]
|
2613 3125 | codegen-version = "ci"
|
2614 3126 | [package.metadata.docs.rs]
|
2615 3127 | all-features = true
|
2616 3128 | targets = ["x86_64-unknown-linux-gnu"]
|
2617 3129 | [dependencies.aws-credential-types]
|
2618 3130 | path = "../aws-credential-types"
|
2619 3131 | version = "1.2.4"
|
2620 3132 |
|
2621 3133 | [dependencies.aws-runtime]
|
2622 3134 | path = "../aws-runtime"
|
2623 3135 | version = "1.5.9"
|
2624 3136 |
|
2625 3137 | [dependencies.aws-sigv4]
|
2626 3138 | path = "../aws-sigv4"
|
2627 - | version = "1.3.3"
|
3139 + | version = "1.3.4"
|
2628 3140 |
|
2629 3141 | [dependencies.aws-smithy-async]
|
2630 3142 | path = "../aws-smithy-async"
|
2631 3143 | version = "1.2.5"
|
2632 3144 |
|
2633 3145 | [dependencies.aws-smithy-http]
|
2634 3146 | path = "../aws-smithy-http"
|
2635 - | version = "0.62.2"
|
3147 + | version = "0.62.3"
|
2636 3148 |
|
2637 3149 | [dependencies.aws-smithy-json]
|
2638 3150 | path = "../aws-smithy-json"
|
2639 3151 | version = "0.61.4"
|
2640 3152 |
|
2641 3153 | [dependencies.aws-smithy-runtime]
|
2642 3154 | path = "../aws-smithy-runtime"
|
2643 3155 | features = ["client"]
|
2644 3156 | version = "1.8.5"
|
2645 3157 |
|
2646 3158 | [dependencies.aws-smithy-runtime-api]
|
2647 3159 | path = "../aws-smithy-runtime-api"
|
2648 3160 | features = ["client", "http-02x"]
|
2649 3161 | version = "1.8.5"
|
2650 3162 |
|
2651 3163 | [dependencies.aws-smithy-types]
|
2652 3164 | path = "../aws-smithy-types"
|
2653 3165 | version = "1.3.2"
|
2654 3166 |
|
2655 3167 | [dependencies.aws-types]
|
2656 3168 | path = "../aws-types"
|
2657 3169 | version = "1.3.8"
|
2658 3170 |
|
2659 3171 | [dependencies.bytes]
|
2660 3172 | version = "1.4.0"
|
2661 3173 |
|
2662 3174 | [dependencies.fastrand]
|
2663 3175 | version = "2.0.0"
|
2664 3176 |
|
2665 3177 | [dependencies.http]
|
2666 3178 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/qldbsession/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/qldbsession/Cargo.toml
|
2667 3179 | index a884716..f3d8713 100644
|
2668 - | -- a/tmp-codegen-diff/aws-sdk/sdk/qldbsession/Cargo.toml
|
3180 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/qldbsession/Cargo.toml
|
2669 3181 | @@ -1,61 +1,61 @@
|
2670 3182 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2671 3183 | [package]
|
2672 3184 | name = "aws-sdk-qldbsession"
|
2673 3185 | version = "0.0.0-local"
|
2674 3186 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2675 3187 | description = "AWS SDK for Amazon QLDB Session"
|
2676 3188 | edition = "2021"
|
2677 3189 | license = "Apache-2.0"
|
2678 3190 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2679 3191 | rust-version = "1.86.0"
|
2680 3192 | readme = "README.md"
|
2681 3193 | [package.metadata.smithy]
|
2682 3194 | codegen-version = "ci"
|
2683 3195 | [package.metadata.docs.rs]
|
2684 3196 | all-features = true
|
2685 3197 | targets = ["x86_64-unknown-linux-gnu"]
|
2686 3198 | [dependencies.aws-credential-types]
|
2687 3199 | path = "../aws-credential-types"
|
2688 3200 | version = "1.2.4"
|
2689 3201 |
|
2690 3202 | [dependencies.aws-runtime]
|
2691 3203 | path = "../aws-runtime"
|
2692 3204 | version = "1.5.9"
|
2693 3205 |
|
2694 3206 | [dependencies.aws-smithy-async]
|
2695 3207 | path = "../aws-smithy-async"
|
2696 3208 | version = "1.2.5"
|
2697 3209 |
|
2698 3210 | [dependencies.aws-smithy-http]
|
2699 3211 | path = "../aws-smithy-http"
|
2700 - | version = "0.62.2"
|
3212 + | version = "0.62.3"
|
2701 3213 |
|
2702 3214 | [dependencies.aws-smithy-json]
|
2703 3215 | path = "../aws-smithy-json"
|
2704 3216 | version = "0.61.4"
|
2705 3217 |
|
2706 3218 | [dependencies.aws-smithy-runtime]
|
2707 3219 | path = "../aws-smithy-runtime"
|
2708 3220 | features = ["client"]
|
2709 3221 | version = "1.8.5"
|
2710 3222 |
|
2711 3223 | [dependencies.aws-smithy-runtime-api]
|
2712 3224 | path = "../aws-smithy-runtime-api"
|
2713 3225 | features = ["client", "http-02x"]
|
2714 3226 | version = "1.8.5"
|
2715 3227 |
|
2716 3228 | [dependencies.aws-smithy-types]
|
2717 3229 | path = "../aws-smithy-types"
|
2718 3230 | version = "1.3.2"
|
2719 3231 |
|
2720 3232 | [dependencies.aws-types]
|
2721 3233 | path = "../aws-types"
|
2722 3234 | version = "1.3.8"
|
2723 3235 |
|
2724 3236 | [dependencies.bytes]
|
2725 3237 | version = "1.4.0"
|
2726 3238 |
|
2727 3239 | [dependencies.fastrand]
|
2728 3240 | version = "2.0.0"
|
2729 3241 |
|
2730 3242 | [dependencies.http]
|
2731 3243 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/route53/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/route53/Cargo.toml
|
2732 3244 | index 32a7dc9..a2c752d 100644
|
2733 - | -- a/tmp-codegen-diff/aws-sdk/sdk/route53/Cargo.toml
|
3245 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/route53/Cargo.toml
|
2734 3246 | @@ -1,61 +1,61 @@
|
2735 3247 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2736 3248 | [package]
|
2737 3249 | name = "aws-sdk-route53"
|
2738 3250 | version = "0.0.0-local"
|
2739 3251 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2740 3252 | description = "AWS SDK for Amazon Route 53"
|
2741 3253 | edition = "2021"
|
2742 3254 | license = "Apache-2.0"
|
2743 3255 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2744 3256 | rust-version = "1.86.0"
|
2745 3257 | readme = "README.md"
|
2746 3258 | [package.metadata.smithy]
|
2747 3259 | codegen-version = "ci"
|
2748 3260 | [package.metadata.docs.rs]
|
2749 3261 | all-features = true
|
2750 3262 | targets = ["x86_64-unknown-linux-gnu"]
|
2751 3263 | [dependencies.aws-credential-types]
|
2752 3264 | path = "../aws-credential-types"
|
2753 3265 | version = "1.2.4"
|
2754 3266 |
|
2755 3267 | [dependencies.aws-runtime]
|
2756 3268 | path = "../aws-runtime"
|
2757 3269 | version = "1.5.9"
|
2758 3270 |
|
2759 3271 | [dependencies.aws-smithy-async]
|
2760 3272 | path = "../aws-smithy-async"
|
2761 3273 | version = "1.2.5"
|
2762 3274 |
|
2763 3275 | [dependencies.aws-smithy-http]
|
2764 3276 | path = "../aws-smithy-http"
|
2765 - | version = "0.62.2"
|
3277 + | version = "0.62.3"
|
2766 3278 |
|
2767 3279 | [dependencies.aws-smithy-json]
|
2768 3280 | path = "../aws-smithy-json"
|
2769 3281 | version = "0.61.4"
|
2770 3282 |
|
2771 3283 | [dependencies.aws-smithy-runtime]
|
2772 3284 | path = "../aws-smithy-runtime"
|
2773 3285 | features = ["client"]
|
2774 3286 | version = "1.8.5"
|
2775 3287 |
|
2776 3288 | [dependencies.aws-smithy-runtime-api]
|
2777 3289 | path = "../aws-smithy-runtime-api"
|
2778 3290 | features = ["client", "http-02x"]
|
2779 3291 | version = "1.8.5"
|
2780 3292 |
|
2781 3293 | [dependencies.aws-smithy-types]
|
2782 3294 | path = "../aws-smithy-types"
|
2783 3295 | version = "1.3.2"
|
2784 3296 |
|
2785 3297 | [dependencies.aws-smithy-xml]
|
2786 3298 | path = "../aws-smithy-xml"
|
2787 3299 | version = "0.60.10"
|
2788 3300 |
|
2789 3301 | [dependencies.aws-types]
|
2790 3302 | path = "../aws-types"
|
2791 3303 | version = "1.3.8"
|
2792 3304 |
|
2793 3305 | [dependencies.fastrand]
|
2794 3306 | version = "2.0.0"
|
2795 3307 |
|
2796 3308 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/s3/Cargo.toml
|
2797 3309 | index f65e261..2f6bec0 100644
|
2798 - | -- a/tmp-codegen-diff/aws-sdk/sdk/s3/Cargo.toml
|
3310 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/s3/Cargo.toml
|
2799 3311 | @@ -1,75 +1,75 @@
|
2800 3312 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2801 3313 | [package]
|
2802 3314 | name = "aws-sdk-s3"
|
2803 3315 | version = "0.0.0-local"
|
2804 3316 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2805 3317 | description = "AWS SDK for Amazon Simple Storage Service"
|
2806 3318 | edition = "2021"
|
2807 3319 | license = "Apache-2.0"
|
2808 3320 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2809 3321 | rust-version = "1.86.0"
|
2810 3322 | readme = "README.md"
|
2811 3323 | [package.metadata.smithy]
|
2812 3324 | codegen-version = "ci"
|
2813 3325 | [package.metadata.docs.rs]
|
2814 3326 | all-features = true
|
2815 3327 | targets = ["x86_64-unknown-linux-gnu"]
|
2816 3328 | [dependencies.aws-credential-types]
|
2817 3329 | path = "../aws-credential-types"
|
2818 3330 | version = "1.2.4"
|
2819 3331 |
|
2820 3332 | [dependencies.aws-runtime]
|
2821 3333 | path = "../aws-runtime"
|
2822 3334 | features = ["event-stream", "http-02x"]
|
2823 3335 | version = "1.5.9"
|
2824 3336 |
|
2825 3337 | [dependencies.aws-sigv4]
|
2826 3338 | path = "../aws-sigv4"
|
2827 - | version = "1.3.3"
|
3339 + | version = "1.3.4"
|
2828 3340 |
|
2829 3341 | [dependencies.aws-smithy-async]
|
2830 3342 | path = "../aws-smithy-async"
|
2831 3343 | version = "1.2.5"
|
2832 3344 |
|
2833 3345 | [dependencies.aws-smithy-checksums]
|
2834 3346 | path = "../aws-smithy-checksums"
|
2835 3347 | version = "0.63.5"
|
2836 3348 |
|
2837 3349 | [dependencies.aws-smithy-eventstream]
|
2838 3350 | path = "../aws-smithy-eventstream"
|
2839 3351 | version = "0.60.10"
|
2840 3352 |
|
2841 3353 | [dependencies.aws-smithy-http]
|
2842 3354 | path = "../aws-smithy-http"
|
2843 3355 | features = ["event-stream"]
|
2844 - | version = "0.62.2"
|
3356 + | version = "0.62.3"
|
2845 3357 |
|
2846 3358 | [dependencies.aws-smithy-json]
|
2847 3359 | path = "../aws-smithy-json"
|
2848 3360 | version = "0.61.4"
|
2849 3361 |
|
2850 3362 | [dependencies.aws-smithy-runtime]
|
2851 3363 | path = "../aws-smithy-runtime"
|
2852 3364 | features = ["client"]
|
2853 3365 | version = "1.8.5"
|
2854 3366 |
|
2855 3367 | [dependencies.aws-smithy-runtime-api]
|
2856 3368 | path = "../aws-smithy-runtime-api"
|
2857 3369 | features = ["client", "http-02x"]
|
2858 3370 | version = "1.8.5"
|
2859 3371 |
|
2860 3372 | [dependencies.aws-smithy-types]
|
2861 3373 | path = "../aws-smithy-types"
|
2862 3374 | version = "1.3.2"
|
2863 3375 |
|
2864 3376 | [dependencies.aws-smithy-xml]
|
2865 3377 | path = "../aws-smithy-xml"
|
2866 3378 | version = "0.60.10"
|
2867 3379 |
|
2868 3380 | [dependencies.aws-types]
|
2869 3381 | path = "../aws-types"
|
2870 3382 | version = "1.3.8"
|
2871 3383 |
|
2872 3384 | [dependencies.bytes]
|
2873 3385 | version = "1.4.0"
|
2874 3386 |
|
2875 3387 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3control/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/s3control/Cargo.toml
|
2876 3388 | index b4d1cdd..861c0cc 100644
|
2877 - | -- a/tmp-codegen-diff/aws-sdk/sdk/s3control/Cargo.toml
|
3389 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/s3control/Cargo.toml
|
2878 3390 | @@ -1,61 +1,61 @@
|
2879 3391 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2880 3392 | [package]
|
2881 3393 | name = "aws-sdk-s3control"
|
2882 3394 | version = "0.0.0-local"
|
2883 3395 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2884 3396 | description = "AWS SDK for AWS S3 Control"
|
2885 3397 | edition = "2021"
|
2886 3398 | license = "Apache-2.0"
|
2887 3399 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2888 3400 | rust-version = "1.86.0"
|
2889 3401 | readme = "README.md"
|
2890 3402 | [package.metadata.smithy]
|
2891 3403 | codegen-version = "ci"
|
2892 3404 | [package.metadata.docs.rs]
|
2893 3405 | all-features = true
|
2894 3406 | targets = ["x86_64-unknown-linux-gnu"]
|
2895 3407 | [dependencies.aws-credential-types]
|
2896 3408 | path = "../aws-credential-types"
|
2897 3409 | version = "1.2.4"
|
2898 3410 |
|
2899 3411 | [dependencies.aws-runtime]
|
2900 3412 | path = "../aws-runtime"
|
2901 3413 | version = "1.5.9"
|
2902 3414 |
|
2903 3415 | [dependencies.aws-smithy-async]
|
2904 3416 | path = "../aws-smithy-async"
|
2905 3417 | version = "1.2.5"
|
2906 3418 |
|
2907 3419 | [dependencies.aws-smithy-http]
|
2908 3420 | path = "../aws-smithy-http"
|
2909 - | version = "0.62.2"
|
3421 + | version = "0.62.3"
|
2910 3422 |
|
2911 3423 | [dependencies.aws-smithy-json]
|
2912 3424 | path = "../aws-smithy-json"
|
2913 3425 | version = "0.61.4"
|
2914 3426 |
|
2915 3427 | [dependencies.aws-smithy-runtime]
|
2916 3428 | path = "../aws-smithy-runtime"
|
2917 3429 | features = ["client"]
|
2918 3430 | version = "1.8.5"
|
2919 3431 |
|
2920 3432 | [dependencies.aws-smithy-runtime-api]
|
2921 3433 | path = "../aws-smithy-runtime-api"
|
2922 3434 | features = ["client", "http-02x"]
|
2923 3435 | version = "1.8.5"
|
2924 3436 |
|
2925 3437 | [dependencies.aws-smithy-types]
|
2926 3438 | path = "../aws-smithy-types"
|
2927 3439 | version = "1.3.2"
|
2928 3440 |
|
2929 3441 | [dependencies.aws-smithy-xml]
|
2930 3442 | path = "../aws-smithy-xml"
|
2931 3443 | version = "0.60.10"
|
2932 3444 |
|
2933 3445 | [dependencies.aws-types]
|
2934 3446 | path = "../aws-types"
|
2935 3447 | version = "1.3.8"
|
2936 3448 |
|
2937 3449 | [dependencies.fastrand]
|
2938 3450 | version = "2.0.0"
|
2939 3451 |
|
2940 3452 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/sso/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/sso/Cargo.toml
|
2941 3453 | index 2cde182..fc367f4 100644
|
2942 - | -- a/tmp-codegen-diff/aws-sdk/sdk/sso/Cargo.toml
|
3454 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/sso/Cargo.toml
|
2943 3455 | @@ -1,61 +1,61 @@
|
2944 3456 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
2945 3457 | [package]
|
2946 3458 | name = "aws-sdk-sso"
|
2947 3459 | version = "0.0.0-local"
|
2948 3460 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
2949 3461 | description = "AWS SDK for AWS Single Sign-On"
|
2950 3462 | edition = "2021"
|
2951 3463 | license = "Apache-2.0"
|
2952 3464 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
2953 3465 | rust-version = "1.86.0"
|
2954 3466 | readme = "README.md"
|
2955 3467 | [package.metadata.smithy]
|
2956 3468 | codegen-version = "ci"
|
2957 3469 | [package.metadata.docs.rs]
|
2958 3470 | all-features = true
|
2959 3471 | targets = ["x86_64-unknown-linux-gnu"]
|
2960 3472 | [dependencies.aws-credential-types]
|
2961 3473 | path = "../aws-credential-types"
|
2962 3474 | version = "1.2.4"
|
2963 3475 |
|
2964 3476 | [dependencies.aws-runtime]
|
2965 3477 | path = "../aws-runtime"
|
2966 3478 | version = "1.5.9"
|
2967 3479 |
|
2968 3480 | [dependencies.aws-smithy-async]
|
2969 3481 | path = "../aws-smithy-async"
|
2970 3482 | version = "1.2.5"
|
2971 3483 |
|
2972 3484 | [dependencies.aws-smithy-http]
|
2973 3485 | path = "../aws-smithy-http"
|
2974 - | version = "0.62.2"
|
3486 + | version = "0.62.3"
|
2975 3487 |
|
2976 3488 | [dependencies.aws-smithy-json]
|
2977 3489 | path = "../aws-smithy-json"
|
2978 3490 | version = "0.61.4"
|
2979 3491 |
|
2980 3492 | [dependencies.aws-smithy-runtime]
|
2981 3493 | path = "../aws-smithy-runtime"
|
2982 3494 | features = ["client"]
|
2983 3495 | version = "1.8.5"
|
2984 3496 |
|
2985 3497 | [dependencies.aws-smithy-runtime-api]
|
2986 3498 | path = "../aws-smithy-runtime-api"
|
2987 3499 | features = ["client", "http-02x"]
|
2988 3500 | version = "1.8.5"
|
2989 3501 |
|
2990 3502 | [dependencies.aws-smithy-types]
|
2991 3503 | path = "../aws-smithy-types"
|
2992 3504 | version = "1.3.2"
|
2993 3505 |
|
2994 3506 | [dependencies.aws-types]
|
2995 3507 | path = "../aws-types"
|
2996 3508 | version = "1.3.8"
|
2997 3509 |
|
2998 3510 | [dependencies.bytes]
|
2999 3511 | version = "1.4.0"
|
3000 3512 |
|
3001 3513 | [dependencies.fastrand]
|
3002 3514 | version = "2.0.0"
|
3003 3515 |
|
3004 3516 | [dependencies.http]
|
3005 3517 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/ssooidc/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/ssooidc/Cargo.toml
|
3006 3518 | index 7a34c16..588d0bd 100644
|
3007 - | -- a/tmp-codegen-diff/aws-sdk/sdk/ssooidc/Cargo.toml
|
3519 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/ssooidc/Cargo.toml
|
3008 3520 | @@ -1,61 +1,61 @@
|
3009 3521 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
3010 3522 | [package]
|
3011 3523 | name = "aws-sdk-ssooidc"
|
3012 3524 | version = "0.0.0-local"
|
3013 3525 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
3014 3526 | description = "AWS SDK for AWS SSO OIDC"
|
3015 3527 | edition = "2021"
|
3016 3528 | license = "Apache-2.0"
|
3017 3529 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
3018 3530 | rust-version = "1.86.0"
|
3019 3531 | readme = "README.md"
|
3020 3532 | [package.metadata.smithy]
|
3021 3533 | codegen-version = "ci"
|
3022 3534 | [package.metadata.docs.rs]
|
3023 3535 | all-features = true
|
3024 3536 | targets = ["x86_64-unknown-linux-gnu"]
|
3025 3537 | [dependencies.aws-credential-types]
|
3026 3538 | path = "../aws-credential-types"
|
3027 3539 | version = "1.2.4"
|
3028 3540 |
|
3029 3541 | [dependencies.aws-runtime]
|
3030 3542 | path = "../aws-runtime"
|
3031 3543 | version = "1.5.9"
|
3032 3544 |
|
3033 3545 | [dependencies.aws-smithy-async]
|
3034 3546 | path = "../aws-smithy-async"
|
3035 3547 | version = "1.2.5"
|
3036 3548 |
|
3037 3549 | [dependencies.aws-smithy-http]
|
3038 3550 | path = "../aws-smithy-http"
|
3039 - | version = "0.62.2"
|
3551 + | version = "0.62.3"
|
3040 3552 |
|
3041 3553 | [dependencies.aws-smithy-json]
|
3042 3554 | path = "../aws-smithy-json"
|
3043 3555 | version = "0.61.4"
|
3044 3556 |
|
3045 3557 | [dependencies.aws-smithy-runtime]
|
3046 3558 | path = "../aws-smithy-runtime"
|
3047 3559 | features = ["client"]
|
3048 3560 | version = "1.8.5"
|
3049 3561 |
|
3050 3562 | [dependencies.aws-smithy-runtime-api]
|
3051 3563 | path = "../aws-smithy-runtime-api"
|
3052 3564 | features = ["client", "http-02x"]
|
3053 3565 | version = "1.8.5"
|
3054 3566 |
|
3055 3567 | [dependencies.aws-smithy-types]
|
3056 3568 | path = "../aws-smithy-types"
|
3057 3569 | version = "1.3.2"
|
3058 3570 |
|
3059 3571 | [dependencies.aws-types]
|
3060 3572 | path = "../aws-types"
|
3061 3573 | version = "1.3.8"
|
3062 3574 |
|
3063 3575 | [dependencies.bytes]
|
3064 3576 | version = "1.4.0"
|
3065 3577 |
|
3066 3578 | [dependencies.fastrand]
|
3067 3579 | version = "2.0.0"
|
3068 3580 |
|
3069 3581 | [dependencies.http]
|
3070 3582 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/sts/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/sts/Cargo.toml
|
3071 3583 | index 895dfb3..f2ce34e 100644
|
3072 - | -- a/tmp-codegen-diff/aws-sdk/sdk/sts/Cargo.toml
|
3584 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/sts/Cargo.toml
|
3073 3585 | @@ -1,61 +1,61 @@
|
3074 3586 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
3075 3587 | [package]
|
3076 3588 | name = "aws-sdk-sts"
|
3077 3589 | version = "0.0.0-local"
|
3078 3590 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
3079 3591 | description = "AWS SDK for AWS Security Token Service"
|
3080 3592 | edition = "2021"
|
3081 3593 | license = "Apache-2.0"
|
3082 3594 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
3083 3595 | rust-version = "1.86.0"
|
3084 3596 | readme = "README.md"
|
3085 3597 | [package.metadata.smithy]
|
3086 3598 | codegen-version = "ci"
|
3087 3599 | [package.metadata.docs.rs]
|
3088 3600 | all-features = true
|
3089 3601 | targets = ["x86_64-unknown-linux-gnu"]
|
3090 3602 | [dependencies.aws-credential-types]
|
3091 3603 | path = "../aws-credential-types"
|
3092 3604 | version = "1.2.4"
|
3093 3605 |
|
3094 3606 | [dependencies.aws-runtime]
|
3095 3607 | path = "../aws-runtime"
|
3096 3608 | version = "1.5.9"
|
3097 3609 |
|
3098 3610 | [dependencies.aws-smithy-async]
|
3099 3611 | path = "../aws-smithy-async"
|
3100 3612 | version = "1.2.5"
|
3101 3613 |
|
3102 3614 | [dependencies.aws-smithy-http]
|
3103 3615 | path = "../aws-smithy-http"
|
3104 - | version = "0.62.2"
|
3616 + | version = "0.62.3"
|
3105 3617 |
|
3106 3618 | [dependencies.aws-smithy-json]
|
3107 3619 | path = "../aws-smithy-json"
|
3108 3620 | version = "0.61.4"
|
3109 3621 |
|
3110 3622 | [dependencies.aws-smithy-query]
|
3111 3623 | path = "../aws-smithy-query"
|
3112 3624 | version = "0.60.7"
|
3113 3625 |
|
3114 3626 | [dependencies.aws-smithy-runtime]
|
3115 3627 | path = "../aws-smithy-runtime"
|
3116 3628 | features = ["client"]
|
3117 3629 | version = "1.8.5"
|
3118 3630 |
|
3119 3631 | [dependencies.aws-smithy-runtime-api]
|
3120 3632 | path = "../aws-smithy-runtime-api"
|
3121 3633 | features = ["client", "http-02x"]
|
3122 3634 | version = "1.8.5"
|
3123 3635 |
|
3124 3636 | [dependencies.aws-smithy-types]
|
3125 3637 | path = "../aws-smithy-types"
|
3126 3638 | version = "1.3.2"
|
3127 3639 |
|
3128 3640 | [dependencies.aws-smithy-xml]
|
3129 3641 | path = "../aws-smithy-xml"
|
3130 3642 | version = "0.60.10"
|
3131 3643 |
|
3132 3644 | [dependencies.aws-types]
|
3133 3645 | path = "../aws-types"
|
3134 3646 | version = "1.3.8"
|
3135 3647 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/Cargo.toml
|
3136 3648 | index d556561..91178b6 100644
|
3137 - | -- a/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/Cargo.toml
|
3649 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/Cargo.toml
|
3138 3650 | @@ -1,61 +1,61 @@
|
3139 3651 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
3140 3652 | [package]
|
3141 3653 | name = "aws-sdk-timestreamquery"
|
3142 3654 | version = "0.0.0-local"
|
3143 3655 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
3144 3656 | description = "AWS SDK for Amazon Timestream Query"
|
3145 3657 | edition = "2021"
|
3146 3658 | license = "Apache-2.0"
|
3147 3659 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
3148 3660 | rust-version = "1.86.0"
|
3149 3661 | readme = "README.md"
|
3150 3662 | [package.metadata.smithy]
|
3151 3663 | codegen-version = "ci"
|
3152 3664 | [package.metadata.docs.rs]
|
3153 3665 | all-features = true
|
3154 3666 | targets = ["x86_64-unknown-linux-gnu"]
|
3155 3667 | [dependencies.aws-credential-types]
|
3156 3668 | path = "../aws-credential-types"
|
3157 3669 | version = "1.2.4"
|
3158 3670 |
|
3159 3671 | [dependencies.aws-runtime]
|
3160 3672 | path = "../aws-runtime"
|
3161 3673 | version = "1.5.9"
|
3162 3674 |
|
3163 3675 | [dependencies.aws-smithy-async]
|
3164 3676 | path = "../aws-smithy-async"
|
3165 3677 | version = "1.2.5"
|
3166 3678 |
|
3167 3679 | [dependencies.aws-smithy-http]
|
3168 3680 | path = "../aws-smithy-http"
|
3169 - | version = "0.62.2"
|
3681 + | version = "0.62.3"
|
3170 3682 |
|
3171 3683 | [dependencies.aws-smithy-json]
|
3172 3684 | path = "../aws-smithy-json"
|
3173 3685 | version = "0.61.4"
|
3174 3686 |
|
3175 3687 | [dependencies.aws-smithy-runtime]
|
3176 3688 | path = "../aws-smithy-runtime"
|
3177 3689 | features = ["client"]
|
3178 3690 | version = "1.8.5"
|
3179 3691 |
|
3180 3692 | [dependencies.aws-smithy-runtime-api]
|
3181 3693 | path = "../aws-smithy-runtime-api"
|
3182 3694 | features = ["client", "http-02x"]
|
3183 3695 | version = "1.8.5"
|
3184 3696 |
|
3185 3697 | [dependencies.aws-smithy-types]
|
3186 3698 | path = "../aws-smithy-types"
|
3187 3699 | version = "1.3.2"
|
3188 3700 |
|
3189 3701 | [dependencies.aws-types]
|
3190 3702 | path = "../aws-types"
|
3191 3703 | version = "1.3.8"
|
3192 3704 |
|
3193 3705 | [dependencies.bytes]
|
3194 3706 | version = "1.4.0"
|
3195 3707 |
|
3196 3708 | [dependencies.fastrand]
|
3197 3709 | version = "2.0.0"
|
3198 3710 |
|
3199 3711 | [dependencies.http]
|
3200 3712 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/Cargo.toml
|
3201 3713 | index 0c56e4c..95731e3 100644
|
3202 - | -- a/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/Cargo.toml
|
3714 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/Cargo.toml
|
3203 3715 | @@ -1,61 +1,61 @@
|
3204 3716 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
3205 3717 | [package]
|
3206 3718 | name = "aws-sdk-timestreamwrite"
|
3207 3719 | version = "0.0.0-local"
|
3208 3720 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
3209 3721 | description = "AWS SDK for Amazon Timestream Write"
|
3210 3722 | edition = "2021"
|
3211 3723 | license = "Apache-2.0"
|
3212 3724 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
3213 3725 | rust-version = "1.86.0"
|
3214 3726 | readme = "README.md"
|
3215 3727 | [package.metadata.smithy]
|
3216 3728 | codegen-version = "ci"
|
3217 3729 | [package.metadata.docs.rs]
|
3218 3730 | all-features = true
|
3219 3731 | targets = ["x86_64-unknown-linux-gnu"]
|
3220 3732 | [dependencies.aws-credential-types]
|
3221 3733 | path = "../aws-credential-types"
|
3222 3734 | version = "1.2.4"
|
3223 3735 |
|
3224 3736 | [dependencies.aws-runtime]
|
3225 3737 | path = "../aws-runtime"
|
3226 3738 | version = "1.5.9"
|
3227 3739 |
|
3228 3740 | [dependencies.aws-smithy-async]
|
3229 3741 | path = "../aws-smithy-async"
|
3230 3742 | version = "1.2.5"
|
3231 3743 |
|
3232 3744 | [dependencies.aws-smithy-http]
|
3233 3745 | path = "../aws-smithy-http"
|
3234 - | version = "0.62.2"
|
3746 + | version = "0.62.3"
|
3235 3747 |
|
3236 3748 | [dependencies.aws-smithy-json]
|
3237 3749 | path = "../aws-smithy-json"
|
3238 3750 | version = "0.61.4"
|
3239 3751 |
|
3240 3752 | [dependencies.aws-smithy-runtime]
|
3241 3753 | path = "../aws-smithy-runtime"
|
3242 3754 | features = ["client"]
|
3243 3755 | version = "1.8.5"
|
3244 3756 |
|
3245 3757 | [dependencies.aws-smithy-runtime-api]
|
3246 3758 | path = "../aws-smithy-runtime-api"
|
3247 3759 | features = ["client", "http-02x"]
|
3248 3760 | version = "1.8.5"
|
3249 3761 |
|
3250 3762 | [dependencies.aws-smithy-types]
|
3251 3763 | path = "../aws-smithy-types"
|
3252 3764 | version = "1.3.2"
|
3253 3765 |
|
3254 3766 | [dependencies.aws-types]
|
3255 3767 | path = "../aws-types"
|
3256 3768 | version = "1.3.8"
|
3257 3769 |
|
3258 3770 | [dependencies.bytes]
|
3259 3771 | version = "1.4.0"
|
3260 3772 |
|
3261 3773 | [dependencies.fastrand]
|
3262 3774 | version = "2.0.0"
|
3263 3775 |
|
3264 3776 | [dependencies.http]
|
3265 3777 | diff --git a/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/Cargo.toml b/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/Cargo.toml
|
3266 3778 | index 5b35037..9fb220a 100644
|
3267 - | -- a/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/Cargo.toml
|
3779 + | ++ b/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/Cargo.toml
|
3268 3780 | @@ -1,71 +1,71 @@
|
3269 3781 | # Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
|
3270 3782 | [package]
|
3271 3783 | name = "aws-sdk-transcribestreaming"
|
3272 3784 | version = "0.0.0-local"
|
3273 3785 | authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "Russell Cohen <rcoh@amazon.com>"]
|
3274 3786 | description = "AWS SDK for Amazon Transcribe Streaming Service"
|
3275 3787 | edition = "2021"
|
3276 3788 | license = "Apache-2.0"
|
3277 3789 | repository = "https://github.com/awslabs/aws-sdk-rust"
|
3278 3790 | rust-version = "1.86.0"
|
3279 3791 | readme = "README.md"
|
3280 3792 | [package.metadata.smithy]
|
3281 3793 | codegen-version = "ci"
|
3282 3794 | [package.metadata.docs.rs]
|
3283 3795 | all-features = true
|
3284 3796 | targets = ["x86_64-unknown-linux-gnu"]
|
3285 3797 | [dependencies.aws-credential-types]
|
3286 3798 | path = "../aws-credential-types"
|
3287 3799 | version = "1.2.4"
|
3288 3800 |
|
3289 3801 | [dependencies.aws-runtime]
|
3290 3802 | path = "../aws-runtime"
|
3291 3803 | features = ["event-stream"]
|
3292 3804 | version = "1.5.9"
|
3293 3805 |
|
3294 3806 | [dependencies.aws-sigv4]
|
3295 3807 | path = "../aws-sigv4"
|
3296 - | version = "1.3.3"
|
3808 + | version = "1.3.4"
|
3297 3809 |
|
3298 3810 | [dependencies.aws-smithy-async]
|
3299 3811 | path = "../aws-smithy-async"
|
3300 3812 | version = "1.2.5"
|
3301 3813 |
|
3302 3814 | [dependencies.aws-smithy-eventstream]
|
3303 3815 | path = "../aws-smithy-eventstream"
|
3304 3816 | version = "0.60.10"
|
3305 3817 |
|
3306 3818 | [dependencies.aws-smithy-http]
|
3307 3819 | path = "../aws-smithy-http"
|
3308 3820 | features = ["event-stream"]
|
3309 - | version = "0.62.2"
|
3821 + | version = "0.62.3"
|
3310 3822 |
|
3311 3823 | [dependencies.aws-smithy-json]
|
3312 3824 | path = "../aws-smithy-json"
|
3313 3825 | version = "0.61.4"
|
3314 3826 |
|
3315 3827 | [dependencies.aws-smithy-runtime]
|
3316 3828 | path = "../aws-smithy-runtime"
|
3317 3829 | features = ["client"]
|
3318 3830 | version = "1.8.5"
|
3319 3831 |
|