Diffie-Hellman Key Exchange
Some recent changes.