Skip to content

Instantly share code, notes, and snippets.

@mattbasta
Forked from arasmussen/canny.py
Created March 24, 2017 16:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mattbasta/9cc408fc6d9d6a76628e6d494ec769be to your computer and use it in GitHub Desktop.
Save mattbasta/9cc408fc6d9d6a76628e6d494ec769be to your computer and use it in GitHub Desktop.
import binascii
# import codecs
import hashlib
import json
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.ciphers import algorithms, Cipher, modes
from django.conf import settings
from pinecast.helpers import gravatar
def get_canny_token(req):
if not req.user:
return None
user_data = {
'avatarURL': gravatar(req.user.email),
'email': req.user.email,
'id': req.user.id,
'name': req.user.email,
}
plaintext = json.dumps(user_data)
dig = hashlib.md5(settings.CANNY_SSO_KEY.encode('utf-8')).digest()
cipher = Cipher(algorithms.AES(dig), modes.ECB(), backend=default_backend())
encryptor = cipher.encryptor()
encoded = plaintext.encode('utf-8')
encoded += b' ' * (16 - len(encoded) % 16)
ciphertext = encryptor.update(encoded) + encryptor.finalize()
return binascii.hexlify(ciphertext).decode('utf-8')
# return codecs.encode(ciphertext, 'hex_codec').decode('utf-8')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment