aboutsummaryrefslogtreecommitdiffstats
path: root/lib/src/main/java/com/trilead/ssh2/signature
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2008-08-26 05:10:04 +0000
committerKenny Root <kenny@the-b.org>2008-08-26 05:10:04 +0000
commitc36f336e6f294313cdab84352b108beea4607e48 (patch)
treec1114a0e6bb24a48e69fe80e03ad31f3e5bb8f4a /lib/src/main/java/com/trilead/ssh2/signature
parentb4261695b2687ed43821ada65abe14d87604ba74 (diff)
downloadsshlib-c36f336e6f294313cdab84352b108beea4607e48.tar.gz
sshlib-c36f336e6f294313cdab84352b108beea4607e48.tar.bz2
sshlib-c36f336e6f294313cdab84352b108beea4607e48.zip
Update Trilead SSH-2 for Java from build 211 to build 213
Diffstat (limited to 'lib/src/main/java/com/trilead/ssh2/signature')
-rw-r--r--lib/src/main/java/com/trilead/ssh2/signature/DSASHA1Verify.java31
1 files changed, 21 insertions, 10 deletions
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. */