code: def enable_cloud_password(
          self,
          password: str,
          hint: str = "",
          email: str = None
      ) -> bool:
          
          r = self.send(functions.account.GetPassword())
  
          if r.has_password:
              raise ValueError("There is already a cloud password enabled")
  
          r.new_algo.salt1 += os.urandom(32)
          new_hash = btoi(compute_hash(r.new_algo, password))
          new_hash = itob(pow(r.new_algo.g, new_hash, btoi(r.new_algo.p)))
  
          self.send(
              functions.account.UpdatePasswordSettings(
                  password=types.InputCheckPasswordEmpty(),
                  new_settings=types.account.PasswordInputSettings(
                      new_algo=r.new_algo,
                      new_password_hash=new_hash,
                      hint=hint,
                      email=email
                  )
              )
          )
  
          return True
docs: 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.
  
          Raises:
              :class:`RPCError <pyrogram.RPCError>` in case of a Telegram RPC error.
              ``ValueError`` in case there is already a cloud password enabled.