MD4 md4 = new MD4();
md4.update(password.getBytes("UnicodeLittleUnmarked"));
HMACT64 hmac = new HMACT64(md4.digest());
hmac.update(user.toUpperCase().getBytes("UnicodeLittleUnmarked"));
hmac.update(domain.toUpperCase().getBytes("UnicodeLittleUnmarked"));
hmac = new HMACT64(hmac.digest());
hmac.update(challenge);
hmac.update(clientChallenge);
hmac.digest(response, 0, 16);
System.arraycopy(clientChallenge, 0, response, 16, 8);
return response;