in src/azure/credential.rs [420:473]
fn string_to_sign_user_delegation_sas(
u: &Url,
method: &Method,
account: &str,
start: &DateTime<Utc>,
end: &DateTime<Utc>,
delegation_key: &UserDelegationKey,
) -> (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{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}\n{}",
signed_permissions,
signed_start,
signed_expiry,
canonicalized_resource,
delegation_key.signed_oid, // signed key object id
delegation_key.signed_tid, // signed key tenant id
delegation_key.signed_start, // signed key start
delegation_key.signed_expiry, // signed key expiry
delegation_key.signed_service, // signed key service
delegation_key.signed_version, // signed key version
"", // signed authorized user object id
"", // signed unauthorized user object id
"", // signed correlation id
"", // 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);
pairs.insert("skoid", delegation_key.signed_oid.clone());
pairs.insert("sktid", delegation_key.signed_tid.clone());
pairs.insert("skt", delegation_key.signed_start.clone());
pairs.insert("ske", delegation_key.signed_expiry.clone());
pairs.insert("sks", delegation_key.signed_service.clone());
pairs.insert("skv", delegation_key.signed_version.clone());
(string_to_sign, pairs)
}