adding diffie hellman algo