Esempio n. 1
0
    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()
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)