コード例 #1
0
ファイル: trezor.py プロジェクト: huazhouwang/electrum
 def force_pair_with_xpub(self, client, xpub, derivation):
     from electrum import bip32
     xtype = bip32.xpub_type(xpub)
     if client:
         try:
             client_xpub = client.get_xpub(derivation, xtype)
         except (UserCancelled, RuntimeError):
             # Bad / cancelled PIN / passphrase
             client_xpub = None
         if client_xpub == xpub:
             return True
         else:
             return False
コード例 #2
0
ファイル: trustedcoin.py プロジェクト: faircoin/electrumfair
 def on_restore_pw(self, wizard, seed, passphrase, password, encrypt_storage):
     xprv1, xpub1, xprv2, xpub2 = self.xkeys_from_seed(seed, passphrase)
     k1 = keystore.from_xprv(xprv1)
     k2 = keystore.from_xprv(xprv2)
     k1.add_seed(seed)
     k1.update_password(None, password)
     k2.update_password(None, password)
     wizard.data['x1/'] = k1.dump()
     wizard.data['x2/'] = k2.dump()
     long_user_id, short_id = get_user_id(wizard.data)
     xtype = xpub_type(xpub1)
     xpub3 = make_xpub(get_signing_xpub(xtype), long_user_id)
     k3 = keystore.from_xpub(xpub3)
     wizard.data['x3/'] = k3.dump()
     wizard.pw_args = password, encrypt_storage, STO_EV_USER_PW
     wizard.terminate()
コード例 #3
0
 def on_restore_pw(self, wizard, seed, passphrase, password, encrypt_storage):
     xprv1, xpub1, xprv2, xpub2 = self.xkeys_from_seed(seed, passphrase)
     k1 = keystore.from_xprv(xprv1)
     k2 = keystore.from_xprv(xprv2)
     k1.add_seed(seed)
     k1.update_password(None, password)
     k2.update_password(None, password)
     wizard.data['x1/'] = k1.dump()
     wizard.data['x2/'] = k2.dump()
     long_user_id, short_id = get_user_id(wizard.data)
     xtype = xpub_type(xpub1)
     xpub3 = make_xpub(get_signing_xpub(xtype), long_user_id)
     k3 = keystore.from_xpub(xpub3)
     wizard.data['x3/'] = k3.dump()
     wizard.pw_args = password, encrypt_storage, STO_EV_USER_PW
     wizard.terminate()
コード例 #4
0
 def on_restore_pw(self, wizard, seed, passphrase, password, encrypt_storage):
     xprv1, xpub1, xprv2, xpub2 = self.xkeys_from_seed(seed, passphrase)
     k1 = keystore.from_xprv(xprv1)
     k2 = keystore.from_xprv(xprv2)
     k1.add_seed(seed)
     k1.update_password(None, password)
     k2.update_password(None, password)
     wizard.data['x1/'] = k1.dump()
     wizard.data['x2/'] = k2.dump()
     long_user_id, short_id = get_user_id(wizard.data)
     xtype = xpub_type(xpub1)
     xpub3 = make_xpub(get_signing_xpub(xtype), long_user_id)
     k3 = keystore.from_xpub(xpub3)
     wizard.data['x3/'] = k3.dump()
     wizard.pw_args = WizardWalletPasswordSetting(password=password,
                                                  encrypt_storage=encrypt_storage,
                                                  storage_enc_version=StorageEncryptionVersion.USER_PASSWORD,
                                                  encrypt_keystore=bool(password))
     wizard.terminate()
コード例 #5
0
ファイル: trustedcoin.py プロジェクト: zhiyuan2007/electrum
 def create_remote_key(self, email, wizard):
     xpub1 = wizard.storage.get('x1/')['xpub']
     xpub2 = wizard.storage.get('x2/')['xpub']
     # Generate third key deterministically.
     long_user_id, short_id = get_user_id(wizard.storage)
     xtype = xpub_type(xpub1)
     xpub3 = make_xpub(get_signing_xpub(xtype), long_user_id)
     # secret must be sent by the server
     try:
         r = server.create(xpub1, xpub2, email)
     except (socket.error, ErrorConnectingServer):
         wizard.show_message('Server not reachable, aborting')
         wizard.terminate()
         return
     except TrustedCoinException as e:
         if e.status_code == 409:
             r = None
         else:
             wizard.show_message(str(e))
             return
     if r is None:
         otp_secret = None
     else:
         otp_secret = r.get('otp_secret')
         if not otp_secret:
             wizard.show_message(_('Error'))
             return
         _xpub3 = r['xpubkey_cosigner']
         _id = r['id']
         if short_id != _id:
             wizard.show_message(
                 "unexpected trustedcoin short_id: expected {}, received {}"
                 .format(short_id, _id))
             return
         if xpub3 != _xpub3:
             wizard.show_message(
                 "unexpected trustedcoin xpub3: expected {}, received {}".
                 format(xpub3, _xpub3))
             return
     self.request_otp_dialog(wizard, short_id, otp_secret, xpub3)
