static void print_key(struct secret *secret, struct private_key_stuff *pks, bool disclose) { if (secret) { int count = 1; struct id_list *l = lsw_get_idlist(secret); while (l != NULL) { print(pks, count, &l->id, disclose); l = l->next; count++; } } else { print(pks, 0, NULL, disclose); } }
int print_key(struct secret *secret , struct private_key_stuff *pks , void *uservoid, bool disclose) { int lineno = lsw_get_secretlineno(secret); struct id_list *l = lsw_get_idlist(secret); char idb[IDTOA_BUF]; int count=1; char pskbuf[128]; if(pks->kind == PPK_PSK || pks->kind==PPK_XAUTH) { datatot(pks->u.preshared_secret.ptr, pks->u.preshared_secret.len, 'x', pskbuf, sizeof(pskbuf)); } while(l) { idtoa(&l->id, idb, IDTOA_BUF); switch(pks->kind) { case PPK_PSK: printf("%d(%d): PSK keyid: %s\n", lineno, count, idb); if(disclose) printf(" psk: \"%s\"\n", pskbuf); break; case PPK_RSA: printf("%d(%d): RSA keyid: %s with id: %s\n", lineno, count, pks->u.RSA_private_key.pub.keyid,idb); break; case PPK_XAUTH: printf("%d(%d): XAUTH keyid: %s\n", lineno, count, idb); if(disclose) printf(" xauth: \"%s\"\n", pskbuf); break; case PPK_PIN: printf("%d:(%d) PIN key-type not yet supported for id: %s\n", lineno, count, idb); break; } l=l->next; count++; } return 1; }