parameters: (self, http_request, canonical_request)
return_statement: return '\n'.join(sts)
docstring: Return the canonical StringToSign as well as a dict
          containing the original version of all headers that
          were included in the StringToSign.
docstring_summary: Return the canonical StringToSign as well as a dict
          containing the original version of all headers that
          were included in the StringToSign.
docstring_tokens: Return the canonical StringToSign as well as a dict containing the original version of all headers that were included in the StringToSign .
function: def string_to_sign(self, http_request, canonical_request):
          """
          Return the canonical StringToSign as well as a dict
          containing the original version of all headers that
          were included in the StringToSign.
          """
          sts = ['AWS4-HMAC-SHA256']
          sts.append(http_request.headers['X-Amz-Date'])
          sts.append(self.credential_scope(http_request))
          sts.append(sha256(canonical_request.encode('utf-8')).hexdigest())
          return '\n'.join(sts)
function_tokens: def string_to_sign ( self , http_request , canonical_request ) : sts = [ 'AWS4-HMAC-SHA256' ] sts . append ( http_request . headers [ 'X-Amz-Date' ] ) sts . append ( self . credential_scope ( http_request ) ) sts . append ( sha256 ( canonical_request . encode ( 'utf-8' ) ) . hexdigest ( ) ) return '\n' . join ( sts )