mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
Finished the bulk of changes to use estream in most places instead of
stdio.
This commit is contained in:
parent
37870234a1
commit
fb2ba98963
32 changed files with 824 additions and 711 deletions
395
g10/keylist.c
395
g10/keylist.c
|
@ -54,7 +54,7 @@ struct sig_stats
|
|||
};
|
||||
|
||||
/* The stream used to write attribute packets to. */
|
||||
static FILE *attrib_fp = NULL;
|
||||
static estream_t attrib_fp;
|
||||
|
||||
|
||||
/* List the keys. If list is NULL, all available keys are listed.
|
||||
|
@ -71,32 +71,32 @@ public_key_list (strlist_t list, int locate_mode)
|
|||
read_trust_options (&trust_model, &created, &nextcheck,
|
||||
&marginals, &completes, &cert_depth);
|
||||
|
||||
printf ("tru:");
|
||||
es_fprintf (es_stdout, "tru:");
|
||||
|
||||
if (nextcheck && nextcheck <= make_timestamp ())
|
||||
printf ("o");
|
||||
es_fprintf (es_stdout, "o");
|
||||
if (trust_model != opt.trust_model)
|
||||
printf ("t");
|
||||
es_fprintf (es_stdout, "t");
|
||||
if (opt.trust_model == TM_PGP || opt.trust_model == TM_CLASSIC)
|
||||
{
|
||||
if (marginals != opt.marginals_needed)
|
||||
printf ("m");
|
||||
es_fprintf (es_stdout, "m");
|
||||
if (completes != opt.completes_needed)
|
||||
printf ("c");
|
||||
es_fprintf (es_stdout, "c");
|
||||
if (cert_depth != opt.max_cert_depth)
|
||||
printf ("d");
|
||||
es_fprintf (es_stdout, "d");
|
||||
}
|
||||
|
||||
printf (":%d:%lu:%lu", trust_model, created, nextcheck);
|
||||
es_fprintf (es_stdout, ":%d:%lu:%lu", trust_model, created, nextcheck);
|
||||
|
||||
/* Only show marginals, completes, and cert_depth in the classic
|
||||
or PGP trust models since they are not meaningful
|
||||
otherwise. */
|
||||
|
||||
if (trust_model == TM_PGP || trust_model == TM_CLASSIC)
|
||||
printf (":%d:%d:%d", marginals, completes, cert_depth);
|
||||
es_fprintf (es_stdout, ":%d:%d:%d", marginals, completes, cert_depth);
|
||||
|
||||
printf ("\n");
|
||||
es_fprintf (es_stdout, "\n");
|
||||
}
|
||||
|
||||
/* We need to do the stale check right here because it might need to
|
||||
|
@ -147,7 +147,7 @@ print_seckey_info (PKT_public_key *pk)
|
|||
the tty output interface is used, otherwise output is directted to
|
||||
the given stream. */
|
||||
void
|
||||
print_pubkey_info (FILE * fp, PKT_public_key * pk)
|
||||
print_pubkey_info (estream_t fp, PKT_public_key * pk)
|
||||
{
|
||||
u32 keyid[2];
|
||||
char *p;
|
||||
|
@ -162,15 +162,11 @@ print_pubkey_info (FILE * fp, PKT_public_key * pk)
|
|||
p = get_user_id_native (keyid);
|
||||
|
||||
if (fp)
|
||||
fprintf (fp, "pub %4u%c/%s %s %s\n",
|
||||
nbits_from_pk (pk),
|
||||
pubkey_letter (pk->pubkey_algo),
|
||||
keystr (keyid), datestr_from_pk (pk), p);
|
||||
else
|
||||
tty_printf ("\npub %4u%c/%s %s %s\n",
|
||||
nbits_from_pk (pk), pubkey_letter (pk->pubkey_algo),
|
||||
keystr (keyid), datestr_from_pk (pk), p);
|
||||
|
||||
tty_printf ("\n");
|
||||
tty_fprintf (fp, "pub %4u%c/%s %s %s\n",
|
||||
nbits_from_pk (pk),
|
||||
pubkey_letter (pk->pubkey_algo),
|
||||
keystr (keyid), datestr_from_pk (pk), p);
|
||||
xfree (p);
|
||||
}
|
||||
|
||||
|
@ -178,7 +174,7 @@ print_pubkey_info (FILE * fp, PKT_public_key * pk)
|
|||
/* Print basic information of a secret key including the card serial
|
||||
number information. */
|
||||
void
|
||||
print_card_key_info (FILE * fp, KBNODE keyblock)
|
||||
print_card_key_info (estream_t fp, KBNODE keyblock)
|
||||
{
|
||||
KBNODE node;
|
||||
int i;
|
||||
|
@ -239,7 +235,8 @@ status_one_subpacket (sigsubpkttype_t type, size_t len, int flags,
|
|||
if (len > 256)
|
||||
return;
|
||||
|
||||
sprintf (status, "%d %u %u ", type, flags, (unsigned int) len);
|
||||
snprintf (status, sizeof status,
|
||||
"%d %u %u ", type, flags, (unsigned int) len);
|
||||
|
||||
write_status_text_and_buffer (STATUS_SIG_SUBPACKET, status, buf, len, 0);
|
||||
}
|
||||
|
@ -256,7 +253,7 @@ show_policy_url (PKT_signature * sig, int indent, int mode)
|
|||
const byte *p;
|
||||
size_t len;
|
||||
int seq = 0, crit;
|
||||
FILE *fp = mode ? log_get_stream () : stdout;
|
||||
estream_t fp = mode ? log_get_stream () : es_stdout;
|
||||
|
||||
while ((p =
|
||||
enum_sig_subpkt (sig->hashed, SIGSUBPKT_POLICY, &len, &seq, &crit)))
|
||||
|
@ -267,7 +264,7 @@ show_policy_url (PKT_signature * sig, int indent, int mode)
|
|||
const char *str;
|
||||
|
||||
for (i = 0; i < indent; i++)
|
||||
putchar (' ');
|
||||
es_putc (' ', fp);
|
||||
|
||||
if (crit)
|
||||
str = _("Critical signature policy: ");
|
||||
|
@ -276,9 +273,9 @@ show_policy_url (PKT_signature * sig, int indent, int mode)
|
|||
if (mode)
|
||||
log_info ("%s", str);
|
||||
else
|
||||
printf ("%s", str);
|
||||
print_utf8_string (fp, p, len);
|
||||
fprintf (fp, "\n");
|
||||
es_fprintf (fp, "%s", str);
|
||||
print_utf8_buffer (fp, p, len);
|
||||
es_fprintf (fp, "\n");
|
||||
}
|
||||
|
||||
if (mode)
|
||||
|
@ -299,7 +296,7 @@ show_keyserver_url (PKT_signature * sig, int indent, int mode)
|
|||
const byte *p;
|
||||
size_t len;
|
||||
int seq = 0, crit;
|
||||
FILE *fp = mode ? log_get_stream () : stdout;
|
||||
estream_t fp = mode ? log_get_stream () : es_stdout;
|
||||
|
||||
while ((p =
|
||||
enum_sig_subpkt (sig->hashed, SIGSUBPKT_PREF_KS, &len, &seq,
|
||||
|
@ -311,7 +308,7 @@ show_keyserver_url (PKT_signature * sig, int indent, int mode)
|
|||
const char *str;
|
||||
|
||||
for (i = 0; i < indent; i++)
|
||||
putchar (' ');
|
||||
es_putc (' ', es_stdout);
|
||||
|
||||
if (crit)
|
||||
str = _("Critical preferred keyserver: ");
|
||||
|
@ -320,9 +317,9 @@ show_keyserver_url (PKT_signature * sig, int indent, int mode)
|
|||
if (mode)
|
||||
log_info ("%s", str);
|
||||
else
|
||||
printf ("%s", str);
|
||||
print_utf8_string (fp, p, len);
|
||||
fprintf (fp, "\n");
|
||||
es_fprintf (es_stdout, "%s", str);
|
||||
print_utf8_buffer (fp, p, len);
|
||||
es_fprintf (fp, "\n");
|
||||
}
|
||||
|
||||
if (mode)
|
||||
|
@ -343,7 +340,7 @@ show_keyserver_url (PKT_signature * sig, int indent, int mode)
|
|||
void
|
||||
show_notation (PKT_signature * sig, int indent, int mode, int which)
|
||||
{
|
||||
FILE *fp = mode ? log_get_stream () : stdout;
|
||||
estream_t fp = mode ? log_get_stream () : es_stdout;
|
||||
struct notation *nd, *notations;
|
||||
|
||||
if (which == 0)
|
||||
|
@ -364,7 +361,7 @@ show_notation (PKT_signature * sig, int indent, int mode, int which)
|
|||
const char *str;
|
||||
|
||||
for (i = 0; i < indent; i++)
|
||||
putchar (' ');
|
||||
es_putc (' ', es_stdout);
|
||||
|
||||
if (nd->flags.critical)
|
||||
str = _("Critical signature notation: ");
|
||||
|
@ -373,12 +370,12 @@ show_notation (PKT_signature * sig, int indent, int mode, int which)
|
|||
if (mode)
|
||||
log_info ("%s", str);
|
||||
else
|
||||
printf ("%s", str);
|
||||
es_fprintf (es_stdout, "%s", str);
|
||||
/* This is all UTF8 */
|
||||
print_utf8_string (fp, nd->name, strlen (nd->name));
|
||||
fprintf (fp, "=");
|
||||
print_utf8_string (fp, nd->value, strlen (nd->value));
|
||||
fprintf (fp, "\n");
|
||||
print_utf8_buffer (fp, nd->name, strlen (nd->name));
|
||||
es_fprintf (fp, "=");
|
||||
print_utf8_buffer (fp, nd->value, strlen (nd->value));
|
||||
es_fprintf (fp, "\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -455,10 +452,10 @@ list_all (int secret)
|
|||
{
|
||||
int i;
|
||||
|
||||
printf ("%s\n", resname);
|
||||
es_fprintf (es_stdout, "%s\n", resname);
|
||||
for (i = strlen (resname); i; i--)
|
||||
putchar ('-');
|
||||
putchar ('\n');
|
||||
es_putc ('-', es_stdout);
|
||||
es_putc ('\n', es_stdout);
|
||||
lastresname = resname;
|
||||
}
|
||||
}
|
||||
|
@ -517,10 +514,10 @@ list_one (strlist_t names, int secret)
|
|||
if ((opt.list_options & LIST_SHOW_KEYRING) && !opt.with_colons)
|
||||
{
|
||||
resname = keydb_get_resource_name (get_ctx_handle (ctx));
|
||||
printf ("%s: %s\n", keyring_str, resname);
|
||||
es_fprintf (es_stdout, "%s: %s\n", keyring_str, resname);
|
||||
for (i = strlen (resname) + strlen (keyring_str) + 2; i; i--)
|
||||
putchar ('-');
|
||||
putchar ('\n');
|
||||
es_putc ('-', es_stdout);
|
||||
es_putc ('\n', es_stdout);
|
||||
}
|
||||
list_keyblock (keyblock, secret, opt.fingerprint,
|
||||
(!secret && opt.check_sigs)? &stats : NULL);
|
||||
|
@ -580,10 +577,10 @@ print_key_data (PKT_public_key * pk)
|
|||
|
||||
for (i = 0; i < n; i++)
|
||||
{
|
||||
printf ("pkd:%d:%u:", i, mpi_get_nbits (pk->pkey[i]));
|
||||
mpi_print (stdout, pk->pkey[i], 1);
|
||||
putchar (':');
|
||||
putchar ('\n');
|
||||
es_fprintf (es_stdout, "pkd:%d:%u:", i, mpi_get_nbits (pk->pkey[i]));
|
||||
mpi_print (es_stdout, pk->pkey[i], 1);
|
||||
es_putc (':', es_stdout);
|
||||
es_putc ('\n', es_stdout);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -594,14 +591,14 @@ print_capabilities (PKT_public_key *pk, KBNODE keyblock)
|
|||
int c_printed = 0;
|
||||
|
||||
if (use & PUBKEY_USAGE_ENC)
|
||||
putchar ('e');
|
||||
es_putc ('e', es_stdout);
|
||||
|
||||
if (use & PUBKEY_USAGE_SIG)
|
||||
{
|
||||
putchar ('s');
|
||||
es_putc ('s', es_stdout);
|
||||
if (pk->is_primary)
|
||||
{
|
||||
putchar ('c');
|
||||
es_putc ('c', es_stdout);
|
||||
/* The PUBKEY_USAGE_CERT flag was introduced later and we
|
||||
used to always print 'c' for a primary key. To avoid any
|
||||
regression here we better track whether we printed 'c'
|
||||
|
@ -611,10 +608,10 @@ print_capabilities (PKT_public_key *pk, KBNODE keyblock)
|
|||
}
|
||||
|
||||
if ((use & PUBKEY_USAGE_CERT) && !c_printed)
|
||||
putchar ('c');
|
||||
es_putc ('c', es_stdout);
|
||||
|
||||
if ((use & PUBKEY_USAGE_AUTH))
|
||||
putchar ('a');
|
||||
es_putc ('a', es_stdout);
|
||||
|
||||
if (keyblock)
|
||||
{
|
||||
|
@ -650,18 +647,18 @@ print_capabilities (PKT_public_key *pk, KBNODE keyblock)
|
|||
}
|
||||
}
|
||||
if (enc)
|
||||
putchar ('E');
|
||||
es_putc ('E', es_stdout);
|
||||
if (sign)
|
||||
putchar ('S');
|
||||
es_putc ('S', es_stdout);
|
||||
if (cert)
|
||||
putchar ('C');
|
||||
es_putc ('C', es_stdout);
|
||||
if (auth)
|
||||
putchar ('A');
|
||||
es_putc ('A', es_stdout);
|
||||
if (disabled)
|
||||
putchar ('D');
|
||||
es_putc ('D', es_stdout);
|
||||
}
|
||||
|
||||
putchar (':');
|
||||
es_putc (':', es_stdout);
|
||||
}
|
||||
|
||||
|
||||
|
@ -673,18 +670,18 @@ print_one_subpacket (sigsubpkttype_t type, size_t len, int flags,
|
|||
{
|
||||
size_t i;
|
||||
|
||||
printf ("spk:%d:%u:%u:", type, flags, (unsigned int) len);
|
||||
es_fprintf (es_stdout, "spk:%d:%u:%u:", type, flags, (unsigned int) len);
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
/* printable ascii other than : and % */
|
||||
if (buf[i] >= 32 && buf[i] <= 126 && buf[i] != ':' && buf[i] != '%')
|
||||
printf ("%c", buf[i]);
|
||||
es_fprintf (es_stdout, "%c", buf[i]);
|
||||
else
|
||||
printf ("%%%02X", buf[i]);
|
||||
es_fprintf (es_stdout, "%%%02X", buf[i]);
|
||||
}
|
||||
|
||||
printf ("\n");
|
||||
es_fprintf (es_stdout, "\n");
|
||||
}
|
||||
|
||||
|
||||
|
@ -748,8 +745,8 @@ dump_attribs (const PKT_user_id *uid, PKT_public_key *pk)
|
|||
write_status_text (STATUS_ATTRIBUTE, buf);
|
||||
}
|
||||
|
||||
fwrite (uid->attribs[i].data, uid->attribs[i].len, 1, attrib_fp);
|
||||
fflush (attrib_fp);
|
||||
es_fwrite (uid->attribs[i].data, uid->attribs[i].len, 1, attrib_fp);
|
||||
es_fflush (attrib_fp);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -782,7 +779,7 @@ list_keyblock_print (KBNODE keyblock, int secret, int fpr, void *opaque)
|
|||
|
||||
check_trustdb_stale ();
|
||||
|
||||
printf ("%s%c %4u%c/%s %s",
|
||||
es_fprintf (es_stdout, "%s%c %4u%c/%s %s",
|
||||
secret? "sec":"pub",
|
||||
s2k_char,
|
||||
nbits_from_pk (pk), pubkey_letter (pk->pubkey_algo),
|
||||
|
@ -790,21 +787,21 @@ list_keyblock_print (KBNODE keyblock, int secret, int fpr, void *opaque)
|
|||
|
||||
if (pk->is_revoked)
|
||||
{
|
||||
printf (" [");
|
||||
printf (_("revoked: %s"), revokestr_from_pk (pk));
|
||||
printf ("]");
|
||||
es_fprintf (es_stdout, " [");
|
||||
es_fprintf (es_stdout, _("revoked: %s"), revokestr_from_pk (pk));
|
||||
es_fprintf (es_stdout, "]");
|
||||
}
|
||||
else if (pk->has_expired)
|
||||
{
|
||||
printf (" [");
|
||||
printf (_("expired: %s"), expirestr_from_pk (pk));
|
||||
printf ("]");
|
||||
es_fprintf (es_stdout, " [");
|
||||
es_fprintf (es_stdout, _("expired: %s"), expirestr_from_pk (pk));
|
||||
es_fprintf (es_stdout, "]");
|
||||
}
|
||||
else if (pk->expiredate)
|
||||
{
|
||||
printf (" [");
|
||||
printf (_("expires: %s"), expirestr_from_pk (pk));
|
||||
printf ("]");
|
||||
es_fprintf (es_stdout, " [");
|
||||
es_fprintf (es_stdout, _("expires: %s"), expirestr_from_pk (pk));
|
||||
es_fprintf (es_stdout, "]");
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
@ -813,11 +810,11 @@ list_keyblock_print (KBNODE keyblock, int secret, int fpr, void *opaque)
|
|||
if (opt.list_options & LIST_SHOW_VALIDITY)
|
||||
{
|
||||
int validity = get_validity (pk, NULL);
|
||||
printf (" [%s]", trust_value_to_string (validity));
|
||||
es_fprintf (es_stdout, " [%s]", trust_value_to_string (validity));
|
||||
}
|
||||
#endif
|
||||
|
||||
printf ("\n");
|
||||
es_fprintf (es_stdout, "\n");
|
||||
|
||||
if (fpr)
|
||||
print_fingerprint (pk, NULL, 0);
|
||||
|
@ -860,13 +857,13 @@ list_keyblock_print (KBNODE keyblock, int secret, int fpr, void *opaque)
|
|||
if (indent < 0 || indent > 40)
|
||||
indent = 0;
|
||||
|
||||
printf ("uid%*s%s ", indent, "", validity);
|
||||
es_fprintf (es_stdout, "uid%*s%s ", indent, "", validity);
|
||||
}
|
||||
else
|
||||
printf ("uid%*s", (int) keystrlen () + 10, "");
|
||||
es_fprintf (es_stdout, "uid%*s", (int) keystrlen () + 10, "");
|
||||
|
||||
print_utf8_string (stdout, uid->name, uid->len);
|
||||
putchar ('\n');
|
||||
print_utf8_buffer (es_stdout, uid->name, uid->len);
|
||||
es_putc ('\n', es_stdout);
|
||||
|
||||
if ((opt.list_options & LIST_SHOW_PHOTOS) && uid->attribs != NULL)
|
||||
show_photos (uid->attribs, uid->numattribs, pk, NULL, uid);
|
||||
|
@ -888,30 +885,30 @@ list_keyblock_print (KBNODE keyblock, int secret, int fpr, void *opaque)
|
|||
s2k_char = (/*(sk->protect.s2k.mode == 1001)? '#' :
|
||||
(sk->protect.s2k.mode == 1002)? '>' : */' ');
|
||||
|
||||
printf ("%s%c %4u%c/%s %s",
|
||||
es_fprintf (es_stdout, "%s%c %4u%c/%s %s",
|
||||
secret? "ssb":"sub",
|
||||
s2k_char,
|
||||
nbits_from_pk (pk2), pubkey_letter (pk2->pubkey_algo),
|
||||
keystr_from_pk (pk2), datestr_from_pk (pk2));
|
||||
if (pk2->is_revoked)
|
||||
{
|
||||
printf (" [");
|
||||
printf (_("revoked: %s"), revokestr_from_pk (pk2));
|
||||
printf ("]");
|
||||
es_fprintf (es_stdout, " [");
|
||||
es_fprintf (es_stdout, _("revoked: %s"), revokestr_from_pk (pk2));
|
||||
es_fprintf (es_stdout, "]");
|
||||
}
|
||||
else if (pk2->has_expired)
|
||||
{
|
||||
printf (" [");
|
||||
printf (_("expired: %s"), expirestr_from_pk (pk2));
|
||||
printf ("]");
|
||||
es_fprintf (es_stdout, " [");
|
||||
es_fprintf (es_stdout, _("expired: %s"), expirestr_from_pk (pk2));
|
||||
es_fprintf (es_stdout, "]");
|
||||
}
|
||||
else if (pk2->expiredate)
|
||||
{
|
||||
printf (" [");
|
||||
printf (_("expires: %s"), expirestr_from_pk (pk2));
|
||||
printf ("]");
|
||||
es_fprintf (es_stdout, " [");
|
||||
es_fprintf (es_stdout, _("expires: %s"), expirestr_from_pk (pk2));
|
||||
es_fprintf (es_stdout, "]");
|
||||
}
|
||||
putchar ('\n');
|
||||
es_putc ('\n', es_stdout);
|
||||
if (fpr > 1)
|
||||
{
|
||||
print_fingerprint (pk2, NULL, 0);
|
||||
|
@ -972,14 +969,14 @@ list_keyblock_print (KBNODE keyblock, int secret, int fpr, void *opaque)
|
|||
sigstr = "sig";
|
||||
else
|
||||
{
|
||||
printf ("sig "
|
||||
es_fprintf (es_stdout, "sig "
|
||||
"[unexpected signature class 0x%02x]\n",
|
||||
sig->sig_class);
|
||||
continue;
|
||||
}
|
||||
|
||||
fputs (sigstr, stdout);
|
||||
printf ("%c%c %c%c%c%c%c%c %s %s",
|
||||
es_fputs (sigstr, es_stdout);
|
||||
es_fprintf (es_stdout, "%c%c %c%c%c%c%c%c %s %s",
|
||||
sigrc, (sig->sig_class - 0x10 > 0 &&
|
||||
sig->sig_class - 0x10 <
|
||||
4) ? '0' + sig->sig_class - 0x10 : ' ',
|
||||
|
@ -993,20 +990,20 @@ list_keyblock_print (KBNODE keyblock, int secret, int fpr, void *opaque)
|
|||
sig->trust_depth : ' ', keystr (sig->keyid),
|
||||
datestr_from_sig (sig));
|
||||
if (opt.list_options & LIST_SHOW_SIG_EXPIRE)
|
||||
printf (" %s", expirestr_from_sig (sig));
|
||||
printf (" ");
|
||||
es_fprintf (es_stdout, " %s", expirestr_from_sig (sig));
|
||||
es_fprintf (es_stdout, " ");
|
||||
if (sigrc == '%')
|
||||
printf ("[%s] ", g10_errstr (rc));
|
||||
es_fprintf (es_stdout, "[%s] ", g10_errstr (rc));
|
||||
else if (sigrc == '?')
|
||||
;
|
||||
else if (!opt.fast_list_mode)
|
||||
{
|
||||
size_t n;
|
||||
char *p = get_user_id (sig->keyid, &n);
|
||||
print_utf8_string (stdout, p, n);
|
||||
print_utf8_buffer (es_stdout, p, n);
|
||||
xfree (p);
|
||||
}
|
||||
putchar ('\n');
|
||||
es_putc ('\n', es_stdout);
|
||||
|
||||
if (sig->flags.policy_url
|
||||
&& (opt.list_options & LIST_SHOW_POLICY_URLS))
|
||||
|
@ -1028,7 +1025,7 @@ list_keyblock_print (KBNODE keyblock, int secret, int fpr, void *opaque)
|
|||
/* fixme: check or list other sigs here */
|
||||
}
|
||||
}
|
||||
putchar ('\n');
|
||||
es_putc ('\n', es_stdout);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1045,11 +1042,11 @@ print_revokers (PKT_public_key * pk)
|
|||
{
|
||||
byte *p;
|
||||
|
||||
printf ("rvk:::%d::::::", pk->revkey[i].algid);
|
||||
es_fprintf (es_stdout, "rvk:::%d::::::", pk->revkey[i].algid);
|
||||
p = pk->revkey[i].fpr;
|
||||
for (j = 0; j < 20; j++, p++)
|
||||
printf ("%02X", *p);
|
||||
printf (":%02x%s:\n", pk->revkey[i].class,
|
||||
es_fprintf (es_stdout, "%02X", *p);
|
||||
es_fprintf (es_stdout, ":%02x%s:\n", pk->revkey[i].class,
|
||||
(pk->revkey[i].class & 0x40) ? "s" : "");
|
||||
}
|
||||
}
|
||||
|
@ -1079,13 +1076,13 @@ list_keyblock_colon (KBNODE keyblock, int secret, int fpr)
|
|||
pk = node->pkt->pkt.public_key;
|
||||
|
||||
keyid_from_pk (pk, keyid);
|
||||
fputs (secret? "sec:":"pub:", stdout);
|
||||
es_fputs (secret? "sec:":"pub:", es_stdout);
|
||||
if (!pk->is_valid)
|
||||
putchar ('i');
|
||||
es_putc ('i', es_stdout);
|
||||
else if (pk->is_revoked)
|
||||
putchar ('r');
|
||||
es_putc ('r', es_stdout);
|
||||
else if (pk->has_expired)
|
||||
putchar ('e');
|
||||
es_putc ('e', es_stdout);
|
||||
else if (opt.fast_list_mode || opt.no_expensive_trust_checks)
|
||||
;
|
||||
else
|
||||
|
@ -1093,39 +1090,39 @@ list_keyblock_colon (KBNODE keyblock, int secret, int fpr)
|
|||
trustletter = get_validity_info (pk, NULL);
|
||||
if (trustletter == 'u')
|
||||
ulti_hack = 1;
|
||||
putchar (trustletter);
|
||||
es_putc (trustletter, es_stdout);
|
||||
}
|
||||
|
||||
printf (":%u:%d:%08lX%08lX:%s:%s::",
|
||||
es_fprintf (es_stdout, ":%u:%d:%08lX%08lX:%s:%s::",
|
||||
nbits_from_pk (pk),
|
||||
pk->pubkey_algo,
|
||||
(ulong) keyid[0], (ulong) keyid[1],
|
||||
colon_datestr_from_pk (pk), colon_strtime (pk->expiredate));
|
||||
|
||||
if (!opt.fast_list_mode && !opt.no_expensive_trust_checks)
|
||||
putchar (get_ownertrust_info (pk));
|
||||
putchar (':');
|
||||
es_putc (get_ownertrust (pk), es_stdout);
|
||||
es_putc (':', es_stdout);
|
||||
|
||||
putchar (':');
|
||||
putchar (':');
|
||||
es_putc (':', es_stdout);
|
||||
es_putc (':', es_stdout);
|
||||
print_capabilities (pk, keyblock);
|
||||
if (secret)
|
||||
{
|
||||
putchar (':'); /* End of field 13. */
|
||||
putchar (':'); /* End of field 14. */
|
||||
es_putc (':', es_stdout); /* End of field 13. */
|
||||
es_putc (':', es_stdout); /* End of field 14. */
|
||||
if (/*FIXME sk->protect.s2k.mode*/1 == 1001)
|
||||
putchar ('#'); /* Key is just a stub. */
|
||||
es_putc ('#', es_stdout); /* Key is just a stub. */
|
||||
else if (/*FIXME sk->protect.s2k.mode*/1 == 1002)
|
||||
{
|
||||
/* Key is stored on an external token (card) or handled by
|
||||
the gpg-agent. Print the serial number of that token
|
||||
here. */
|
||||
/* FIXME: for (i = 0; i < sk->protect.ivlen; i++) */
|
||||
/* printf ("%02X", sk->protect.iv[i]); */
|
||||
/* es_fprintf (es_stdout, "%02X", sk->protect.iv[i]); */
|
||||
}
|
||||
putchar (':'); /* End of field 15. */
|
||||
es_putc (':', es_stdout); /* End of field 15. */
|
||||
}
|
||||
putchar ('\n');
|
||||
es_putc ('\n', es_stdout);
|
||||
|
||||
print_revokers (pk);
|
||||
if (fpr)
|
||||
|
@ -1147,11 +1144,11 @@ list_keyblock_colon (KBNODE keyblock, int secret, int fpr)
|
|||
*/
|
||||
str = uid->attrib_data ? "uat" : "uid";
|
||||
if (uid->is_revoked)
|
||||
printf ("%s:r::::", str);
|
||||
es_fprintf (es_stdout, "%s:r::::", str);
|
||||
else if (uid->is_expired)
|
||||
printf ("%s:e::::", str);
|
||||
es_fprintf (es_stdout, "%s:e::::", str);
|
||||
else if (opt.no_expensive_trust_checks)
|
||||
printf ("%s:::::", str);
|
||||
es_fprintf (es_stdout, "%s:::::", str);
|
||||
else
|
||||
{
|
||||
int uid_validity;
|
||||
|
@ -1160,25 +1157,25 @@ list_keyblock_colon (KBNODE keyblock, int secret, int fpr)
|
|||
uid_validity = get_validity_info (pk, uid);
|
||||
else
|
||||
uid_validity = 'u';
|
||||
printf ("%s:%c::::", str, uid_validity);
|
||||
es_fprintf (es_stdout, "%s:%c::::", str, uid_validity);
|
||||
}
|
||||
|
||||
printf ("%s:", colon_strtime (uid->created));
|
||||
printf ("%s:", colon_strtime (uid->expiredate));
|
||||
es_fprintf (es_stdout, "%s:", colon_strtime (uid->created));
|
||||
es_fprintf (es_stdout, "%s:", colon_strtime (uid->expiredate));
|
||||
|
||||
namehash_from_uid (uid);
|
||||
|
||||
for (i = 0; i < 20; i++)
|
||||
printf ("%02X", uid->namehash[i]);
|
||||
es_fprintf (es_stdout, "%02X", uid->namehash[i]);
|
||||
|
||||
printf ("::");
|
||||
es_fprintf (es_stdout, "::");
|
||||
|
||||
if (uid->attrib_data)
|
||||
printf ("%u %lu", uid->numattribs, uid->attrib_len);
|
||||
es_fprintf (es_stdout, "%u %lu", uid->numattribs, uid->attrib_len);
|
||||
else
|
||||
print_string (stdout, uid->name, uid->len, ':');
|
||||
putchar (':');
|
||||
putchar ('\n');
|
||||
es_write_sanitized (es_stdout, uid->name, uid->len, ":", NULL);
|
||||
es_putc (':', es_stdout);
|
||||
es_putc ('\n', es_stdout);
|
||||
}
|
||||
else if (node->pkt->pkttype == PKT_PUBLIC_SUBKEY)
|
||||
{
|
||||
|
@ -1186,22 +1183,22 @@ list_keyblock_colon (KBNODE keyblock, int secret, int fpr)
|
|||
PKT_public_key *pk2 = node->pkt->pkt.public_key;
|
||||
|
||||
keyid_from_pk (pk2, keyid2);
|
||||
fputs (secret? "ssb:":"sub:", stdout);
|
||||
es_fputs (secret? "ssb:":"sub:", es_stdout);
|
||||
if (!pk2->is_valid)
|
||||
putchar ('i');
|
||||
es_putc ('i', es_stdout);
|
||||
else if (pk2->is_revoked)
|
||||
putchar ('r');
|
||||
es_putc ('r', es_stdout);
|
||||
else if (pk2->has_expired)
|
||||
putchar ('e');
|
||||
es_putc ('e', es_stdout);
|
||||
else if (opt.fast_list_mode || opt.no_expensive_trust_checks)
|
||||
;
|
||||
else
|
||||
{
|
||||
/* TRUSTLETTER should always be defined here. */
|
||||
if (trustletter)
|
||||
printf ("%c", trustletter);
|
||||
es_fprintf (es_stdout, "%c", trustletter);
|
||||
}
|
||||
printf (":%u:%d:%08lX%08lX:%s:%s:::::",
|
||||
es_fprintf (es_stdout, ":%u:%d:%08lX%08lX:%s:%s:::::",
|
||||
nbits_from_pk (pk2),
|
||||
pk2->pubkey_algo,
|
||||
(ulong) keyid2[0], (ulong) keyid2[1],
|
||||
|
@ -1211,21 +1208,21 @@ list_keyblock_colon (KBNODE keyblock, int secret, int fpr)
|
|||
print_capabilities (pk2, NULL);
|
||||
if (secret)
|
||||
{
|
||||
putchar (':'); /* End of field 13. */
|
||||
putchar (':'); /* End of field 14. */
|
||||
es_putc (':', es_stdout); /* End of field 13. */
|
||||
es_putc (':', es_stdout); /* End of field 14. */
|
||||
if (/*FIXME:sk2->protect.s2k.mode*/1 == 1001)
|
||||
putchar ('#'); /* Key is just a stub. */
|
||||
es_putc ('#', es_stdout); /* Key is just a stub. */
|
||||
else if (/*FIXME: sk2->protect.s2k.mode*/1 == 1002)
|
||||
{
|
||||
/* Key is stored on an external token (card) or
|
||||
handled by the gpg-agent. Print the serial
|
||||
number of that token here. */
|
||||
/* FIXME: for (i = 0; i < sk2->protect.ivlen; i++)
|
||||
printf ("%02X", sk2->protect.iv[i]); */
|
||||
es_fprintf (es_stdout, "%02X", sk2->protect.iv[i]); */
|
||||
}
|
||||
putchar (':'); /* End of field 15. */
|
||||
es_putc (':', es_stdout); /* End of field 15. */
|
||||
}
|
||||
putchar ('\n');
|
||||
es_putc ('\n', es_stdout);
|
||||
if (fpr > 1)
|
||||
print_fingerprint (pk2, NULL, 0);
|
||||
if (opt.with_key_data)
|
||||
|
@ -1250,7 +1247,7 @@ list_keyblock_colon (KBNODE keyblock, int secret, int fpr)
|
|||
sigstr = "sig";
|
||||
else
|
||||
{
|
||||
printf ("sig::::::::::%02x%c:\n",
|
||||
es_fprintf (es_stdout, "sig::::::::::%02x%c:\n",
|
||||
sig->sig_class, sig->flags.exportable ? 'x' : 'l');
|
||||
continue;
|
||||
}
|
||||
|
@ -1297,49 +1294,49 @@ list_keyblock_colon (KBNODE keyblock, int secret, int fpr)
|
|||
rc = 0;
|
||||
sigrc = ' ';
|
||||
}
|
||||
fputs (sigstr, stdout);
|
||||
putchar (':');
|
||||
es_fputs (sigstr, es_stdout);
|
||||
es_putc (':', es_stdout);
|
||||
if (sigrc != ' ')
|
||||
putchar (sigrc);
|
||||
printf ("::%d:%08lX%08lX:%s:%s:", sig->pubkey_algo,
|
||||
es_putc (sigrc, es_stdout);
|
||||
es_fprintf (es_stdout, "::%d:%08lX%08lX:%s:%s:", sig->pubkey_algo,
|
||||
(ulong) sig->keyid[0], (ulong) sig->keyid[1],
|
||||
colon_datestr_from_sig (sig),
|
||||
colon_expirestr_from_sig (sig));
|
||||
|
||||
if (sig->trust_depth || sig->trust_value)
|
||||
printf ("%d %d", sig->trust_depth, sig->trust_value);
|
||||
printf (":");
|
||||
es_fprintf (es_stdout, "%d %d", sig->trust_depth, sig->trust_value);
|
||||
es_fprintf (es_stdout, ":");
|
||||
|
||||
if (sig->trust_regexp)
|
||||
print_string (stdout, sig->trust_regexp,
|
||||
strlen (sig->trust_regexp), ':');
|
||||
printf (":");
|
||||
es_write_sanitized (es_stdout, sig->trust_regexp,
|
||||
strlen (sig->trust_regexp), ":", NULL);
|
||||
es_fprintf (es_stdout, ":");
|
||||
|
||||
if (sigrc == '%')
|
||||
printf ("[%s] ", g10_errstr (rc));
|
||||
es_fprintf (es_stdout, "[%s] ", g10_errstr (rc));
|
||||
else if (sigrc == '?')
|
||||
;
|
||||
else if (!opt.fast_list_mode)
|
||||
{
|
||||
size_t n;
|
||||
char *p = get_user_id (sig->keyid, &n);
|
||||
print_string (stdout, p, n, ':');
|
||||
es_write_sanitized (es_stdout, p, n, ":", NULL);
|
||||
xfree (p);
|
||||
}
|
||||
printf (":%02x%c:", sig->sig_class,
|
||||
es_fprintf (es_stdout, ":%02x%c:", sig->sig_class,
|
||||
sig->flags.exportable ? 'x' : 'l');
|
||||
|
||||
if (opt.no_sig_cache && opt.check_sigs && fprokay)
|
||||
{
|
||||
putchar (':');
|
||||
es_putc (':', es_stdout);
|
||||
|
||||
for (i = 0; i < fplen; i++)
|
||||
printf ("%02X", fparray[i]);
|
||||
es_fprintf (es_stdout, "%02X", fparray[i]);
|
||||
|
||||
putchar (':');
|
||||
es_putc (':', es_stdout);
|
||||
}
|
||||
|
||||
printf ("\n");
|
||||
es_fprintf (es_stdout, "\n");
|
||||
|
||||
if (opt.show_subpackets)
|
||||
print_subpackets_colon (sig);
|
||||
|
@ -1428,7 +1425,7 @@ print_fingerprint (PKT_public_key * pk, PKT_secret_key * sk, int mode)
|
|||
{
|
||||
byte array[MAX_FINGERPRINT_LEN], *p;
|
||||
size_t i, n;
|
||||
FILE *fp;
|
||||
estream_t fp;
|
||||
const char *text;
|
||||
int primary = 0;
|
||||
|
||||
|
@ -1497,7 +1494,7 @@ print_fingerprint (PKT_public_key * pk, PKT_secret_key * sk, int mode)
|
|||
}
|
||||
else
|
||||
{
|
||||
fp = stdout;
|
||||
fp = es_stdout;
|
||||
text = _(" Key fingerprint =");
|
||||
}
|
||||
|
||||
|
@ -1508,58 +1505,26 @@ print_fingerprint (PKT_public_key * pk, PKT_secret_key * sk, int mode)
|
|||
p = array;
|
||||
if (opt.with_colons && !mode)
|
||||
{
|
||||
fprintf (fp, "fpr:::::::::");
|
||||
es_fprintf (fp, "fpr:::::::::");
|
||||
for (i = 0; i < n; i++, p++)
|
||||
fprintf (fp, "%02X", *p);
|
||||
putc (':', fp);
|
||||
es_fprintf (fp, "%02X", *p);
|
||||
es_putc (':', fp);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (fp)
|
||||
fputs (text, fp);
|
||||
else
|
||||
tty_printf ("%s", text);
|
||||
tty_fprintf (fp, "%s", text);
|
||||
if (n == 20)
|
||||
{
|
||||
for (i = 0; i < n; i++, i++, p += 2)
|
||||
{
|
||||
if (fp)
|
||||
{
|
||||
if (i == 10)
|
||||
putc (' ', fp);
|
||||
fprintf (fp, " %02X%02X", *p, p[1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (i == 10)
|
||||
tty_printf (" ");
|
||||
tty_printf (" %02X%02X", *p, p[1]);
|
||||
}
|
||||
}
|
||||
tty_fprintf (fp, "%s %02X%02X", i==10? " ":"", *p, p[1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < n; i++, p++)
|
||||
{
|
||||
if (fp)
|
||||
{
|
||||
if (i && !(i % 8))
|
||||
putc (' ', fp);
|
||||
fprintf (fp, " %02X", *p);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (i && !(i % 8))
|
||||
tty_printf (" ");
|
||||
tty_printf (" %02X", *p);
|
||||
}
|
||||
}
|
||||
tty_fprintf (fp, "%s %02X", (i && !(i % 8))? " ":"", *p);
|
||||
}
|
||||
}
|
||||
if (fp)
|
||||
putc ('\n', fp);
|
||||
else
|
||||
tty_printf ("\n");
|
||||
tty_fprintf (fp, "\n");
|
||||
}
|
||||
|
||||
/* Print the serial number of an OpenPGP card if available. */
|
||||
|
@ -1575,8 +1540,8 @@ print_card_serialno (PKT_secret_key * sk)
|
|||
if (opt.with_colons)
|
||||
return; /* Handled elsewhere. */
|
||||
|
||||
fputs (_(" Card serial no. ="), stdout);
|
||||
putchar (' ');
|
||||
es_fputs (_(" Card serial no. ="), es_stdout);
|
||||
es_putc (' ', es_stdout);
|
||||
if (sk->protect.ivlen == 16
|
||||
&& !memcmp (sk->protect.iv, "\xD2\x76\x00\x01\x24\x01", 6))
|
||||
{
|
||||
|
@ -1584,17 +1549,17 @@ print_card_serialno (PKT_secret_key * sk)
|
|||
for (i = 8; i < 14; i++)
|
||||
{
|
||||
if (i == 10)
|
||||
putchar (' ');
|
||||
printf ("%02X", sk->protect.iv[i]);
|
||||
es_putc (' ', es_stdout);
|
||||
es_fprintf (es_stdout, "%02X", sk->protect.iv[i]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Something is wrong: Print all. */
|
||||
for (i = 0; i < sk->protect.ivlen; i++)
|
||||
printf ("%02X", sk->protect.iv[i]);
|
||||
es_fprintf (es_stdout, "%02X", sk->protect.iv[i]);
|
||||
}
|
||||
putchar ('\n');
|
||||
es_putc ('\n', es_stdout);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1607,9 +1572,9 @@ set_attrib_fd (int fd)
|
|||
if (fd != -1 && last_fd == fd)
|
||||
return;
|
||||
|
||||
if (attrib_fp && attrib_fp != stdout && attrib_fp != stderr
|
||||
&& attrib_fp != log_get_stream ())
|
||||
fclose (attrib_fp);
|
||||
/* Fixme: Do we need to check for the log stream here? */
|
||||
if (attrib_fp && attrib_fp != log_get_stream ())
|
||||
es_fclose (attrib_fp);
|
||||
attrib_fp = NULL;
|
||||
if (fd == -1)
|
||||
return;
|
||||
|
@ -1618,11 +1583,11 @@ set_attrib_fd (int fd)
|
|||
setmode (fd, O_BINARY);
|
||||
#endif
|
||||
if (fd == 1)
|
||||
attrib_fp = stdout;
|
||||
attrib_fp = es_stdout;
|
||||
else if (fd == 2)
|
||||
attrib_fp = stderr;
|
||||
attrib_fp = es_stderr;
|
||||
else
|
||||
attrib_fp = fdopen (fd, "wb");
|
||||
attrib_fp = es_fdopen (fd, "wb");
|
||||
if (!attrib_fp)
|
||||
{
|
||||
log_fatal ("can't open fd %d for attribute output: %s\n",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue