alibaba_cloud_sdk_rust/sdk/auth/singers/
signer_access_key.rs

1#![allow(unused)]
2#![allow(non_upper_case_globals)]
3#![allow(non_snake_case)]
4#![allow(non_camel_case_types)]
5// use crate::sdk::auth::singers::ShaHmac1;
6use super::ShaHmac1;
7use super::Signer;
8use crate::error::AliyunResult;
9use crate::sdk::auth::credentials;
10use std::collections::HashMap;
11use std::io::Error;
12#[derive(Debug, Default, Clone)]
13pub struct AccessKeySigner {
14    credential: credentials::AccessKeyCredential,
15}
16
17impl AccessKeySigner {
18    pub fn NewAccessKeySigner(credential: credentials::AccessKeyCredential) -> Self {
19        Self { credential }
20    }
21}
22impl Signer for AccessKeySigner {
23    fn GetName(&self) -> String {
24        "HMAC-SHA1".to_string()
25    }
26    fn GetType(&self) -> String {
27        "".to_string()
28    }
29    fn GetVersion(&self) -> String {
30        "1.0".to_string()
31    }
32    fn GetAccessKeyId(&self) -> AliyunResult<String> {
33        Ok(self.credential.AccessKeyId.to_string())
34    }
35
36    fn Sign(&self, stringToSign: &str, secretSuffix: &str) -> String {
37        let secret = self.credential.AccessKeySecret.to_owned() + secretSuffix;
38        ShaHmac1(stringToSign, &secret)
39    }
40    fn GetExtraParam(&self) -> Option<HashMap<String, String>> {
41        None
42    }
43}