alibaba_cloud_sdk_rust/sdk/auth/singers/
signer_access_key.rs1#![allow(unused)]
2#![allow(non_upper_case_globals)]
3#![allow(non_snake_case)]
4#![allow(non_camel_case_types)]
5use 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}