summaryrefslogtreecommitdiffstats
path: root/g10
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2008-06-11 10:07:54 +0200
committerWerner Koch <wk@gnupg.org>2008-06-11 10:07:54 +0200
commit035c838f715968f919d582afca34d18d8f9fd0bf (patch)
treeb314bbe2b9e503bfbd28b86cd95506d60d062184 /g10
parentAdd Base64 decoder. Not yet used but complements out encoder. (diff)
downloadgnupg2-035c838f715968f919d582afca34d18d8f9fd0bf.tar.xz
gnupg2-035c838f715968f919d582afca34d18d8f9fd0bf.zip
Made --fixed-list-mode obsolete.
Diffstat (limited to 'g10')
-rw-r--r--g10/ChangeLog10
-rw-r--r--g10/gpg.c2
-rw-r--r--g10/keyid.c59
-rw-r--r--g10/keylist.c641
-rw-r--r--g10/options.h1
5 files changed, 335 insertions, 378 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog
index af0ec7c00..4d7c92fa5 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,13 @@
+2008-06-11 Werner Koch <wk@g10code.com>
+
+ * gpg.c: Make --fixed-list-mode a dummy.
+ * options.h (struct): Removed FIXED_LIST_MODE.
+ * keyid.c (colon_strtime, colon_datestr_from_pk)
+ (colon_datestr_from_sk, colon_datestr_from_sig)
+ (colon_expirestr_from_sig): Remove fixed_list_mode case.
+ * keylist.c (list_keyblock_colon): Ditto. Remove all now unsed
+ code and reindent.
+
2008-05-31 Werner Koch <wk@g10code.com>
* keygen.c (ask_user_id): Change the string printed as header of
diff --git a/g10/gpg.c b/g10/gpg.c
index 50ce0762b..adb4c3682 100644
--- a/g10/gpg.c
+++ b/g10/gpg.c
@@ -2734,7 +2734,7 @@ main (int argc, char **argv)
"--keyserver-options ","http-proxy");
break;
case oFastListMode: opt.fast_list_mode = 1; break;
- case oFixedListMode: opt.fixed_list_mode = 1; break;
+ case oFixedListMode: /* Dummy */ break;
case oListOnly: opt.list_only=1; break;
case oIgnoreTimeConflict: opt.ignore_time_conflict = 1; break;
case oIgnoreValidFrom: opt.ignore_valid_from = 1; break;
diff --git a/g10/keyid.c b/g10/keyid.c
index 89b2ddfe2..9675bbe07 100644
--- a/g10/keyid.c
+++ b/g10/keyid.c
@@ -607,60 +607,51 @@ usagestr_from_pk( PKT_public_key *pk )
const char *
colon_strtime (u32 t)
{
- if (!t)
- return "";
- if (opt.fixed_list_mode) {
- static char buf[15];
- sprintf (buf, "%lu", (ulong)t);
- return buf;
- }
- return strtimestamp(t);
+ static char buf[20];
+
+ if (!t)
+ return "";
+ snprintf (buf, sizeof buf, "%lu", (ulong)t);
+ return buf;
}
const char *
colon_datestr_from_pk (PKT_public_key *pk)
{
- if (opt.fixed_list_mode) {
- static char buf[15];
- sprintf (buf, "%lu", (ulong)pk->timestamp);
- return buf;
- }
- return datestr_from_pk (pk);
+ static char buf[20];
+
+ snprintf (buf, sizeof buf, "%lu", (ulong)pk->timestamp);
+ return buf;
}
const char *
colon_datestr_from_sk (PKT_secret_key *sk)
{
- if (opt.fixed_list_mode) {
- static char buf[15];
- sprintf (buf, "%lu", (ulong)sk->timestamp);
- return buf;
- }
- return datestr_from_sk (sk);
+ static char buf[20];
+
+ snprintf (buf, sizeof buf, "%lu", (ulong)sk->timestamp);
+ return buf;
}
const char *
colon_datestr_from_sig (PKT_signature *sig)
{
- if (opt.fixed_list_mode) {
- static char buf[15];
- sprintf (buf, "%lu", (ulong)sig->timestamp);
- return buf;
- }
- return datestr_from_sig (sig);
+ static char buf[20];
+
+ snprintf (buf, sizeof buf, "%lu", (ulong)sig->timestamp);
+ return buf;
}
const char *
colon_expirestr_from_sig (PKT_signature *sig)
{
- if(!sig->expiredate)
- return "";
- if (opt.fixed_list_mode) {
- static char buf[15];
- sprintf (buf, "%lu", (ulong)sig->expiredate);
- return buf;
- }
- return expirestr_from_sig (sig);
+ static char buf[20];
+
+ if (!sig->expiredate)
+ return "";
+
+ snprintf (buf, sizeof buf,"%lu", (ulong)sig->expiredate);
+ return buf;
}
diff --git a/g10/keylist.c b/g10/keylist.c
index 0c6e26729..2de516b00 100644
--- a/g10/keylist.c
+++ b/g10/keylist.c
@@ -1,6 +1,6 @@
/* keylist.c - print keys
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003,
- * 2004, 2005 Free Software Foundation, Inc.
+ * 2004, 2005, 2008 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -1062,366 +1062,323 @@ print_revokers(PKT_public_key *pk)
static void
list_keyblock_colon( KBNODE keyblock, int secret, int fpr )
{
- int rc = 0;
- KBNODE kbctx;
- KBNODE node;
- PKT_public_key *pk;
- PKT_secret_key *sk;
- u32 keyid[2];
- int any=0;
- int trustletter = 0;
- int ulti_hack = 0;
- int i;
+ int rc = 0;
+ KBNODE kbctx;
+ KBNODE node;
+ PKT_public_key *pk;
+ PKT_secret_key *sk;
+ u32 keyid[2];
+ int trustletter = 0;
+ int ulti_hack = 0;
+ int i;
- /* get the keyid from the keyblock */
- node = find_kbnode( keyblock, secret? PKT_SECRET_KEY : PKT_PUBLIC_KEY );
- if( !node ) {
- log_error("Oops; key lost!\n");
- dump_kbnode( keyblock );
- return;
+ /* get the keyid from the keyblock */
+ node = find_kbnode( keyblock, secret? PKT_SECRET_KEY : PKT_PUBLIC_KEY );
+ if ( !node )
+ {
+ log_error("Oops; key lost!\n");
+ dump_kbnode( keyblock );
+ return;
}
- if( secret ) {
- pk = NULL;
- sk = node->pkt->pkt.secret_key;
- keyid_from_sk( sk, keyid );
- printf("sec::%u:%d:%08lX%08lX:%s:%s:::",
- nbits_from_sk( sk ),
- sk->pubkey_algo,
- (ulong)keyid[0],(ulong)keyid[1],
- colon_datestr_from_sk( sk ),
- colon_strtime (sk->expiredate)
- /* fixme: add LID here */ );
+ if ( secret )
+ {
+ pk = NULL;
+ sk = node->pkt->pkt.secret_key;
+ keyid_from_sk ( sk, keyid );
+ printf ("sec::%u:%d:%08lX%08lX:%s:%s:::",
+ nbits_from_sk( sk ),
+ sk->pubkey_algo,
+ (ulong)keyid[0],(ulong)keyid[1],
+ colon_datestr_from_sk( sk ),
+ colon_strtime (sk->expiredate)
+ /* fixme: add LID here */ );
}
- else {
- pk = node->pkt->pkt.public_key;
- sk = NULL;
- keyid_from_pk( pk, keyid );
- fputs( "pub:", stdout );
- if ( !pk->is_valid )
+ else
+ {
+ pk = node->pkt->pkt.public_key;
+ sk = NULL;
+ keyid_from_pk( pk, keyid );
+ fputs( "pub:", stdout );
+ if ( !pk->is_valid )
+ putchar ('i');
+ else if ( pk->is_revoked )
+ putchar ('r');
+ else if ( pk->has_expired )
+ putchar ('e');
+ else if ( opt.fast_list_mode || opt.no_expensive_trust_checks )
+ ;
+ else
+ {
+ trustletter = get_validity_info ( pk, NULL );
+ if ( trustletter == 'u' )
+ ulti_hack = 1;
+ putchar(trustletter);
+ }
+ printf (":%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(':');
+ }
+
+ putchar (':');
+ putchar (':');
+ print_capabilities (pk, sk, keyblock);
+ if (secret)
+ {
+ putchar (':'); /* End of field 13. */
+ putchar (':'); /* End of field 14. */
+ if (sk->protect.s2k.mode == 1001)
+ putchar ('#'); /* Key is just a stub. */
+ else if (sk->protect.s2k.mode == 1002)
+ {
+ /* Key is stored on an external token (card) or handled by
+ the gpg-agent. Print the serial number of that token
+ here. */
+ for (i=0; i < sk->protect.ivlen; i++)
+ printf ("%02X", sk->protect.iv[i]);
+ }
+ putchar (':'); /* End of field 15. */
+ }
+ putchar('\n');
+ if (pk)
+ print_revokers (pk);
+ if (fpr)
+ print_fingerprint (pk, sk, 0);
+ if (opt.with_key_data)
+ print_key_data (pk);
+
+
+ for ( kbctx=NULL; (node=walk_kbnode( keyblock, &kbctx, 0)) ; )
+ {
+ if ( node->pkt->pkttype == PKT_USER_ID && !opt.fast_list_mode )
+ {
+ char *str;
+ PKT_user_id *uid=node->pkt->pkt.user_id;
+
+ if (attrib_fp && node->pkt->pkt.user_id->attrib_data != NULL)
+ dump_attribs (node->pkt->pkt.user_id,pk,sk);
+ /*
+ * Fixme: We need a is_valid flag here too
+ */
+ str = uid->attrib_data? "uat":"uid";
+ /* If we're listing a secret key, leave out the validity
+ values for now. This is handled better in 1.9. */
+ if (sk)
+ printf ("%s:::::",str);
+ else if ( uid->is_revoked )
+ printf ("%s:r::::",str);
+ else if ( uid->is_expired )
+ printf ("%s:e::::",str);
+ else if ( opt.no_expensive_trust_checks )
+ printf ("%s:::::",str);
+ else
+ {
+ int uid_validity;
+
+ if ( pk && !ulti_hack )
+ uid_validity=get_validity_info (pk, uid);
+ else
+ uid_validity = 'u';
+ printf ("%s:%c::::",str,uid_validity);
+ }
+
+ printf ("%s:", colon_strtime (uid->created));
+ printf ("%s:", colon_strtime (uid->expiredate));
+
+ namehash_from_uid (uid);
+
+ for (i=0; i < 20; i++ )
+ printf ("%02X",uid->namehash[i]);
+
+ printf ("::");
+
+ if (uid->attrib_data)
+ printf ("%u %lu",uid->numattribs,uid->attrib_len);
+ else
+ print_string (stdout,uid->name,uid->len, ':' );
+ putchar (':');
+ putchar ('\n');
+ }
+ else if ( node->pkt->pkttype == PKT_PUBLIC_SUBKEY )
+ {
+ u32 keyid2[2];
+ PKT_public_key *pk2 = node->pkt->pkt.public_key;
+
+ keyid_from_pk ( pk2, keyid2 );
+ fputs ("sub:", stdout );
+ if ( !pk2->is_valid )
putchar ('i');
- else if ( pk->is_revoked )
+ else if ( pk2->is_revoked )
putchar ('r');
- else if ( pk->has_expired )
+ else if ( pk2->has_expired )
putchar ('e');
- else if ( opt.fast_list_mode || opt.no_expensive_trust_checks )
+ else if ( opt.fast_list_mode || opt.no_expensive_trust_checks )
;
- else {
- trustletter = get_validity_info ( pk, NULL );
- if( trustletter == 'u' )
- ulti_hack = 1;
- putchar(trustletter);
+ else
+ {
+ /* TRUSTLETTER should always be defined here. */
+ if (trustletter)
+ printf ("%c", trustletter );
+ }
+ printf(":%u:%d:%08lX%08lX:%s:%s:::::",
+ nbits_from_pk( pk2 ),
+ pk2->pubkey_algo,
+ (ulong)keyid2[0],(ulong)keyid2[1],
+ colon_datestr_from_pk( pk2 ),
+ colon_strtime (pk2->expiredate)
+ /* fixme: add LID and ownertrust here */
+ );
+ print_capabilities (pk2, NULL, NULL);
+ putchar ('\n');
+ if ( fpr > 1 )
+ print_fingerprint ( pk2, NULL, 0 );
+ if ( opt.with_key_data )
+ print_key_data( pk2 );
}
- printf(":%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(':');
- }
-
- if (opt.fixed_list_mode) {
- /* do not merge the first uid with the primary key */
- putchar(':');
- putchar(':');
- print_capabilities (pk, sk, keyblock);
- if (secret) {
+ else if( node->pkt->pkttype == PKT_SECRET_SUBKEY )
+ {
+ u32 keyid2[2];
+ PKT_secret_key *sk2 = node->pkt->pkt.secret_key;
+
+ keyid_from_sk ( sk2, keyid2 );
+ printf ("ssb::%u:%d:%08lX%08lX:%s:%s:::::",
+ nbits_from_sk( sk2 ),
+ sk2->pubkey_algo,
+ (ulong)keyid2[0],(ulong)keyid2[1],
+ colon_datestr_from_sk( sk2 ),
+ colon_strtime (sk2->expiredate)
+ /* fixme: add LID */ );
+ print_capabilities (NULL, sk2, NULL);
putchar(':'); /* End of field 13. */
putchar(':'); /* End of field 14. */
- if (sk->protect.s2k.mode == 1001)
- putchar('#'); /* Key is just a stub. */
- else if (sk->protect.s2k.mode == 1002) {
- /* Key is stored on an external token (card) or handled by
- the gpg-agent. Print the serial number of that token
- here. */
- for (i=0; i < sk->protect.ivlen; i++)
- printf ("%02X", sk->protect.iv[i]);
- }
+ if (sk2->protect.s2k.mode == 1001)
+ putchar ('#'); /* Key is just a stub. */
+ else if (sk2->protect.s2k.mode == 1002)
+ {
+ /* Key is stored on an external token (card) or handled by
+ the gpg-agent. Print the serial number of that token
+ here. */
+ for (i=0; i < sk2->protect.ivlen; i++)
+ printf ("%02X", sk2->protect.iv[i]);
+ }
putchar(':'); /* End of field 15. */
+ putchar ('\n');
+
+ if ( fpr > 1 )
+ print_fingerprint ( NULL, sk2, 0 );
}
- putchar('\n');
- if(pk)
- print_revokers(pk);
- if( fpr )
- print_fingerprint( pk, sk, 0 );
- if( opt.with_key_data )
- print_key_data( pk );
- any = 1;
- }
-
- for( kbctx=NULL; (node=walk_kbnode( keyblock, &kbctx, 0)) ; ) {
- if( node->pkt->pkttype == PKT_USER_ID && !opt.fast_list_mode ) {
- PKT_user_id *uid=node->pkt->pkt.user_id;
- if(attrib_fp && node->pkt->pkt.user_id->attrib_data!=NULL)
- dump_attribs(node->pkt->pkt.user_id,pk,sk);
- /*
- * Fixme: We need a is_valid flag here too
- */
- if( any ) {
- char *str=uid->attrib_data?"uat":"uid";
- /* If we're listing a secret key, leave out the
- validity values for now. This is handled better in
- 1.9. */
- if ( sk )
- printf("%s:::::",str);
- else if ( uid->is_revoked )
- printf("%s:r::::",str);
- else if ( uid->is_expired )
- printf("%s:e::::",str);
- else if ( opt.no_expensive_trust_checks )
- printf("%s:::::",str);
- else {
- int uid_validity;
+ else if ( opt.list_sigs && node->pkt->pkttype == PKT_SIGNATURE )
+ {
+ PKT_signature *sig = node->pkt->pkt.signature;
+ int sigrc,fprokay=0;
+ char *sigstr;
+ size_t fplen;
+ byte fparray[MAX_FINGERPRINT_LEN];
+
+ if ( sig->sig_class == 0x20 || sig->sig_class == 0x28
+ || sig->sig_class == 0x30 )
+ sigstr = "rev";
+ else if ( (sig->sig_class&~3) == 0x10 )
+ sigstr = "sig";
+ else if ( sig->sig_class == 0x18 )
+ sigstr = "sig";
+ else if ( sig->sig_class == 0x1F )
+ sigstr = "sig";
+ else
+ {
+ printf ("sig::::::::::%02x%c:\n",
+ sig->sig_class, sig->flags.exportable?'x':'l');
+ continue;
+ }
- if( pk && !ulti_hack )
- uid_validity=get_validity_info (pk, uid);
- else
- uid_validity = 'u';
- printf("%s:%c::::",str,uid_validity);
+ if ( opt.check_sigs )
+ {
+ PKT_public_key *signer_pk=NULL;
+
+ fflush (stdout);
+ if (opt.no_sig_cache)
+ signer_pk = xmalloc_clear (sizeof(PKT_public_key));
+
+ rc = check_key_signature2 ( keyblock, node, NULL, signer_pk,
+ NULL, NULL, NULL );
+ switch ( gpg_err_code (rc) )
+ {
+ case 0: sigrc = '!'; break;
+ case GPG_ERR_BAD_SIGNATURE: sigrc = '-'; break;
+ case GPG_ERR_NO_PUBKEY:
+ case GPG_ERR_UNUSABLE_PUBKEY: sigrc = '?'; break;
+ default: sigrc = '%'; break;
}
- printf("%s:",colon_strtime(uid->created));
- printf("%s:",colon_strtime(uid->expiredate));
-
- namehash_from_uid(uid);
-
- for(i=0; i < 20; i++ )
- printf("%02X",uid->namehash[i]);
-
- printf("::");
- }
- if(uid->attrib_data)
- printf("%u %lu",uid->numattribs,uid->attrib_len);
- else
- print_string(stdout,uid->name,uid->len, ':' );
- putchar(':');
- if (any)
- putchar('\n');
- else {
- putchar(':');
- print_capabilities (pk, sk, keyblock);
- putchar('\n');
- if( fpr )
- print_fingerprint( pk, sk, 0 );
- if( opt.with_key_data )
- print_key_data( pk );
- any = 1;
- }
- }
- else if( node->pkt->pkttype == PKT_PUBLIC_SUBKEY ) {
- u32 keyid2[2];
- PKT_public_key *pk2 = node->pkt->pkt.public_key;
-
- if( !any ) {
- putchar(':');
- putchar(':');
- print_capabilities (pk, sk, keyblock);
- putchar('\n');
- if( fpr )
- print_fingerprint( pk, sk, 0 ); /* of the main key */
- any = 1;
- }
-
- keyid_from_pk( pk2, keyid2 );
- fputs ("sub:", stdout );
- if ( !pk2->is_valid )
- putchar ('i');
- else if ( pk2->is_revoked )
- putchar ('r');
- else if ( pk2->has_expired )
- putchar ('e');
- else if ( opt.fast_list_mode || opt.no_expensive_trust_checks )
- ;
- else {
- /* trustletter should always be defined here */
- if(trustletter)
- printf("%c", trustletter );
+ if (opt.no_sig_cache)
+ {
+ if (!rc)
+ {
+ fingerprint_from_pk (signer_pk, fparray, &fplen);
+ fprokay = 1;
+ }
+ free_public_key(signer_pk);
+ }
}
- printf(":%u:%d:%08lX%08lX:%s:%s:::::",
- nbits_from_pk( pk2 ),
- pk2->pubkey_algo,
- (ulong)keyid2[0],(ulong)keyid2[1],
- colon_datestr_from_pk( pk2 ),
- colon_strtime (pk2->expiredate)
- /* fixme: add LID and ownertrust here */
- );
- print_capabilities (pk2, NULL, NULL);
- putchar('\n');
- if( fpr > 1 )
- print_fingerprint( pk2, NULL, 0 );
- if( opt.with_key_data )
- print_key_data( pk2 );
- }
- else if( node->pkt->pkttype == PKT_SECRET_SUBKEY ) {
- u32 keyid2[2];
- PKT_secret_key *sk2 = node->pkt->pkt.secret_key;
-
- if( !any ) {
- putchar(':');
- putchar(':');
- print_capabilities (pk, sk, keyblock);
- putchar('\n');
- if( fpr )
- print_fingerprint( pk, sk, 0 ); /* of the main key */
- any = 1;
- }
-
- keyid_from_sk( sk2, keyid2 );
- printf("ssb::%u:%d:%08lX%08lX:%s:%s:::::",
- nbits_from_sk( sk2 ),
- sk2->pubkey_algo,
- (ulong)keyid2[0],(ulong)keyid2[1],
- colon_datestr_from_sk( sk2 ),
- colon_strtime (sk2->expiredate)
- /* fixme: add LID */ );
- print_capabilities (NULL, sk2, NULL);
- if (opt.fixed_list_mode) {
- /* We print the serial number only in fixed list mode
- for the primary key so, so avoid questions we print
- it for subkeys also only in this mode. There is no
- technical reason, though. */
- putchar(':'); /* End of field 13. */
- putchar(':'); /* End of field 14. */
- if (sk2->protect.s2k.mode == 1001)
- putchar('#'); /* Key is just a stub. */
- else if (sk2->protect.s2k.mode == 1002) {
- /* Key is stored on an external token (card) or handled by
- the gpg-agent. Print the serial number of that token
- here. */
- for (i=0; i < sk2->protect.ivlen; i++)
- printf ("%02X", sk2->protect.iv[i]);
- }
- putchar(':'); /* End of field 15. */
+ else
+ {
+ rc = 0;
+ sigrc = ' ';
+ }
+ fputs ( sigstr, stdout );
+ putchar (':');
+ if ( sigrc != ' ' )
+ putchar (sigrc);
+ printf ("::%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 (":");
+
+ if (sig->trust_regexp)
+ print_string (stdout,sig->trust_regexp,
+ strlen(sig->trust_regexp),':');
+ printf(":");
+
+ if ( sigrc == '%' )
+ printf("[%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, ':' );
+ xfree(p);
+ }
+ printf (":%02x%c:", sig->sig_class,sig->flags.exportable?'x':'l');
+
+ if (opt.no_sig_cache && opt.check_sigs && fprokay)
+ {
+ putchar (':');
+
+ for (i=0; i < fplen ; i++ )
+ printf ("%02X", fparray[i] );
+
+ putchar (':');
}
- putchar ('\n');
- if( fpr > 1 )
- print_fingerprint( NULL, sk2, 0 );
- }
- else if( opt.list_sigs && node->pkt->pkttype == PKT_SIGNATURE ) {
- PKT_signature *sig = node->pkt->pkt.signature;
- int sigrc,fprokay=0;
- char *sigstr;
- size_t fplen;
- byte fparray[MAX_FINGERPRINT_LEN];
-
- if( !any ) { /* no user id, (maybe a revocation follows)*/
- if( sig->sig_class == 0x20 )
- fputs("[revoked]:", stdout);
- else if( sig->sig_class == 0x18 )
- fputs("[key binding]:", stdout);
- else if( sig->sig_class == 0x28 )
- fputs("[subkey revoked]:", stdout);
- else
- putchar (':');
- putchar(':');
- print_capabilities (pk, sk, keyblock);
- putchar('\n');
- if( fpr )
- print_fingerprint( pk, sk, 0 );
- any=1;
- }
-
- if( sig->sig_class == 0x20 || sig->sig_class == 0x28
- || sig->sig_class == 0x30 )
- sigstr = "rev";
- else if( (sig->sig_class&~3) == 0x10 )
- sigstr = "sig";
- else if( sig->sig_class == 0x18 )
- sigstr = "sig";
- else if( sig->sig_class == 0x1F )
- sigstr = "sig";
- else {
- printf ("sig::::::::::%02x%c:\n",
- sig->sig_class, sig->flags.exportable?'x':'l');
- continue;
- }
- if( opt.check_sigs ) {
- PKT_public_key *signer_pk=NULL;
-
- fflush(stdout);
- if(opt.no_sig_cache)
- signer_pk=xmalloc_clear(sizeof(PKT_public_key));
-
- rc = check_key_signature2( keyblock, node, NULL, signer_pk,
- NULL, NULL, NULL );
- switch ( gpg_err_code (rc) ) {
- case 0: sigrc = '!'; break;
- case GPG_ERR_BAD_SIGNATURE: sigrc = '-'; break;
- case GPG_ERR_NO_PUBKEY:
- case GPG_ERR_UNUSABLE_PUBKEY: sigrc = '?'; break;
- default: sigrc = '%'; break;
- }
-
- if(opt.no_sig_cache)
- {
- if(rc==0)
- {
- fingerprint_from_pk (signer_pk, fparray, &fplen);
- fprokay=1;
- }
- free_public_key(signer_pk);
- }
- }
- else {
- rc = 0;
- sigrc = ' ';
- }
- fputs( sigstr, stdout );
- putchar(':');
- if( sigrc != ' ' )
- putchar(sigrc);
- printf("::%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(":");
-
- if(sig->trust_regexp)
- print_string(stdout,sig->trust_regexp,
- strlen(sig->trust_regexp),':');
- printf(":");
-
- if( sigrc == '%' )
- printf("[%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, ':' );
- xfree(p);
- }
- printf(":%02x%c:", sig->sig_class,sig->flags.exportable?'x':'l');
-
- if(opt.no_sig_cache && opt.check_sigs && fprokay)
- {
- printf(":");
-
- for (i=0; i < fplen ; i++ )
- printf ("%02X", fparray[i] );
-
- printf(":");
- }
-
- printf("\n");
-
- if(opt.show_subpackets)
- print_subpackets_colon(sig);
- /* fixme: check or list other sigs here */
- }
- }
- if( !any ) {/* oops, no user id */
- putchar(':');
- putchar(':');
- print_capabilities (pk, sk, keyblock);
- putchar('\n');
+ printf ("\n");
+
+ if (opt.show_subpackets)
+ print_subpackets_colon (sig);
+
+ /* fixme: check or list other sigs here */
+ }
}
}
diff --git a/g10/options.h b/g10/options.h
index 91dddc9a2..40bd23029 100644
--- a/g10/options.h
+++ b/g10/options.h
@@ -179,7 +179,6 @@ struct
int no_literal;
ulong set_filesize;
int fast_list_mode;
- int fixed_list_mode;
int ignore_time_conflict;
int ignore_valid_from;
int ignore_crc_error;