From 0428ca6da6d18a2579fe81a1a77e184007bab9fb Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 1 Sep 1999 13:40:07 +0000 Subject: [PATCH] See ChangeLog: Wed Sep 1 15:30:44 CEST 1999 Werner Koch --- AUTHORS | 4 +- INSTALL | 34 ++++--- PROJECTS | 31 +------ THOUGHTS | 8 +- g10/ChangeLog | 6 ++ g10/getkey.c | 8 +- g10/helptext.c | 2 +- g10/import.c | 18 ++-- g10/keyedit.c | 28 +++--- g10/keygen.c | 5 +- g10/mainproc.c | 2 +- g10/parse-packet.c | 8 +- g10/sig-check.c | 2 +- g10/trustdb.c | 2 +- po/ChangeLog | 5 + po/de.po | 223 +++++++++++++++++++++++++++++++-------------- tools/crlf.c | 44 +++++++++ util/ChangeLog | 6 ++ util/argparse.c | 4 +- 19 files changed, 290 insertions(+), 150 deletions(-) create mode 100644 tools/crlf.c diff --git a/AUTHORS b/AUTHORS index 7ae8560f1..39b903f08 100644 --- 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 c6bd647c2..c26429076 100644 --- a/INSTALL +++ b/INSTALL @@ -4,29 +4,35 @@ Please read the Basic Installation section somewhere below. Configure options for GNUPG =========================== +--enable-static-rnd= Force the use of the random byte gathering + module . 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) +--disable-nls Disable NLS support (See the file 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. - ---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 diff --git a/PROJECTS b/PROJECTS index 2d89d918d..85b45765d 100644 --- 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. diff --git a/THOUGHTS b/THOUGHTS index 1ff9e92f1..dbd53b246 100644 --- 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 diff --git a/g10/ChangeLog b/g10/ChangeLog index dec722de9..fe5c58312 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,9 @@ +Wed Sep 1 15:30:44 CEST 1999 Werner Koch + + + * 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 diff --git a/g10/getkey.c b/g10/getkey.c index 4e325e0ac..fb5f1bc3e 100644 --- a/g10/getkey.c +++ b/g10/getkey.c @@ -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 */ } } diff --git a/g10/helptext.c b/g10/helptext.c index e6957da3b..2136bbbcc 100644 --- a/g10/helptext.c +++ b/g10/helptext.c @@ -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_( diff --git a/g10/import.c b/g10/import.c index a46916789..7cad61a6d 100644 --- a/g10/import.c +++ b/g10/import.c @@ -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"), diff --git a/g10/keyedit.c b/g10/keyedit.c index d54e90d6c..1528cbaa9 100644 --- a/g10/keyedit.c +++ b/g10/keyedit.c @@ -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; } } diff --git a/g10/keygen.c b/g10/keygen.c index e1ed9aa47..ceff09d10 100644 --- a/g10/keygen.c +++ b/g10/keygen.c @@ -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); diff --git a/g10/mainproc.c b/g10/mainproc.c index 033157269..4553253bb 100644 --- a/g10/mainproc.c +++ b/g10/mainproc.c @@ -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 ) ); diff --git a/g10/parse-packet.c b/g10/parse-packet.c index 967aa7a22..e261b5366 100644 --- a/g10/parse-packet.c +++ b/g10/parse-packet.c @@ -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' ) diff --git a/g10/sig-check.c b/g10/sig-check.c index 937410c8c..773eff7ca 100644 --- a/g10/sig-check.c +++ b/g10/sig-check.c @@ -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; } } diff --git a/g10/trustdb.c b/g10/trustdb.c index 0e60dfc25..96b77a4ef 100644 --- a/g10/trustdb.c +++ b/g10/trustdb.c @@ -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; } diff --git a/po/ChangeLog b/po/ChangeLog index e890102cd..ce2903cb6 100644 --- a/po/ChangeLog +++ b/po/ChangeLog @@ -1,3 +1,8 @@ +Wed Sep 1 15:30:44 CEST 1999 Werner Koch + + + * de.po: Updated. + Mon Aug 30 20:38:33 CEST 1999 Werner Koch diff --git a/po/de.po b/po/de.po index 66a8da08f..1eb607c70 100644 --- a/po/de.po +++ b/po/de.po @@ -1,11 +1,11 @@ # GnuPG german translation # Copyright (C) 1998 Free Software Foundation, Inc. -# Walter Koch , 1998. -msgid "" +# Walter Koch , 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 \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 \n" "Language-Team: German \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 .\n" -msgstr "Berichte über Bugs (Programmfehler) bitte an .\n" +msgstr +"Berichte über Bugs (Programmfehler) bitte an .\n" +"Sinn- oder Schreibfehler in den deutschen Texten bitte an .\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 "" +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:89 -#, fuzzy +#: 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 "" +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:180 +#: 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 "" +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:199 +#: 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 index 000000000..f81f77e69 --- /dev/null +++ b/tools/crlf.c @@ -0,0 +1,44 @@ +/* crlf.c + */ + +#include + +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; +} + diff --git a/util/ChangeLog b/util/ChangeLog index a451e4a9a..0edc49a32 100644 --- a/util/ChangeLog +++ b/util/ChangeLog @@ -1,3 +1,9 @@ +Wed Sep 1 15:30:44 CEST 1999 Werner Koch + + + * argparse.c (arg_parse): Add standard options to the dump-options + output. + Tue Aug 31 17:20:44 CEST 1999 Werner Koch diff --git a/util/argparse.c b/util/argparse.c index b6934148b..fcd44ff61 100644 --- a/util/argparse.c +++ b/util/argparse.c @@ -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); }