mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2026-01-30 10:42:05 +00:00
[dependencies] Simplify Cryptodome
Closes #6292, closes #6272, closes #6338
This commit is contained in:
@@ -894,15 +894,15 @@ class BiliIntlBaseIE(InfoExtractor):
|
||||
}
|
||||
|
||||
def _perform_login(self, username, password):
|
||||
if not Cryptodome:
|
||||
if not Cryptodome.RSA:
|
||||
raise ExtractorError('pycryptodomex not found. Please install', expected=True)
|
||||
|
||||
key_data = self._download_json(
|
||||
'https://passport.bilibili.tv/x/intl/passport-login/web/key?lang=en-US', None,
|
||||
note='Downloading login key', errnote='Unable to download login key')['data']
|
||||
|
||||
public_key = Cryptodome.PublicKey.RSA.importKey(key_data['key'])
|
||||
password_hash = Cryptodome.Cipher.PKCS1_v1_5.new(public_key).encrypt((key_data['hash'] + password).encode('utf-8'))
|
||||
public_key = Cryptodome.RSA.importKey(key_data['key'])
|
||||
password_hash = Cryptodome.PKCS1_v1_5.new(public_key).encrypt((key_data['hash'] + password).encode('utf-8'))
|
||||
login_post = self._download_json(
|
||||
'https://passport.bilibili.tv/x/intl/passport-login/web/login/password?lang=en-US', None, data=urlencode_postdata({
|
||||
'username': username,
|
||||
|
||||
@@ -91,7 +91,7 @@ class IviIE(InfoExtractor):
|
||||
for site in (353, 183):
|
||||
content_data = (data % site).encode()
|
||||
if site == 353:
|
||||
if not Cryptodome:
|
||||
if not Cryptodome.CMAC:
|
||||
continue
|
||||
|
||||
timestamp = (self._download_json(
|
||||
@@ -105,8 +105,8 @@ class IviIE(InfoExtractor):
|
||||
|
||||
query = {
|
||||
'ts': timestamp,
|
||||
'sign': Cryptodome.Hash.CMAC.new(self._LIGHT_KEY, timestamp.encode() + content_data,
|
||||
Cryptodome.Cipher.Blowfish).hexdigest(),
|
||||
'sign': Cryptodome.CMAC.new(self._LIGHT_KEY, timestamp.encode() + content_data,
|
||||
Cryptodome.Blowfish).hexdigest(),
|
||||
}
|
||||
else:
|
||||
query = {}
|
||||
@@ -126,7 +126,7 @@ class IviIE(InfoExtractor):
|
||||
extractor_msg = 'Video %s does not exist'
|
||||
elif site == 353:
|
||||
continue
|
||||
elif not Cryptodome:
|
||||
elif not Cryptodome.CMAC:
|
||||
raise ExtractorError('pycryptodomex not found. Please install', expected=True)
|
||||
elif message:
|
||||
extractor_msg += ': ' + message
|
||||
|
||||
@@ -50,10 +50,10 @@ class WrestleUniverseBaseIE(InfoExtractor):
|
||||
data=data, headers=headers, query=query, fatal=fatal)
|
||||
|
||||
def _call_encrypted_api(self, video_id, param='', msg='API', data={}, query={}, fatal=True):
|
||||
if not Cryptodome:
|
||||
if not Cryptodome.RSA:
|
||||
raise ExtractorError('pycryptodomex not found. Please install', expected=True)
|
||||
private_key = Cryptodome.PublicKey.RSA.generate(2048)
|
||||
cipher = Cryptodome.Cipher.PKCS1_OAEP.new(private_key, hashAlgo=Cryptodome.Hash.SHA1)
|
||||
private_key = Cryptodome.RSA.generate(2048)
|
||||
cipher = Cryptodome.PKCS1_OAEP.new(private_key, hashAlgo=Cryptodome.SHA1)
|
||||
|
||||
def decrypt(data):
|
||||
if not data:
|
||||
|
||||
Reference in New Issue
Block a user