def validate_pairing(self): record = readHomeFile(HOMEFOLDER, '%s.plist' % self.udid) if record: pair_record = plistlib.readPlistFromString(record) hostCertificate = pair_record['HostCertificate'].data hostPrivateKey = pair_record['HostPrivateKey'].data print "Found pairing record for device %s" % self.udid else: print "No pairing record found for device %s" % self.udid return False ValidatePair = self.service.sendRequest({ 'Request': 'ValidatePair', 'PairRecord': pair_record }) if not ValidatePair or 'Error' in ValidatePair: pair_record = None return False StartSession = self.service.sendRequest({ 'Request': 'StartSession', 'HostID': pair_record.get('HostID', self.hostID) }) self.SessionID = StartSession.get('SessionID') if StartSession.get('EnableSessionSSL'): keyfile = writeHomeFile(HOMEFOLDER, self.udid + "_ssl.txt", hostCertificate + '\n' + hostPrivateKey) self.service.start_ssl(keyfile) self.allValues = self.getValue() # iDevice gives more information after being trusted return True
def validate_pairing(self): record = readHomeFile(HOMEFOLDER, '%s.plist' % self.udid) if record: pair_record = plistlib.readPlistFromString(record) hostCertificate = pair_record['HostCertificate'].data hostPrivateKey = pair_record['HostPrivateKey'].data print "Found pairing record for device %s" % self.udid else: print "No pairing record found for device %s" % self.udid return False ValidatePair = self.service.sendRequest({ 'Request': 'ValidatePair', 'PairRecord': pair_record }) if not ValidatePair or 'Error' in ValidatePair: pair_record = None return False StartSession = self.service.sendRequest({ 'Request': 'StartSession', 'HostID': pair_record.get('HostID', self.hostID) }) self.SessionID = StartSession.get('SessionID') if StartSession.get('EnableSessionSSL'): keyfile = writeHomeFile(HOMEFOLDER, self.udid + "_ssl.txt", hostCertificate + '\n' + hostPrivateKey) self.service.start_ssl(keyfile) self.allValues = self.getValue( ) # iDevice gives more information after being trusted return True
def validate_pairing(self): pair_record = None certPem = None privateKeyPem = None if sys.platform == "win32": folder = os.environ["ALLUSERSPROFILE"] + "/Apple/Lockdown/" elif sys.platform == "darwin": folder = "/var/db/lockdown/" elif len(sys.platform) >= 5: if sys.platform[0:5] == "linux": folder = "/var/lib/lockdown/" try: pair_record = plistlib.readPlist(folder + "%s.plist" % self.identifier) except: pair_record = None if pair_record: print "Using iTunes pair record: %s.plist" % self.identifier certPem = pair_record["HostCertificate"].data privateKeyPem = pair_record["HostPrivateKey"].data else: print "No iTunes pairing record found for device %s" % self.identifier print "Looking for pymobiledevice pairing record" record = readHomeFile(HOMEFOLDER, "%s.plist" % self.identifier) if record: pair_record = plistlib.readPlistFromString(record) print "Found pymobiledevice pairing record for device %s" % self.udid certPem = pair_record["HostCertificate"].data privateKeyPem = pair_record["HostPrivateKey"].data else: print "No pymobiledevice pairing record found for device %s" % self.identifier return False self.record = pair_record ValidatePair = {"Label": self.label, "Request": "ValidatePair", "PairRecord": pair_record} self.c = PlistService(62078,self.udid) self.c.sendPlist(ValidatePair) r = self.c.recvPlist() if not r or r.has_key("Error"): pair_record = None print "ValidatePair fail", ValidatePair return False self.hostID = pair_record.get("HostID", self.hostID) self.SystemBUID = pair_record.get("SystemBUID", self.SystemBUID) d = {"Label": self.label, "Request": "StartSession", "HostID": self.hostID, 'SystemBUID': self.SystemBUID} self.c.sendPlist(d) startsession = self.c.recvPlist() self.SessionID = startsession.get("SessionID") if startsession.get("EnableSessionSSL"): sslfile = self.identifier + "_ssl.txt" sslfile = writeHomeFile(HOMEFOLDER, sslfile, certPem + "\n" + privateKeyPem) self.c.ssl_start(sslfile, sslfile) self.paired = True return True
def validate_pairing(self): pair_record = None certPem = None privateKeyPem = None if sys.platform == "win32": folder = os.environ["ALLUSERSPROFILE"] + "/Apple/Lockdown/" elif sys.platform == "darwin": folder = "/var/db/lockdown/" pair_record = plistlib.readPlist(folder + "%s.plist" % self.identifier) if pair_record: print "Using iTunes pair record: %s.plist" % self.identifier certPem = pair_record["HostCertificate"].data privateKeyPem = pair_record["HostPrivateKey"].data else: print "No iTunes pairing record found for device %s" % self.identifier print "Lokking for pymobiledevice pairing record" record = readHomeFile(HOMEFOLDER, "%s.plist" % self.identifier) if record: pair_record = plistlib.readPlistFromString(record) print "Found pymobiledevice pairing record for device %s" % self.udid certPem = pair_record["HostCertificate"].data privateKeyPem = pair_record["HostPrivateKey"].data else: print "No pymobiledevice pairing record found for device %s" % self.identifier return False ValidatePair = {"Request": "ValidatePair", "PairRecord": pair_record} self.c = PlistService(62078, self.udid) self.c.sendPlist(ValidatePair) r = self.c.recvPlist() if not r or r.has_key("Error"): pair_record = None print "ValidatePair fail", ValidatePair return False d = { "Request": "StartSession", "HostID": pair_record.get("HostID", self.hostID) } self.c.sendPlist(d) startsession = self.c.recvPlist() self.SessionID = startsession.get("SessionID") if startsession.get("EnableSessionSSL"): sslfile = self.identifier + "_ssl.txt" sslfile = writeHomeFile(HOMEFOLDER, sslfile, certPem + "\n" + privateKeyPem) self.c.ssl_start(sslfile, sslfile) self.udid = self.getValue("", "UniqueDeviceID") self.allValues = self.getValue("", "") self.paired = True return True
def validate_pairing(self): pair_record = None certPem = None privateKeyPem = None record = readHomeFile(HOMEFOLDER, "%s.plist" % self.identifier) if record: pair_record = plistlib.readPlistFromString(record) certPem = pair_record["HostCertificate"].data privateKeyPem = pair_record["HostPrivateKey"].data print "Found pairing record for device %s" % self.udid else: print "No pairing record found for device %s" % self.identifier return if False: if sys.platform == "win32": folder = os.environ["ALLUSERSPROFILE"] + "/Apple/Lockdown/" elif sys.platform == "darwin": folder = "/var/db/lockdown/" pair_record = plistlib.readPlist(folder + "%s.plist" % self.identifier) print "Using iTunes pair record" ValidatePair = {"Request": "ValidatePair", "PairRecord": pair_record} self.c.sendPlist(ValidatePair) ValidatePair = self.c.recvPlist() if not ValidatePair or ValidatePair.has_key("Error"): pair_record =None print "ValidatePair fail", ValidatePair return False self.paired = True #print "Validate Pairing OK", ValidatePair d = {"Request": "StartSession", "HostID": pair_record.get("HostID", self.hostID)} self.c.sendPlist(d) startsession = self.c.recvPlist() #print "Starting session",startsession self.SessionID = startsession.get("SessionID") if startsession.get("EnableSessionSSL"): sslfile = self.identifier + "_ssl.txt" sslfile = writeHomeFile(HOMEFOLDER, sslfile, certPem + "\n" + privateKeyPem) self.c.ssl_start(sslfile, sslfile) #print "SSL started" self.udid = self.getValue("", "UniqueDeviceID") self.allValues = self.getValue("", "") #print "UDID", self.udid return True