in src/azure/credential.rs [377:415]
fn string_to_sign_service_sas(
u: &Url,
method: &Method,
account: &str,
start: &DateTime<Utc>,
end: &DateTime<Utc>,
) -> (String, HashMap<&'static str, String>) {
let (signed_resource, signed_permissions, signed_start, signed_expiry, canonicalized_resource) =
string_to_sign_sas(u, method, account, start, end);
let string_to_sign = format!(
"{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}",
signed_permissions,
signed_start,
signed_expiry,
canonicalized_resource,
"", // signed identifier
"", // signed ip
"", // signed protocol
&AZURE_VERSION.to_str().unwrap(), // signed version
signed_resource, // signed resource
"", // signed snapshot time
"", // signed encryption scope
"", // rscc - response header: Cache-Control
"", // rscd - response header: Content-Disposition
"", // rsce - response header: Content-Encoding
"", // rscl - response header: Content-Language
"", // rsct - response header: Content-Type
);
let mut pairs = HashMap::new();
pairs.insert("sv", AZURE_VERSION.to_str().unwrap().to_string());
pairs.insert("sp", signed_permissions);
pairs.insert("st", signed_start);
pairs.insert("se", signed_expiry);
pairs.insert("sr", signed_resource);
(string_to_sign, pairs)
}