def calcResponse(HA1, HA2, algo, pszNonce, pszNonceCount, pszCNonce, pszQop):
 m = algorithms[algo]()
 m.update(HA1)
 m.update(':')
 m.update(pszNonce)
 m.update(':')
 if (pszNonceCount and pszCNonce):
  m.update(pszNonceCount)
  m.update(':')
  m.update(pszCNonce)
  m.update(':')
  m.update(pszQop)
  m.update(':')
 m.update(HA2)
 respHash = m.digest().encode('hex')
 return respHash

def calcResponse ( HA1 , HA2 , algo , pszNonce , pszNonceCount , pszCNonce , pszQop ) : m = algorithms [ algo ] ( ) m . update ( HA1 ) m . update ( ':' ) m . update ( pszNonce ) m . update ( ':' ) if ( pszNonceCount and pszCNonce ) : m . update ( pszNonceCount ) m . update ( ':' ) m . update ( pszCNonce ) m . update ( ':' ) m . update ( pszQop ) m . update ( ':' ) m . update ( HA2 ) respHash = m . digest ( ) . encode ( 'hex' ) return respHash
compute the digest for the given parameters .