fix warning -> use hashlib instead of sha1 module
[enigma2-plugins.git] / mytube / src / __init__.py
1 # -*- coding: ISO-8859-1 -*-
2 from Components.Language import language
3 from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_LANGUAGE
4 import os, gettext, hashlib
5 PluginLanguageDomain = "MyTube"
6 PluginLanguagePath = "Extensions/MyTube/locale"
7
8 def localeInit():
9         lang = language.getLanguage()[:2] # getLanguage returns e.g. "fi_FI" for "language_country"
10         os.environ["LANGUAGE"] = lang # Enigma doesn't set this (or LC_ALL, LC_MESSAGES, LANG). gettext needs it!
11         print "[MyTube] set language to ", lang
12         gettext.bindtextdomain(PluginLanguageDomain, resolveFilename(SCOPE_PLUGINS, PluginLanguagePath))
13
14 def _(txt):
15         t = gettext.dgettext(PluginLanguageDomain, txt)
16         if t == txt:
17                 #print "[MyTube] fallback to default translation for", txt
18                 t = gettext.gettext(txt)
19         return t
20
21 def bin2long(s):
22         return reduce( lambda x,y:(x<<8L)+y, map(ord, s))
23
24 def long2bin(l):
25         res = ""
26         for byte in range(128):
27                 res += chr((l >> (1024 - (byte + 1) * 8)) & 0xff)
28         return res
29
30 def rsa_pub1024(src, mod):
31         return long2bin(pow(bin2long(src), 65537, bin2long(mod)))
32         
33 def decrypt_block(src, mod):
34         if len(src) != 128 and len(src) != 202:
35                 return None
36         dest = rsa_pub1024(src[:128], mod)
37         hash = hashlib.sha1(dest[1:107])
38         if len(src) == 202:
39                 hash.update(src[131:192])       
40         result = hash.digest()
41         if result == dest[107:127]:
42                 return dest
43         return None
44
45 #localeInit()
46 #language.addCallback(localeInit)