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;
43 std::string sign(
const std::unordered_map<std::string, std::string> &attributes);
45 std::string create_formatted_credential()
const;
47 std::string get_canonicalized_query_string(
const std::unordered_map<std::string, std::string> &attributes)
const;
50 std::string get_canonicalized_request(
const std::unordered_map<std::string, std::string> &attributes)
const;
52 std::string get_canonical_headers()
const;
54 std::string get_canonicalized_query_string(
const std::vector<std::string> &list)
const;
56 std::vector<std::string> get_list_of_entries(
const std::unordered_map<std::string, std::string> &entries)
const;
58 static std::string format_attribute(
const std::string &key,
const std::string &value);
61 std::string create_string_to_sign(
const std::string &canonical_request)
const;
63 std::string get_credential_scope()
const;
66 std::vector<unsigned char> derive_signing_key()
const;
68 std::string create_signature(
const std::string &string_to_sign,
const std::vector<unsigned char> &signing_key)
const;
70 std::string hmac_sh_a256_hex(
const std::vector<unsigned char> &key,
const std::string &msg)
const;
72 std::string convert_to_hex_string(
const unsigned char *buffer,
unsigned int len)
const;
74 unsigned int hmac_sh_a256_bytes(
const void *key,
int key_len,
const std::string &msg,
75 unsigned char *hash)
const;
77 unsigned int hmac_sh_a256_bytes(
const std::string &key,
const std::string &msg,
78 unsigned char *hash)
const;
80 unsigned int hmac_sh_a256_bytes(
const std::vector<unsigned char> &key,
const std::string &msg,
81 unsigned char *hash)
const;
83 unsigned int hmac_sh_a256_bytes(
const void *key_buffer,
int key_len,
const unsigned char *data,
85 unsigned char *hash)
const;
87 std::string sha256_hashhex(
const std::string &in)
const;
89 static std::string NEW_LINE;
90 static size_t DATE_LENGTH;
93 std::string timestamp_;
94 const std::string &endpoint_;
101 #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.