Mercurial > dropbear
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 |