Frage zu pycrypto

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
sveni_lee
User
Beiträge: 90
Registriert: Montag 14. März 2016, 09:50

Frage zu pycrypto

Beitragvon sveni_lee » Montag 13. Februar 2017, 08:37

Ich versuche grad ein neues Plugin für KODI zu schreiben, das meinen jdownloader überwacht...
Es gibt auch einen fertigen Clienten der mit myJdownloader kommunizieren kann.

Mein Problem ist nun das dieser Client den pycrypto verwendet. Im Grunde ist das noch zu lösen. Ich habe auf
meiner Entwicklungsumgebung (Sublime) eine PreBuild version von pyCrypto genommen und dort den ordner mit
Crypto aus der exe-Datei extrahiert und ihn zu meinem Plugin gepackt. Das funktioniert auch wunderbar!
Wenn ich das ganze aber nun in KODI probiere bekomme ich den Dehler, das eine DLL nicht vorhanden ist (_AES).

Code: Alles auswählen

 File "d:\KODI-Krypton\portable_data\addons\plugin.program.myPlugin\Crypto\Cipher\AES.py", line 50, in <module>
 from Crypto.Cipher import _AES
 ImportError: DLL load failed: Das angegebene Modul wurde nicht gefunden.


fogende zwei funktionen benötigen crypto:

Code: Alles auswählen

 def __decrypt(self,secret_token,data):
        """
        Decrypts the data from the server using the provided token
        :param secret_token:
        :param data:
        """
        init_vector = secret_token[:len(secret_token)//2]
        key = secret_token[len(secret_token)//2:]
        decryptor = AES.new(key, AES.MODE_CBC, init_vector)
        decrypted_data = UNPAD(decryptor.decrypt(base64.b64decode(data)))
return decrypted_data


Code: Alles auswählen

def __encrypt(self,secret_token,data):
        """
        Encrypts the data from the server using the provided token
        :param secret_token:
        :param data:
        """
        data = PAD(data.encode('utf-8'))
        init_vector = secret_token[:len(secret_token)//2]
        key = secret_token[len(secret_token)//2:]
        encryptor = AES.new(key, AES.MODE_CBC, init_vector)
        encrypted_data = base64.b64encode(encryptor.encrypt(data))
return encrypted_data.decode('utf-8')


und genau der Funktionsaufruf AES.new(key, AES.MODE_CBC, init_vector) löst den Fehler aus...
könnte man das ganze auch ohne crypto umsetzen, um dem Fehler aus dem Weg zu gehen?

Zurück zu „Allgemeine Fragen“

Wer ist online?

Mitglieder in diesem Forum: Yahoo [Bot]