From ef46a1a49944a490410248751585c9cd986b5407 Mon Sep 17 00:00:00 2001 From: pipcat Date: Mon, 21 May 2018 18:26:56 +0200 Subject: [PATCH] alternativa a aes para mega y correccion pelispedia chomikuj --- plugin.video.alfa/channels/pelispedia.py | 5 ++--- plugin.video.alfa/lib/megaserver/client.py | 10 +++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) mode change 100755 => 100644 plugin.video.alfa/lib/megaserver/client.py diff --git a/plugin.video.alfa/channels/pelispedia.py b/plugin.video.alfa/channels/pelispedia.py index fa8282d5..77ecaa34 100644 --- a/plugin.video.alfa/channels/pelispedia.py +++ b/plugin.video.alfa/channels/pelispedia.py @@ -538,6 +538,7 @@ def play(item): mp4 = scrapertools.find_single_match(data, '"link":"([^"]*)') if mp4: mp4 = mp4.replace('\/', '/') + if 'chomikuj.pl/' in mp4: mp4 += "|Referer=%s" % item.referer itemlist.append(['.mp4', mp4, 0, subtitle]) break @@ -714,12 +715,10 @@ def obtener_cripto(password, plaintext): try: # Intentar con librería AES del sistema from Crypto.Cipher import AES cipherSpec = AES.new(kdf['key'], AES.MODE_CBC, iv) - ciphertext = cipherSpec.encrypt(paddedPlaintext) - except: # Si falla intentar con librería del addon import jscrypto cipherSpec = jscrypto.new(kdf['key'], jscrypto.MODE_CBC, iv) - ciphertext = cipherSpec.encrypt(paddedPlaintext) + ciphertext = cipherSpec.encrypt(paddedPlaintext) return json.dumps({'ct': base64.b64encode(ciphertext), 'iv': iv.encode("hex"), 's': salt.encode("hex")}, sort_keys=True, separators=(',', ':')) diff --git a/plugin.video.alfa/lib/megaserver/client.py b/plugin.video.alfa/lib/megaserver/client.py old mode 100755 new mode 100644 index b896ac8e..d81cb450 --- a/plugin.video.alfa/lib/megaserver/client.py +++ b/plugin.video.alfa/lib/megaserver/client.py @@ -6,7 +6,6 @@ import time import urllib from threading import Thread -from Crypto.Cipher import AES from file import File from handler import Handler from platformcode import logger @@ -164,8 +163,13 @@ class Client(object): return self.base64urlencode(self.a32_to_str(a)) def aes_cbc_decrypt(self, data, key): - decryptor = AES.new(key, AES.MODE_CBC, '\0' * 16) - #decryptor = aes.AESModeOfOperationCBC(key, iv='\0' * 16) + try: + from Crypto.Cipher import AES + decryptor = AES.new(key, AES.MODE_CBC, '\0' * 16) + #decryptor = aes.AESModeOfOperationCBC(key, iv='\0' * 16) + except: + import jscrypto + decryptor = jscrypto.new(key, AES.MODE_CBC, '\0' * 16) return decryptor.decrypt(data) def aes_cbc_decrypt_a32(self,data, key):