mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-08-27 15:31:31 +00:00
crypto.pw_decode: fix one case of raising incorrect exception
This commit is contained in:
parent
789b78cab5
commit
1ea89af012
2 changed files with 9 additions and 1 deletions
|
@ -229,7 +229,10 @@ def pw_decode(data: str, password: Union[bytes, str, None], *, version: int) ->
|
|||
if password is None:
|
||||
return data
|
||||
plaintext_bytes = pw_decode_bytes(data, password, version=version)
|
||||
try:
|
||||
plaintext_str = to_string(plaintext_bytes, "utf8")
|
||||
except UnicodeDecodeError as e:
|
||||
raise InvalidPassword() from e
|
||||
return plaintext_str
|
||||
|
||||
|
||||
|
|
|
@ -254,6 +254,11 @@ class Test_bitcoin(ElectrumTestCase):
|
|||
enc = crypto.pw_encode(payload, password, version=version)
|
||||
with self.assertRaises(InvalidPassword):
|
||||
crypto.pw_decode(enc, wrong_password, version=version)
|
||||
# sometimes the PKCS7 padding gets removed cleanly,
|
||||
# but then UnicodeDecodeError gets raised (internally):
|
||||
enc = 'smJ7j6ccr8LnMOlx98s/ajgikv9s3R1PQuG3GyyIMmo='
|
||||
with self.assertRaises(InvalidPassword):
|
||||
crypto.pw_decode(enc, wrong_password, version=1)
|
||||
|
||||
@needs_test_with_all_chacha20_implementations
|
||||
def test_chacha20_poly1305_encrypt(self):
|
||||
|
|
Loading…
Add table
Reference in a new issue