From c36f336e6f294313cdab84352b108beea4607e48 Mon Sep 17 00:00:00 2001 From: Kenny Root Date: Tue, 26 Aug 2008 05:10:04 +0000 Subject: Update Trilead SSH-2 for Java from build 211 to build 213 --- .../com/trilead/ssh2/signature/DSASHA1Verify.java | 31 +++++++++++++++------- 1 file changed, 21 insertions(+), 10 deletions(-) (limited to 'lib/src/main/java/com/trilead/ssh2/signature') diff --git a/lib/src/main/java/com/trilead/ssh2/signature/DSASHA1Verify.java b/lib/src/main/java/com/trilead/ssh2/signature/DSASHA1Verify.java index 04c4b20..c838ebd 100644 --- a/lib/src/main/java/com/trilead/ssh2/signature/DSASHA1Verify.java +++ b/lib/src/main/java/com/trilead/ssh2/signature/DSASHA1Verify.java @@ -15,7 +15,7 @@ import com.trilead.ssh2.packets.TypesWriter; * DSASHA1Verify. * * @author Christian Plattner, plattner@trilead.com - * @version $Id: DSASHA1Verify.java,v 1.1 2007/10/15 12:49:57 cplattne Exp $ + * @version $Id: DSASHA1Verify.java,v 1.2 2008/04/01 12:38:09 cplattne Exp $ */ public class DSASHA1Verify { @@ -80,20 +80,31 @@ public class DSASHA1Verify public static DSASignature decodeSSHDSASignature(byte[] sig) throws IOException { - TypesReader tr = new TypesReader(sig); + byte[] rsArray = null; + + if (sig.length == 40) + { + /* OK, another broken SSH server. */ + rsArray = sig; + } + else + { + /* Hopefully a server obeing the standard... */ + TypesReader tr = new TypesReader(sig); - String sig_format = tr.readString(); + String sig_format = tr.readString(); - if (sig_format.equals("ssh-dss") == false) - throw new IOException("Peer sent wrong signature format"); + if (sig_format.equals("ssh-dss") == false) + throw new IOException("Peer sent wrong signature format"); - byte[] rsArray = tr.readByteString(); + rsArray = tr.readByteString(); - if (rsArray.length != 40) - throw new IOException("Peer sent corrupt signature"); + if (rsArray.length != 40) + throw new IOException("Peer sent corrupt signature"); - if (tr.remain() != 0) - throw new IOException("Padding in DSA signature!"); + if (tr.remain() != 0) + throw new IOException("Padding in DSA signature!"); + } /* Remember, s and r are unsigned ints. */ -- cgit v1.2.3