19 #include <unordered_map>
22 #include "hazelcast/util/export.h"
24 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
26 #pragma warning(disable : 4251)
32 class client_aws_config;
40 const std::string& timestamp,
46 const std::unordered_map<std::string, std::string>& attributes);
48 std::string create_formatted_credential()
const;
50 std::string get_canonicalized_query_string(
51 const std::unordered_map<std::string, std::string>& attributes)
const;
55 std::string get_canonicalized_request(
56 const std::unordered_map<std::string, std::string>& attributes)
const;
58 std::string get_canonical_headers()
const;
60 std::string get_canonicalized_query_string(
61 const std::vector<std::string>& list)
const;
63 std::vector<std::string> get_list_of_entries(
64 const std::unordered_map<std::string, std::string>& entries)
const;
66 static std::string format_attribute(
const std::string& key,
67 const std::string& value);
70 std::string create_string_to_sign(
71 const std::string& canonical_request)
const;
73 std::string get_credential_scope()
const;
76 std::vector<unsigned char> derive_signing_key()
const;
78 std::string create_signature(
79 const std::string& string_to_sign,
80 const std::vector<unsigned char>& signing_key)
const;
82 std::string hmac_sh_a256_hex(
const std::vector<unsigned char>& key,
83 const std::string& msg)
const;
85 std::string convert_to_hex_string(
const unsigned char* buffer,
86 unsigned int len)
const;
88 unsigned int hmac_sh_a256_bytes(
const void* key,
90 const std::string& msg,
91 unsigned char* hash)
const;
93 unsigned int hmac_sh_a256_bytes(
const std::string& key,
94 const std::string& msg,
95 unsigned char* hash)
const;
97 unsigned int hmac_sh_a256_bytes(
const std::vector<unsigned char>& key,
98 const std::string& msg,
99 unsigned char* hash)
const;
101 unsigned int hmac_sh_a256_bytes(
const void* key_buffer,
103 const unsigned char* data,
105 unsigned char* hash)
const;
107 std::string sha256_hashhex(
const std::string& in)
const;
109 static std::string NEW_LINE;
110 static size_t DATE_LENGTH;
113 std::string timestamp_;
114 const std::string& endpoint_;
121 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
The client_aws_config contains the configuration for client to connect to nodes in aws environment.
Endpoint represents a peer in the cluster.