string encoded_key;
string encoded_val;
if (key != "X-Amz-Credential") {
- aws4_uri_encode(key, encoded_key);
- aws4_uri_encode(val, encoded_val);
+ string key_decoded;
+ url_decode(key, key_decoded);
+ if (key.length() != key_decoded.length()) {
+ encoded_key = key;
+ } else {
+ aws4_uri_encode(key, encoded_key);
+ }
+ string val_decoded;
+ url_decode(val, val_decoded);
+ if (val.length() != val_decoded.length()) {
+ encoded_val = val;
+ } else {
+ aws4_uri_encode(val, encoded_val);
+ }
} else {
encoded_key = key;
encoded_val = val;