/** \ingroup HighLevel_KeyringList \brief Prints all keys in keyring to stdout. \param keyring Keyring to use \return none */ int __ops_keyring_list(__ops_io_t *io, const __ops_keyring_t *keyring, const int psigs) { __ops_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 (__ops_is_key_secret(key)) { __ops_print_keydata(io, keyring, key, "sec", &key->key.seckey.pubkey, 0); } else { __ops_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(__ops_io_t *io, const char *f, __ops_validation_t *res, __ops_keyring_t *ring) { const __ops_key_t *key; __ops_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", __ops_show_pka(res->valid_sigs[i].key_alg), userid_to_id(res->valid_sigs[i].signer_id, id)); from = 0; key = __ops_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>"); } __ops_print_keydata(io, ring, key, "signature ", &key->key.pubkey, 0); } }