client diffie hilman stuff