Parcourir la source

Python3 fixes

Jeremy Stretch il y a 8 ans
Parent
commit
671d53877a
1 fichiers modifiés avec 5 ajouts et 4 suppressions
  1. 5 4
      netbox/secrets/models.py

+ 5 - 4
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):