Advertisement
Guest User

Untitled

a guest
Mar 24th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. import binascii
  2. import hashlib
  3. import json
  4.  
  5. from cryptography.hazmat.backends import default_backend
  6. from cryptography.hazmat.primitives.ciphers import algorithms, Cipher, modes
  7. from django.conf import settings
  8.  
  9. from pinecast.helpers import gravatar
  10.  
  11.  
  12. def get_canny_token(req):
  13. if not req.user:
  14. return None
  15.  
  16. user_data = {
  17. 'avatarURL': gravatar(req.user.email),
  18. 'email': req.user.email,
  19. 'id': req.user.id,
  20. 'name': req.user.email,
  21. }
  22. plaintext = json.dumps(user_data)
  23.  
  24. def pad_input(input):
  25. block_size = 16
  26. if (len(input) % block_size == 0):
  27. return input
  28. padding_required = block_size - (len(input) % block_size)
  29. return input.encode('utf-8') + padding_required * bytes([padding_required])
  30.  
  31. dig = hashlib.md5(settings.CANNY_SSO_KEY.encode('utf-8')).digest()
  32. cipher = Cipher(algorithms.AES(dig), modes.ECB(), backend=default_backend())
  33. encryptor = cipher.encryptor()
  34. encrypted = encryptor.update(pad_input(plaintext)) + encryptor.finalize()
  35. return binascii.hexlify(bytearray(encrypted)).decode('utf-8')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement