aboutsummaryrefslogtreecommitdiffstats
path: root/lib/src/main/java/com/trilead/ssh2/packets
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2013-04-10 18:43:35 -0700
committerKenny Root <kenny@the-b.org>2013-04-10 20:14:43 -0700
commit8e00d2fc37bc277a50c495938cc1ec7ab32aef66 (patch)
treeb821012175ee2a4afb5faa5d16632be4f609301d /lib/src/main/java/com/trilead/ssh2/packets
parent1ad1f57886747362abb2e6f7eb91a221369eed35 (diff)
downloadsshlib-8e00d2fc37bc277a50c495938cc1ec7ab32aef66.tar.gz
sshlib-8e00d2fc37bc277a50c495938cc1ec7ab32aef66.tar.bz2
sshlib-8e00d2fc37bc277a50c495938cc1ec7ab32aef66.zip
Add ECDH support
Add support for the ECDH methods required by RFC 5656 ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521
Diffstat (limited to 'lib/src/main/java/com/trilead/ssh2/packets')
-rw-r--r--lib/src/main/java/com/trilead/ssh2/packets/PacketKexDHInit.java10
-rw-r--r--lib/src/main/java/com/trilead/ssh2/packets/PacketKexDHReply.java10
-rw-r--r--lib/src/main/java/com/trilead/ssh2/packets/PacketKexInit.java5
3 files changed, 10 insertions, 15 deletions
diff --git a/lib/src/main/java/com/trilead/ssh2/packets/PacketKexDHInit.java b/lib/src/main/java/com/trilead/ssh2/packets/PacketKexDHInit.java
index 26e14f6..9201936 100644
--- a/lib/src/main/java/com/trilead/ssh2/packets/PacketKexDHInit.java
+++ b/lib/src/main/java/com/trilead/ssh2/packets/PacketKexDHInit.java
@@ -1,7 +1,5 @@
package com.trilead.ssh2.packets;
-import java.math.BigInteger;
-
/**
* PacketKexDHInit.
*
@@ -12,11 +10,11 @@ public class PacketKexDHInit
{
byte[] payload;
- BigInteger e;
+ byte[] publicKey;
- public PacketKexDHInit(BigInteger e)
+ public PacketKexDHInit(byte[] publicKey)
{
- this.e = e;
+ this.publicKey = publicKey;
}
public byte[] getPayload()
@@ -25,7 +23,7 @@ public class PacketKexDHInit
{
TypesWriter tw = new TypesWriter();
tw.writeByte(Packets.SSH_MSG_KEXDH_INIT);
- tw.writeMPInt(e);
+ tw.writeString(publicKey, 0, publicKey.length);
payload = tw.getBytes();
}
return payload;
diff --git a/lib/src/main/java/com/trilead/ssh2/packets/PacketKexDHReply.java b/lib/src/main/java/com/trilead/ssh2/packets/PacketKexDHReply.java
index 0803ff9..461f262 100644
--- a/lib/src/main/java/com/trilead/ssh2/packets/PacketKexDHReply.java
+++ b/lib/src/main/java/com/trilead/ssh2/packets/PacketKexDHReply.java
@@ -2,8 +2,6 @@ package com.trilead.ssh2.packets;
import java.io.IOException;
-import java.math.BigInteger;
-
/**
* PacketKexDHReply.
*
@@ -15,7 +13,7 @@ public class PacketKexDHReply
byte[] payload;
byte[] hostKey;
- BigInteger f;
+ byte[] publicKey;
byte[] signature;
public PacketKexDHReply(byte payload[], int off, int len) throws IOException
@@ -32,15 +30,15 @@ public class PacketKexDHReply
+ packet_type + ")");
hostKey = tr.readByteString();
- f = tr.readMPINT();
+ publicKey = tr.readByteString();
signature = tr.readByteString();
if (tr.remain() != 0) throw new IOException("PADDING IN SSH_MSG_KEXDH_REPLY!");
}
- public BigInteger getF()
+ public byte[] getF()
{
- return f;
+ return publicKey;
}
public byte[] getHostKey()
diff --git a/lib/src/main/java/com/trilead/ssh2/packets/PacketKexInit.java b/lib/src/main/java/com/trilead/ssh2/packets/PacketKexInit.java
index 7da5067..2a961c2 100644
--- a/lib/src/main/java/com/trilead/ssh2/packets/PacketKexInit.java
+++ b/lib/src/main/java/com/trilead/ssh2/packets/PacketKexInit.java
@@ -4,7 +4,6 @@ package com.trilead.ssh2.packets;
import java.io.IOException;
import java.security.SecureRandom;
-import com.trilead.ssh2.compression.CompressionFactory;
import com.trilead.ssh2.crypto.CryptoWishList;
import com.trilead.ssh2.transport.KexParameters;
@@ -21,10 +20,10 @@ public class PacketKexInit
KexParameters kp = new KexParameters();
- public PacketKexInit(CryptoWishList cwl, SecureRandom rnd)
+ public PacketKexInit(CryptoWishList cwl)
{
kp.cookie = new byte[16];
- rnd.nextBytes(kp.cookie);
+ new SecureRandom().nextBytes(kp.cookie);
kp.kex_algorithms = cwl.kexAlgorithms;
kp.server_host_key_algorithms = cwl.serverHostKeyAlgorithms;