Encode all str keys passed to Crypto #332

pull/400/head
Colin Kuebler 2019-11-15 10:13:13 -05:00
parent 130a974629
commit f2499d24f4
2 changed files with 3 additions and 3 deletions

View File

@ -113,7 +113,7 @@ class JSONHandler(tornado.web.RequestHandler):
print(self.request.headers)
if payload:
try:
decrypted_payload = unpad(AES.new(options.secKey, AES.MODE_ECB).decrypt(binascii.unhexlify(payload))).decode()
decrypted_payload = unpad(AES.new(options.secKey.encode(), AES.MODE_ECB).decrypt(binascii.unhexlify(payload))).decode()
if decrypted_payload[0] != "{":
raise ValueError("payload is not JSON")
print("payload", decrypted_payload)

View File

@ -21,8 +21,8 @@ iot:
from Crypto.Cipher import AES
pad = lambda s: s + (16 - len(s) % 16) * chr(16 - len(s) % 16)
unpad = lambda s: s[:-ord(s[len(s) - 1:])]
encrypt = lambda msg, key: AES.new(key, AES.MODE_ECB).encrypt(pad(msg))
decrypt = lambda msg, key: unpad(AES.new(key, AES.MODE_ECB).decrypt(msg))
encrypt = lambda msg, key: AES.new(key.encode(), AES.MODE_ECB).encrypt(pad(msg))
decrypt = lambda msg, key: unpad(AES.new(key.encode(), AES.MODE_ECB).decrypt(msg))
def iot_dec(message, local_key):
message_clear = decrypt(base64.b64decode(message[19:]), local_key)