from math import ceil
-from .compat import compat_b64decode, compat_pycrypto_AES
-from .utils import bytes_to_intlist, intlist_to_bytes
+from .compat import (
+ compat_b64decode,
+ compat_ord,
+ compat_pycrypto_AES,
+)
+from .utils import (
+ bytes_to_intlist,
+ intlist_to_bytes,
+)
if compat_pycrypto_AES:
return intlist_to_bytes(aes_gcm_decrypt_and_verify(*map(bytes_to_intlist, (data, key, tag, nonce))))
+def unpad_pkcs7(data):
+ return data[:-compat_ord(data[-1])]
+
+
BLOCK_SIZE_BYTES = 16
'aes_encrypt',
'aes_gcm_decrypt_and_verify',
'aes_gcm_decrypt_and_verify_bytes',
- 'key_expansion'
+ 'key_expansion',
+ 'unpad_pkcs7',
]