* main.h: Create S2K_DIGEST_ALGO macro so we do not need to always set
authorDavid Shaw <dshaw@jabberwocky.com>
Fri, 24 Sep 2004 20:34:38 +0000 (20:34 +0000)
committerDavid Shaw <dshaw@jabberwocky.com>
Fri, 24 Sep 2004 20:34:38 +0000 (20:34 +0000)
opt.s2k_digest_algo.  This helps fix a problem with PGP 2.x encrypted
symmetric messages.  Change all callers (encode.c, g10.c, keyedit.c,
keygen.c, passphrase.c, sign.c).

* armor.c, cardglue.c, getkey.c, import.c, keygen.c: Be consistent in some
more quoted strings.  Always use 'user ID', not 'user id', "quotes" for
user IDs, etc.

12 files changed:
g10/ChangeLog
g10/armor.c
g10/cardglue.c
g10/encode.c
g10/g10.c
g10/getkey.c
g10/import.c
g10/keyedit.c
g10/keygen.c
g10/main.h
g10/passphrase.c
g10/sign.c

index 559671a..db91da5 100644 (file)
@@ -1,5 +1,14 @@
 2004-09-24  David Shaw  <dshaw@jabberwocky.com>
 
+       * main.h: Create S2K_DIGEST_ALGO macro so we do not need to always
+       set opt.s2k_digest_algo.  This helps fix a problem with PGP 2.x
+       encrypted symmetric messages.  Change all callers (encode.c,
+       g10.c, keyedit.c, keygen.c, passphrase.c, sign.c).
+
+       * armor.c, cardglue.c, getkey.c, import.c, keygen.c: Be consistent
+       in some more quoted strings.  Always use 'user ID', not 'user id',
+       "quotes" for user IDs, etc.
+
        * keyedit.c (keyedit_menu), gpgv.c (agent_scd_getattr (stub)),
        keygen.c (copy_mpi, generate_raw_key): Fix a compile problem and a
        few warnings when building without card support.
