Guest User

Untitled

a guest
Feb 16th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 KB | None | 0 0
  1. RESPONSE++++++++++++++++++++++++++++++++++++
  2. Response code: 403
  3.  
  4. <ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
  5. <Error>
  6. <Type>Sender</Type>
  7. <Code>SignatureDoesNotMatch</Code>
  8. <Message>The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.</Message>
  9. </Error>
  10. <RequestId>a19a5fa1-3228-11e9-b2bc-ddb6d8a1cb1c</RequestId>
  11. </ErrorResponse>
  12.  
  13.  
  14. Process finished with exit code 0
  15.  
  16. import datetime
  17. import hashlib
  18. import hmac
  19. import urllib.parse
  20. import requests
  21. method = 'GET'
  22. service = 'ses'
  23. host = 'email.us-east-1.amazonaws.com'
  24. region = 'us-east-1'
  25. endpoint = 'https://email.us-east-1.amazonaws.com/'
  26.  
  27.  
  28. def sign(key, msg):
  29. return hmac.new(key, msg.encode('utf-8'), hashlib.sha256).digest()
  30.  
  31.  
  32. def getSignatureKey(key, dateStamp, regionName, serviceName):
  33. kDate = sign(('AWS4' + key).encode('utf-8'), dateStamp)
  34. kRegion = sign(kDate, regionName)
  35. kService = sign(kRegion, serviceName)
  36. kSigning = sign(kService, 'aws4_request')
  37. return kSigning
  38.  
  39.  
  40. access_key = '<my access_key here>'
  41. secret_key = '<my secret_key here>'
  42. my_email = 'my email here'
  43.  
  44.  
  45. t = datetime.datetime.utcnow()
  46. amz_date = t.strftime('%Y%m%dT%H%M%SZ')
  47. datestamp = t.strftime('%Y%m%d')
  48. canonical_uri = '/'
  49. canonical_headers = 'host:' + host + 'n'
  50. signed_headers = 'host'
  51. algorithm = 'AWS4-HMAC-SHA256'
  52. credential_scope = datestamp + '/' + region + '/' + service + '/' + 'aws4_request'
  53.  
  54. canonical_querystring = '''Action=SendEmail
  55. &Source=%s%40gmail.com
  56. &Destination.ToAddresses.member.1=%s%40gmail.com
  57. &Message.Subject.Data=This%20is%20the%20subject%20line.
  58. &Message.Body.Text.Data=Hello.%20I%20hope%20you%20are%20having%20a%20good%20day''' % (my_email, my_email)
  59.  
  60. canonical_querystring += '&X-Amz-Algorithm=AWS4-HMAC-SHA256'
  61. canonical_querystring += '&X-Amz-Credential=' + urllib.parse.quote_plus(access_key + '/' + credential_scope)
  62. canonical_querystring += '&X-Amz-Date=' + amz_date
  63. canonical_querystring += '&X-Amz-Expires=30'
  64. canonical_querystring += '&X-Amz-SignedHeaders=' + signed_headers
  65.  
  66. payload_hash = hashlib.sha256(('').encode('utf-8')).hexdigest()
  67. canonical_request = method + 'n' + canonical_uri + 'n' + canonical_querystring + 'n' + canonical_headers + 'n' + signed_headers + 'n' + payload_hash
  68. string_to_sign = algorithm + 'n' + amz_date + 'n' + credential_scope + 'n' + hashlib.sha256(canonical_request.encode('utf-8')).hexdigest()
  69. signing_key = getSignatureKey(secret_key, datestamp, region, service)
  70. signature = hmac.new(signing_key, (string_to_sign).encode("utf-8"), hashlib.sha256).hexdigest()
  71. canonical_querystring += '&X-Amz-Signature=' + signature
  72. request_url = endpoint + "?" + canonical_querystring
  73.  
  74. print('nBEGIN REQUEST++++++++++++++++++++++++++++++++++++')
  75. print('Request URL = ' + request_url)
  76. r = requests.get(request_url)
  77.  
  78. print('nRESPONSE++++++++++++++++++++++++++++++++++++')
  79. print('Response code: %dn' % r.status_code)
  80. print(r.text)
Add Comment
Please, Sign In to add comment