add diffie-hellman key exchange alg