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

Diff for /src/usr.bin/ssh/Attic/key.c between version 1.6.2.1 and 1.6.2.2

version 1.6.2.1, 2000/06/12 02:37:34 version 1.6.2.2, 2000/09/01 18:23:20
Line 41 
Line 41 
 #include "dsa.h"  #include "dsa.h"
 #include "uuencode.h"  #include "uuencode.h"
   
   RCSID("$OpenBSD$");
   
 #define SSH_DSS "ssh-dss"  #define SSH_DSS "ssh-dss"
   
 Key *  Key *
Line 121 
Line 123 
         return 0;          return 0;
 }  }
   
 #define FPRINT "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x"  
   
 /*  /*
  * Generate key fingerprint in ascii format.   * Generate key fingerprint in ascii format.
  * Based on ideas and code from Bjoern Groenvall <bg@sics.se>   * Based on ideas and code from Bjoern Groenvall <bg@sics.se>
Line 130 
Line 130 
 char *  char *
 key_fingerprint(Key *k)  key_fingerprint(Key *k)
 {  {
         static char retval[80];          static char retval[(EVP_MAX_MD_SIZE+1)*3];
         unsigned char *blob = NULL;          unsigned char *blob = NULL;
         int len = 0;          int len = 0;
         int nlen, elen;          int nlen, elen;
Line 151 
Line 151 
                 fatal("key_fingerprint: bad key type %d", k->type);                  fatal("key_fingerprint: bad key type %d", k->type);
                 break;                  break;
         }          }
           retval[0] = '\0';
   
         if (blob != NULL) {          if (blob != NULL) {
                 unsigned char d[16];                  int i;
                 EVP_MD_CTX md;                  unsigned char digest[EVP_MAX_MD_SIZE];
                 EVP_DigestInit(&md, EVP_md5());                  EVP_MD *md = EVP_md5();
                 EVP_DigestUpdate(&md, blob, len);                  EVP_MD_CTX ctx;
                 EVP_DigestFinal(&md, d, NULL);                  EVP_DigestInit(&ctx, md);
                 snprintf(retval, sizeof(retval), FPRINT,                  EVP_DigestUpdate(&ctx, blob, len);
                     d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7],                  EVP_DigestFinal(&ctx, digest, NULL);
                     d[8], d[9], d[10], d[11], d[12], d[13], d[14], d[15]);                  for(i = 0; i < md->md_size; i++) {
                           char hex[4];
                           snprintf(hex, sizeof(hex), "%02x:", digest[i]);
                           strlcat(retval, hex, sizeof(retval));
                   }
                   retval[strlen(retval) - 1] = '\0';
                 memset(blob, 0, len);                  memset(blob, 0, len);
                 xfree(blob);                  xfree(blob);
         }          }
Line 327 
Line 334 
                 break;                  break;
         }          }
         return "unknown";          return "unknown";
   }
   unsigned int
   key_size(Key *k){
           switch (k->type) {
           case KEY_RSA:
                   return BN_num_bits(k->rsa->n);
                   break;
           case KEY_DSA:
                   return BN_num_bits(k->dsa->p);
                   break;
           }
           return 0;
 }  }

Legend:
Removed from v.1.6.2.1  
changed lines
  Added in v.1.6.2.2