[BACK]Return to ssh-dss.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/ssh-dss.c between version 1.2 and 1.3

version 1.2, 2000/12/19 23:17:58 version 1.3, 2001/01/19 16:50:58
Line 54 
Line 54 
         EVP_MD_CTX md;          EVP_MD_CTX md;
         u_int rlen;          u_int rlen;
         u_int slen;          u_int slen;
         u_int len;          u_int len, dlen;
         u_char sigblob[SIGBLOB_LEN];          u_char sigblob[SIGBLOB_LEN];
         Buffer b;          Buffer b;
   
Line 62 
Line 62 
                 error("ssh_dss_sign: no DSA key");                  error("ssh_dss_sign: no DSA key");
                 return -1;                  return -1;
         }          }
         digest = xmalloc(evp_md->md_size);          dlen = evp_md->md_size;
           digest = xmalloc(dlen);
         EVP_DigestInit(&md, evp_md);          EVP_DigestInit(&md, evp_md);
         EVP_DigestUpdate(&md, data, datalen);          EVP_DigestUpdate(&md, data, datalen);
         EVP_DigestFinal(&md, digest, NULL);          EVP_DigestFinal(&md, digest, NULL);
   
         sig = DSA_do_sign(digest, evp_md->md_size, key->dsa);          sig = DSA_do_sign(digest, dlen, key->dsa);
         if (sig == NULL) {          if (sig == NULL) {
                 fatal("ssh_dss_sign: cannot sign");                  fatal("ssh_dss_sign: cannot sign");
         }          }
           memset(digest, 0, dlen);
           xfree(digest);
   
         rlen = BN_num_bytes(sig->r);          rlen = BN_num_bytes(sig->r);
         slen = BN_num_bytes(sig->s);          slen = BN_num_bytes(sig->s);

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3