/** \ingroup HighLevel_KeyringList \brief Prints all keys in keyring to stdout. \param keyring Keyring to use \return none */ int pgp_keyring_list(pgp_io_t *io, const pgp_keyring_t *keyring, const int psigs) { pgp_key_t *key; unsigned n; (void) fprintf(io->res, "%u key%s\n", keyring->keyc, (keyring->keyc == 1) ? "" : "s"); for (n = 0, key = keyring->keys; n < keyring->keyc; ++n, ++key) { if (pgp_is_key_secret(key)) { pgp_print_keydata(io, keyring, key, "sec", &key->key.seckey.pubkey, 0); } else { pgp_print_keydata(io, keyring, key, "signature ", &key->key.pubkey, psigs); } (void) fputc('\n', io->res); } return 1; }
/* print out the successful signature information */ static void resultp(pgp_io_t *io, const char *f, pgp_validation_t *res, pgp_keyring_t *ring) { const pgp_key_t *key; pgp_pubkey_t *sigkey; unsigned from; unsigned i; time_t t; char id[MAX_ID_LENGTH + 1]; for (i = 0; i < res->validc; i++) { (void) fprintf(io->res, "Good signature for %s made %s", (f) ? f : "<stdin>", ctime(&res->valid_sigs[i].birthtime)); if (res->duration > 0) { t = res->birthtime + res->duration; (void) fprintf(io->res, "Valid until %s", ctime(&t)); } (void) fprintf(io->res, "using %s key %s\n", pgp_show_pka(res->valid_sigs[i].key_alg), userid_to_id(res->valid_sigs[i].signer_id, id)); from = 0; key = pgp_getkeybyid(io, ring, (const uint8_t *) res->valid_sigs[i].signer_id, &from, &sigkey); if (sigkey == &key->enckey) { (void) fprintf(io->res, "WARNING: signature for %s made with encryption key\n", (f) ? f : "<stdin>"); } pgp_print_keydata(io, ring, key, "signature ", &key->key.pubkey, 0); } }