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