See ChangeLog: Wed Sep 1 15:30:44 CEST 1999 Werner Koch
authorWerner Koch <wk@gnupg.org>
Wed, 1 Sep 1999 13:40:07 +0000 (13:40 +0000)
committerWerner Koch <wk@gnupg.org>
Wed, 1 Sep 1999 13:40:07 +0000 (13:40 +0000)
19 files changed:
AUTHORS
INSTALL
PROJECTS
THOUGHTS
g10/ChangeLog
g10/getkey.c
g10/helptext.c
g10/import.c
g10/keyedit.c
g10/keygen.c
g10/mainproc.c
g10/parse-packet.c
g10/sig-check.c
g10/trustdb.c
po/ChangeLog
po/de.po
tools/crlf.c [new file with mode: 0644]
util/ChangeLog
util/argparse.c

diff --git a/AUTHORS b/AUTHORS
index 7ae8560..39b903f 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -56,11 +56,11 @@ Disclaimer.  [ru?]
 steuck@iname.com
 
 
-TRANSLATIONS   Urko Lusa       ??????????
+TRANSLATIONS   Urko Lusa       Okay
 es_ES.po
 
 
-TRANSLATIONS   Thiago Jung Bauermann ????????????????
+TRANSLATIONS   Thiago Jung Bauermann Okay
 pt_BR.po
 jungmann@cwb.matrix.com.br
 
diff --git a/INSTALL b/INSTALL
index c6bd647..c264290 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -4,29 +4,35 @@ Please read the Basic Installation section somewhere below.
 Configure options for GNUPG
 ===========================
 
+--enable-static-rnd=<name>  Force the use of the random byte gathering
+                    module <name>.  Default is either to use /dev/random
+                    or the standard Uix module.  Value for name:
+                      egd - Use the module which accesses the
+                            Entropy Gathering Daemon. See the webpages
+                            for more information about it.
+                     unix - Use the standard Unix module which does not
+                            have a very good performance.
+                    linux - Use the module which accesses /dev/random.
+                            This is the first choice and the default one
+                            for GNU/Linux or *BSD.
+                     none - Do not linkl any module in but rely on
+                            a dynmically loaded modules.
+
 --with-included-zlib Forces usage of the local zlib sources. Default is
                     to use the (shared) library of the system.
 
 --with-included-gettext Forces usage of the local gettext sources instead of
                    the one provided by your system.
 
---disable-nls      Disable NLS support (See ABOUT-NLS)
-
---enable-m-debug    Compile with the integrated malloc debugging stuff.
-                   This makes the program slower but it checks every
-                   free operation and can be used to create statistics
-                   of memory usage. If this option is used the program
-                   option "--debug 32" displays every call to a malloc
-                   function (this makes the program *really* slow), the
-                   option "--debug 128" displays a memory statistic after
-                   the program run.
+--disable-nls      Disable NLS support (See the file ABOUT-NLS)
 
---enable-m-guard    Enable the integrated malloc checking code. 
+--enable-m-guard    Enable the integrated malloc checking code.
 
 --disable-dynload   If you have problems with dynamic loading, this option
                    disables all dynamic loading stuff.
 
---disable-asm      Do not use assembler modules.
+--disable-asm      Do not use assembler modules.  It is not possible to
+                   use this on some CPU types.
 
 
 
@@ -106,8 +112,8 @@ Or use the -t (--tarbuild) option of rpm:
     1. rpm -ta gnupg-x.x.x.tar.gz
 
 The binary rpm file can now be found in /usr/src/redhat/RPMS, source
-rpm in  /usr/src/redhat/SRPMS
+rpm in /usr/src/redhat/SRPMS
+
 Please note that to install gnupg binary rpm you must be root, as
 gnupg needs to be suid root, at least on Linux machines
 
index 2d89d91..85b4576 100644 (file)
--- a/PROJECTS
+++ b/PROJECTS
@@ -1,47 +1,26 @@
 
-    * Check if an object (a message, detached sign, public key, or whatever)
-      is signed by definite user, i.e. define user
-      (userid, or any other unique identification) on command line.
-      --> NO: Use a script and --status-fd
-
     * Change the internal representation of keyid into a struct which
       can also hold the localid and extend the localid to hold information
       of the subkey number because two subkeys may have the same keyid.
 
