Skip to content

Commit 575f15e

Browse files
authored
Merge pull request #34 from Mastercard/bugfix/secure-decode
Update jwe_encryption.py Secure unpadding
2 parents 9844947 + 9595a55 commit 575f15e

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

client_encryption/jwe_encryption.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import copy
22
import json
33
from Crypto.Cipher import AES
4+
from Crypto.Cipher.AES import block_size
5+
from Crypto.Util.Padding import unpad
46

57
from client_encryption.encoding_utils import url_encode_bytes, decode_jwe
68
from client_encryption.encryption_exception import EncryptionError
@@ -95,7 +97,10 @@ def decrypt_payload(payload, config, _params=None):
9597
raise EncryptionError("Unsupported decryption method:", decryption_method)
9698

9799
decrypted = aes.decrypt(cipher_text)
98-
decoded_payload = ''.join(c for c in decrypted.decode() if c.isprintable())
100+
try:
101+
decoded_payload = unpad(decrypted, block_size)
102+
except ValueError:
103+
decoded_payload = decrypted
99104

100105
if isinstance(json.loads(decoded_payload), list):
101106
json_payload = json.loads(decoded_payload)

0 commit comments

Comments
 (0)