aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/__init__.py
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2010-10-15 13:20:50 +0200
committerghost <andreas.monzner@multimedia-labs.de>2010-10-15 13:20:50 +0200
commit7dd3be2ced167827d6e2555a23e98304a10640bc (patch)
treeddad35b0dde11d7ef1c5498ae4fd3781de9a9e26 /lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/__init__.py
parent0cc396a9dd3478a71b7a0bff4f5a6fdfbc52f22d (diff)
parent211a0c7020f0e69de917cb8ce8808799b1268c8f (diff)
downloadenigma2-7dd3be2ced167827d6e2555a23e98304a10640bc.tar.gz
enigma2-7dd3be2ced167827d6e2555a23e98304a10640bc.zip
Merge remote branch 'remotes/origin/bug_597_crashlog_show_skinname'
Diffstat (limited to 'lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/__init__.py')
-rwxr-xr-xlib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/__init__.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/__init__.py b/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/__init__.py
index e69de29b..cabaadd5 100755
--- a/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/__init__.py
+++ b/lib/python/Plugins/SystemPlugins/CrashlogAutoSubmit/__init__.py
@@ -0,0 +1,40 @@
+import sha
+
+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
+
+def validate_cert(cert, key):
+ buf = decrypt_block(cert[8:], key)
+ if buf is None:
+ return None
+ return buf[36:107] + cert[139:196]
+
+def read_random():
+ try:
+ fd = open("/dev/urandom", "r")
+ buf = fd.read(8)
+ fd.close()
+ return buf
+ except:
+ return None \ No newline at end of file