-    * signature verification is done duplicated on import: in import.c and
-      then in trustdb.c too.  Maybe we can use a flag to skip the actual
-      verification process (this should work if we use the same keyblock,
-      but I'm not sure how to accomplish that).  Another way is to allow
-      the import of bogus data and let trustdb mark these keys as invalid;
-      I see an advantage in this that it may help to prevent a DoS on a
-      keyserver by sending him a lot of bogus signatures which he has
-      to check - Needs further investigation.
-
     * Add a way to override the current cipher/md implementations
       by others (using extensions)
 
     * Not GnuPG related:  What about option completion in bash?
       Can "--dump-options" be used for this or should we place the
-      options in a special ELF segment?
+      options in an ELF note section?
 
-    * Split key support (n-out-of-m)
+    * Split key support (n-out-of-m).  Use our own protocol or figure out
+      how PGP does it.
 
     * add an option to re-create a public key from a secret key; we
-      can do this in trustdb.c:verify_own_keys.
-      (special tool?)
+      can do this in trustdb.c:verify_own_keys. (special tool?)
 
     * rewrite --list-packets or put it into another tool.
 
-    * We need a maintenance pass over the trustdb which flags
-      signatures as expired if the key used to make the signature has
-      expired. Maybe it is a good idea to store the expiration time
-      in the key record of the trustdb.
     * write a tool to extract selected keys from a file.
 
-    * Change the buffering to a mbuf like scheme? Need it for PSST anyway;
-      see Michael's proposal.
-
-    * Work on the library
+    * Change the buffering to a mbuf like scheme?  See Michael's proposal.
 
     * Keep a list of duplicate, faked or unwanted keyids.
 
index 1ff9e92..dbd53b2 100644 (file)
--- a/THOUGHTS
+++ b/THOUGHTS
@@ -184,9 +184,9 @@ o  the KS should verify signatures and only accept those
 o  Keep a blacklist of known bad signatures to minimize
    the time needed to check them
 
-o  Should be fast - I currently designing a new storage
+o  Should be fast - I'm currently designing a new storage
    system called keybox which takes advantage of the fact
-   that the keyID is highly random and can be directly be
+   that the keyID is highly random and can directly be
    used as a hash value and this keyID is (for v4 keys)
    part of the fingerprint: So it is possible to use the
    fingerprint as key but do an lookup by the keyID.
@@ -233,5 +233,9 @@ Suggested things which I will not do:
 =====================================
   * Let take --help an option to select some topics.
     Using grep is much easier
+  * Check if an object (a message, detached sign, public key, or whatever)
+    is signed by definite user, i.e. define user
+    (userid, or any other unique identification) on command line.
+    --> Use a script and --status-fd
 
 
index dec722d..fe5c583 100644 (file)
@@ -1,3 +1,9 @@
+Wed Sep  1 15:30:44 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+
+       * keygen.c (ask_expire_interval): Fixed bug related to cpr_xx (tnx
+       Francis J. Lacoste).
+
 Tue Aug 31 17:20:44 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
 
index 4e325e0..fb5f1bc 100644 (file)
@@ -1288,7 +1288,7 @@ find_by_name( KBNODE keyblock, PKT_public_key *pk, const char *name,
            else if( is_RSA(pk->pubkey_algo) )
                log_error(_("RSA key cannot be used in this version\n"));
            else
-               log_error(_("No key for user-id\n"));
+               log_error(_("No key for user ID\n"));
        }
     }
     return NULL;
@@ -1327,7 +1327,7 @@ find_by_name_sk( KBNODE keyblock, PKT_secret_key *sk, const char *name,
            else if( is_RSA(sk->pubkey_algo) )
                log_error(_("RSA key cannot be used in this version\n"));
            else
-               log_error(_("No key for user-id\n"));
+               log_error(_("No key for user ID\n"));
        }
     }
     return NULL;
@@ -1366,7 +1366,7 @@ find_by_keyid( KBNODE keyblock, PKT_public_key *pk, u32 *keyid, int mode )
                if( kk )
                    cache_user_id( kk->pkt->pkt.user_id, aki );
                else
-                   log_error(_("No user-id for key\n"));
+                   log_error(_("No user ID for key\n"));
                return k; /* found */
            }
        }
@@ -1406,7 +1406,7 @@ find_by_keyid_sk( KBNODE keyblock, PKT_secret_key *sk, u32 *keyid, int mode )
                if( kk )
                    cache_user_id( kk->pkt->pkt.user_id, aki );
                else
-                   log_error(_("No user-id for key\n"));
+                   log_error(_("No user ID for key\n"));
                return k; /* found */
            }
        }
