aboutsummaryrefslogtreecommitdiff
path: root/src/api/signature.rs
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2020-04-28 10:18:14 +0000
committerAlex Auvolat <alex@adnab.me>2020-04-28 10:18:14 +0000
commit0957d0fdfadb27e49c24d63994f52197a9c9cd1c (patch)
tree35b048599d44de01650d99ccc2de942498ac4038 /src/api/signature.rs
parentbe35cbdce2bd4e42a2bfc41ff5b21e332d20eb29 (diff)
downloadgarage-0957d0fdfadb27e49c24d63994f52197a9c9cd1c.tar.gz
garage-0957d0fdfadb27e49c24d63994f52197a9c9cd1c.zip
Work on API
Diffstat (limited to 'src/api/signature.rs')
-rw-r--r--src/api/signature.rs23
1 files changed, 2 insertions, 21 deletions
diff --git a/src/api/signature.rs b/src/api/signature.rs
index 2e82269c..a1ccfd08 100644
--- a/src/api/signature.rs
+++ b/src/api/signature.rs
@@ -11,6 +11,8 @@ use garage_util::error::Error;
use garage_core::garage::Garage;
use garage_core::key_table::*;
+use crate::encoding::uri_encode;
+
const SHORT_DATE: &str = "%Y%m%d";
const LONG_DATETIME: &str = "%Y%m%dT%H%M%SZ";
@@ -284,24 +286,3 @@ fn canonical_query_string(uri: &hyper::Uri) -> String {
"".to_string()
}
}
-
-fn uri_encode(string: &str, encode_slash: bool) -> String {
- let mut result = String::with_capacity(string.len() * 2);
- for c in string.chars() {
- match c {
- 'a'..='z' | 'A'..='Z' | '0'..='9' | '_' | '-' | '~' | '.' => result.push(c),
- '/' if encode_slash => result.push_str("%2F"),
- '/' if !encode_slash => result.push('/'),
- _ => {
- result.push('%');
- result.push_str(
- &format!("{}", c)
- .bytes()
- .map(|b| format!("{:02X}", b))
- .collect::<String>(),
- );
- }
- }
- }
- result
-}