mirror of
https://github.com/curl/curl.git
synced 2026-08-25 08:33:41 +03:00
http: introduce AWS HTTP v4 Signature
It is a security process for HTTP. It doesn't seems to be standard, but it is used by some cloud providers. Aws: https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html Outscale: https://wiki.outscale.net/display/EN/Creating+a+Canonical+Request GCP (I didn't test that this code work with GCP though): https://cloud.google.com/storage/docs/access-control/signing-urls-manually most of the code is in lib/http_v4_signature.c Information require by the algorithm: - The URL - Current time - some prefix that are append to some of the signature parameters. The data extracted from the URL are: the URI, the region, the host and the API type example: https://api.eu-west-2.outscale.com/api/latest/ReadNets ~~~ ~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ ^ ^ ^ / \ URI API type region Small description of the algorithm: - make canonical header using content type, the host, and the date - hash the post data - make canonical_request using custom request, the URI, the get data, the canonical header, the signed header and post data hash - hash canonical_request - make str_to_sign using one of the prefix pass in parameter, the date, the credential scope and the canonical_request hash - compute hmac from date, using secret key as key. - compute hmac from region, using above hmac as key - compute hmac from api_type, using above hmac as key - compute hmac from request_type, using above hmac as key - compute hmac from str_to_sign using above hmac as key - create Authorization header using above hmac, prefix pass in parameter, the date, and above hash Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com> Closes #5703
This commit is contained in:
parent
d52564bacb
commit
08e8455ddd
6 changed files with 371 additions and 0 deletions
|
|
@ -29,6 +29,7 @@ CURLAUTH_NONE 7.10.6
|
|||
CURLAUTH_NTLM 7.10.6
|
||||
CURLAUTH_NTLM_WB 7.22.0
|
||||
CURLAUTH_ONLY 7.21.3
|
||||
CURLAUTH_AWS_SIGV4 7.75.0
|
||||
CURLCLOSEPOLICY_CALLBACK 7.7
|
||||
CURLCLOSEPOLICY_LEAST_RECENTLY_USED 7.7
|
||||
CURLCLOSEPOLICY_LEAST_TRAFFIC 7.7
|
||||
|
|
@ -668,6 +669,7 @@ CURLOPT_USERAGENT 7.1
|
|||
CURLOPT_USERNAME 7.19.1
|
||||
CURLOPT_USERPWD 7.1
|
||||
CURLOPT_USE_SSL 7.17.0
|
||||
CURLOPT_AWS_SIGV4 7.75.0
|
||||
CURLOPT_VERBOSE 7.1
|
||||
CURLOPT_WILDCARDMATCH 7.21.0
|
||||
CURLOPT_WRITEDATA 7.9.7
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue