Function s3::signing::signed_header_string
source · Expand description
Generate a signed header string from the provided headers.
Examples found in repository?
src/signing.rs (line 135)
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
pub fn canonical_request(
method: &str,
url: &Url,
headers: &HeaderMap,
sha256: &str,
) -> Result<String, S3Error> {
Ok(format!(
"{method}\n{uri}\n{query_string}\n{headers}\n\n{signed}\n{sha256}",
method = method,
uri = canonical_uri_string(url),
query_string = canonical_query_string(url),
headers = canonical_header_string(headers)?,
signed = signed_header_string(headers),
sha256 = sha256
))
}More examples
src/request/request_trait.rs (line 413)
407 408 409 410 411 412 413 414 415 416 417 418 419 420 421
fn authorization(&self, headers: &HeaderMap) -> Result<String, S3Error> {
let canonical_request = self.canonical_request(headers)?;
let string_to_sign = self.string_to_sign(&canonical_request)?;
let mut hmac = signing::HmacSha256::new_from_slice(&self.signing_key()?)?;
hmac.update(string_to_sign.as_bytes());
let signature = hex::encode(hmac.finalize().into_bytes());
let signed_header = signing::signed_header_string(headers);
signing::authorization_header(
&self.bucket().access_key()?.expect("No access_key provided"),
&self.datetime(),
&self.bucket().region(),
&signed_header,
&signature,
)
}