From 671d53877a8df380a7651d370d0b82863762785e Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 17 Mar 2017 21:39:29 -0400 Subject: [PATCH] Python3 fixes --- netbox/secrets/models.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/netbox/secrets/models.py b/netbox/secrets/models.py index 1761094fc..7d7b1cd50 100644 --- a/netbox/secrets/models.py +++ b/netbox/secrets/models.py @@ -23,7 +23,7 @@ def generate_random_key(bits=256): """ if bits % 32: raise Exception("Invalid key size ({}). Key sizes must be in increments of 32 bits.".format(bits)) - return os.urandom(bits / 8) + return os.urandom(int(bits / 8)) def encrypt_master_key(master_key, public_key): @@ -224,7 +224,7 @@ class SessionKey(models.Model): raise InvalidSessionKey() # Decrypt master key using provided session key - master_key = xor_keys(session_key, self.cipher) + master_key = xor_keys(session_key, bytes(self.cipher)) return master_key @@ -361,9 +361,10 @@ class Secret(CreatedUpdatedModel): raise Exception("Must define ciphertext before unlocking.") # Decrypt ciphertext and remove padding - iv = self.ciphertext[0:16] + iv = bytes(self.ciphertext[0:16]) + ciphertext = bytes(self.ciphertext[16:]) aes = AES.new(secret_key, AES.MODE_CFB, iv) - plaintext = self._unpad(aes.decrypt(self.ciphertext[16:])) + plaintext = self._unpad(aes.decrypt(ciphertext)) # Verify decrypted plaintext against hash if not self.validate(plaintext):