Coding security in Java was an interesting process... A full Diffie-Hellman Key Exchange implementation in Java