diff options
author | Kenny Root <kenny@the-b.org> | 2013-10-05 22:28:37 -0700 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2013-10-06 10:11:56 -0700 |
commit | e15169b4d1148941ecddc65ea138242a7edc592b (patch) | |
tree | 48c79b3637f98b493b5668b1ae5fb70a2402fcb8 /lib/src/main/java/com/trilead/ssh2/crypto/dh | |
parent | ab43a3e5a86e9028d38436beb992b24757050a66 (diff) | |
download | sshlib-e15169b4d1148941ecddc65ea138242a7edc592b.tar.gz sshlib-e15169b4d1148941ecddc65ea138242a7edc592b.tar.bz2 sshlib-e15169b4d1148941ecddc65ea138242a7edc592b.zip |
Add diffie-hellman-group-exchange-sha256 support
Support exchanging groups using SHA-256 as specified in RFC 4419
For more information, see https://tools.ietf.org/html/rfc4419
Change-Id: Iee5d29e7113a05cad4714a61321bf86b016624b8
Diffstat (limited to 'lib/src/main/java/com/trilead/ssh2/crypto/dh')
-rw-r--r-- | lib/src/main/java/com/trilead/ssh2/crypto/dh/DhGroupExchange.java | 6 | ||||
-rw-r--r-- | lib/src/main/java/com/trilead/ssh2/crypto/dh/GenericDhExchange.java | 9 |
2 files changed, 4 insertions, 11 deletions
diff --git a/lib/src/main/java/com/trilead/ssh2/crypto/dh/DhGroupExchange.java b/lib/src/main/java/com/trilead/ssh2/crypto/dh/DhGroupExchange.java index 2922284..a888950 100644 --- a/lib/src/main/java/com/trilead/ssh2/crypto/dh/DhGroupExchange.java +++ b/lib/src/main/java/com/trilead/ssh2/crypto/dh/DhGroupExchange.java @@ -87,10 +87,10 @@ public class DhGroupExchange this.k = f.modPow(x, p); } - public byte[] calculateH(byte[] clientversion, byte[] serverversion, byte[] clientKexPayload, - byte[] serverKexPayload, byte[] hostKey, DHGexParameters para) + public byte[] calculateH(String hashAlgo, byte[] clientversion, byte[] serverversion, + byte[] clientKexPayload, byte[] serverKexPayload, byte[] hostKey, DHGexParameters para) { - HashForSSH2Types hash = new HashForSSH2Types("SHA1"); + HashForSSH2Types hash = new HashForSSH2Types(hashAlgo); hash.updateByteString(clientversion); hash.updateByteString(serverversion); diff --git a/lib/src/main/java/com/trilead/ssh2/crypto/dh/GenericDhExchange.java b/lib/src/main/java/com/trilead/ssh2/crypto/dh/GenericDhExchange.java index d65490a..039ff75 100644 --- a/lib/src/main/java/com/trilead/ssh2/crypto/dh/GenericDhExchange.java +++ b/lib/src/main/java/com/trilead/ssh2/crypto/dh/GenericDhExchange.java @@ -4,8 +4,6 @@ package com.trilead.ssh2.crypto.dh; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.math.BigInteger; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; import com.trilead.ssh2.crypto.digest.HashForSSH2Types; import com.trilead.ssh2.log.Logger; @@ -71,12 +69,7 @@ public abstract class GenericDhExchange public byte[] calculateH(byte[] clientversion, byte[] serverversion, byte[] clientKexPayload, byte[] serverKexPayload, byte[] hostKey) throws UnsupportedEncodingException { - HashForSSH2Types hash; - try { - hash = new HashForSSH2Types(MessageDigest.getInstance(getHashAlgo())); - } catch (NoSuchAlgorithmException e) { - throw new UnsupportedOperationException(e); - } + HashForSSH2Types hash = new HashForSSH2Types(getHashAlgo()); if (log.isEnabled()) { |