Include key type in SSH2 key fingerprints, now we have more than one
[u/mdw/putty] / sshdss.c
index cf7fc3f..1704f71 100644 (file)
--- a/sshdss.c
+++ b/sshdss.c
@@ -161,7 +161,7 @@ static char *dss_fingerprint(void *key) {
 
     MD5Final(digest, &md5c);
 
-    sprintf(buffer, "%d ", ssh1_bignum_bitcount(dss->p));
+    sprintf(buffer, "ssh-dss %d ", ssh1_bignum_bitcount(dss->p));
     for (i = 0; i < 16; i++)
         sprintf(buffer+strlen(buffer), "%s%02x", i?":":"", digest[i]);
     ret = smalloc(strlen(buffer)+1);
@@ -204,7 +204,7 @@ static int dss_verifysig(void *key, char *sig, int siglen,
      */
     if (siglen != 40) {                /* bug not present; read admin fields */
         getstring(&sig, &siglen, &p, &slen);
-        if (!p || memcmp(p, "ssh-dss", 7)) {
+        if (!p || slen != 7 || memcmp(p, "ssh-dss", 7)) {
             return 0;
         }
         sig += 4, siglen -= 4;             /* skip yet another length field */