GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
CURLOPT_AWS_SIGV4(3) curl_easy_setopt options CURLOPT_AWS_SIGV4(3)

CURLOPT_AWS_SIGV4 - V4 signature

#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_AWS_SIGV4, char *param);

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 authentication 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 generate "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

By default, the value of this parameter is NULL. Calling CURLOPT_HTTPAUTH(3) with CURLAUTH_AWS_SIGV4 is the same as calling this with "aws:amz" in parameter.

HTTP

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);
}

Added in 7.75.0

Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.

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.

CURLOPT_HEADEROPT(3), CURLOPT_HTTPHEADER(3),
October 31, 2021 libcurl 7.83.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.