# Pyrogram - Telegram MTProto API Client Library for Python # Copyright (C) 2017-2018 Dan Tès # # This file is part of Pyrogram. # # Pyrogram is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Pyrogram is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . from ...ext import BaseClient class EnableCloudPassword(BaseClient): def enable_cloud_password(self, password: str, hint: str = "", email: str = "") -> bool: """Use this method to enable the Two-Step Verification security feature (Cloud Password) on your account. This password will be asked when you log in on a new device in addition to the SMS code. Args: password (``str``): Your password. hint (``str``, *optional*): A password hint. email (``str``, *optional*): Recovery e-mail. Returns: True on success, False otherwise. Raises: :class:`Error ` in case of a Telegram RPC error. """ raise NotImplementedError # r = self.send(functions.account.GetPassword()) # # if isinstance(r, types.account.NoPassword): # salt = r.new_salt + os.urandom(8) # password_hash = sha256(salt + password.encode() + salt).digest() # # return self.send( # functions.account.UpdatePasswordSettings( # current_password_hash=salt, # new_settings=types.account.PasswordInputSettings( # new_salt=salt, # new_password_hash=password_hash, # hint=hint, # email=email # ) # ) # ) # else: # return False