def getResponse(self, challenge): i = challenge.index(WALogin.nonce_key) i += len(WALogin.nonce_key) j = challenge.index('"', i) nonce = challenge[i:j] cnonce = Utilities.str(abs(random.getrandbits(64)), 36) nc = "00000001" bos = ByteArray() bos.write(self.md5Digest(self.connection.user + ":" + self.connection.domain + ":" + self.connection.password)) bos.write(58) bos.write(nonce) bos.write(58) bos.write(cnonce) digest_uri = "xmpp/" + self.connection.domain A1 = bos.toByteArray() A2 = "AUTHENTICATE:" + digest_uri KD = ( str(self.bytesToHex(self.md5Digest(A1.getBuffer()))) + ":" + nonce + ":" + nc + ":" + cnonce + ":auth:" + str(self.bytesToHex(self.md5Digest(A2))) ) response = str(self.bytesToHex(self.md5Digest(KD))) bigger_response = "" bigger_response += 'realm="' bigger_response += self.connection.domain bigger_response += '",response=' bigger_response += response bigger_response += ',nonce="' bigger_response += nonce bigger_response += '",digest-uri="' bigger_response += digest_uri bigger_response += '",cnonce="' bigger_response += cnonce bigger_response += '",qop=auth' bigger_response += ',username="******",nc=' bigger_response += nc return bigger_response
def getResponse(self, challenge): print "CHALLENGE: " + str(challenge) i = challenge.index(WALogin.nonce_key) i += len(WALogin.nonce_key) j = challenge.index('"', i) nonce = challenge[i:j] cnonce = Utilities.str(abs(random.getrandbits(64)), 36) nc = "00000001" bos = ByteArray() bos.write( self.md5Digest(self.connection.user + ":" + self.connection.domain + ":" + self.connection.password)) bos.write(58) bos.write(nonce) bos.write(58) bos.write(cnonce) digest_uri = "xmpp/" + self.connection.domain A1 = bos.toByteArray() A2 = "AUTHENTICATE:" + digest_uri KD = str(self.bytesToHex(self.md5Digest(A1.getBuffer())) ) + ":" + nonce + ":" + nc + ":" + cnonce + ":auth:" + str( self.bytesToHex(self.md5Digest(A2))) response = str(self.bytesToHex(self.md5Digest(KD))) bigger_response = "" bigger_response += "realm=\"" bigger_response += self.connection.domain bigger_response += "\",response=" bigger_response += response bigger_response += ",nonce=\"" bigger_response += nonce bigger_response += "\",digest-uri=\"" bigger_response += digest_uri bigger_response += "\",cnonce=\"" bigger_response += cnonce bigger_response += "\",qop=auth" bigger_response += ",username=\"" bigger_response += self.connection.user bigger_response += "\",nc=" bigger_response += nc print "SENDING: " + str(bigger_response) return bigger_response
def getResponse(self, challenge): i = challenge.index(Login.nonce_key) i += len(Login.nonce_key) j = challenge.index('"', i) nonce = challenge[i:j] cnonce = str_base(abs(random.getrandbits(64)), 36) nc = '00000001' bos = ByteArray() bos.write(self.md5Digest(self.connection.user + ':' + self.connection.domain + ':' + self.connection.password)) bos.write(58) bos.write(nonce) bos.write(58) bos.write(cnonce) digest_uri = 'xmpp/' + self.connection.domain A1 = bos.toByteArray() A2 = 'AUTHENTICATE:' + digest_uri KD = str(self.bytesToHex(self.md5Digest(A1.getBuffer()))) + ':' \ + nonce + ':' + nc + ':' + cnonce + ':auth:' \ + str(self.bytesToHex(self.md5Digest(A2))) response = str(self.bytesToHex(self.md5Digest(KD))) bigger_response = '' bigger_response += 'realm="' bigger_response += self.connection.domain bigger_response += '",response=' bigger_response += response bigger_response += ',nonce="' bigger_response += nonce bigger_response += '",digest-uri="' bigger_response += digest_uri bigger_response += '",cnonce="' bigger_response += cnonce bigger_response += '",qop=auth' bigger_response += ',username="******",nc=' bigger_response += nc return bigger_response
def getResponse(self,challenge): i = challenge.index(WALogin.nonce_key); i+=len(WALogin.nonce_key); j = challenge.index('"',i); nonce = challenge[i:j]; cnonce = Utilities.str(abs(random.getrandbits(64)),36); nc = "00000001"; bos = ByteArray(); bos.write(self.md5Digest(self.connection.user + ":" + self.connection.domain + ":" + self.connection.password)); bos.write(58); bos.write(nonce); bos.write(58); bos.write(cnonce); digest_uri = "xmpp/"+self.connection.domain; A1 = bos.toByteArray(); A2 = "AUTHENTICATE:" + digest_uri; KD = str(self.bytesToHex(self.md5Digest(A1.getBuffer()))) + ":"+nonce+":"+nc+":"+cnonce+":auth:"+str(self.bytesToHex(self.md5Digest(A2))); response = str(self.bytesToHex(self.md5Digest(KD))); bigger_response = ""; bigger_response += "realm=\""; bigger_response += self.connection.domain bigger_response += "\",response="; bigger_response += response bigger_response += ",nonce=\""; bigger_response += nonce bigger_response += "\",digest-uri=\"" bigger_response += digest_uri bigger_response += "\",cnonce=\"" bigger_response += cnonce bigger_response += "\",qop=auth"; bigger_response += ",username=\"" bigger_response += self.connection.user bigger_response += "\",nc=" bigger_response += nc return bigger_response;