version 1.71, 2008/06/11 23:02:22 |
version 1.72, 2008/06/11 23:51:57 |
|
|
* 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 |
#define FLDSIZE_Y 8 |
#define FLDSIZE_X FLDSIZE_Y * 2 |
#define FLDSIZE_X (FLDSIZE_Y * 2) |
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) |
{ |
{ |
|
|
u_char field[FLDSIZE_X][FLDSIZE_Y]; |
u_char field[FLDSIZE_X][FLDSIZE_Y]; |
u_int i, b; |
u_int i, b; |
int x, y; |
int x, y; |
size_t len = strlen(augmentation_string); |
size_t len = strlen(augmentation_string) - 1; |
|
|
retval = xcalloc(1, (FLDSIZE_X + 3) * (FLDSIZE_Y + 2)); |
retval = xcalloc(1, (FLDSIZE_X + 3) * (FLDSIZE_Y + 2)); |
|
|
|
|
for (y = 0; y < FLDSIZE_Y; y++) { |
for (y = 0; y < FLDSIZE_Y; y++) { |
*p++ = '|'; |
*p++ = '|'; |
for (x = 0; x < FLDSIZE_X; x++) |
for (x = 0; x < FLDSIZE_X; x++) |
*p++ = augmentation_string[MIN(field[x][y], len - 1)]; |
*p++ = augmentation_string[MIN(field[x][y], len)]; |
*p++ = '|'; |
*p++ = '|'; |
*p++ = '\n'; |
*p++ = '\n'; |
} |
} |