index e6957da..2136bbb 100644 (file)
@@ -58,7 +58,7 @@ static struct helptexts { const char *key; const char *help; } helptexts[] = {
 )},
 
 { "pklist.user_id.enter", N_(
-"Enter the user id of the addressee to whom you want to send the message."
+"Enter the user ID of the addressee to whom you want to send the message."
 )},
 
 { "keygen.algo", N_(
index a469167..7cad61a 100644 (file)
@@ -359,7 +359,7 @@ import_one( const char *fname, KBNODE keyblock, int fast )
        putc('\n', stderr);
     }
     if( !uidnode ) {
-       log_error( _("key %08lX: no user id\n"), (ulong)keyid[1]);
+       log_error( _("key %08lX: no user ID\n"), (ulong)keyid[1]);
        return 0;
     }
 
@@ -373,7 +373,7 @@ import_one( const char *fname, KBNODE keyblock, int fast )
 
     if( !delete_inv_parts( fname, keyblock, keyid ) ) {
        if( !opt.quiet ) {
-           log_info( _("key %08lX: no valid user ids\n"),
+           log_info( _("key %08lX: no valid user IDs\n"),
                                                        (ulong)keyid[1]);
            log_info(_("this may be caused by a missing self-signature\n"));
        }
@@ -466,10 +466,10 @@ import_one( const char *fname, KBNODE keyblock, int fast )
            /* we are ready */
            if( !opt.quiet ) {
                if( n_uids == 1 )
-                   log_info( _("key %08lX: 1 new user-id\n"),
+                   log_info( _("key %08lX: 1 new user ID\n"),
                                             (ulong)keyid[1]);
                else if( n_uids )
-                   log_info( _("key %08lX: %d new user-ids\n"),
+                   log_info( _("key %08lX: %d new user IDs\n"),
                                             (ulong)keyid[1], n_uids );
                if( n_sigs == 1 )
                    log_info( _("key %08lX: 1 new signature\n"),
@@ -551,7 +551,7 @@ import_secret_one( const char *fname, KBNODE keyblock )
     }
     stats.secret_read++;
     if( !uidnode ) {
-       log_error( _("key %08lX: no user id\n"), (ulong)keyid[1]);
+       log_error( _("key %08lX: no user ID\n"), (ulong)keyid[1]);
        return 0;
     }
 
@@ -708,7 +708,7 @@ chk_self_sigs( const char *fname, KBNODE keyblock,
            if( (sig->sig_class&~3) == 0x10 ) {
                KBNODE unode = find_prev_kbnode( keyblock, n, PKT_USER_ID );
                if( !unode )  {
-                   log_error( _("key %08lX: no user-id for signature\n"),
+                   log_error( _("key %08lX: no user ID for signature\n"),
                                            (ulong)keyid[1]);
                    return -1;  /* the complete keyblock is invalid */
                }
@@ -766,7 +766,7 @@ mark_non_selfsigned_uids_valid( KBNODE keyblock, u32 *kid )
        if( node->pkt->pkttype == PKT_USER_ID && !(node->flag & 1) ) {
            if( node->next && node->next->pkt->pkttype == PKT_SIGNATURE ) {
                node->flag |= 1;
-               log_info( _("key %08lX: accepted non self-signed user-id '"),
+               log_info( _("key %08lX: accepted non self-signed user ID '"),
                                                         (ulong)kid[1]);
                print_string( log_stream(), node->pkt->pkt.user_id->name,
                                            node->pkt->pkt.user_id->len, 0 );
@@ -795,7 +795,7 @@ delete_inv_parts( const char *fname, KBNODE keyblock, u32 *keyid )
            uid_seen = 1;
            if( (node->flag & 2) || !(node->flag & 1) ) {
                if( opt.verbose ) {
-                   log_info( _("key %08lX: skipped user-id '"),
+                   log_info( _("key %08lX: skipped user ID '"),
                                                         (ulong)keyid[1]);
                    print_string( stderr, node->pkt->pkt.user_id->name,
                                      node->pkt->pkt.user_id->len, 0 );
@@ -1176,7 +1176,7 @@ merge_sigs( KBNODE dst, KBNODE src, int *n_sigs,
 
     assert(dst->pkt->pkttype == PKT_USER_ID );
     assert(src->pkt->pkttype == PKT_USER_ID );
-    /* at least a self signature comes next to the user-ids */
+    /* at least a self signature comes next to the user IDs */
     assert(src->next->pkt->pkttype != PKT_USER_ID );
     if( dst->next->pkt->pkttype == PKT_USER_ID ) {
        log_error( _("key %08lX: our copy has no self-signature\n"),
index d54e90d..1528cba 100644 (file)
@@ -228,9 +228,9 @@ check_all_keysigs( KBNODE keyblock, int only_selected )
     else if( oth_err )
        tty_printf(_("%d signatures not checked due to errors\n"), oth_err );
     if( mis_selfsig == 1 )
-       tty_printf(_("1 user id without valid self-signature detected\n"));
+       tty_printf(_("1 user ID without valid self-signature detected\n"));
     else if( mis_selfsig  )
-       tty_printf(_("%d user ids without valid self-signatures detected\n"),
+       tty_printf(_("%d user IDs without valid self-signatures detected\n"),
                                                                    mis_selfsig);
 
     return inv_sigs || no_key || oth_err || mis_selfsig;
@@ -567,9 +567,9 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands,
        { N_("help")    , cmdHELP      , 0,1, N_("show this help") },
        {    "?"        , cmdHELP      , 0,1, NULL   },
        { N_("fpr")     , cmdFPR       , 0,1, N_("show fingerprint") },
-       { N_("list")    , cmdLIST      , 0,1, N_("list key and user ids") },
+       { N_("list")    , cmdLIST      , 0,1, N_("list key and user IDs") },
        { N_("l")       , cmdLIST      , 0,1, NULL   },
-       { N_("uid")     , cmdSELUID    , 0,1, N_("select user id N") },
+       { N_("uid")     , cmdSELUID    , 0,1, N_("select user ID N") },
        { N_("key")     , cmdSELKEY    , 0,0, N_("select secondary key N") },
        { N_("check")   , cmdCHECK     , 0,1, N_("list signatures") },
        { N_("c")       , cmdCHECK     , 0,1, NULL },
@@ -577,8 +577,8 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands,
        { N_("s")       , cmdSIGN      , 0,1, NULL },
        { N_("lsign")   , cmdLSIGN     , 0,1, N_("sign the key locally") },
        { N_("debug")   , cmdDEBUG     , 0,0, NULL },
-       { N_("adduid")  , cmdADDUID    , 1,0, N_("add a user id") },
-       { N_("deluid")  , cmdDELUID    , 0,0, N_("delete user id") },
+       { N_("adduid")  , cmdADDUID    , 1,0, N_("add a user ID") },
+       { N_("deluid")  , cmdDELUID    , 0,0, N_("delete user ID") },
        { N_("addkey")  , cmdADDKEY    , 1,0, N_("add a secondary key") },
        { N_("delkey")  , cmdDELKEY    , 0,0, N_("delete a secondary key") },
        { N_("delsig")  , cmdDELSIG    , 0,0, N_("delete signatures") },
@@ -755,8 +755,8 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands,
          case cmdLSIGN: /* sign (only the public key) */
            if( count_uids(keyblock) > 1 && !count_selected_uids(keyblock) ) {
                if( !cpr_get_answer_is_yes("keyedit.sign_all.okay",
-                                          _("Really sign all user ids? ")) ) {
-                   tty_printf(_("Hint: Select the user ids to sign\n"));
+                                          _("Really sign all user IDs? ")) ) {
+                   tty_printf(_("Hint: Select the user IDs to sign\n"));
                    break;
                }
            }
@@ -794,13 +794,13 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands,
                int n1;
 
                if( !(n1=count_selected_uids(keyblock)) )
-                   tty_printf(_("You must select at least one user id.\n"));
+                   tty_printf(_("You must select at least one user ID.\n"));
                else if( count_uids(keyblock) - n1 < 1 )
-                   tty_printf(_("You can't delete the last user id!\n"));
+                   tty_printf(_("You can't delete the last user ID!\n"));
                else if( cpr_get_answer_is_yes(
                            "keyedit.remove.uid.okay",
-                       n1 > 1? _("Really remove all selected user ids? ")
-                             : _("Really remove this user id? ")
+                       n1 > 1? _("Really remove all selected user IDs? ")
+                             : _("Really remove this user ID? ")
                       ) ) {
                    menu_deluid( keyblock, sec_keyblock );
                    redisplay = 1;
@@ -815,7 +815,7 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands,
                int n1;
 
                if( !(n1=count_selected_uids(keyblock)) )
-                   tty_printf(_("You must select at least one user id.\n"));
+                   tty_printf(_("You must select at least one user ID.\n"));
                else if( menu_delsig( keyblock ) ) {
                    /* no redisplay here, because it may scroll away some
                     * status output of delsig */
@@ -1563,7 +1563,7 @@ menu_select_uid( KBNODE keyblock, int idx )
            }
        }
        if( !node ) {
-           tty_printf(_("No user id with index %d\n"), idx );
+           tty_printf(_("No user ID with index %d\n"), idx );
            return 0;
        }
     }
index e1ed9aa..ceff09d 100644 (file)
@@ -559,9 +559,8 @@ ask_expire_interval(void)
                        asctimestamp(curtime + interval ) );
        }
 
-       if( !cpr_enabled()
-            && cpr_get_answer_is_yes("keygen.valid.okay",
-                                      _("Is this correct (y/n)? ")) )
+       if( cpr_enabled() || cpr_get_answer_is_yes("keygen.valid.okay",
+                                           _("Is this correct (y/n)? ")) )
            break;
     }
     m_free(answer);
index 0331572..4553253 100644 (file)
@@ -124,7 +124,7 @@ static int
 add_user_id( CTX c, PACKET *pkt )
 {
     if( !c->list ) {
-       log_error("orphaned user id\n" );
+       log_error("orphaned user ID\n" );
        return 0;
     }
     add_kbnode( c->list, new_kbnode( pkt ) );
index 967aa7a..e261b53 100644 (file)
@@ -793,7 +793,7 @@ dump_sig_subpkt( int hashed, int type, int critical,
        p = "preferred key server";
        break;
       case SIGSUBPKT_PRIMARY_UID:
-       p = "primary user id";
+       p = "primary user ID";
        break;
       case SIGSUBPKT_POLICY:
        fputs("policy: ", stdout );
@@ -803,10 +803,10 @@ dump_sig_subpkt( int hashed, int type, int critical,
        p = "key flags";
        break;
       case SIGSUBPKT_SIGNERS_UID:
-       p = "signer's user id";
+       p = "signer's user ID";
        break;
       case SIGSUBPKT_PRIV_ADD_SIG:
-       p = "signs additional user id";
+       p = "signs additional user ID";
        break;
       default: p = "?"; break;
     }
@@ -1482,7 +1482,7 @@ parse_user_id( IOBUF inp, int pkttype, unsigned long pktlen, PACKET *packet )
 
     if( list_mode ) {
        int n = packet->pkt.user_id->len;
-       printf(":user id packet: \"");
+       printf(":user ID packet: \"");
        /* fixme: Hey why don't we replace this wioth print_string?? */
        for(p=packet->pkt.user_id->name; n; p++, n-- ) {
            if( *p >= ' ' && *p <= 'z' )
index 937410c..773eff7 100644 (file)
@@ -505,7 +505,7 @@ check_key_signature2( KBNODE root, KBNODE node, int *is_selfsig, u32 *r_expire)
            md_close(md);
        }
        else {
-           log_error("no user id for key signature packet\n");
+           log_error("no user ID for key signature packet\n");
            rc = G10ERR_SIG_CLASS;
        }
     }
index 0e60dfc..96b77a4 100644 (file)
@@ -2058,7 +2058,7 @@ do_check( TRUSTREC *dr, unsigned *validity,
        return G10ERR_TRUSTDB;
     }
     if( !dr->r.dir.uidlist ) {
-       log_error(_("Ooops, no user ids\n"));
+       log_error(_("Ooops, no user IDs\n"));
        return G10ERR_TRUSTDB;
     }
 
index e890102..ce2903c 100644 (file)
@@ -1,3 +1,8 @@
+Wed Sep  1 15:30:44 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+
+       * de.po: Updated.
+
 Mon Aug 30 20:38:33 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
 
index 66a8da0..1eb607c 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -1,11 +1,11 @@
 # GnuPG german translation
 # Copyright (C) 1998 Free Software Foundation, Inc.
-# Walter Koch <walterk@dip.de>, 1998.
-msgid ""
+# Walter Koch <koch@hsp.de>, 1998.
+msgid ""  
 msgstr ""
-"POT-Creation-Date: 1999-08-30 19:40+0200\n"
-"PO-Revision-Date: 1999-08-05 21:56+0200\n"
-"Last-Translator: Walter Koch <walterk@mail.dip.de>\n"
+"POT-Creation-Date: 1999-08-31 21:31+0200\n"
+"PO-Revision-Date: 1999-08-31 21:36+0200\n"
+"Last-Translator: Walter Koch <koch@hsp.de>\n"
 "Language-Team: German <de@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
@@ -36,11 +36,11 @@ msgstr "jJyY"
 
 #: util/miscutil.c:256 util/miscutil.c:284
 msgid "no"
-msgstr ""
+msgstr "nein"
 
 #: util/miscutil.c:257 util/miscutil.c:287
 msgid "nN"
-msgstr ""
+msgstr "nN"
 
 #: g10/keyedit.c:564 util/miscutil.c:285
 msgid "quit"
@@ -444,7 +444,7 @@ msgstr "|NAME|NAME als voreingestellten Empf
 msgid "use the default key as default recipient"
 msgstr ""
 "Den Standardschlüssel als voreingestellten\n"
-"\tEmpfänger benutzen"
+"Empfänger benutzen"
 
 #: g10/g10.c:242
 msgid "use this user-id to sign or decrypt"
@@ -558,7 +558,7 @@ msgstr "Den in RFC1991 beschriebenen Modus nachahmen"
 #: g10/g10.c:273
 msgid "set all packet, cipher and digest options to OpenPGP behavior"
 msgstr ""
-"alle Paket-, Verschlüsselungs- und \n"
+"alle Paket-, Verschlüsselungs- und\n"
 "Hashoptionen auf OpenPGP-Verhalten einstellen"
 
 #: g10/g10.c:274
@@ -615,7 +615,9 @@ msgstr ""
 
 #: g10/g10.c:370
 msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
-msgstr "Berichte über Bugs (Programmfehler) bitte an <gnupg-bugs@gnu.org>.\n"
+msgstr 
+"Berichte über Bugs (Programmfehler) bitte an <gnupg-bugs@gnu.org>.\n"
+"Sinn- oder Schreibfehler in den deutschen Texten bitte an <de@li.org>.\n"
 
 #: g10/g10.c:374
 msgid "Usage: gpg [options] [files] (-h for help)"
@@ -1441,7 +1443,7 @@ msgstr ""
 
 #: g10/keygen.c:857
 msgid "Key generation can only be used in interactive mode\n"
-msgstr ""
+msgstr 
 "Die Schlüsselerzeugung kann nur im interaktiven Modus benutzt werden.\n"
 
 #: g10/keygen.c:865
@@ -3184,88 +3186,125 @@ msgstr ""
 "sym.Verschlüsselung nicht vermieden werden!\n"
 
 #: g10/helptext.c:47
-#, fuzzy
 msgid ""
 "It's up to you to assign a value here; this value will never be exported\n"
 "to any 3rd party.  We need it to implement the web-of-trust; it has nothing\n"
 "to do with the (implicitly created) web-of-certificates."
 msgstr ""
-"Sie müssen selbt entscheiden, welchen Wert Sie hier eintragen; dieser Wert\n"
+"Sie müssen selbst entscheiden, welchen Wert Sie hier eintragen; dieser Wert\n"
 "wird niemals an eine dritte Seite weitergegeben.  Wir brauchen diesen Wert,\n"
-"um das \"Netz des Vertrauens\" aufzubauen.  Dieses hat nichts mit dem "
-"(implizit\n"
-"erzeugten) \"Netz der Zertifikate\" zu tun.\n"
+"um das \"Netz des Vertrauens\" aufzubauen.  Dieses hat nichts mit dem\n"
+"(implizit erzeugten) \"Netz der Zertifikate\" zu tun."
 
 #: g10/helptext.c:53
 msgid "If you want to use this revoked key anyway, answer \"yes\"."
-msgstr ""
+msgstr 
+"Wenn Sie diesen widerrufenen Schlüssel trotzdem benutzen wollen,\n"
+"so antworten Sie mit \"ja\"."
 
 #: g10/helptext.c:57
 msgid "If you want to use this untrusted key anyway, answer \"yes\"."
-msgstr ""
+msgstr 
+"Wenn Sie diesen nicht vertrauenswürdigen Schlüssel trotzdem benutzen wollen,\n"
+"so antworten Sie mit \"ja\"."
 
 #: g10/helptext.c:61
 msgid ""
 "Enter the user id of the addressee to whom you want to send the message."
-msgstr ""
+msgstr 
+"Geben Sie die User-ID dessen ein, dem Sie die Botschaft senden wollen."
 
 #: g10/helptext.c:65
 msgid ""
 "Select the algorithm to use.\n"
+"\n"
 "DSA (aka DSS) is the digital signature algorithm which can only be used\n"
 "for signatures.  This is the suggested algorithm because verification of\n"
 "DSA signatures are much faster than those of ElGamal.\n"
+"\n"
 "ElGamal is an algorithm which can be used for signatures and encryption.\n"
-"OpenPGP distunguishs between two flavors of this algorithms: an encrypt "
+"OpenPGP distinguishs between two flavors of this algorithms: an encrypt "
 "only\n"
 "and a sign+encrypt; actually it is the same, but some parameters must be\n"
 "selected in a special way to create a safe key for signatures: this program\n"
 "does this but other OpenPGP implementations are not required to understand\n"
 "the signature+encryption flavor.\n"
+"\n"
 "The first (primary) key must always be a key which is capable of signing;\n"
 "this is the reason why the encryption only ElGamal key is not available in\n"
 "this menu."
-msgstr ""
+msgstr 
+"Wählen Sie die zu verwendende Methode aus.\n\n"
+"DSA (alias DSS) bedeutet \"digital signature algorithm\" (Digitales\n"
+"  Unterschrift-Verfahren). Es kann nur zum Unterschreiben und Beglaubigen\n"
+"  benutzt werden. Dies ist das empfohlene Verfahren, da dessen Überprüfung\n"
+"  wesentlich schneller abläuft, als die von \"ElGamal\".\n"
+"\n"
+"ElGamal ist ein Verfahren für Unterschrift, Beglaubigung und Verschlüsselung\n"
+"  OpenPGP unterscheidet zwischen zwei Arten von ElGamal: eines nur zum\n"
+"  Unterschreiben/Beglaubigen und eines zusätzlich zum Verschlüsseln.\n"
+"  Eigentlich sind diese Arten identisch; allerdings müssen einige Parameter\n"
+"  auf eine besondere Art gewählt werden, um einen sicheren Schlüssel für\n"
+"  Unterschriften zu erzeugen. Dieses Programm macht dies zwar so, aber "
+"andere\n"
+"  Programme sind laut der OpenPGP-Spezifikation nicht verpflichtet, die\n"
+"  zweite Art (die mit zusätzlichem Verschlüsseln) zu verstehen.\n"
+"\n"
+"Der Hauptschlüssel (\"primary Key\") muß auf jeden Fall zum Unterschreiben "
+"fähig\n"
+"sein. Deshalb kann ein nur-Verschlüssel-ElGamal-Schlüssel dafür nicht\n"
+"verwendet werden."
+
 
-#: g10/helptext.c:82
+#: g10/helptext.c:85
 msgid ""
 "Although these keys are defined in RFC2440 they are not suggested\n"
 "because they are not supported by all programs and signatures created\n"
 "with them are quite large and very slow to verify."
-msgstr ""
-
-#: g10/helptext.c:89
-#, fuzzy
+msgstr 
+"Obwohl diese Schlüssel in RFC 2440 definiert sind, ist ihre Verwendung "
+"nicht\n"
+"empfohlen. Sie werden nämlich nicht von allen Programmen unterstützt.\n"
+"Außerdem sind damit ezeugte Unterschriften recht groß und ihre Überprüfung\n"
+"ist langsam."
+
+#: g10/helptext.c:92
 msgid "Enter the size of the key"
-msgstr "Geben Sie die User-ID ein: "
+msgstr "Wählen Sie die gewünschte Schlüssellänge"
 
-#: g10/helptext.c:93 g10/helptext.c:98 g10/helptext.c:110 g10/helptext.c:142
-#: g10/helptext.c:147 g10/helptext.c:152 g10/helptext.c:157
+#: g10/helptext.c:96 g10/helptext.c:101 g10/helptext.c:113 g10/helptext.c:145
+#: g10/helptext.c:150 g10/helptext.c:155 g10/helptext.c:160
 msgid "Answer \"yes\" or \"no\""
-msgstr ""
+msgstr "Geben Sie \"ja\" oder \"nein\" ein"
 
-#: g10/helptext.c:103
+#: g10/helptext.c:106
 msgid ""
 "Enter the required value as shown in the pronpt.\n"
 "It is possible to enter a ISO date (YYYY-MM-DD) but you won't\n"
 "get a good error response - instead the system tries to interpret\n"
 "the given value as an interval."
-msgstr ""
+msgstr 
+"Geben Sie den benötigten Wert so an, wie er im Prompt erscheint.\n"
+"Es ist zwar möglich ein \"ISO\"-Datum (JJJJ-MM-DD) einzugeben, aber man\n"
+"erhält dann ggfs. keine brauchbaren Fehlermeldungen - stattdessen versucht\n"
+"der Rechner den Wert als Intervall (von-bis) zu deuten."
 
-#: g10/helptext.c:115
+#: g10/helptext.c:118
 msgid "Enter the name of the key holder"
-msgstr ""
+msgstr "Geben Sie den Namen des Schlüsselinhabers ein"
 
-#: g10/helptext.c:120
+#: g10/helptext.c:123
 msgid "please enter an optional but highly suggested email address"
-msgstr ""
+msgstr 
+"Geben Sie eine E-Mail-Adresse ein. Dies ist zwar nicht unbedingt notwendig,\n"
+"aber sehr empfehlenswert."
+
 
-#: g10/helptext.c:124
-#, fuzzy
+#: g10/helptext.c:127
 msgid "Please enter an optional comment"
-msgstr "Bitte geben Sie den Namen der Datendatei ein: "
+msgstr "Geben Sie - bei Bedarf - einen Kommentar ein"
 
-#: g10/helptext.c:129
+#: g10/helptext.c:132
 msgid ""
 "N  to change the name.\n"
 "C  to change the comment.\n"
@@ -3273,84 +3312,134 @@ msgid ""
 "O  to continue with key generation.\n"
 "Q  to to quit the key generation."
 msgstr ""
+"N  um den Namen zu ändern.\n"
+"K  um den Kommentar zu ändern.\n"
+"E  um die E-Mail-Adresse zu ändern.\n"
+"F  um mit der Schlüsselerzeugung fortzusetzen.\n"
+"B  um die Schlüsselerzeugung abbrechen."
 
-#: g10/helptext.c:138
+#: g10/helptext.c:141
 msgid "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
-msgstr ""
+msgstr 
+"Geben Sie \"ja\" (oder nur \"j\") ein, um den Unterschlüssel zu erzeugen."
+
 
-#: g10/helptext.c:161
+#: g10/helptext.c:164
 msgid "Answer \"yes\" is you want to sign ALL the user IDs"
-msgstr ""
+msgstr 
+"Geben Sie \"ja\" (oder nur \"j\") ein, um alle User-IDs zu beglaubigen"
 
-#: g10/helptext.c:165
+#: g10/helptext.c:168
 msgid ""
 "Answer \"yes\" if you really want to delete this user ID.\n"
 "All certificates are then also lost!"
-msgstr ""
+msgstr 
+"Geben Sie \"ja\" (oder nur \"j\") ein, um diese User-ID zu LÖSCHEN.\n"
+"Alle Zertifikate werden dann auch weg sein!"
+
 
-#: g10/helptext.c:170
+#: g10/helptext.c:173
 msgid "Answer \"yes\" if it is okay to delete the subkey"
-msgstr ""
+msgstr 
+"Geben Sie \"ja\" (oder nur \"j\") ein, um diesen Unterschlüssel zu löschen"
 
-#: g10/helptext.c:175
+#: g10/helptext.c:178
 msgid ""
 "This is a valid signature on the key; you normally don't want\n"
 "to delete this signature may be important to establish a trust\n"
 "connection to the key or another key certified by this key."
-msgstr ""
-
-#: g10/helptext.c:180
+msgstr 
+"Dies ist eine gültige Beglaubigung für den Schlüssel. Es ist normalerweise\n"
+"unnötig sie zu löschen. Sie ist möglicherweise sogar notwendig, um einen\n"
+"Trust-Weg zu diesem oder einem durch diesen Schlüssel beglaubigten "
+"Schlüssel\n"
+"herzustellen."
+
+#: g10/helptext.c:183
 msgid ""
 "This signature can't be checked because you don't have the\n"
 "corresponding key.  You should postpone its deletion until you\n"
 "know which key was used because this signing key might establisha trust "
 "connection through another already certified key."
-msgstr ""
+msgstr 
+"Diese Beglaubigung kann nicht geprüft werden, da Sie den passenden Schlüssel\n"
+"nicht besitzen. Sie sollten die Löschung der Beglaubigung verschieben, bis\n"
+"sie wissen, welcher Schlüssel verwendet wurde. Denn vielleicht würde genau\n"
+"diese Beglaubigung den \"Trust\"-Weg kompletieren."
 
-#: g10/helptext.c:186
+#: g10/helptext.c:189
 msgid ""
 "The signature is not valid.  It does make sense to remove it from\n"
 "your keyring."
-msgstr ""
+msgstr 
+"Diese Beglaubigung ist ungültig. Es ist sinnvoll sie aus Ihrem\n"
+"Schlüsselbund zu entfernen."
 
-#: g10/helptext.c:190
+
+#: g10/helptext.c:193
 msgid ""
 "This is a signature which binds the user ID to the key. It is\n"
 "usually not a good idea to remove such a signature.  Actually\n"
 "GnuPG might not be able to use this key anymore.  So do this\n"
 "only if this self-signature is for some reason not valid and\n"
 "a second one is available."
-msgstr ""
-
-#: g10/helptext.c:199
+msgstr 
+"Diese Beglaubigung bindet die User-ID an den Schlüssel. Normalerweise ist\n"
+"es nicht gut, solche Beglaubigungen zu entfernen. Um ehrlich zu sein:\n"
+"Es könnte dann sein, daß GnuPG diesen Schlüssel gar nicht mehr benutzen kann.\n"
+"Sie sollten diese Eigenbeglaubigung also nur dann entfernen, wenn sie aus\n"
+"irgendeinem Grund nicht gültig ist und eine zweite Beglaubigung verfügbar "
+"ist."
+
+#: g10/helptext.c:202
 msgid ""
 "Please enter the passhrase; this is a secret sentence \n"
 "  Blurb, blurb,.... "
-msgstr ""
+msgstr 
+"Bitte geben Sie das Mantra ein. Dies ist ein geheimer Satz, der aus\n"
+"beliebigen Zeichen bestehen kann. Was Sie eingegeben wird nicht angezeigt.\n"
+"\n"
+"Zur ihrer eigenen Sicherbeit benutzen Sie bitte einen Satz, den sie sich\n"
+"gut merken könne, der aber nicht leicht zu erraten ist; Zitate und andere\n"
+"bekannte Texte sind eine SCHLECHTE Wahl, da diese mit Sicherheit online\n"
+"verfügbar sind und durch entsprechende Programme zum Raten des Mantras\n"
+"benutzt werden.  Sätze mit persönlicher Bedeutung, die auch noch durch\n"
+"falsche Groß-/Kleinschreibung und eingestreute Sonderzeichen verändert "
+"werden,\n"
+"sind i.d.R. eine gute Wahl"
+
 
-#: g10/helptext.c:206
+#: g10/helptext.c:209
 msgid "Please repeat the last passphrase, so you are sure what you typed in."
-msgstr ""
+msgstr 
+"Um sicher zu gehen, daß Sie sich bei der Eingabe des Mantras nicht\n"
+"vertippt haben, geben Sie diese bitte nochmal ein.  Nur wenn beide Eingaben\n"
+"übereinstimmen, wird das Mantra akzeptiert."
 
-#: g10/helptext.c:210
+#: g10/helptext.c:213
 msgid "Give the name fo the file to which the signature applies"
-msgstr ""
+msgstr 
+"Geben Sie den Namen der Datei an, zu dem die abgetrennte Unterschrift gehört"
 
-#: g10/helptext.c:215
+#: g10/helptext.c:218
 msgid "Answer \"yes\" if it is okay to overwrite the file"
-msgstr ""
+msgstr "Geben Sie \"ja\" ein, wenn Sie die Datei überschreiben möchten"
 
-#: g10/helptext.c:220
+#: g10/helptext.c:223
 msgid ""
 "Please enter a new filename. If you just hit RETURN the default\n"
 "file (which is shown in brackets) will be used."
-msgstr ""
+msgstr 
+"Geben Sie bitte einen neuen Dateinamen ein. Falls Sie nur die\n"
+"Eingabetaste betätigen, wird der (in Klammern angezeigte) Standarddateiname\n"
+"verwendet."
+
 
-#: g10/helptext.c:234
+#: g10/helptext.c:237
 msgid "No help available"
 msgstr "Keine Hilfe vorhanden."
 
-#: g10/helptext.c:242
+#: g10/helptext.c:245
 #, c-format
 msgid "No help available for `%s'"
 msgstr "Keine Hilfe für '%s' vorhanden."
diff --git a/tools/crlf.c b/tools/crlf.c
new file mode 100644 (file)
index 0000000..f81f77e
--- /dev/null
@@ -0,0 +1,44 @@
+/* crlf.c
+ */
+
+#include <stdio.h>
+
+int
+main(int argc, char **argv)
+{
+    int c, lc;
+    int off=0;
+
+    if( argc > 1 ) {
+       fprintf(stderr, "no arguments, please\n");
+       return 1;
+    }
+
+    lc = -1;
+    while( (c=getchar()) != EOF ) {
+      #if 0
+       if( c == '\r' && lc == ' ' )
+           fprintf(stderr,"SP,CR at %d\n", off );
+       if( c == '\n' && lc == ' ' )
+           fprintf(stderr,"SP,LF at %d\n", off );
+      #endif
+       if( c == '\n' && lc == '\r' )
+           putchar(c);
+       else if( c == '\n' ) {
+           putchar('\r');
+           putchar(c);
+       }
+       else if( c != '\n' && lc == '\r' ) {
+           putchar('\n');
+           putchar(c);
+       }
+       else
+           putchar(c);
+
+       lc = c;
+       off++;
+    }
+
+    return 0;
+}
+
index a451e4a..0edc49a 100644 (file)
@@ -1,3 +1,9 @@
+Wed Sep  1 15:30:44 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+
+       * argparse.c (arg_parse): Add standard options to the dump-options
+       output.
+
 Tue Aug 31 17:20:44 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
 
index b693414..fcd44ff 100644 (file)
@@ -526,9 +526,11 @@ arg_parse( ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts)
            exit(0);
        }
        else if( i < 0 && !strcmp( "dump-options", s+2) ) {
-           for(i=0; opts[i].short_opt; i++ )
+           for(i=0; opts[i].short_opt; i++ ) {
                if( opts[i].long_opt )
                    printf( "--%s\n", opts[i].long_opt );
+           }
+           fputs("--dump-options\n--help\n--version\n--warranty\n", stdout );
            exit(0);
        }