

def md5SessionKey(params, password):
    '\n    If the "algorithm" directive\'s value is "MD5-sess", then A1 \n    [the session key] is calculated only once - on the first request by the\n    client following receipt of a WWW-Authenticate challenge from the server.\n\n    This creates a \'session key\' for the authentication of subsequent\n    requests and responses which is different for each "authentication\n    session", thus limiting the amount of material hashed with any one\n    key.\n\n    Because the server need only use the hash of the user\n    credentials in order to create the A1 value, this construction could\n    be used in conjunction with a third party authentication service so\n    that the web server would not need the actual password value.  The\n    specification of such a protocol is beyond the scope of this\n    specification.\n'
    keys = ('username', 'realm', 'nonce', 'cnonce')
    params_copy = {
        
    }
    for key in keys:
        params_copy[key] = params[key]
    params_copy['algorithm'] = MD5_SESS
    return _A1(params_copy, password)

dataset/ETHPy150Open AppScale/appscale/AppServer/lib/cherrypy/cherrypy/lib/httpauth.py md5SessionKey/original