GnuPG 1.3.92 does all we want
authorweasel <weasel@b513b33f-fedd-0310-b452-c3deb5f4c849>
Fri, 12 Nov 2004 22:23:38 +0000 (22:23 +0000)
committerweasel <weasel@b513b33f-fedd-0310-b452-c3deb5f4c849>
Fri, 12 Nov 2004 22:23:38 +0000 (22:23 +0000)
git-svn-id: svn://svn.debian.org/pgp-tools/trunk@27 b513b33f-fedd-0310-b452-c3deb5f4c849

caff/README
caff/caffrc.sample
caff/gpgdiff [deleted file]

index ef02f8dfbe42782d076298b4cf41271f2fb3865f..7b97b91741c1a9d7f445bacfe7675502a5f02cf1 100644 (file)
@@ -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
index b228567c9b797425cfd6343d83cb5c6de2e6c6d3..07d5e0214cf29231f0b232425129196587c3747b 100644 (file)
@@ -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 (file)
index cb0870a..0000000
+++ /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