mega.py icon indicating copy to clipboard operation
mega.py copied to clipboard

Error when login: "Data must be padded to 16 byte boundary in CBC mode"

Open artem78 opened this issue 10 months ago • 0 comments

Hello.

When I try to login to Mega I got error:

user@pc:~$ python3
Python 3.8.10 (default, Nov  7 2024, 13:10:47) 
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from mega import Mega
>>> mega = Mega()
>>> m = mega.login('xxxxxx', 'yyyyyyy')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/user/.local/lib/python3.8/site-packages/mega/mega.py", line 49, in login
    self._trash_folder_node_id = self.get_node_by_type(4)[0]
  File "/home/user/.local/lib/python3.8/site-packages/mega/mega.py", line 429, in get_node_by_type
    nodes = self.get_files()
  File "/home/user/.local/lib/python3.8/site-packages/mega/mega.py", line 355, in get_files
    processed_file = self._process_file(file, shared_keys)
  File "/home/user/.local/lib/python3.8/site-packages/mega/mega.py", line 217, in _process_file
    key = decrypt_key(base64_to_a32(keys[uid]), self.master_key)
  File "/home/user/.local/lib/python3.8/site-packages/mega/crypto.py", line 73, in decrypt_key
    return sum((aes_cbc_decrypt_a32(a[i:i + 4], key)
  File "/home/user/.local/lib/python3.8/site-packages/mega/crypto.py", line 73, in <genexpr>
    return sum((aes_cbc_decrypt_a32(a[i:i + 4], key)
  File "/home/user/.local/lib/python3.8/site-packages/mega/crypto.py", line 42, in aes_cbc_decrypt_a32
    return str_to_a32(aes_cbc_decrypt(a32_to_str(data), a32_to_str(key)))
  File "/home/user/.local/lib/python3.8/site-packages/mega/crypto.py", line 34, in aes_cbc_decrypt
    return aes_cipher.decrypt(data)
  File "/home/user/.local/lib/python3.8/site-packages/Crypto/Cipher/_mode_cbc.py", line 246, in decrypt
    raise ValueError("Data must be padded to %d byte boundary in CBC mode" % self.block_size)
ValueError: Data must be padded to 16 byte boundary in CBC mode
>>> 

With empty credentials mega.login() it logins success and uploading/downloading seems works.

artem78 avatar Dec 03 '24 10:12 artem78