Sourcemeta Core 0.0.0
Loading...
Searching...
No Matches
http_aws_sigv4.h
1#ifndef SOURCEMETA_CORE_HTTP_AWS_SIGV4_H_
2#define SOURCEMETA_CORE_HTTP_AWS_SIGV4_H_
3
4#ifndef SOURCEMETA_CORE_HTTP_EXPORT
5#include <sourcemeta/core/http_export.h>
6#endif
7
8#include <array> // std::array
9#include <cstdint> // std::uint8_t
10#include <span> // std::span
11#include <string> // std::string
12#include <string_view> // std::string_view
13#include <utility> // std::pair
14
15namespace sourcemeta::core {
16
22 std::string_view access_key_id;
24 std::string_view secret_access_key;
26 std::string_view session_token;
27};
28
51auto SOURCEMETA_CORE_HTTP_EXPORT http_aws_sigv4_canonical_request(
52 const std::string_view method, const std::string_view path,
53 const std::string_view query,
54 const std::span<const std::pair<std::string_view, std::string_view>>
55 headers,
56 const std::string_view payload_hash, const bool normalize = true)
57 -> std::string;
58
75auto SOURCEMETA_CORE_HTTP_EXPORT http_aws_sigv4_signed_headers(
76 const std::span<const std::pair<std::string_view, std::string_view>>
77 headers) -> std::string;
78
91auto SOURCEMETA_CORE_HTTP_EXPORT http_aws_sigv4_credential_scope(
92 const std::string_view date, const std::string_view region,
93 const std::string_view service) -> std::string;
94
108auto SOURCEMETA_CORE_HTTP_EXPORT http_aws_sigv4_string_to_sign(
109 const std::string_view amz_date, const std::string_view scope,
110 const std::string_view canonical_request) -> std::string;
111
125auto SOURCEMETA_CORE_HTTP_EXPORT http_aws_sigv4_signing_key(
126 const std::string_view secret, const std::string_view date,
127 const std::string_view region, const std::string_view service)
128 -> std::array<std::uint8_t, 32>;
129
144auto SOURCEMETA_CORE_HTTP_EXPORT
145http_aws_sigv4_signature(const std::array<std::uint8_t, 32> &signing_key,
146 const std::string_view string_to_sign) -> std::string;
147
161auto SOURCEMETA_CORE_HTTP_EXPORT http_aws_sigv4_authorization(
162 const std::string_view access_key_id, const std::string_view scope,
163 const std::string_view signed_headers, const std::string_view signature)
164 -> std::string;
165
166} // namespace sourcemeta::core
167
168#endif
std::string_view session_token
The temporary session token used with short-term credentials.
Definition http_aws_sigv4.h:26
std::string_view secret_access_key
The secret access key.
Definition http_aws_sigv4.h:24
std::string_view access_key_id
The access key identifier.
Definition http_aws_sigv4.h:22
auto SOURCEMETA_CORE_HTTP_EXPORT http_aws_sigv4_string_to_sign(const std::string_view amz_date, const std::string_view scope, const std::string_view canonical_request) -> std::string
auto SOURCEMETA_CORE_HTTP_EXPORT http_aws_sigv4_credential_scope(const std::string_view date, const std::string_view region, const std::string_view service) -> std::string
auto SOURCEMETA_CORE_HTTP_EXPORT http_aws_sigv4_canonical_request(const std::string_view method, const std::string_view path, const std::string_view query, const std::span< const std::pair< std::string_view, std::string_view > > headers, const std::string_view payload_hash, const bool normalize=true) -> std::string
auto SOURCEMETA_CORE_HTTP_EXPORT http_aws_sigv4_signing_key(const std::string_view secret, const std::string_view date, const std::string_view region, const std::string_view service) -> std::array< std::uint8_t, 32 >
auto SOURCEMETA_CORE_HTTP_EXPORT http_aws_sigv4_signed_headers(const std::span< const std::pair< std::string_view, std::string_view > > headers) -> std::string
auto SOURCEMETA_CORE_HTTP_EXPORT http_aws_sigv4_authorization(const std::string_view access_key_id, const std::string_view scope, const std::string_view signed_headers, const std::string_view signature) -> std::string
auto SOURCEMETA_CORE_HTTP_EXPORT http_aws_sigv4_signature(const std::array< std::uint8_t, 32 > &signing_key, const std::string_view string_to_sign) -> std::string
Definition http_aws_sigv4.h:20