Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

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

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)