void WalletDb::change_password( const fc::sha512& old_password, const fc::sha512& new_password ) { try { FC_ASSERT( is_open() ,"Wallet not open!"); const ExtendedPrivateKey master_private_key = wallet_master_key->decrypt_key( old_password ); set_master_key( master_private_key, new_password ); for( auto key : keys ) { if( key.second.has_private_key() ) { auto priv_key = key.second.decrypt_private_key( old_password ); key.second.encrypt_private_key( new_password, priv_key ); store_and_reload_entry( key.second, true ); } } } FC_CAPTURE_AND_RETHROW() }
void wallet_db::change_password( const fc::sha512& old_password, const fc::sha512& new_password ) { try { FC_ASSERT( wallet_master_key ); auto old_key = get_master_key( old_password ); FC_ASSERT( old_key, "unable to change password because old password was invalid" ); set_master_key( *old_key, new_password ); for( auto key : keys ) { if( key.second.has_private_key() ) { auto priv_key = key.second.decrypt_private_key( old_password ); key.second.encrypt_private_key( new_password, priv_key ); store_record( key.second, true ); } } } FC_CAPTURE_AND_RETHROW() }