pure js diffie-hellman