Skip to content

Instantly share code, notes, and snippets.

@arasmussen
Forked from mattbasta/canny.py
Last active 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 arasmussen/8ca6c5ff0f1b4e1d9ab2a94aa088ac03 to your computer and use it in GitHub Desktop.
Save arasmussen/8ca6c5ff0f1b4e1d9ab2a94aa088ac03 to your computer and use it in GitHub Desktop.
import binascii
import hashlib
import json
from Crypto.Cipher import AES
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()
def pad_input(input):
block_size = 16
if (len(input) % block_size == 0):
return input
padding_required = block_size - (len(input) % block_size)
return input.encode('utf-8') + padding_required * bytes([padding_required])
cipher = AES.new(dig, AES.MODE_ECB)
encrypted = binascii.hexlify(bytearray(cipher.encrypt(pad_input(plaintext)))).decode('utf-8')
return encrypted
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment