CURLOPT_AWS_SIGV4 - V4 signature
#include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_AWS_SIGV4, char *param);
CURLOPT_AWS_SIGV4(3) curl_easy_setopt options CURLOPT_AWS_SIGV4(3) NAME CURLOPT_AWS_SIGV4 - V4 signature SYNOPSIS #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_AWS_SIGV4, char *param); DESCRIPTION Provides AWS V4 signature authentication on HTTP(S) header. Pass a char * that is the collection of specific arguments are used for creating outgoing authentication headers. The format of the param option is: provider1[:provider2[:region[:service]]] provider1, provider2 The providers arguments are used for generating some authentica- tion parameters such as "Algorithm", "date", "request type" and "signed headers". region The argument is a geographic area of a resources collection. It is extracted from the host name specified in the URL if omitted. service The argument is a function provided by a cloud. It is extracted from the host name specified in the URL if omitted. NOTE: This call set CURLOPT_HTTPAUTH(3) to CURLAUTH_AWS_SIGV4. Calling CURLOPT_HTTPAUTH(3) with CURLAUTH_AWS_SIGV4 is the same as calling this with "aws:amz" in parameter. Example with "Test:Try", when curl will do the algorithm, it will gen- erate "TEST-HMAC-SHA256" for "Algorithm", "x-try-date" and "X-Try-Date" for "date", "test4_request" for "request type", "SignedHeaders=content- type;host;x-try-date" for "signed headers" If you use just "test", instead of "test:try", test will be use for every strings generated DEFAULT By default, the value of this parameter is NULL. Calling CUR- LOPT_HTTPAUTH(3) with CURLAUTH_AWS_SIGV4 is the same as calling this with "aws:amz" in parameter. PROTOCOLS HTTP EXAMPLE CURL *curl = curl_easy_init(); struct curl_slist *list = NULL; if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "https://service.region.example.com/uri"); curl_easy_setopt(c, CURLOPT_AWS_SIGV4, "provider1:provider2"); /* service and region also could be set in CURLOPT_AWS_SIGV4 */ /* curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/uri"); curl_easy_setopt(c, CURLOPT_AWS_SIGV4, "provider1:provider2:region:service"); */ curl_easy_setopt(c, CURLOPT_USERPWD, "MY_ACCESS_KEY:MY_SECRET_KEY"); curl_easy_perform(curl); } AVAILABILITY Added in 7.75.0 RETURN VALUE Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. ATTRIBUTES See attributes(7) for descriptions of the following attributes: +---------------+------------------+ |ATTRIBUTE TYPE | ATTRIBUTE VALUE | +---------------+------------------+ |Availability | web/curl | +---------------+------------------+ |Stability | Uncommitted | +---------------+------------------+ NOTES This option overrides the other auth types you might have set in CURL_HTTPAUTH which should be highlighted as this makes this auth method special. This method cannot be combined with other auth types. Source code for open source software components in Oracle Solaris can be found at https://www.oracle.com/downloads/opensource/solaris-source- code-downloads.html. This software was built from source available at https://github.com/oracle/solaris-userland. The original community source was downloaded from https://curl.se/down- load/curl-7.83.1.tar.bz2. Further information about this software can be found on the open source community website at http://curl.haxx.se/. SEE ALSO CURLOPT_HEADEROPT(3), CURLOPT_HTTPHEADER(3), libcurl 7.83.1 October 31, 2021 CURLOPT_AWS_SIGV4(3)