def getDigestResponse(self, challenge, ncount): """ Calculate the response for the given challenge """ nonce = challenge.get('nonce') algo = challenge.get('algorithm').lower() qop = challenge.get('qop') ha1 = calcHA1( algo, self.username, self.realm, self.password, nonce, self.cnonce) ha2 = calcHA2(algo, "GET", self.uri, qop, None) expected = calcResponse(ha1, ha2, algo, nonce, ncount, self.cnonce, qop) return expected
def getDigestResponse(self, challenge, ncount): """ Calculate the response for the given challenge """ nonce = challenge.get('nonce') algo = challenge.get('algorithm').lower() qop = challenge.get('qop') ha1 = calcHA1(algo, self.username, self.realm, self.password, nonce, self.cnonce) ha2 = calcHA2(algo, "GET", self.uri, qop, None) expected = calcResponse(ha1, ha2, algo, nonce, ncount, self.cnonce, qop) return expected
def test_MD5HashResponse(self, _algorithm='md5', _hash=md5.md5): """ L{calcResponse} accepts the C{'md5'} algorithm and returns an MD5 hash of its parameters, excluding the nonce count, client nonce, and QoP value if the nonce count and client nonce are C{None} """ hashA1 = 'abc123' hashA2 = '789xyz' nonce = 'lmnopq' response = '%s:%s:%s' % (hashA1, nonce, hashA2) expected = _hash(response).hexdigest() digest = calcResponse(hashA1, hashA2, _algorithm, nonce, None, None, None) self.assertEqual(expected, digest)
def test_MD5HashResponseExtra(self, _algorithm='md5', _hash=md5.md5): """ L{calcResponse} accepts the C{'md5'} algorithm and returns an MD5 hash of its parameters, including the nonce count, client nonce, and QoP value if they are specified. """ hashA1 = 'abc123' hashA2 = '789xyz' nonce = 'lmnopq' nonceCount = '00000004' clientNonce = 'abcxyz123' qop = 'auth' response = '%s:%s:%s:%s:%s:%s' % ( hashA1, nonce, nonceCount, clientNonce, qop, hashA2) expected = _hash(response).hexdigest() digest = calcResponse( hashA1, hashA2, _algorithm, nonce, nonceCount, clientNonce, qop) self.assertEqual(expected, digest)
def test_MD5HashResponseExtra(self, _algorithm='md5', _hash=md5.md5): """ L{calcResponse} accepts the C{'md5'} algorithm and returns an MD5 hash of its parameters, including the nonce count, client nonce, and QoP value if they are specified. """ hashA1 = 'abc123' hashA2 = '789xyz' nonce = 'lmnopq' nonceCount = '00000004' clientNonce = 'abcxyz123' qop = 'auth' response = '%s:%s:%s:%s:%s:%s' % (hashA1, nonce, nonceCount, clientNonce, qop, hashA2) expected = _hash(response).hexdigest() digest = calcResponse(hashA1, hashA2, _algorithm, nonce, nonceCount, clientNonce, qop) self.assertEqual(expected, digest)