mirror of
https://github.com/PowerShell/openssh-portable.git
synced 2025-07-28 00:04:30 +02:00
- djm@cvs.openbsd.org 2014/07/03 01:45:38
[sshkey.c] make Ed25519 keys' title fit properly in the randomart border; bz#2247 based on patch from Christian Hesse
This commit is contained in:
parent
9eb4cd9a32
commit
61e28e55c3
@ -3,6 +3,11 @@
|
|||||||
doesn't support it.
|
doesn't support it.
|
||||||
- (djm) [monitor_fdpass.c] Use sys/poll.h if poll.h doesn't exist;
|
- (djm) [monitor_fdpass.c] Use sys/poll.h if poll.h doesn't exist;
|
||||||
bz#2237
|
bz#2237
|
||||||
|
- OpenBSD CVS Sync
|
||||||
|
- djm@cvs.openbsd.org 2014/07/03 01:45:38
|
||||||
|
[sshkey.c]
|
||||||
|
make Ed25519 keys' title fit properly in the randomart border; bz#2247
|
||||||
|
based on patch from Christian Hesse
|
||||||
|
|
||||||
20140702
|
20140702
|
||||||
- OpenBSD CVS Sync
|
- OpenBSD CVS Sync
|
||||||
|
25
sshkey.c
25
sshkey.c
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: sshkey.c,v 1.2 2014/06/27 18:50:39 markus Exp $ */
|
/* $OpenBSD: sshkey.c,v 1.3 2014/07/03 01:45:38 djm Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2000, 2001 Markus Friedl. All rights reserved.
|
* Copyright (c) 2000, 2001 Markus Friedl. All rights reserved.
|
||||||
* Copyright (c) 2008 Alexander von Gernler. All rights reserved.
|
* Copyright (c) 2008 Alexander von Gernler. All rights reserved.
|
||||||
@ -1026,11 +1026,11 @@ fingerprint_randomart(u_char *dgst_raw, size_t dgst_raw_len,
|
|||||||
* intersects with itself. Matter of taste.
|
* intersects with itself. Matter of taste.
|
||||||
*/
|
*/
|
||||||
char *augmentation_string = " .o+=*BOX@%&#/^SE";
|
char *augmentation_string = " .o+=*BOX@%&#/^SE";
|
||||||
char *retval, *p;
|
char *retval, *p, title[FLDSIZE_X];
|
||||||
u_char field[FLDSIZE_X][FLDSIZE_Y];
|
u_char field[FLDSIZE_X][FLDSIZE_Y];
|
||||||
size_t i;
|
size_t i, tlen;
|
||||||
u_int b;
|
u_int b;
|
||||||
int x, y;
|
int x, y, r;
|
||||||
size_t len = strlen(augmentation_string) - 1;
|
size_t len = strlen(augmentation_string) - 1;
|
||||||
|
|
||||||
if ((retval = calloc((FLDSIZE_X + 3), (FLDSIZE_Y + 2))) == NULL)
|
if ((retval = calloc((FLDSIZE_X + 3), (FLDSIZE_Y + 2))) == NULL)
|
||||||
@ -1068,12 +1068,21 @@ fingerprint_randomart(u_char *dgst_raw, size_t dgst_raw_len,
|
|||||||
field[FLDSIZE_X / 2][FLDSIZE_Y / 2] = len - 1;
|
field[FLDSIZE_X / 2][FLDSIZE_Y / 2] = len - 1;
|
||||||
field[x][y] = len;
|
field[x][y] = len;
|
||||||
|
|
||||||
/* fill in retval */
|
/* assemble title */
|
||||||
snprintf(retval, FLDSIZE_X, "+--[%4s %4u]",
|
r = snprintf(title, sizeof(title), "[%s %u]",
|
||||||
sshkey_type(k), sshkey_size(k));
|
sshkey_type(k), sshkey_size(k));
|
||||||
p = strchr(retval, '\0');
|
/* If [type size] won't fit, then try [type]; fits "[ED25519-CERT]" */
|
||||||
|
if (r < 0 || r > (int)sizeof(title))
|
||||||
|
snprintf(title, sizeof(title), "[%s]", sshkey_type(k));
|
||||||
|
tlen = strlen(title);
|
||||||
|
|
||||||
/* output upper border */
|
/* output upper border */
|
||||||
|
p = retval;
|
||||||
|
*p++ = '+';
|
||||||
|
for (i = 0; i < (FLDSIZE_X - tlen) / 2; i++)
|
||||||
|
*p++ = '-';
|
||||||
|
memcpy(p, title, tlen);
|
||||||
|
p += tlen;
|
||||||
for (i = p - retval - 1; i < FLDSIZE_X; i++)
|
for (i = p - retval - 1; i < FLDSIZE_X; i++)
|
||||||
*p++ = '-';
|
*p++ = '-';
|
||||||
*p++ = '+';
|
*p++ = '+';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user