Merge branch 'bug_570_playback_skip_fixes_and_cleanup_ml_aholst' into experimental
[vuplus_dvbapp] / lib / python / Plugins / SystemPlugins / CrashlogAutoSubmit / plugin.py
index 2563981..92c1628 100755 (executable)
@@ -8,12 +8,13 @@ from Screens.Screen import Screen
 from Screens.VirtualKeyBoard import VirtualKeyBoard
 from Screens.ChoiceBox import ChoiceBox
 from Screens.MessageBox import MessageBox
 from Screens.VirtualKeyBoard import VirtualKeyBoard
 from Screens.ChoiceBox import ChoiceBox
 from Screens.MessageBox import MessageBox
-from enigma import ePoint
+from enigma import ePoint, eTPM
 from Tools import Notifications
 
 import os
 from twisted.mail import smtp, relaymanager
 import MimeWriter, mimetools, StringIO
 from Tools import Notifications
 
 import os
 from twisted.mail import smtp, relaymanager
 import MimeWriter, mimetools, StringIO
+from __init__ import bin2long, long2bin, rsa_pub1024, decrypt_block, validate_cert, read_random
 
 config.plugins.crashlogautosubmit = ConfigSubsection()
 config.plugins.crashlogautosubmit.sendmail = ConfigSelection(default = "send", choices = [
 
 config.plugins.crashlogautosubmit = ConfigSubsection()
 config.plugins.crashlogautosubmit.sendmail = ConfigSelection(default = "send", choices = [
@@ -376,11 +377,36 @@ def callCrashMailer(result,session):
 
 def autostart(reason, **kwargs):
        print "[CrashlogAutoSubmit] - autostart"
 
 def autostart(reason, **kwargs):
        print "[CrashlogAutoSubmit] - autostart"
-       if "session" in kwargs:
-               try:
-                       startMailer(kwargs["session"])
-               except ImportError, e:
-                       print "[CrashlogAutoSubmit] Twisted-mail not available, not starting CrashlogAutoSubmitter", e
+       try:
+               device = open("/proc/stb/info/model", "r").readline().strip()
+       except:
+               device = ""     
+       if device != "dm7025":
+               rootkey = ['\x9f', '|', '\xe4', 'G', '\xc9', '\xb4', '\xf4', '#', '&', '\xce', '\xb3', '\xfe', '\xda', '\xc9', 'U', '`', '\xd8', '\x8c', 's', 'o', '\x90', '\x9b', '\\', 'b', '\xc0', '\x89', '\xd1', '\x8c', '\x9e', 'J', 'T', '\xc5', 'X', '\xa1', '\xb8', '\x13', '5', 'E', '\x02', '\xc9', '\xb2', '\xe6', 't', '\x89', '\xde', '\xcd', '\x9d', '\x11', '\xdd', '\xc7', '\xf4', '\xe4', '\xe4', '\xbc', '\xdb', '\x9c', '\xea', '}', '\xad', '\xda', 't', 'r', '\x9b', '\xdc', '\xbc', '\x18', '3', '\xe7', '\xaf', '|', '\xae', '\x0c', '\xe3', '\xb5', '\x84', '\x8d', '\r', '\x8d', '\x9d', '2', '\xd0', '\xce', '\xd5', 'q', '\t', '\x84', 'c', '\xa8', ')', '\x99', '\xdc', '<', '"', 'x', '\xe8', '\x87', '\x8f', '\x02', ';', 'S', 'm', '\xd5', '\xf0', '\xa3', '_', '\xb7', 'T', '\t', '\xde', '\xa7', '\xf1', '\xc9', '\xae', '\x8a', '\xd7', '\xd2', '\xcf', '\xb2', '.', '\x13', '\xfb', '\xac', 'j', '\xdf', '\xb1', '\x1d', ':', '?']
+               etpm = eTPM()
+               l2cert = etpm.getCert(eTPM.TPMD_DT_LEVEL2_CERT)
+               if l2cert is None:
+                       return
+               l2key = validate_cert(l2cert, rootkey)
+               if l2key is None:
+                       return
+               l3cert = etpm.getCert(eTPM.TPMD_DT_LEVEL3_CERT)
+               if l3cert is None:
+                       return
+               l3key = validate_cert(l3cert, l2key)
+               if l3key is None:
+                       return
+               rnd = read_random()
+               if rnd is None:
+                       return
+               val = etpm.challenge(rnd)
+               result = decrypt_block(val, l3key)
+       if device == "dm7025" or result[80:88] == rnd:
+               if "session" in kwargs:
+                       try:
+                               startMailer(kwargs["session"])
+                       except ImportError, e:
+                               print "[CrashlogAutoSubmit] Twisted-mail not available, not starting CrashlogAutoSubmitter", e
 
 
 def openconfig(session, **kwargs):
 
 
 def openconfig(session, **kwargs):