@ -406,22 +406,29 @@ class Plugin(BasePlugin):
except socket . error :
except socket . error :
self . window . show_message ( ' Server not reachable, aborting ' )
self . window . show_message ( ' Server not reachable, aborting ' )
return
return
except TrustedCoinException as e :
otp_secret = r . get ( ' otp_secret ' )
if e . status_code == 409 :
if not otp_secret :
r = None
self . window . show_message ( _ ( ' Error ' ) )
else :
return
raise e
_xpub3 = r [ ' xpubkey_cosigner ' ]
if r is None :
_id = r [ ' id ' ]
otp_secret = None
try :
else :
assert _id == self . user_id , ( " user id error " , _id , self . user_id )
otp_secret = r . get ( ' otp_secret ' )
assert xpub3 == _xpub3 , ( " xpub3 error " , xpub3 , _xpub3 )
if not otp_secret :
except Exception as e :
self . window . show_message ( _ ( ' Error ' ) )
self . window . show_message ( str ( e ) )
return
return
_xpub3 = r [ ' xpubkey_cosigner ' ]
_id = r [ ' id ' ]
if not self . setup_google_auth ( self . window , _id , otp_secret ) :
try :
assert _id == self . user_id , ( " user id error " , _id , self . user_id )
assert xpub3 == _xpub3 , ( " xpub3 error " , xpub3 , _xpub3 )
except Exception as e :
self . window . show_message ( str ( e ) )
return
if not self . setup_google_auth ( self . window , self . user_id , otp_secret ) :
return
return
self . wallet . add_master_public_key ( ' x3/ ' , xpub3 )
self . wallet . add_master_public_key ( ' x3/ ' , xpub3 )
@ -670,16 +677,21 @@ class Plugin(BasePlugin):
def setup_google_auth ( self , window , _id , otp_secret ) :
def setup_google_auth ( self , window , _id , otp_secret ) :
uri = " otpauth://totp/ %s ?secret= %s " % ( ' trustedcoin.com ' , otp_secret )
vbox = QVBoxLayout ( )
vbox = QVBoxLayout ( )
window . set_layout ( vbox )
window . set_layout ( vbox )
vbox . addWidget ( QLabel ( " Please scan this QR code in Google Authenticator. " ) )
if otp_secret is not None :
qrw = QRCodeWidget ( uri )
uri = " otpauth://totp/ %s ?secret= %s " % ( ' trustedcoin.com ' , otp_secret )
vbox . addWidget ( qrw , 1 )
vbox . addWidget ( QLabel ( " Please scan this QR code in Google Authenticator. " ) )
#vbox.addWidget(QLabel(data), 0, Qt.AlignHCenter)
qrw = QRCodeWidget ( uri )
vbox . addWidget ( qrw , 1 )
msg = _ ( ' Then, enter your Google Authenticator code: ' )
else :
label = QLabel ( " This wallet is already registered, but it was never authenticated. To finalize your registration, please enter your Google Authenticator Code. If you do not have this code, delete the wallet file and start a new registration " )
label . setWordWrap ( 1 )
vbox . addWidget ( label )
msg = _ ( ' Google Authenticator code: ' )
hbox = QHBoxLayout ( )
hbox = QHBoxLayout ( )
msg = _ ( ' Then, enter your Google Authenticator code: ' )
hbox . addWidget ( QLabel ( msg ) )
hbox . addWidget ( QLabel ( msg ) )
pw = AmountEdit ( None , is_int = True )
pw = AmountEdit ( None , is_int = True )
pw . setFocus ( True )
pw . setFocus ( True )
@ -692,14 +704,13 @@ class Plugin(BasePlugin):
vbox . addLayout ( Buttons ( CancelButton ( window ) , b ) )
vbox . addLayout ( Buttons ( CancelButton ( window ) , b ) )
pw . textChanged . connect ( lambda : b . setEnabled ( len ( pw . text ( ) ) == 6 ) )
pw . textChanged . connect ( lambda : b . setEnabled ( len ( pw . text ( ) ) == 6 ) )
window . exec_ ( )
while True :
otp = pw . get_amount ( )
if not window . exec_ ( ) :
try :
return False
server . auth ( _id , otp )
otp = pw . get_amount ( )
except :
try :
self . window . show_message ( ' Incorrect password, aborting ' )
server . auth ( _id , otp )
return
return True
except :
return True
QMessageBox . information ( self . window , _ ( ' Message ' ) , _ ( ' Incorrect password ' ) , _ ( ' OK ' ) )
pw . setText ( ' ' )