Example #1
0
 def v2_sign(self, verb, params):
     #TODO: Now this assumes path is always '/'.
     stringToSign = verb + '\n' + urlparse.urlsplit(self._endpoint)[1] + '\n/\n'
 
     stringToSign += '&'.join(urllib.quote(misc.to_bytes(k), safe='~') \
                              + '=' + urllib.quote(misc.to_bytes(v), safe='~') \
                         for k, v in sorted(params.iteritems()))
 
     return base64.b64encode(hmac.new(misc.to_bytes(self._secretkey), 
                                      misc.to_bytes(stringToSign), 
                                      hashlib.sha256).digest())
Example #2
0
 def v2_sign(self, verb, params):
     #TODO: Now this assumes path is always '/'.
     stringToSign = verb + '\n' + urllib.parse.urlsplit(self._endpoint)[1] + '\n/\n'
 
     stringToSign += '&'.join(urllib.parse.quote(misc.to_bytes(k), safe='~') \
                              + '=' + urllib.parse.quote(misc.to_bytes(v), safe='~') \
                         for k, v in sorted(params.items()))
 
     return base64.b64encode(hmac.new(misc.to_bytes(self._secretkey), 
                                      misc.to_bytes(stringToSign), 
                                      hashlib.sha256).digest())
Example #3
0
    def _construct_post_data(self, inParams, verb=HTTP_POST):
        data = dict(inParams)

        data[u'SignatureVersion'] = self._signature_version
        data[u'Version'] = self._api_version
        data[u'AWSAccessKeyId'] = self._accessKey
        data[u'Timestamp'] = datetime.utcnow().isoformat()
        data[u'SignatureMethod'] = u'HmacSHA256'
        data[u'ContentType'] = u'JSON'
        data[u'Signature'] = self._signer.sign(verb, data)

        return misc.to_bytes('&'.join(urllib.quote(misc.to_bytes(k)) + '=' \
                                      + urllib.quote(misc.to_bytes(v)) \
                                      for k, v in data.iteritems()))
Example #4
0
    def _construct_post_data(self, inParams, verb=HTTP_POST):
        data = dict(inParams)

        data['SignatureVersion'] = self._signature_version
        data['Version'] = self._api_version
        data['AWSAccessKeyId'] = self._accessKey
        data['Timestamp'] = datetime.utcnow().isoformat()
        data['SignatureMethod'] = 'HmacSHA256'
        data['ContentType'] = 'JSON'
        data['Signature'] = self._signer.sign(verb, data)

        return misc.to_bytes('&'.join(urllib.parse.quote(misc.to_bytes(k)) + '=' \
                                      + urllib.parse.quote(misc.to_bytes(v)) \
                                      for k, v in data.items()))
Example #5
0
    def _construct_post_data(self, inParams, verb=HTTP_POST):
        data = dict(inParams)

        data["SignatureVersion"] = self._signature_version
        data["Version"] = self._api_version
        data["AWSAccessKeyId"] = self._accessKey
        data["Timestamp"] = datetime.utcnow().isoformat()
        data["SignatureMethod"] = "HmacSHA256"
        data["ContentType"] = "JSON"
        data["Signature"] = self._signer.sign(verb, data)

        return misc.to_bytes(
            "&".join(
                urllib.parse.quote(misc.to_bytes(k)) + "=" + urllib.parse.quote(misc.to_bytes(v))
                for k, v in data.items()
            )
        )
Example #6
0
    def _construct_get_url(self, inParams, verb=HTTP_GET):
        '''
        Construct AWS Query Get url 
        '''
        params = dict(inParams)

        params[u'SignatureVersion'] = self._signature_version
        params[u'Version'] = self._api_version
        params[u'AWSAccessKeyId'] = self._accessKey
        params[u'Timestamp'] = datetime.utcnow().isoformat()
        params[u'SignatureMethod'] = u'HmacSHA256'
        params[u'ContentType'] = u'JSON'
        params[u'Signature'] = self._signer.sign(verb, params)

        host = self._endpoint if self._endpoint.endswith(u'/') else self._endpoint + u'/'
        return misc.to_bytes(host) + '?' + '&'.join\
            (urllib.quote(misc.to_bytes(k)) + '=' + urllib.quote(misc.to_bytes(v)) \
             for k, v in params.iteritems())
Example #7
0
    def _construct_get_url(self, inParams, verb=HTTP_GET):
        '''
        Construct AWS Query Get url 
        '''
        params = dict(inParams)

        params['SignatureVersion'] = self._signature_version
        params['Version'] = self._api_version
        params['AWSAccessKeyId'] = self._accessKey
        params['Timestamp'] = datetime.utcnow().isoformat()
        params['SignatureMethod'] = 'HmacSHA256'
        params['ContentType'] = 'JSON'
        params['Signature'] = self._signer.sign(verb, params)

        host = self._endpoint if self._endpoint.endswith('/') else self._endpoint + '/'
        return misc.to_bytes(host) + '?' + '&'.join\
            (urllib.parse.quote(misc.to_bytes(k)) + '=' + urllib.parse.quote(misc.to_bytes(v)) \
             for k, v in params.items())
Example #8
0
    def _construct_get_url(self, inParams, verb=HTTP_GET):
        """
        Construct AWS Query Get url 
        """
        params = dict(inParams)

        params["SignatureVersion"] = self._signature_version
        params["Version"] = self._api_version
        params["AWSAccessKeyId"] = self._accessKey
        params["Timestamp"] = datetime.utcnow().isoformat()
        params["SignatureMethod"] = "HmacSHA256"
        params["ContentType"] = "JSON"
        params["Signature"] = self._signer.sign(verb, params)

        host = self._endpoint if self._endpoint.endswith("/") else self._endpoint + "/"
        return (
            misc.to_bytes(host)
            + "?"
            + "&".join(
                urllib.parse.quote(misc.to_bytes(k)) + "=" + urllib.parse.quote(misc.to_bytes(v))
                for k, v in params.items()
            )
        )