index 5cd798d..6d27472 100644 (file)
@@ -562,7 +562,7 @@ fake_packet( armor_filter_context_t *afx, IOBUF a,
                    ; /* this is okay */
                else {
                    if( type != BEGIN_SIGNATURE ) {
-                       log_info(_("unexpected armor:"));
+                       log_info(_("unexpected armor: "));
                        print_string( stderr, p, n, 0 );
                        putc('\n', stderr);
                    }
@@ -692,7 +692,7 @@ radix64_read( armor_filter_context_t *afx, IOBUF a, size_t *retn,
            break;
        }
        else if( (c = asctobin[(c2=c)]) == 255 ) {
-           log_error(_("invalid radix64 character %02x skipped\n"), c2);
+           log_error(_("invalid radix64 character %02X skipped\n"), c2);
            continue;
        }
        switch(idx) {
@@ -781,7 +781,7 @@ radix64_read( armor_filter_context_t *afx, IOBUF a, size_t *retn,
                rc = invalid_crc();
            }
            else if( mycrc != afx->crc ) {
-                log_info (_("CRC error; %06lx - %06lx\n"),
+                log_info (_("CRC error; %06lX - %06lX\n"),
                                    (ulong)afx->crc, (ulong)mycrc);
                 rc = invalid_crc();
            }
@@ -801,7 +801,7 @@ radix64_read( armor_filter_context_t *afx, IOBUF a, size_t *retn,
                if( rc == -1 )
                    rc = 0;
                else if( rc == 2 ) {
-                   log_error(_("premature eof (in Trailer)\n"));
+                   log_error(_("premature eof (in trailer)\n"));
                    rc = G10ERR_INVALID_ARMOR;
                }
                else {
@@ -1277,7 +1277,7 @@ unarmor_pump (UnarmorPump x, int c)
         {
             int c2;
             if( (c = asctobin[(c2=c)]) == 255 ) {
-                log_error(_("invalid radix64 character %02x skipped\n"), c2);
+                log_error(_("invalid radix64 character %02X skipped\n"), c2);
                 break;
             }
         }
@@ -1314,7 +1314,7 @@ unarmor_pump (UnarmorPump x, int c)
         if( (c = asctobin[c]) == 255 ) {
             rval = -1; /* ready */
             if( x->crc != x->mycrc ) {
-                log_info (_("CRC error; %06lx - %06lx\n"),
+                log_info (_("CRC error; %06lX - %06lX\n"),
                           (ulong)x->crc, (ulong)x->mycrc);
                 if ( invalid_crc() )
                     rval = -3;
index a446a30..c5b76ed 100644 (file)
@@ -362,7 +362,7 @@ check_card_serialno (APP app, const char *serialno)
       else
         card_close ();
       tty_printf (_("Please remove the current card and "
-                    "insert the one with the serial number:\n"
+                    "insert the one with serial number:\n"
                     "   %.*s\n"), 32, serialno);
 
       sprintf (buf, "1 %.32s", serialno);
index 1b83f24..29b3997 100644 (file)
@@ -191,7 +191,7 @@ encode_simple( const char *filename, int mode, int use_seskey )
     if( mode ) {
        s2k = m_alloc_clear( sizeof *s2k );
        s2k->mode = RFC1991? 0:opt.s2k_mode;
-       s2k->hash_algo = opt.s2k_digest_algo;
+       s2k->hash_algo=S2K_DIGEST_ALGO;
        cfx.dek = passphrase_to_dek( NULL, 0,
                                     default_cipher_algo(), s2k, 2,
                                      NULL, NULL);
@@ -380,7 +380,7 @@ setup_symkey(STRING2KEY **symkey_s2k,DEK **symkey_dek)
 {
   *symkey_s2k=m_alloc_clear(sizeof(STRING2KEY));
   (*symkey_s2k)->mode = opt.s2k_mode;
-  (*symkey_s2k)->hash_algo = opt.s2k_digest_algo;
+  (*symkey_s2k)->hash_algo = S2K_DIGEST_ALGO;
 
   *symkey_dek=passphrase_to_dek(NULL,0,opt.s2k_cipher_algo,
                                *symkey_s2k,2,NULL,NULL);
index d6b65a0..d9b3408 100644 (file)
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -1465,9 +1465,6 @@ parse_list_options(char *str)
       {NULL,0,NULL}
     };
 
-  /* this is wrong since the show-sig-subpackets could have been set
-     from a previous incarnation of list-options */
-
   if(parse_options(str,&opt.list_options,lopts,1))
     {
       if(opt.list_options&LIST_SHOW_SIG_SUBPACKETS)
@@ -1587,7 +1584,6 @@ main( int argc, char **argv )
     opt.cert_digest_algo = 0;
     opt.compress_algo = -1; /* defaults to DEFAULT_COMPRESS_ALGO */
     opt.s2k_mode = 3; /* iterated+salted */
-    opt.s2k_digest_algo = DIGEST_ALGO_SHA1;
 #ifdef USE_CAST5
     opt.s2k_cipher_algo = CIPHER_ALGO_CAST5;
 #else
@@ -2613,6 +2609,8 @@ main( int argc, char **argv )
            opt.ask_cert_expire = 0;
            m_free(def_digest_string);
            def_digest_string = m_strdup("md5");
+           m_free(s2k_digest_string);
+           s2k_digest_string = m_strdup("md5");
            opt.compress_algo = COMPRESS_ALGO_ZIP;
          }
       }
@@ -3784,8 +3782,7 @@ add_notation_data( const char *string, int which )
 
     if(!saw_at && !opt.expert)
       {
-       log_error(
-               _("a user notation name must contain the '@' character\n"));
+       log_error(_("a user notation name must contain the '@' character\n"));
        return;
       }
 
index 8676758..a3a1be8 100644 (file)
@@ -183,7 +183,7 @@ get_primary_uid ( KBNODE keyblock, size_t *uidlen )
     } 
     /* fixme: returning translatable constants instead of a user ID is 
      * not good because they are probably not utf-8 encoded. */
-    s = _("[User id not found]");
+    s = _("[User ID not found]");
     *uidlen = strlen (s);
     return s;
 }
@@ -2688,7 +2688,7 @@ get_user_id( u32 *keyid, size_t *rn )
             }
         }
     } while( ++pass < 2 && !get_pubkey( NULL, keyid ) );
-    p = m_strdup( _("[User id not found]") );
+    p = m_strdup( _("[User ID not found]") );
     *rn = strlen(p);
     return p;
 }
index 97be678..28ecb81 100644 (file)
@@ -719,7 +719,7 @@ import_one( const char *fname, KBNODE keyblock,
            char *user=utf8_to_native(node->pkt->pkt.user_id->name,
                                      node->pkt->pkt.user_id->len,0);
            node->flag |= 1;
-           log_info( _("key %s: accepted non self-signed user ID '%s'\n"),
+           log_info( _("key %s: accepted non self-signed user ID \"%s\"\n"),
                      keystr_from_pk(pk),user);
            m_free(user);
          }
@@ -1297,9 +1297,9 @@ chk_self_sigs( const char *fname, KBNODE keyblock,
                                      strlen(unode->pkt->pkt.user_id->name),0);
                          log_info( rc == G10ERR_PUBKEY_ALGO ?
                                    _("key %s: unsupported public key "
-                                     "algorithm on user id \"%s\"\n"):
+                                     "algorithm on user ID \"%s\"\n"):
                                    _("key %s: invalid self-signature "
-                                     "on user id \"%s\"\n"),
+                                     "on user ID \"%s\"\n"),
                                    keystr(keyid),p);
                          m_free(p);
                        }
@@ -1436,7 +1436,7 @@ delete_inv_parts( const char *fname, KBNODE keyblock,
                  {
                    char *p=utf8_to_native(node->pkt->pkt.user_id->name,
                                           node->pkt->pkt.user_id->len,0);
-                   log_info( _("key %s: skipped user ID '%s'\n"),
+                   log_info( _("key %s: skipped user ID \"%s\"\n"),
                              keystr(keyid),p);
                    m_free(p);
                  }
@@ -1485,7 +1485,7 @@ delete_inv_parts( const char *fname, KBNODE keyblock,
             * seems that this makes sense */
            if(opt.verbose)
              log_info( _("key %s: non exportable signature"
-                         " (class %02x) - skipped\n"),
+                         " (class 0x%02X) - skipped\n"),
                        keystr(keyid), node->pkt->pkt.signature->sig_class );
            delete_kbnode( node );
          }
index b3067bf..5da2f82 100644 (file)
@@ -1106,7 +1106,7 @@ change_passphrase( KBNODE keyblock )
        set_next_passphrase( NULL );
        for(;;) {
            s2k->mode = opt.s2k_mode;
-           s2k->hash_algo = opt.s2k_digest_algo;
+           s2k->hash_algo = S2K_DIGEST_ALGO;
            dek = passphrase_to_dek( NULL, 0, opt.s2k_cipher_algo,
                                      s2k, 2, errtext, NULL);
            if( !dek ) {
index d75f0b8..d1c6e60 100644 (file)
@@ -1506,8 +1506,8 @@ ask_user_id( int mode )
 
     if( !mode )
        tty_printf( _("\n"
-"You need a User-ID to identify your key; the software constructs the user id\n"
-"from Real Name, Comment and Email Address in this form:\n"
+"You need a user ID to identify your key; the software constructs the user ID\n"
+"from the Real Name, Comment and Email Address in this form:\n"
 "    \"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>\"\n\n") );
     uid = aname = acomment = amail = NULL;
     for(;;) {
@@ -1676,7 +1676,7 @@ do_ask_passphrase( STRING2KEY **ret_s2k )
     s2k = m_alloc_secure( sizeof *s2k );
     for(;;) {
        s2k->mode = opt.s2k_mode;
-       s2k->hash_algo = opt.s2k_digest_algo;
+       s2k->hash_algo = S2K_DIGEST_ALGO;
        dek = passphrase_to_dek( NULL, 0, opt.s2k_cipher_algo, s2k,2,
                                  errtext, NULL);
        if( !dek ) {
@@ -2012,7 +2012,7 @@ proc_parameter_file( struct para_data_s *para, const char *fname,
 
        s2k = m_alloc_secure( sizeof *s2k );
        s2k->mode = opt.s2k_mode;
-       s2k->hash_algo = opt.s2k_digest_algo;
+       s2k->hash_algo = S2K_DIGEST_ALGO;
        set_next_passphrase( r->u.value );
        dek = passphrase_to_dek( NULL, 0, opt.s2k_cipher_algo, s2k, 2,
                                  NULL, NULL);
@@ -2912,7 +2912,7 @@ generate_subkeypair( KBNODE pub_keyblock, KBNODE sec_keyblock )
     if( passphrase ) {
        s2k = m_alloc_secure( sizeof *s2k );
        s2k->mode = opt.s2k_mode;
-       s2k->hash_algo = opt.s2k_digest_algo;
+       s2k->hash_algo = S2K_DIGEST_ALGO;
        set_next_passphrase( passphrase );
        dek = passphrase_to_dek( NULL, 0, opt.s2k_cipher_algo, s2k, 2,
                                  NULL, NULL );
index 1326bd4..71c1a2b 100644 (file)
 
 /* It could be argued that the default cipher should be 3DES rather
    than CAST5, and the default compression should be 0
-   (i.e. uncompressed) rather than 1 (zip). */
-#define DEFAULT_CIPHER_ALGO   CIPHER_ALGO_CAST5
-#define DEFAULT_DIGEST_ALGO   DIGEST_ALGO_SHA1
-#define DEFAULT_COMPRESS_ALGO COMPRESS_ALGO_ZIP
+   (i.e. uncompressed) rather than 1 (zip).  However, the real world
+   issues of speed and size come into play here. */
+
+#define DEFAULT_CIPHER_ALGO     CIPHER_ALGO_CAST5
+#define DEFAULT_DIGEST_ALGO     DIGEST_ALGO_SHA1
+#define DEFAULT_COMPRESS_ALGO   COMPRESS_ALGO_ZIP
+#define DEFAULT_S2K_DIGEST_ALGO DIGEST_ALGO_SHA1
+
+#define S2K_DIGEST_ALGO (opt.s2k_digest_algo?opt.s2k_digest_algo:DEFAULT_S2K_DIGEST_ALGO)
 
 typedef struct
 {
index e4546ee..7a3a394 100644 (file)
@@ -1083,7 +1083,7 @@ passphrase_to_dek( u32 *keyid, int pubkey_algo,
          * Note: This must match the code in encode.c with opt.rfc1991 set */
        s2k = &help_s2k;
        s2k->mode = 0;
-       s2k->hash_algo = opt.s2k_digest_algo;
+       s2k->hash_algo = S2K_DIGEST_ALGO;
     }
 
     /* If we do not have a passphrase available in NEXT_PW and status
index 0dbf5a7..5942fa5 100644 (file)
@@ -1133,7 +1133,7 @@ sign_symencrypt_file (const char *fname, STRLIST locusr)
     /* prepare key */
     s2k = m_alloc_clear( sizeof *s2k );
     s2k->mode = RFC1991? 0:opt.s2k_mode;
-    s2k->hash_algo = opt.s2k_digest_algo;
+    s2k->hash_algo = S2K_DIGEST_ALGO;
 
     algo = default_cipher_algo();
     if (!opt.quiet || !opt.batch)