From c015e2ba72f3ed1e5afba2bacf917f817b890982 Mon Sep 17 00:00:00 2001 From: weasel Date: Tue, 29 Jun 2004 13:03:10 +0000 Subject: [PATCH] Add gpgdiff git-svn-id: svn://svn.debian.org/pgp-tools/trunk@10 b513b33f-fedd-0310-b452-c3deb5f4c849 --- caff/gpgdiff | 375 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 375 insertions(+) create mode 100644 caff/gpgdiff diff --git a/caff/gpgdiff b/caff/gpgdiff new file mode 100644 index 0000000..cb0870a --- /dev/null +++ b/caff/gpgdiff @@ -0,0 +1,375 @@ +diff -ur gnupg-1.3.6.orig/g10/keyedit.c gnupg-1.3.6/g10/keyedit.c +--- gnupg-1.3.6.orig/g10/keyedit.c 2004-05-22 13:26:00.000000000 +0200 ++++ gnupg-1.3.6/g10/keyedit.c 2004-06-12 15:32:51.219996456 +0200 +@@ -136,48 +136,68 @@ + break; + } + if( sigrc != '?' || print_without_key ) { +- tty_printf("%s%c%c %c%c%c%c%c%c %s %s", +- is_rev? "rev":"sig",sigrc, +- (sig->sig_class-0x10>0 && +- sig->sig_class-0x10<4)?'0'+sig->sig_class-0x10:' ', +- sig->flags.exportable?' ':'L', +- sig->flags.revocable?' ':'R', +- sig->flags.policy_url?'P':' ', +- sig->flags.notation?'N':' ', +- sig->flags.expired?'X':' ', +- (sig->trust_depth>9)?'T': +- (sig->trust_depth>0)?'0'+sig->trust_depth:' ', +- keystr(sig->keyid),datestr_from_sig(sig)); +- if(opt.list_options&LIST_SHOW_SIG_EXPIRE) +- tty_printf(" %s",expirestr_from_sig(sig)); +- tty_printf(" "); +- if( sigrc == '%' ) +- tty_printf("[%s] ", g10_errstr(rc) ); +- else if( sigrc == '?' ) +- ; +- else if( *is_selfsig ) { +- tty_printf( is_rev? _("[revocation]") +- : _("[self-signature]") ); +- } +- else +- { ++ if (opt.with_colons) { + size_t n; +- char *p = get_user_id( sig->keyid, &n ); +- tty_print_utf8_string2( p, n, opt.screen_columns-keystrlen()-26 ); +- m_free(p); +- } +- tty_printf("\n"); + +- if(sig->flags.policy_url && (opt.list_options&LIST_SHOW_POLICY_URLS)) +- show_policy_url(sig,3,0); ++ printf("%s:%c::%d:%08lX%08lX:%s:%s:::", ++ is_rev? "rev":"sig", sigrc, ++ sig->pubkey_algo, ++ (ulong)sig->keyid[0], (ulong)sig->keyid[1], ++ colon_datestr_from_sig(sig), ++ colon_expirestr_from_sig(sig)); ++ if( sigrc != '%' && sigrc != '?') { ++ char *p; ++ p = get_user_id( sig->keyid, &n); ++ print_string( stdout, p, n, ':' ); ++ m_free(p); ++ }; ++ printf(":%02x%c:\n", ++ sig->sig_class,sig->flags.exportable?'x':'l' ++ ); ++ } else { ++ tty_printf("%s%c%c %c%c%c%c%c%c %s %s", ++ is_rev? "rev":"sig",sigrc, ++ (sig->sig_class-0x10>0 && ++ sig->sig_class-0x10<4)?'0'+sig->sig_class-0x10:' ', ++ sig->flags.exportable?' ':'L', ++ sig->flags.revocable?' ':'R', ++ sig->flags.policy_url?'P':' ', ++ sig->flags.notation?'N':' ', ++ sig->flags.expired?'X':' ', ++ (sig->trust_depth>9)?'T': ++ (sig->trust_depth>0)?'0'+sig->trust_depth:' ', ++ keystr(sig->keyid),datestr_from_sig(sig)); ++ if(opt.list_options&LIST_SHOW_SIG_EXPIRE) ++ tty_printf(" %s",expirestr_from_sig(sig)); ++ tty_printf(" "); ++ if( sigrc == '%' ) ++ tty_printf("[%s] ", g10_errstr(rc) ); ++ else if( sigrc == '?' ) ++ ; ++ else if( *is_selfsig ) { ++ tty_printf( is_rev? _("[revocation]") ++ : _("[self-signature]") ); ++ } ++ else ++ { ++ size_t n; ++ char *p = get_user_id( sig->keyid, &n ); ++ tty_print_utf8_string2( p, n, opt.screen_columns-keystrlen()-26 ); ++ m_free(p); ++ } ++ tty_printf("\n"); ++ ++ if(sig->flags.policy_url && (opt.list_options&LIST_SHOW_POLICY_URLS)) ++ show_policy_url(sig,3,0); + +- if(sig->flags.notation && (opt.list_options&LIST_SHOW_NOTATIONS)) +- show_notation(sig,3,0, +- ((opt.list_options&LIST_SHOW_STD_NOTATIONS)?1:0)+ +- ((opt.list_options&LIST_SHOW_USER_NOTATIONS)?2:0)); ++ if(sig->flags.notation && (opt.list_options&LIST_SHOW_NOTATIONS)) ++ show_notation(sig,3,0, ++ ((opt.list_options&LIST_SHOW_STD_NOTATIONS)?1:0)+ ++ ((opt.list_options&LIST_SHOW_USER_NOTATIONS)?2:0)); + +- if(sig->flags.pref_ks && (opt.list_options&LIST_SHOW_KEYSERVER_URLS)) +- show_keyserver_url(sig,3,0); ++ if(sig->flags.pref_ks && (opt.list_options&LIST_SHOW_KEYSERVER_URLS)) ++ show_keyserver_url(sig,3,0); ++ } + } + + return (sigrc == '!'); +@@ -1812,7 +1832,7 @@ + else { + tty_printf(" "); + for(i=0; prefs[i].type; i++ ) { +- tty_printf( " %c%d", prefs[i].type == PREFTYPE_SYM ? 'S' : ++ tty_printf( " %c%d", prefs[i].type == PREFTYPE_SYM ? 'S' : + prefs[i].type == PREFTYPE_HASH ? 'H' : + prefs[i].type == PREFTYPE_ZIP ? 'Z':'?', + prefs[i].value); +@@ -1826,6 +1846,82 @@ + } + + ++/* This shows one uid, in an easy to parse format and does not translate utf8 */ ++static void ++show_one_uid_colon (KBNODE node, int index, PKT_public_key *primary, int ulti_hack, int pk_version) ++{ ++ int j; ++ assert ( node->pkt->pkttype == PKT_USER_ID ); ++ PKT_user_id *uid = node->pkt->pkt.user_id; ++ ++ if(uid->attrib_data) ++ printf("uat:"); ++ else ++ printf("uid:"); ++ ++ if ( uid->is_revoked ) ++ printf("r::::::::"); ++ else if ( uid->is_expired ) ++ printf("e::::::::"); ++ else if ( opt.fast_list_mode || opt.no_expensive_trust_checks ) ++ printf("::::::::"); ++ else ++ { ++ int uid_validity; ++ ++ if( primary && !ulti_hack ) ++ uid_validity = get_validity_info( primary, uid ); ++ else ++ uid_validity = 'u'; ++ printf("%c::::::::",uid_validity); ++ } ++ ++ if(uid->attrib_data) ++ printf ("%u %lu",uid->numattribs,uid->attrib_len); ++ else ++ print_string (stdout, uid->name, uid->len, ':'); ++ ++ putchar (':'); ++ /* signature class */ ++ putchar (':'); ++ /* capabilities */ ++ putchar (':'); ++ /* preferences */ ++ if (pk_version>3 || uid->selfsigversion>3) ++ { ++ const prefitem_t *prefs = uid->prefs; ++ ++ for (j=0; prefs && prefs[j].type; j++) ++ { ++ if (j) ++ putchar (' '); ++ printf ("%c%d", prefs[j].type == PREFTYPE_SYM ? 'S' : ++ prefs[j].type == PREFTYPE_HASH ? 'H' : ++ prefs[j].type == PREFTYPE_ZIP ? 'Z':'?', ++ prefs[j].value); ++ } ++ if (uid->mdc_feature) ++ printf (",mdc"); ++ if (!uid->ks_modify) ++ printf (",no-ks-modify"); ++ } ++ putchar (':'); ++ /* flags */ ++ printf ("%d,", index); ++ if (uid->is_primary) ++ putchar ('p'); ++ if (uid->is_revoked) ++ putchar ('r'); ++ if (uid->is_expired) ++ putchar ('e'); ++ if ((node->flag & NODFLG_SELUID)) ++ putchar ('s'); ++ if ((node->flag & NODFLG_MARK_A)) ++ putchar ('m'); ++ putchar (':'); ++ putchar('\n'); ++} ++ + /* This is the version of show_key_with_all_names used when + opt.with_colons is used. It prints all available data in a easy to + parse format and does not translate utf8 */ +@@ -1905,80 +2001,12 @@ + + /* the user ids */ + i = 0; +- for (node = keyblock; node; node = node->next) ++ for (node = keyblock; node; node = node->next) + { + if ( node->pkt->pkttype == PKT_USER_ID ) + { +- PKT_user_id *uid = node->pkt->pkt.user_id; +- + ++i; +- +- if(uid->attrib_data) +- printf("uat:"); +- else +- printf("uid:"); +- +- if ( uid->is_revoked ) +- printf("r::::::::"); +- else if ( uid->is_expired ) +- printf("e::::::::"); +- else if ( opt.fast_list_mode || opt.no_expensive_trust_checks ) +- printf("::::::::"); +- else +- { +- int uid_validity; +- +- if( primary && !ulti_hack ) +- uid_validity = get_validity_info( primary, uid ); +- else +- uid_validity = 'u'; +- printf("%c::::::::",uid_validity); +- } +- +- if(uid->attrib_data) +- printf ("%u %lu",uid->numattribs,uid->attrib_len); +- else +- print_string (stdout, uid->name, uid->len, ':'); +- +- putchar (':'); +- /* signature class */ +- putchar (':'); +- /* capabilities */ +- putchar (':'); +- /* preferences */ +- if (pk_version>3 || uid->selfsigversion>3) +- { +- const prefitem_t *prefs = uid->prefs; +- +- for (j=0; prefs && prefs[j].type; j++) +- { +- if (j) +- putchar (' '); +- printf ("%c%d", prefs[j].type == PREFTYPE_SYM ? 'S' : +- prefs[j].type == PREFTYPE_HASH ? 'H' : +- prefs[j].type == PREFTYPE_ZIP ? 'Z':'?', +- prefs[j].value); +- } +- if (uid->mdc_feature) +- printf (",mdc"); +- if (!uid->ks_modify) +- printf (",no-ks-modify"); +- } +- putchar (':'); +- /* flags */ +- printf ("%d,", i); +- if (uid->is_primary) +- putchar ('p'); +- if (uid->is_revoked) +- putchar ('r'); +- if (uid->is_expired) +- putchar ('e'); +- if ((node->flag & NODFLG_SELUID)) +- putchar ('s'); +- if ((node->flag & NODFLG_MARK_A)) +- putchar ('m'); +- putchar (':'); +- putchar('\n'); ++ show_one_uid_colon(node, i, primary, ulti_hack, pk_version); + } + } + } +@@ -2506,17 +2534,23 @@ + KBNODE node; + PKT_user_id *uid = NULL; + int changed=0; ++ KBNODE uidnode = NULL; + + for( node = pub_keyblock; node; node = node->next ) { + if( node->pkt->pkttype == PKT_USER_ID ) { + uid = (node->flag & NODFLG_SELUID)? node->pkt->pkt.user_id : NULL; ++ uidnode = node; + } + else if( uid && node->pkt->pkttype == PKT_SIGNATURE ) { + int okay, valid, selfsig, inv_sig, no_key, other_err; + +- tty_printf("uid "); +- tty_print_utf8_string( uid->name, uid->len ); +- tty_printf("\n"); ++ if (opt.with_colons) ++ show_one_uid_colon (uidnode, 0, NULL, 0, 0); /* FIXME: pk_version */ ++ else { ++ tty_printf("uid "); ++ tty_print_utf8_string( uid->name, uid->len ); ++ tty_printf("\n"); ++ } + + okay = inv_sig = no_key = other_err = 0; + valid = print_and_check_one_sig( pub_keyblock, node, +diff -ur gnupg-1.3.6.orig/g10/status.c gnupg-1.3.6/g10/status.c +--- gnupg-1.3.6.orig/g10/status.c 2004-05-22 13:19:05.000000000 +0200 ++++ gnupg-1.3.6/g10/status.c 2004-06-12 15:25:53.142553888 +0200 +@@ -590,6 +590,9 @@ + { + char *p; + ++ fflush(stdout); ++ fflush(stderr); ++ + if( opt.command_fd != -1 ) + return do_get_from_fd ( keyword, 0, 0 ); + #ifdef USE_SHM_COPROCESSING +@@ -607,6 +610,9 @@ + { + char *p; + ++ fflush(stdout); ++ fflush(stderr); ++ + if( opt.command_fd != -1 ) + return do_get_from_fd ( keyword, 0, 0 ); + #ifdef USE_SHM_COPROCESSING +@@ -643,6 +649,9 @@ + { + char *p; + ++ fflush(stdout); ++ fflush(stderr); ++ + if( opt.command_fd != -1 ) + return do_get_from_fd ( keyword, 1, 0 ); + #ifdef USE_SHM_COPROCESSING +@@ -679,6 +688,9 @@ + int yes; + char *p; + ++ fflush(stdout); ++ fflush(stderr); ++ + if( opt.command_fd != -1 ) + return !!do_get_from_fd ( keyword, 0, 1 ); + #ifdef USE_SHM_COPROCESSING +@@ -707,6 +719,9 @@ + int yes; + char *p; + ++ fflush(stdout); ++ fflush(stderr); ++ + if( opt.command_fd != -1 ) + return !!do_get_from_fd ( keyword, 0, 1 ); + #ifdef USE_SHM_COPROCESSING +@@ -739,6 +754,9 @@ + char *answer = NULL; + char *p; + ++ fflush(stdout); ++ fflush(stderr); ++ + if( opt.command_fd != -1 ) + answer = do_get_from_fd ( keyword, 0, 0 ); + #ifdef USE_SHM_COPROCESSING -- 2.39.5