Added support for Diffie-Hellman key exchange