forked from p15670423/monkey
island: Modify KeyBasedEncryptor to get rid of redundant encoding and decoding
This commit is contained in:
parent
fc1affc0e7
commit
404228b04c
|
@ -30,16 +30,16 @@ class KeyBasedEncryptor(IEncryptor):
|
||||||
def encrypt(self, plaintext: str) -> str:
|
def encrypt(self, plaintext: str) -> str:
|
||||||
cipher_iv = Random.new().read(AES.block_size)
|
cipher_iv = Random.new().read(AES.block_size)
|
||||||
cipher = AES.new(self._key, AES.MODE_CBC, cipher_iv)
|
cipher = AES.new(self._key, AES.MODE_CBC, cipher_iv)
|
||||||
return base64.b64encode(cipher_iv + cipher.encrypt(self._pad(plaintext).encode())).decode()
|
return base64.b64encode(cipher_iv + cipher.encrypt(self._pad(plaintext))).decode()
|
||||||
|
|
||||||
def decrypt(self, ciphertext: str):
|
def decrypt(self, ciphertext: str):
|
||||||
enc_message = base64.b64decode(ciphertext)
|
enc_message = base64.b64decode(ciphertext)
|
||||||
cipher_iv = enc_message[0 : AES.block_size]
|
cipher_iv = enc_message[0 : AES.block_size]
|
||||||
cipher = AES.new(self._key, AES.MODE_CBC, cipher_iv)
|
cipher = AES.new(self._key, AES.MODE_CBC, cipher_iv)
|
||||||
return self._unpad(cipher.decrypt(enc_message[AES.block_size :]).decode())
|
return self._unpad(cipher.decrypt(enc_message[AES.block_size :]))
|
||||||
|
|
||||||
def _pad(self, message: str) -> str:
|
def _pad(self, message: str) -> bytes:
|
||||||
return Padding.pad(message.encode(), self._BLOCK_SIZE).decode()
|
return Padding.pad(message.encode(), self._BLOCK_SIZE)
|
||||||
|
|
||||||
def _unpad(self, message: str) -> str:
|
def _unpad(self, message: bytes) -> str:
|
||||||
return Padding.unpad(message.encode(), self._BLOCK_SIZE).decode()
|
return Padding.unpad(message, self._BLOCK_SIZE).decode()
|
||||||
|
|
Loading…
Reference in New Issue