]>
jfr.im git - yt-dlp.git/blob - yt_dlp/dependencies/Cryptodome.py
b95f45d720a5eb7d23f4221d45ec5131033b2ba7
3 from ..compat
import functools
4 from ..compat
.compat_utils
import EnhancedModule
, passthrough_module
6 EnhancedModule(__name__
)
9 import Cryptodome
as _parent
12 import Crypto
as _parent
13 except (ImportError, SyntaxError): # Old Crypto gives SyntaxError in newer Python
14 _parent
= EnhancedModule('Cryptodome')
15 __bool__
= lambda: False
19 def __getattr__(name
):
21 submodule
= importlib
.import_module(f
'.{name}', _parent
.__name
__)
23 return getattr(_parent
, name
)
24 return passthrough_module(f
'{__name__}.{name}', submodule
)
29 def _yt_dlp__identifier():
30 if _parent
.__name
__ == 'Crypto':
31 from Crypto
.Cipher
import AES
33 # In pycrypto, mode defaults to ECB. See:
34 # https://www.pycryptodome.org/en/latest/src/vs_pycrypto.html#:~:text=not%20have%20ECB%20as%20default%20mode
35 AES
.new(b
'abcdefghijklmnop')
38 return _parent
.__name
__