diff options
Diffstat (limited to 'ssh-keygen.c')
-rw-r--r-- | ssh-keygen.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/ssh-keygen.c b/ssh-keygen.c index a03c6575d..c22e814da 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssh-keygen.c,v 1.166 2008/05/19 15:46:31 djm Exp $ */ | 1 | /* $OpenBSD: ssh-keygen.c,v 1.167 2008/06/11 21:01:35 grunk Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1994 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1994 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -504,7 +504,7 @@ do_fingerprint(struct passwd *pw) | |||
504 | { | 504 | { |
505 | FILE *f; | 505 | FILE *f; |
506 | Key *public; | 506 | Key *public; |
507 | char *comment = NULL, *cp, *ep, line[16*1024], *fp; | 507 | char *comment = NULL, *cp, *ep, line[16*1024], *fp, *ra; |
508 | int i, skip = 0, num = 0, invalid = 1; | 508 | int i, skip = 0, num = 0, invalid = 1; |
509 | enum fp_rep rep; | 509 | enum fp_rep rep; |
510 | enum fp_type fptype; | 510 | enum fp_type fptype; |
@@ -522,9 +522,12 @@ do_fingerprint(struct passwd *pw) | |||
522 | public = key_load_public(identity_file, &comment); | 522 | public = key_load_public(identity_file, &comment); |
523 | if (public != NULL) { | 523 | if (public != NULL) { |
524 | fp = key_fingerprint(public, fptype, rep); | 524 | fp = key_fingerprint(public, fptype, rep); |
525 | ra = key_fingerprint(public, fptype, rep); | ||
525 | printf("%u %s %s\n", key_size(public), fp, comment); | 526 | printf("%u %s %s\n", key_size(public), fp, comment); |
527 | verbose("%s\n", ra); | ||
526 | key_free(public); | 528 | key_free(public); |
527 | xfree(comment); | 529 | xfree(comment); |
530 | xfree(ra); | ||
528 | xfree(fp); | 531 | xfree(fp); |
529 | exit(0); | 532 | exit(0); |
530 | } | 533 | } |
@@ -582,8 +585,11 @@ do_fingerprint(struct passwd *pw) | |||
582 | } | 585 | } |
583 | comment = *cp ? cp : comment; | 586 | comment = *cp ? cp : comment; |
584 | fp = key_fingerprint(public, fptype, rep); | 587 | fp = key_fingerprint(public, fptype, rep); |
588 | ra = key_fingerprint(public, fptype, SSH_FP_RANDOMART); | ||
585 | printf("%u %s %s\n", key_size(public), fp, | 589 | printf("%u %s %s\n", key_size(public), fp, |
586 | comment ? comment : "no comment"); | 590 | comment ? comment : "no comment"); |
591 | verbose("%s\n", ra); | ||
592 | xfree(ra); | ||
587 | xfree(fp); | 593 | xfree(fp); |
588 | key_free(public); | 594 | key_free(public); |
589 | invalid = 0; | 595 | invalid = 0; |
@@ -603,12 +609,14 @@ print_host(FILE *f, const char *name, Key *public, int hash) | |||
603 | if (print_fingerprint) { | 609 | if (print_fingerprint) { |
604 | enum fp_rep rep; | 610 | enum fp_rep rep; |
605 | enum fp_type fptype; | 611 | enum fp_type fptype; |
606 | char *fp; | 612 | char *fp, *ra; |
607 | 613 | ||
608 | fptype = print_bubblebabble ? SSH_FP_SHA1 : SSH_FP_MD5; | 614 | fptype = print_bubblebabble ? SSH_FP_SHA1 : SSH_FP_MD5; |
609 | rep = print_bubblebabble ? SSH_FP_BUBBLEBABBLE : SSH_FP_HEX; | 615 | rep = print_bubblebabble ? SSH_FP_BUBBLEBABBLE : SSH_FP_HEX; |
610 | fp = key_fingerprint(public, fptype, rep); | 616 | fp = key_fingerprint(public, fptype, rep); |
611 | printf("%u %s %s\n", key_size(public), fp, name); | 617 | ra = key_fingerprint(public, fptype, SSH_FP_RANDOMART); |
618 | printf("%u %s %s\n%s\n", key_size(public), fp, name, ra); | ||
619 | xfree(ra); | ||
612 | xfree(fp); | 620 | xfree(fp); |
613 | } else { | 621 | } else { |
614 | if (hash && (name = host_hash(name, NULL, 0)) == NULL) | 622 | if (hash && (name = host_hash(name, NULL, 0)) == NULL) |
@@ -1451,10 +1459,15 @@ passphrase_again: | |||
1451 | 1459 | ||
1452 | if (!quiet) { | 1460 | if (!quiet) { |
1453 | char *fp = key_fingerprint(public, SSH_FP_MD5, SSH_FP_HEX); | 1461 | char *fp = key_fingerprint(public, SSH_FP_MD5, SSH_FP_HEX); |
1462 | char *ra = key_fingerprint(public, SSH_FP_MD5, | ||
1463 | SSH_FP_RANDOMART); | ||
1454 | printf("Your public key has been saved in %s.\n", | 1464 | printf("Your public key has been saved in %s.\n", |
1455 | identity_file); | 1465 | identity_file); |
1456 | printf("The key fingerprint is:\n"); | 1466 | printf("The key fingerprint is:\n"); |
1457 | printf("%s %s\n", fp, comment); | 1467 | printf("%s %s\n", fp, comment); |
1468 | printf("The key's randomart image is:\n"); | ||
1469 | printf("%s\n", ra); | ||
1470 | xfree(ra); | ||
1458 | xfree(fp); | 1471 | xfree(fp); |
1459 | } | 1472 | } |
1460 | 1473 | ||