]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/aes.py
[aes] Add unpad_pkcs7
[yt-dlp.git] / yt_dlp / aes.py
index 8503e3dfd63524ce5246b2d826e3e9dea6fb56d3..b37f0dd39289620862343d79a5792f7e9823e5d5 100644 (file)
@@ -2,8 +2,15 @@
 
 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:
@@ -25,6 +32,10 @@ def aes_gcm_decrypt_and_verify_bytes(data, key, tag, nonce):
         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
 
 
@@ -506,5 +517,6 @@ def ghash(subkey, data):
     'aes_encrypt',
     'aes_gcm_decrypt_and_verify',
     'aes_gcm_decrypt_and_verify_bytes',
-    'key_expansion'
+    'key_expansion',
+    'unpad_pkcs7',
 ]