* fix possible Enigma2 crash while decoding thumbnails
[vuplus_dvbapp-plugin] / mytube / src / __init__.py
index b1f2d39..8d19ff9 100755 (executable)
@@ -2,6 +2,7 @@
 from Components.Language import language
 from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_LANGUAGE
 import os,gettext
+import sha
 PluginLanguageDomain = "MyTube"
 PluginLanguagePath = "Extensions/MyTube/po"
 
@@ -18,5 +19,29 @@ def _(txt):
                t = gettext.gettext(txt)
        return t
 
-localeInit()
-language.addCallback(localeInit)
\ No newline at end of file
+def bin2long(s):
+       return reduce( lambda x,y:(x<<8L)+y, map(ord, s))
+
+def long2bin(l):
+       res = ""
+       for byte in range(128):
+               res += chr((l >> (1024 - (byte + 1) * 8)) & 0xff)
+       return res
+
+def rsa_pub1024(src, mod):
+       return long2bin(pow(bin2long(src), 65537, bin2long(mod)))
+       
+def decrypt_block(src, mod):
+       if len(src) != 128 and len(src) != 202:
+               return None
+       dest = rsa_pub1024(src[:128], mod)
+       hash = sha.new(dest[1:107])
+       if len(src) == 202:
+               hash.update(src[131:192])       
+       result = hash.digest()
+       if result == dest[107:127]:
+               return dest
+       return None
+
+#localeInit()
+#language.addCallback(localeInit)
\ No newline at end of file