11from __future__ import annotations
22
3- import datetime as _dt
4- import hashlib as _hashlib
5- import hmac as _hmac
6- import urllib .parse as _urlparse
3+ import datetime
4+ import hashlib
5+ import hmac
6+ import urllib .parse as urlparse
77
88_ALGORITHM : str = "AWS4-HMAC-SHA256"
9- _EMPTY_PAYLOAD_SHA256 : str = _hashlib .sha256 (b"" ).hexdigest ()
9+ _EMPTY_PAYLOAD_SHA256 : str = hashlib .sha256 (b"" ).hexdigest ()
1010_SAFE_CHARS : str = "-_.~"
1111
1212
1313def _sign (key : bytes , msg : str ) -> bytes :
1414 """Return an HMAC-SHA256 of *msg* keyed with *key*."""
15- return _hmac .new (key , msg .encode (), _hashlib .sha256 ).digest ()
15+ return hmac .new (key , msg .encode (), hashlib .sha256 ).digest ()
1616
1717
1818def _canonical_query_string (query : str ) -> str :
1919 """Return the query string in canonical (sorted & URL-escaped) form."""
20- pairs = _urlparse .parse_qsl (query , keep_blank_values = True )
20+ pairs = urlparse .parse_qsl (query , keep_blank_values = True )
2121 pairs .sort ()
2222 return "&" .join (
23- f"{ _urlparse .quote (k , _SAFE_CHARS )} ={ _urlparse .quote (v , _SAFE_CHARS )} "
23+ f"{ urlparse .quote (k , _SAFE_CHARS )} ={ urlparse .quote (v , _SAFE_CHARS )} "
2424 for k , v in pairs
2525 )
2626
@@ -50,12 +50,12 @@ def sign_get_caller_identity(
5050 session_token
5151 (Optional) session token for temporary credentials.
5252 """
53- timestamp = _dt .datetime .utcnow ()
53+ timestamp = datetime .datetime .utcnow ()
5454 amz_date = timestamp .strftime ("%Y%m%dT%H%M%SZ" )
5555 short_date = timestamp .strftime ("%Y%m%d" )
5656 service = "sts"
5757
58- parsed = _urlparse .urlparse (url )
58+ parsed = urlparse .urlparse (url )
5959
6060 headers : dict [str , str ] = {
6161 "host" : parsed .netloc .lower (),
@@ -70,14 +70,14 @@ def sign_get_caller_identity(
7070 canonical_request = "\n " .join (
7171 (
7272 "POST" ,
73- _urlparse .quote (parsed .path or "/" , safe = "/" ),
73+ urlparse .quote (parsed .path or "/" , safe = "/" ),
7474 _canonical_query_string (parsed .query ),
7575 "" .join (f"{ k } :{ headers [k ]} \n " for k in sorted (headers )),
7676 signed_headers ,
7777 _EMPTY_PAYLOAD_SHA256 ,
7878 )
7979 )
80- canonical_request_hash = _hashlib .sha256 (canonical_request .encode ()).hexdigest ()
80+ canonical_request_hash = hashlib .sha256 (canonical_request .encode ()).hexdigest ()
8181
8282 # String to sign
8383 credential_scope = f"{ short_date } /{ region } /{ service } /aws4_request"
@@ -90,8 +90,8 @@ def sign_get_caller_identity(
9090 key_region = _sign (key_date , region )
9191 key_service = _sign (key_region , service )
9292 key_signing = _sign (key_service , "aws4_request" )
93- signature = _hmac .new (
94- key_signing , string_to_sign .encode (), _hashlib .sha256
93+ signature = hmac .new (
94+ key_signing , string_to_sign .encode (), hashlib .sha256
9595 ).hexdigest ()
9696
9797 # Final Authorization header
0 commit comments