def decrypt(self) -> bytes:
    logger.debug(f'Ciphertext length: {len(self.ciphertext)}')
    logger.debug(f'Blocks to decrypt: {(len(self.ciphertext) // self.blocksize)}')
    self.ciphertext = bytearray(self.ciphertext)
    key = self.get_intermediate(self.ciphertext)
    plaintext = bytearray()
    for i in range((len(self.ciphertext) - self.blocksize)):
        b = (self.ciphertext[i] ^ key[(i + self.blocksize)])
        plaintext += b.to_bytes(1, byteorder='big')
    print('\n')
    return plaintext
def decrypt(self) -> bytes:
    logger.debug(f'Ciphertext length: {len(self.ciphertext)}')
    logger.debug(f'Blocks to decrypt: {(len(self.ciphertext) // self.blocksize)}')
    self.ciphertext = bytearray(self.ciphertext)
    key = self.get_intermediate(self.ciphertext)
    plaintext = bytearray()
    for i in range((len(self.ciphertext) - self.blocksize)):
        b = (self.ciphertext[i] ^ key[(i + self.blocksize)])
        plaintext += b.to_bytes(1, byteorder='big')
    print('\n')
    return plaintext