コード例 #6
0
ファイル: trustedcoin.py プロジェクト: vialectrum/vialectrum
    def on_restore_pw(self, wizard, seed, passphrase, password, encrypt_storage):
        storage = wizard.storage
        xprv1, xpub1, xprv2, xpub2 = self.xkeys_from_seed(seed, passphrase)
        k1 = keystore.from_xprv(xprv1)
        k2 = keystore.from_xprv(xprv2)
        k1.add_seed(seed)
        k1.update_password(None, password)
        k2.update_password(None, password)
        storage.put('x1/', k1.dump())
        storage.put('x2/', k2.dump())
        long_user_id, short_id = get_user_id(storage)
        xtype = xpub_type(xpub1)
        xpub3 = make_xpub(get_signing_xpub(xtype), long_user_id)
        k3 = keystore.from_xpub(xpub3)
        storage.put('x3/', k3.dump())

        storage.set_keystore_encryption(bool(password))
        if encrypt_storage:
            storage.set_password(password, enc_version=STO_EV_USER_PW)

        wizard.wallet = Wallet_2fa(storage)
        wizard.create_addresses()
コード例 #7
0
    def on_restore_pw(self, wizard, seed, passphrase, password, encrypt_storage):
        storage = wizard.storage
        xprv1, xpub1, xprv2, xpub2 = self.xkeys_from_seed(seed, passphrase)
        k1 = keystore.from_xprv(xprv1)
        k2 = keystore.from_xprv(xprv2)
        k1.add_seed(seed)
        k1.update_password(None, password)
        k2.update_password(None, password)
        storage.put('x1/', k1.dump())
        storage.put('x2/', k2.dump())
        long_user_id, short_id = get_user_id(storage)
        xtype = xpub_type(xpub1)
        xpub3 = make_xpub(get_signing_xpub(xtype), long_user_id)
        k3 = keystore.from_xpub(xpub3)
        storage.put('x3/', k3.dump())

        storage.set_keystore_encryption(bool(password))
        if encrypt_storage:
            storage.set_password(password, enc_version=STO_EV_USER_PW)

        wizard.wallet = Wallet_2fa(storage)
        wizard.create_addresses()
コード例 #8
0
ファイル: trustedcoin.py プロジェクト: vialectrum/vialectrum
 def create_remote_key(self, email, wizard):
     xpub1 = wizard.storage.get('x1/')['xpub']
     xpub2 = wizard.storage.get('x2/')['xpub']
     # Generate third key deterministically.
     long_user_id, short_id = get_user_id(wizard.storage)
     xtype = xpub_type(xpub1)
     xpub3 = make_xpub(get_signing_xpub(xtype), long_user_id)
     # secret must be sent by the server
     try:
         r = server.create(xpub1, xpub2, email)
     except (socket.error, ErrorConnectingServer):
         wizard.show_message('Server not reachable, aborting')
         wizard.terminate()
         return
     except TrustedCoinException as e:
         if e.status_code == 409:
             r = None
         else:
             wizard.show_message(str(e))
             return
     if r is None:
         otp_secret = None
     else:
         otp_secret = r.get('otp_secret')
         if not otp_secret:
             wizard.show_message(_('Error'))
             return
         _xpub3 = r['xpubkey_cosigner']
         _id = r['id']
         if short_id != _id:
             wizard.show_message("unexpected trustedcoin short_id: expected {}, received {}"
                                 .format(short_id, _id))
             return
         if xpub3 != _xpub3:
             wizard.show_message("unexpected trustedcoin xpub3: expected {}, received {}"
                                 .format(xpub3, _xpub3))
             return
     self.request_otp_dialog(wizard, short_id, otp_secret, xpub3)
コード例 #9
0
ファイル: test_bitcoin.py プロジェクト: chrisrico/electrum
 def test_xpub_type(self):
     for xprv_details in self.xprv_xpub:
         xpub = xprv_details['xpub']
         self.assertEqual(xprv_details['xtype'], xpub_type(xpub))
コード例 #10
0
 def test_xpub_type(self):
     for xprv_details in self.xprv_xpub:
         xpub = xprv_details['xpub']
         self.assertEqual(xprv_details['xtype'], xpub_type(xpub))