version 1.73, 2008/06/12 00:13:13 |
version 1.74, 2008/06/12 05:42:46 |
|
|
* Graphs are not unambiguous, because circles in graphs can be |
* Graphs are not unambiguous, because circles in graphs can be |
* walked in either direction. |
* walked in either direction. |
*/ |
*/ |
#define FLDSIZE_Y (8 + 1) |
|
#define FLDSIZE_X (8 * 2 + 1) |
/* |
|
* Field sizes for the random art. Have to be odd, so the starting point |
|
* can be in the exact middle of the picture, and FLDBASE should be >=8 . |
|
* Else pictures would be too dense, and drawing the frame would |
|
* fail, too, because the key type would not fit in anymore. |
|
*/ |
|
#define FLDBASE 8 |
|
#define FLDSIZE_Y (FLDBASE + 1) |
|
#define FLDSIZE_X (FLDBASE * 2 + 1) |
static char * |
static char * |
key_fingerprint_randomart(u_char *dgst_raw, u_int dgst_raw_len) |
key_fingerprint_randomart(u_char *dgst_raw, u_int dgst_raw_len, const Key *k) |
{ |
{ |
/* |
/* |
* Chars to be used after each other every time the worm |
* Chars to be used after each other every time the worm |
|
|
field[FLDSIZE_X / 2][FLDSIZE_Y / 2] = len; |
field[FLDSIZE_X / 2][FLDSIZE_Y / 2] = len; |
|
|
/* fill in retval */ |
/* fill in retval */ |
p = retval; |
snprintf(retval, 10, "+--[%4s]", key_type(k)); |
|
p = strchr(retval, '\0'); |
|
|
/* output upper border */ |
/* output upper border */ |
*p++ = '+'; |
for (i = 0; i < FLDSIZE_X - 8; i++) |
for (i = 0; i < FLDSIZE_X; i++) |
|
*p++ = '-'; |
*p++ = '-'; |
*p++ = '+'; |
*p++ = '+'; |
*p++ = '\n'; |
*p++ = '\n'; |
|
|
retval = key_fingerprint_bubblebabble(dgst_raw, dgst_raw_len); |
retval = key_fingerprint_bubblebabble(dgst_raw, dgst_raw_len); |
break; |
break; |
case SSH_FP_RANDOMART: |
case SSH_FP_RANDOMART: |
retval = key_fingerprint_randomart(dgst_raw, dgst_raw_len); |
retval = key_fingerprint_randomart(dgst_raw, dgst_raw_len, k); |
break; |
break; |
default: |
default: |
fatal("key_fingerprint_ex: bad digest representation %d", |
fatal("key_fingerprint_ex: bad digest representation %d", |