def GetProxyOpener(proxy_set): """Get a urlopener for use with a proxy @param proxy_set: proxy settings to use """ Log("[util][info] Making proxy opener with %s" % str(proxy_set)) proxy_info = dict(proxy_set) auth_str = "%(uname)s:%(passwd)s@%(url)s" url = proxy_info['url'] if url.startswith('http://'): auth_str = "http://" + auth_str proxy_info['url'] = url.replace('http://', '') else: pass if len(proxy_info.get('port', '')): auth_str = auth_str + ":%(port)s" proxy_info['passwd'] = ed_crypt.Decrypt(proxy_info['passwd'], proxy_info['pid']) Log("[util][info] Formatted proxy request: %s" % \ (auth_str.replace('%(passwd)s', '****') % proxy_info)) proxy = urllib2.ProxyHandler({"http": auth_str % proxy_info}) opener = urllib2.build_opener(proxy, urllib2.HTTPHandler) return opener
def testDecrypt(self): """Test decrypting a string""" e_str = ed_crypt.Encrypt(self.secret, self.salt) self.assertTrue(e_str != self.secret) self.assertTrue(len(e_str) > 0) d_str = ed_crypt.Decrypt(e_str, self.salt) self.assertTrue(d_str == self.secret)
def GetSiteData(self, name): """Get the information for a given site @param name: site name @return: site config dictionary """ data = self._data.get(name, None) if data is None: return dict(ConfigData.DEFAULT) pword = ed_crypt.Decrypt(data['pword'], data['salt']) rdata = dict(data) del rdata['salt'] rdata['pword'] = pword return rdata