def _hash_private_key(self): key_path = os.path.join(env.get_profile_path(), 'owner.key') if not os.path.exists(key_path): return None try: f = open(key_path, 'r') lines = f.readlines() f.close() except IOError: logging.exception('Error reading private key') return None key = "" begin_found = False end_found = False for line in lines: line = line.strip() if line.startswith(('-----BEGIN DSA PRIVATE KEY-----', '-----BEGIN OPENSSH PRIVATE KEY-----')): begin_found = True continue if line.startswith(('-----END DSA PRIVATE KEY-----', '-----END OPENSSH PRIVATE KEY-----')): end_found = True continue key += line if not (len(key) and begin_found and end_found): logging.error('Error parsing public key.') return None # hash it key_hash = util.sha_data(key) return util.printable_hash(key_hash)
def _hash_private_key(self): key_path = os.path.join(env.get_profile_path(), 'owner.key') if not os.path.exists(key_path): return None try: f = open(key_path, 'r') lines = f.readlines() f.close() except IOError: logging.exception('Error reading private key') return None key = "" begin_found = False end_found = False for l in lines: l = l.strip() if l.startswith('-----BEGIN DSA PRIVATE KEY-----'): begin_found = True continue if l.startswith('-----END DSA PRIVATE KEY-----'): end_found = True continue key += l if not (len(key) and begin_found and end_found): logging.error('Error parsing public key.') return None # hash it key_hash = util.sha_data(key) return util.printable_hash(key_hash)
def md5_file(filepath): md = md5() f = file(filepath, 'rb') md.update(f.read()) digest = md.hexdigest() hash = util.printable_hash(digest) return hash
def _next_round_robin_buddy(self, recd): logger.debug('meshNextRoundRobinBuddy') if recd.meshReqCallbackId: GLib.source_remove(recd.meshReqCallbackId) recd.meshReqCallbackId = 0 # delete any stub of a partially downloaded file path = recd.getMediaFilepath() if path and os.path.exists(path): os.remove(path) good_buddy_obj = None buds = self.activity.get_shared_activity().get_joined_buddies() for buddy_obj in buds: buddy = util.sha_data(buddy_obj.props.key) buddy = util.printable_hash(buddy) if recd.triedMeshBuddies.count(buddy) > 0: logger.debug('mnrrb: weve already tried bud ' + buddy_obj.props.nick) else: logger.debug('mnrrb: ask next buddy: ' + buddy_obj.props.nick) good_buddy_obj = buddy_obj break if good_buddy_obj: buddy = util.sha_data(good_buddy_obj.props.key) buddy = util.printable_hash(buddy) self._req_recd_from_buddy(recd, buddy, good_buddy_obj.props.nick) else: logger.debug('we\'ve tried all buddies here, ' 'and no one has this recd') recd.meshDownloading = False recd.triedMeshBuddies = [] recd.triedMeshBuddies.append(Instance.keyHashPrintable) self.activity.update_download_progress(recd) return False