From 68446e183cbcb2fc6ea060625684b3ace507aaa0 Mon Sep 17 00:00:00 2001 From: weasel Date: Fri, 12 Nov 2004 22:23:38 +0000 Subject: [PATCH] GnuPG 1.3.92 does all we want git-svn-id: svn://svn.debian.org/pgp-tools/trunk@27 b513b33f-fedd-0310-b452-c3deb5f4c849 --- caff/README | 9 +- caff/caffrc.sample | 2 +- caff/gpgdiff | 375 --------------------------------------------- 3 files changed, 4 insertions(+), 382 deletions(-) delete mode 100644 caff/gpgdiff diff --git a/caff/README b/caff/README index ef02f8d..7b97b91 100644 --- a/caff/README +++ b/caff/README @@ -6,7 +6,6 @@ GnuPG so that you can sign it. It then mails each key to all its email addresses - only including the one UID that we send to in each mail. - Features: * Easy to setup. * Attaches only the very UID that we send to in the mail. @@ -17,10 +16,8 @@ Features: * Creates proper PGP MIME messages. * Uses separate GNUPGHOME for all its operations. -Caveats: - * Requires a gpg patch for now, until 2 bugs are fixed: - http://bugs.debian.org/252917 gnupg: --with-colons and --edit delsigs - http://bugs.debian.org/254072 gpg should flush stdout before prompting in --edit +Special Requirements: + * GnuPG 1.3.92 or later. Discussion: @@ -36,7 +33,7 @@ systems. -Dependencies: gnupg (>= 1.2), perl, libgnupg-interface-perl, libmime-perl, libmailtools-perl (>= 1.62), mailx +Dependencies: gnupg (>= 1.3.92), perl, libgnupg-interface-perl, libmime-perl, libmailtools-perl (>= 1.62), mailx -- Peter diff --git a/caff/caffrc.sample b/caff/caffrc.sample index b228567..07d5e02 100644 --- a/caff/caffrc.sample +++ b/caff/caffrc.sample @@ -15,6 +15,6 @@ $CONFIG{'keyid'} = [ qw{DE7AAF6E94C09C7F 62AF4031C82E0039} ]; $CONFIG{'also-encrypt-to'} = 'DE7AAF6E94C09C7F'; $CONFIG{'caffhome'} = $ENV{'HOME'}.'/.caff'; -$CONFIG{'gpg-delsig'} = '/home/weasel/tmp/gpg/gnupg-1.3.6/g10/gpg'; +$CONFIG{'gpg-delsig'} = '/home/weasel/tmp/gpg/gnupg-1.3.92/g10/gpg'; $CONFIG{'secret-keyring'} = '/tmp/gpg/secring.gpg'; diff --git a/caff/gpgdiff b/caff/gpgdiff deleted file mode 100644 index cb0870a..0000000 --- a/caff/gpgdiff +++ /dev/null @@ -1,375 +0,0 @@ -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.30.2