def login(self, retries=0): credentials = self.showLoginDlg() if not credentials: return self.username, self.passphrase = credentials hash = hashlib.sha256(self.passphrase).hexdigest() pkbytes = scrypt.hash(hash, self.username, N=2**18, buflen=32) self.pkstr = pycoin.serialize.b2h(pkbytes) se = long(self.pkstr, 16) pk = pycoin.key.Key(secret_exponent=se, netcode=self.netcode) self.wif = pk.wif() self.btcaddr = pk.address() try: self.bmaddr = MM_util.bm.getDeterministicAddress( base64.b64encode(self.pkstr), 4, 1) wp = self.input( "Please enter your Bitcoin Core wallet encryption passphrase:", password=True) if not wp: return MM_util.unlockwallet(wp) addrismine = MM_util.btcd.validateaddress(self.btcaddr)['ismine'] except bitcoinrpc.authproxy.JSONRPCException as jre: if jre.error['code'] == -14: self.info( "The passphrase was not correct. Please try logging in again." ) return except socket.error: self.sockErr() except httplib.BadStatusLine: MM_util.reconnect_btcd(retries) return self.login(retries + 1) if MM_util.bm.createDeterministicAddresses(base64.b64encode(self.pkstr)) == [] \ or not addrismine: if not self.importkeys(): return myidstr = MM_util.createidentmsgstr(self.btcaddr, self.bmaddr, self.username) self.myid = MM_util.MM_loads(self.btcaddr, myidstr) identlist = self.listDict['ident'] = MM_util.loadlist('ident') if not MM_util.searchlistbyhash(identlist, self.myid.hash): if not self.register(myidstr): return self.info("You are now logged in as: %s" % self.username) self.loggedIn = True self.updateUi()
MM_util.appendindex(name, ver.hash) return ver mod_pkstr = pkstr("MM mod", """sr#hrAoe0S4]GCb8~J3>9"Hl$""") vendor_pkstr = pkstr("MM vendor", """[OQ2zu%A|TFef5`!h|]BL""") buyer_pkstr = pkstr("MM buyer", """W3}xa`XrHkoyZ9vHZ/'U{""") mod_btc = btcaddr(mod_pkstr) mod_bm = bmaddr(mod_pkstr) vendor_btc = btcaddr(vendor_pkstr) vendor_bm = bmaddr(vendor_pkstr) buyer_btc = btcaddr(buyer_pkstr) buyer_bm = bmaddr(buyer_pkstr) # IDENT msgstr = MM_util.createidentmsgstr( mod_btc, mod_bm, "MM mod" ) mod = savemsg(mod_btc, 'ident', msgstr) print mod msgstr = MM_util.createidentmsgstr( vendor_btc, vendor_bm, "MM vendor" ) vendor = savemsg(vendor_btc, 'ident', msgstr) print vendor msgstr = MM_util.createidentmsgstr( buyer_btc, buyer_bm, "MM buyer" ) buyer = savemsg(buyer_btc, 'ident', msgstr) print buyer # TAG msgstr = MM_util.createtagmsgstr( vendor_btc, vendor.hash, "Anything", \ "The most useless tag of all! Can be ascribed to anything." ) tag = savemsg(vendor_btc, 'tags', msgstr)
return ver mod_pkstr = pkstr("MM mod", """sr#hrAoe0S4]GCb8~J3>9"Hl$""") vendor_pkstr = pkstr("MM vendor", """[OQ2zu%A|TFef5`!h|]BL""") buyer_pkstr = pkstr("MM buyer", """W3}xa`XrHkoyZ9vHZ/'U{""") mod_btc = btcaddr(mod_pkstr) mod_bm = bmaddr(mod_pkstr) vendor_btc = btcaddr(vendor_pkstr) vendor_bm = bmaddr(vendor_pkstr) buyer_btc = btcaddr(buyer_pkstr) buyer_bm = bmaddr(buyer_pkstr) # IDENT msgstr = MM_util.createidentmsgstr(mod_btc, mod_bm, "MM mod") mod = savemsg(mod_btc, 'ident', msgstr) print mod msgstr = MM_util.createidentmsgstr(vendor_btc, vendor_bm, "MM vendor") vendor = savemsg(vendor_btc, 'ident', msgstr) print vendor msgstr = MM_util.createidentmsgstr(buyer_btc, buyer_bm, "MM buyer") buyer = savemsg(buyer_btc, 'ident', msgstr) print buyer # TAG msgstr = MM_util.createtagmsgstr( vendor_btc, vendor.hash, "Anything", \ "The most useless tag of all! Can be ascribed to anything." ) tag = savemsg(vendor_btc, 'tags', msgstr)