skyspark_scram.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:pyhaystack 作者: ChristianTremblay 项目源码 文件源码
def _do_server_token(self, event):
        client_final_no_proof = "c=%s,r=%s" % ( scram.standard_b64encode(b'n,,').decode() , self._server_nonce )
        auth_msg              = "%s,%s,%s" % ( self._client_second_msg, self._server_first_msg, client_final_no_proof )
        client_key            = hmac.new(unhexlify(scram.salted_password(self._server_salt, self._server_iterations, self._algorithm_name, self._session._password)), "Client Key".encode('UTF-8'), self._algorithm).hexdigest()
        stored_key            = scram._hash_sha256(unhexlify(client_key), self._algorithm)
        client_signature      = hmac.new( unhexlify(stored_key), auth_msg.encode('utf-8'), self._algorithm).hexdigest()
        client_proof          = scram._xor(client_key, client_signature)
        client_proof_encode   = b2a_base64(unhexlify(client_proof)).decode()
        client_final          = client_final_no_proof + ",p=" + client_proof_encode
        client_final_base64   = scram.base64_no_padding(client_final)
        final_msg             = "scram handshaketoken=%s,data=%s" % (self._handshake_token , client_final_base64)

        try:
            self._session._get('%s/ui' % self._login_uri,
                    callback=self._validate_server_token,
                    headers={"Authorization": final_msg},
                    exclude_cookies=True,
                    exclude_headers=True, api=False)

        except Exception as e:
            self._state_machine.exception(result=AsynchronousException())
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号