DH support

Add DH support (initial commit is HMAC for secret key support)