comparison dropbearkey.c @ 399:a707e6148060

merge of '5fdf69ca60d1683cdd9f4c2595134bed26394834' and '6b61c50f4cf888bea302ac8fcf5dbb573b443251'
author Matt Johnston <matt@ucc.asn.au>
date Sat, 03 Feb 2007 08:20:34 +0000
parents 454a34b2dfd1
children e430a26064ee
comparison
equal deleted inserted replaced
394:17d097fc111c 399:a707e6148060
281 281
282 out: 282 out:
283 buf_burn(buf); 283 buf_burn(buf);
284 buf_free(buf); 284 buf_free(buf);
285 buf = NULL; 285 buf = NULL;
286 sign_key_free(key); 286 if (key) {
287 key = NULL; 287 sign_key_free(key);
288 key = NULL;
289 }
288 exit(err); 290 exit(err);
289 } 291 }
290 292
291 static void printpubkey(sign_key * key, int keytype) { 293 static void printpubkey(sign_key * key, int keytype) {
292 294
295 unsigned long base64len; 297 unsigned long base64len;
296 int err; 298 int err;
297 const char * typestring = NULL; 299 const char * typestring = NULL;
298 char *fp = NULL; 300 char *fp = NULL;
299 int len; 301 int len;
302 struct passwd * pw = NULL;
303 char * username = NULL;
304 char hostname[100];
300 305
301 buf = buf_new(MAX_PUBKEY_SIZE); 306 buf = buf_new(MAX_PUBKEY_SIZE);
302 buf_put_pub_key(buf, key, keytype); 307 buf_put_pub_key(buf, key, keytype);
303 buf_setpos(buf, 4); 308 buf_setpos(buf, 4);
304 309
313 318
314 typestring = signkey_name_from_type(keytype, &err); 319 typestring = signkey_name_from_type(keytype, &err);
315 320
316 fp = sign_key_fingerprint(buf_getptr(buf, len), len); 321 fp = sign_key_fingerprint(buf_getptr(buf, len), len);
317 322
318 printf("Public key portion is:\n%s %s\nFingerprint: %s\n", 323 /* a user@host comment is informative */
319 typestring, base64key, fp); 324 username = "";
325 pw = getpwuid(getuid());
326 if (pw) {
327 username = pw->pw_name;
328 }
329
330 gethostname(hostname, sizeof(hostname));
331 hostname[sizeof(hostname)-1] = '\0';
332
333 printf("Public key portion is:\n%s %s %s@%s\nFingerprint: %s\n",
334 typestring, base64key, username, hostname, fp);
320 335
321 m_free(fp); 336 m_free(fp);
322 buf_free(buf); 337 buf_free(buf);
323 } 338 }
324 339