diff options
Diffstat (limited to 'g10')
-rw-r--r-- | g10/ChangeLog | 24 | ||||
-rw-r--r-- | g10/encode.c | 4 | ||||
-rw-r--r-- | g10/encr-data.c | 6 | ||||
-rw-r--r-- | g10/export.c | 3 | ||||
-rw-r--r-- | g10/g10.c | 26 | ||||
-rw-r--r-- | g10/getkey.c | 33 | ||||
-rw-r--r-- | g10/keyedit.c | 3 | ||||
-rw-r--r-- | g10/main.h | 2 | ||||
-rw-r--r-- | g10/mainproc.c | 16 | ||||
-rw-r--r-- | g10/misc.c | 5 | ||||
-rw-r--r-- | g10/options.skel | 6 | ||||
-rw-r--r-- | g10/parse-packet.c | 3 | ||||
-rw-r--r-- | g10/passphrase.c | 4 | ||||
-rw-r--r-- | g10/pkclist.c | 23 | ||||
-rw-r--r-- | g10/plaintext.c | 2 | ||||
-rw-r--r-- | g10/pubkey-enc.c | 6 | ||||
-rw-r--r-- | g10/revoke.c | 2 | ||||
-rw-r--r-- | g10/ringedit.c | 19 | ||||
-rw-r--r-- | g10/seckey-cert.c | 2 | ||||
-rw-r--r-- | g10/sig-check.c | 2 | ||||
-rw-r--r-- | g10/sign.c | 19 | ||||
-rw-r--r-- | g10/skclist.c | 7 | ||||
-rw-r--r-- | g10/status.c | 15 | ||||
-rw-r--r-- | g10/status.h | 1 | ||||
-rw-r--r-- | g10/tdbio.c | 6 | ||||
-rw-r--r-- | g10/trustdb.c | 204 |
26 files changed, 290 insertions, 153 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog index fb18fc762..af6daf002 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,27 @@ +Tue Nov 10 10:08:59 1998 Werner Koch ([email protected]) + + * g10.c (g10_exit): Now looks at the new g10_errors_seen. + * mainproc.c (check_sig_and_print): Sets g10_errors_seen. + + * *.c : i18n many more strings. + + * ringedit.c (locate_keyblock_by_keyid): Add HAVE_LIBGDBM + (locate_keyblock_by_fpr): Ditto. + + * g10.c (main): removed unsused "int errors". + (main): Add new option --charset. + + * g10.c (main): special message for the unix newbie. + +Mon Nov 9 07:17:42 1998 Werner Koch <[email protected]> + + * getkey.c (finish_lookup): Kludge to prefere algo 16. + + * trustdb.c (new_lid_table): Clear cached item. + + * status.c (cpr_get_utf8): New. + * pkclist.c (build_pk_list): Uses this. + Sun Nov 8 17:20:39 1998 Werner Koch ([email protected]) * mainproc.c (check_sig_and_print): Why did I use strlen()-1 diff --git a/g10/encode.c b/g10/encode.c index 371a23731..b0cdd7e6a 100644 --- a/g10/encode.c +++ b/g10/encode.c @@ -152,7 +152,7 @@ encode_simple( const char *filename, int mode ) } if( filename ) { if( !(filesize = iobuf_get_filelength(inp)) ) - log_info(_("%s: warning: empty file\n"), filename ); + log_info(_("%s: WARNING: empty file\n"), filename ); } else filesize = 0; /* stdin */ @@ -266,7 +266,7 @@ encode_crypt( const char *filename, STRLIST remusr ) } if( filename ) { if( !(filesize = iobuf_get_filelength(inp)) ) - log_info(_("%s: warning: empty file\n"), filename ); + log_info(_("%s: WARNING: empty file\n"), filename ); } else filesize = 0; /* stdin */ diff --git a/g10/encr-data.c b/g10/encr-data.c index c9fca4d81..e5338c75d 100644 --- a/g10/encr-data.c +++ b/g10/encr-data.c @@ -56,9 +56,9 @@ decrypt_data( PKT_encrypted *ed, DEK *dek ) if( opt.verbose ) { const char *s = cipher_algo_to_string( dek->algo ); if( s ) - log_info("%s encrypted data\n", s ); + log_info(_("%s encrypted data\n"), s ); else - log_info("encrypted with unknown algorithm %d\n", dek->algo ); + log_info(_("encrypted with unknown algorithm %d\n"), dek->algo ); } if( (rc=check_cipher_algo(dek->algo)) ) return rc; @@ -71,7 +71,7 @@ decrypt_data( PKT_encrypted *ed, DEK *dek ) dfx.cipher_hd = cipher_open( dek->algo, CIPHER_MODE_AUTO_CFB, 1 ); rc = cipher_setkey( dfx.cipher_hd, dek->key, dek->keylen ); if( rc == G10ERR_WEAK_KEY ) - log_info(_("Warning: Message was encrypted with " + log_info(_("WARNING: Message was encrypted with " "a weak key in the symmetric cipher.\n")); else if( rc ) log_error("key setup failed: %s\n", g10_errstr(rc) ); diff --git a/g10/export.c b/g10/export.c index 637f675f4..ff003cc74 100644 --- a/g10/export.c +++ b/g10/export.c @@ -32,6 +32,7 @@ #include "memory.h" #include "util.h" #include "main.h" +#include "i18n.h" static int do_export( STRLIST users, int secret ); @@ -158,7 +159,7 @@ do_export( STRLIST users, int secret ) else iobuf_close(out); if( !any ) - log_info("warning: nothing exported\n"); + log_info(_("WARNING: nothing exported\n")); return rc; } @@ -144,6 +144,7 @@ enum cmd_and_opt_values { aNull = 0, oS2KMode, oS2KDigest, oS2KCipher, + oCharset, aTest }; @@ -220,6 +221,7 @@ static ARGPARSE_OPTS opts[] = { { oKeyring, "keyring" ,2, N_("add this keyring to the list of keyrings")}, { oSecretKeyring, "secret-keyring" ,2, N_("add this secret keyring to the list")}, { oDefaultKey, "default-key" ,2, N_("|NAME|use NAME as default secret key")}, + { oCharset, "charset" , 2, N_("|NAME| set terminal charset to NAME") }, { oOptions, "options" , 2, N_("read options from file")}, { oDebug, "debug" ,4|16, N_("set debugging flags")}, @@ -295,6 +297,9 @@ static ARGPARSE_OPTS opts[] = { +int g10_errors_seen = 0; + + static int maybe_setuid = 1; static char *build_list( const char *text, @@ -488,7 +493,6 @@ main( int argc, char **argv ) unsigned configlineno; int parse_debug = 0; int default_config =1; - int errors=0; int default_keyring = 1; int greeting = 1; enum cmd_and_opt_values cmd = 0; @@ -599,7 +603,7 @@ main( int argc, char **argv ) if( !configfp ) { if( default_config ) { if( parse_debug ) - log_info(_("note: no default option file '%s'\n"), + log_info(_("NOTE: no default option file '%s'\n"), configname ); } else { @@ -755,8 +759,13 @@ main( int argc, char **argv ) case oNoSecmemWarn: break; /* dummies */ #endif + case oCharset: + if( set_native_charset( pargs.r.ret_str ) ) + log_error(_("%s is not a valid character set\n"), + pargs.r.ret_str); + break; - default : errors++; pargs.err = configfp? 1:2; break; + default : pargs.err = configfp? 1:2; break; } } if( configfp ) { @@ -812,7 +821,7 @@ main( int argc, char **argv ) log_error(_("marginals-needed must be greater than 1\n")); switch( opt.s2k_mode ) { case 0: - log_info(_("note: simple S2K mode (0) is strongly discouraged\n")); + log_info(_("NOTE: simple S2K mode (0) is strongly discouraged\n")); break; case 1: case 3: break; default: @@ -1228,9 +1237,15 @@ main( int argc, char **argv ) /* fixme: g10maint should do regular maintenace tasks here */ if( argc > 1 ) wrong_args(_("[filename]")); + /* Issue some output for the unix newbie */ + if( !fname && !opt.outfile && isatty( fileno(stdin) ) + && isatty( fileno(stdout) ) && isatty( fileno(stderr) ) ) + log_info(_("Go ahead and type your message ...\n")); + if( !(a = iobuf_open(fname)) ) log_error(_("can't open '%s'\n"), print_fname_stdin(fname)); else { + if( !opt.no_armor ) { if( use_armor_filter( a ) ) { memset( &afx, 0, sizeof afx); @@ -1263,7 +1278,8 @@ g10_exit( int rc ) if( opt.debug ) secmem_dump_stats(); secmem_term(); - rc = rc? rc : log_get_errorcount(0)? 2:0; + rc = rc? rc : log_get_errorcount(0)? 2 : + g10_errors_seen? 1 : 0; /*write_status( STATUS_LEAVE );*/ exit(rc ); } diff --git a/g10/getkey.c b/g10/getkey.c index e322d60c6..dcc90a5be 100644 --- a/g10/getkey.c +++ b/g10/getkey.c @@ -160,7 +160,7 @@ cache_public_key( PKT_public_key *pk ) if( pk_cache_entries >= MAX_PK_CACHE_ENTRIES ) { /* fixme: use another algorithm to free some cache slots */ pk_cache_disabled=1; - log_info("too many entries in pk cache - disabled\n"); + log_info(_("too many entries in pk cache - disabled\n")); return; } pk_cache_entries++; @@ -258,7 +258,7 @@ get_pubkey( PKT_public_key *pk, u32 *keyid ) ; else if( ++unk_cache_entries > MAX_UNK_CACHE_ENTRIES ) { unk_cache_disabled = 1; - log_info("too many entries in unk cache - disabled\n"); + log_info(_("too many entries in unk cache - disabled\n")); } else { keyid_list_t kl; @@ -937,12 +937,29 @@ finish_lookup( KBNODE keyblock, PKT_public_key *pk, KBNODE k, byte *namehash, /* if the usage is not correct, try to use a subkey */ KBNODE save_k = k; - for( ; k; k = k->next ) { - if( k->pkt->pkttype == PKT_PUBLIC_SUBKEY - && !check_pubkey_algo2( - k->pkt->pkt.public_key->pubkey_algo, - pk->pubkey_usage ) ) - break; + k = NULL; + /* kludge for pgp 5: which doesn't accept type 20: + * try to use a type 16 subkey instead */ + if( pk->pubkey_usage == PUBKEY_USAGE_ENC ) { + for( k = save_k; k; k = k->next ) { + if( k->pkt->pkttype == PKT_PUBLIC_SUBKEY + && k->pkt->pkt.public_key->pubkey_algo + == PUBKEY_ALGO_ELGAMAL_E + && !check_pubkey_algo2( + k->pkt->pkt.public_key->pubkey_algo, + pk->pubkey_usage ) ) + break; + } + } + + if( !k ) { + for(k = save_k ; k; k = k->next ) { + if( k->pkt->pkttype == PKT_PUBLIC_SUBKEY + && !check_pubkey_algo2( + k->pkt->pkt.public_key->pubkey_algo, + pk->pubkey_usage ) ) + break; + } } if( !k ) k = save_k; diff --git a/g10/keyedit.c b/g10/keyedit.c index 17838dce7..2d3a0d093 100644 --- a/g10/keyedit.c +++ b/g10/keyedit.c @@ -451,7 +451,8 @@ fix_keyblock( KBNODE keyblock ) if( subkey ) { PKT_signature *sig = node->pkt->pkt.signature; if( sig->sig_class >= 0x10 && sig->sig_class <= 0x13 ) { - log_info("moving a key signature to the correct place\n"); + log_info(_( + "moving a key signature to the correct place\n")); last->next = node->next; node->next = subkey->next; subkey->next = node; diff --git a/g10/main.h b/g10/main.h index 5df7901a5..b95061495 100644 --- a/g10/main.h +++ b/g10/main.h @@ -38,6 +38,8 @@ typedef struct { /*-- g10.c --*/ +extern int g10_errors_seen; + #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5 ) void g10_exit(int rc) __attribute__ ((noreturn)); #else diff --git a/g10/mainproc.c b/g10/mainproc.c index f12fae036..c85787407 100644 --- a/g10/mainproc.c +++ b/g10/mainproc.c @@ -195,7 +195,7 @@ proc_pubkey_enc( CTX c, PACKET *pkt ) ; else if( !result ) { if( opt.verbose > 1 ) - log_info( "pubkey_enc packet: Good DEK\n" ); + log_info( _("public key encrypted data: Good DEK\n") ); } else { log_error(_("public key decryption failed: %s\n"), g10_errstr(result)); @@ -225,7 +225,7 @@ proc_encrypted( CTX c, PACKET *pkt ) ; else if( !result ) { if( opt.verbose > 1 ) - log_info("decryption okay\n"); + log_info(_("decryption okay\n")); } else { log_error(_("decryption failed: %s\n"), g10_errstr(result)); @@ -245,9 +245,9 @@ proc_plaintext( CTX c, PACKET *pkt ) KBNODE n; if( pt->namelen == 8 && !memcmp( pt->name, "_CONSOLE", 8 ) ) - log_info(_("note: sender requested \"for-your-eyes-only\"\n")); + log_info(_("NOTE: sender requested \"for-your-eyes-only\"\n")); else if( opt.verbose ) - log_info("original file name='%.*s'\n", pt->namelen, pt->name); + log_info(_("original file name='%.*s'\n"), pt->namelen, pt->name); free_md_filter_context( &c->mfx ); c->mfx.md = md_open( 0, 0); /* fixme: we may need to push the textfilter if we have sigclass 1 @@ -833,7 +833,7 @@ check_sig_and_print( CTX c, KBNODE node ) int rc; if( opt.skip_verify ) { - log_info("signature verification suppressed\n"); + log_info(_("signature verification suppressed\n")); return 0; } @@ -854,6 +854,8 @@ check_sig_and_print( CTX c, KBNODE node ) putc('\n', stderr); if( !rc ) rc = check_signatures_trust( sig ); + if( rc ) + g10_errors_seen = 1; if( opt.batch && rc ) g10_exit(1); } @@ -932,12 +934,12 @@ proc_tree( CTX c, KBNODE node ) } } else - log_info("old style signature\n"); + log_info(_("old style (PGP 2.x) signature\n")); check_sig_and_print( c, node ); } else - log_error("proc_tree: invalid root packet\n"); + log_error(_("invalid root packet detected in proc_tree()\n")); } diff --git a/g10/misc.c b/g10/misc.c index 6ae065a98..3336f2b92 100644 --- a/g10/misc.c +++ b/g10/misc.c @@ -34,6 +34,7 @@ #include "util.h" #include "main.h" #include "options.h" +#include "i18n.h" const char *g10m_revision_string(int); @@ -84,9 +85,9 @@ disable_core_dumps() limit.rlim_cur = 0; limit.rlim_max = 0; if( setrlimit( RLIMIT_CORE, &limit ) ) - log_fatal("can't disable core dumps: %s\n", strerror(errno) ); + log_fatal(_("can't disable core dumps: %s\n"), strerror(errno) ); #else - log_info("WARNING: Program may create a core file!\n"); + log_info(_("WARNING: Program may create a core file!\n")); #endif } diff --git a/g10/options.skel b/g10/options.skel index 009ce9d01..1d7ebd7fc 100644 --- a/g10/options.skel +++ b/g10/options.skel @@ -35,3 +35,9 @@ force-v3-sigs compress-algo 1 +# If you do not use the Latin-1 (ISO-8859-1) charset, you should +# tell GnuPG which is the native character set. Please check +# the man page for supported character sets. +#charset koi8-r + + diff --git a/g10/parse-packet.c b/g10/parse-packet.c index 1f19b05de..1400df735 100644 --- a/g10/parse-packet.c +++ b/g10/parse-packet.c @@ -33,6 +33,7 @@ #include "filter.h" #include "options.h" #include "main.h" +#include "i18n.h" static int mpi_print_mode = 0; static int list_mode = 0; @@ -105,7 +106,7 @@ unknown_pubkey_warning( int algo ) algo &= 0xff; if( !unknown_pubkey_algos[algo] ) { if( opt.verbose ) - log_info("can't handle public key algorithm %d\n", algo ); + log_info(_("can't handle public key algorithm %d\n"), algo ); unknown_pubkey_algos[algo] = 1; } } diff --git a/g10/passphrase.c b/g10/passphrase.c index 2e649119d..a6901b114 100644 --- a/g10/passphrase.c +++ b/g10/passphrase.c @@ -171,11 +171,11 @@ passphrase_to_dek( u32 *keyid, int cipher_algo, STRING2KEY *s2k, int mode ) else if( opt.batch ) log_fatal("Can't query password in batchmode\n"); else { - pw = cpr_get_hidden(N_("passphrase.enter"), _("Enter pass phrase: ") ); + pw = cpr_get_hidden(N_("passphrase.enter"), _("Enter passphrase: ") ); tty_kill_prompt(); if( mode == 2 && !cpr_enabled() ) { char *pw2 = cpr_get_hidden(N_("passphrase.repeat"), - _("Repeat pass phrase: ") ); + _("Repeat passphrase: ") ); tty_kill_prompt(); if( strcmp(pw, pw2) ) { m_free(pw2); diff --git a/g10/pkclist.c b/g10/pkclist.c index bef871c5f..2f3928716 100644 --- a/g10/pkclist.c +++ b/g10/pkclist.c @@ -180,7 +180,7 @@ do_we_trust( PKT_public_key *pk, int trustlevel ) int rc; if( (trustlevel & TRUST_FLAG_REVOKED) ) { - log_info("%08lX: key has been revoked!\n", + log_info(_("key %08lX: key has been revoked!\n"), (ulong)keyid_from_pk( pk, NULL) ); if( opt.batch ) return 0; @@ -208,12 +208,13 @@ do_we_trust( PKT_public_key *pk, int trustlevel ) return do_we_trust( pk, trustlevel ); case TRUST_EXPIRED: - log_info("%08lX: key has expired\n", (ulong)keyid_from_pk( pk, NULL) ); + log_info(_("%08lX: key has expired\n"), + (ulong)keyid_from_pk( pk, NULL) ); return 0; /* no */ case TRUST_UNDEFINED: if( opt.batch || opt.answer_no ) - log_info("%08lX: no info to calculate a trust probability\n", + log_info(_("%08lX: no info to calculate a trust probability\n"), (ulong)keyid_from_pk( pk, NULL) ); else { rc = add_ownertrust( pk ); @@ -229,24 +230,24 @@ do_we_trust( PKT_public_key *pk, int trustlevel ) return 0; case TRUST_NEVER: - log_info("%08lX: We do NOT trust this key\n", + log_info(_("%08lX: We do NOT trust this key\n"), (ulong)keyid_from_pk( pk, NULL) ); return 0; /* no */ case TRUST_MARGINAL: - log_info("%08lX: I'm not sure whether this key really belongs to the owner\n" - "but I proceed anyway\n", - (ulong)keyid_from_pk( pk, NULL) ); + log_info( + _("%08lX: It is not sure taht this key really belongs to the owner\n" + "but it is accepted anyway\n"), (ulong)keyid_from_pk( pk, NULL) ); return 1; /* yes */ case TRUST_FULLY: if( opt.verbose ) - log_info("This key probably belongs to the owner\n"); + log_info(_("This key probably belongs to the owner\n")); return 1; /* yes */ case TRUST_ULTIMATE: if( opt.verbose ) - log_info("This key belongs to us (we have the secret key)\n"); + log_info(_("This key belongs to us (we have the secret key)\n")); return 1; /* yes */ default: BUG(); @@ -422,8 +423,8 @@ build_pk_list( STRLIST remusr, PK_LIST *ret_pk_list, unsigned usage ) for(;;) { rc = 0; m_free(answer); - answer = cpr_get(N_("pklist.user_id.enter"), - _("Enter the user ID: ")); + answer = cpr_get_utf8(N_("pklist.user_id.enter"), + _("Enter the user ID: ")); trim_spaces(answer); cpr_kill_prompt(); if( !*answer ) diff --git a/g10/plaintext.c b/g10/plaintext.c index b1201b8b7..a133f1670 100644 --- a/g10/plaintext.c +++ b/g10/plaintext.c @@ -233,7 +233,7 @@ ask_for_detached_datafile( md_filter_context_t *mfx, const char *inname ) if( !fp ) { if( opt.verbose ) - log_info("reading stdin ...\n"); + log_info(_("reading stdin ...\n")); while( (c = getchar()) != EOF ) { if( mfx->md ) md_putc(mfx->md, c ); diff --git a/g10/pubkey-enc.c b/g10/pubkey-enc.c index 2e9a14aa5..cb021c47f 100644 --- a/g10/pubkey-enc.c +++ b/g10/pubkey-enc.c @@ -81,7 +81,7 @@ get_session_key( PKT_pubkey_enc *k, DEK *dek ) if( !rc ) rc = get_it( k, dek, sk, keyid ); if( !rc ) { - log_info( _("okay, we are the anonymous receiver.\n") ); + log_info(_("okay, we are the anonymous receiver.\n") ); break; } } @@ -133,7 +133,7 @@ get_it( PKT_pubkey_enc *k, DEK *dek, PKT_secret_key *sk, u32 *keyid ) if( n + 7 > nframe ) { rc = G10ERR_WRONG_SECKEY; goto leave; } if( frame[n] == 1 && frame[nframe-1] == 2 ) { - log_info("old encoding of DEK is not supported\n"); + log_info(_("old encoding of the DEK is not supported\n")); rc = G10ERR_CIPHER_ALGO; goto leave; } @@ -180,7 +180,7 @@ get_it( PKT_pubkey_enc *k, DEK *dek, PKT_secret_key *sk, u32 *keyid ) log_error("can't check algorithm against preferences\n"); else if( dek->algo != CIPHER_ALGO_3DES && !is_algo_in_prefs( pk->local_id, PREFTYPE_SYM, dek->algo ) ) - log_info(_("note: cipher algorithm %d not found in preferences\n"), + log_info(_("NOTE: cipher algorithm %d not found in preferences\n"), dek->algo ); free_public_key( pk ); rc = 0; diff --git a/g10/revoke.c b/g10/revoke.c index 74c11cb01..3d1eb4403 100644 --- a/g10/revoke.c +++ b/g10/revoke.c @@ -129,7 +129,7 @@ gen_revoke( const char *uname ) rc = G10ERR_PUBKEY_ALGO; break; case 0: - tty_printf(_("note: This key is not protected!\n")); + tty_printf(_("NOTE: This key is not protected!\n")); break; default: rc = check_secret_key( sk, 0 ); diff --git a/g10/ringedit.c b/g10/ringedit.c index a8a661d9e..ebeceb16a 100644 --- a/g10/ringedit.c +++ b/g10/ringedit.c @@ -274,12 +274,13 @@ add_keyblock_resource( const char *url, int force, int secret ) iobuf = iobuf_create( filename ); if( !iobuf ) { - log_error("%s: can't create keyring: %s\n", filename, strerror(errno)); + log_error(_("%s: can't create keyring: %s\n"), + filename, strerror(errno)); rc = G10ERR_OPEN_FILE; goto leave; } else - log_info("%s: keyring created\n", filename ); + log_info(_("%s: keyring created\n"), filename ); } #ifdef __MINGW32__ /* must close it again */ @@ -512,10 +513,12 @@ locate_keyblock_by_fpr( KBPOS *kbpos, const byte *fpr, int fprlen, int secret ) if( rentry->used && !rentry->secret == !secret ) { kbpos->rt = rentry->rt; switch( rentry->rt ) { + #ifdef HAVE_LIBGDBM case rt_GDBM: any = 1; rc = do_gdbm_locate( rentry->dbf, kbpos, fpr, fprlen ); break; + #endif default: rc = G10ERR_UNSUPPORTED; break; @@ -551,10 +554,12 @@ locate_keyblock_by_keyid( KBPOS *kbpos, u32 *keyid, int shortkid, int secret ) if( rentry->used && !rentry->secret == !secret ) { kbpos->rt = rentry->rt; switch( rentry->rt ) { + #ifdef HAVE_LIBGDBM case rt_GDBM: any = 1; rc = do_gdbm_locate_by_keyid( rentry->dbf, kbpos, keyid ); break; + #endif default: rc = G10ERR_UNSUPPORTED; break; @@ -1049,8 +1054,6 @@ keyring_enum( KBPOS *kbpos, KBNODE *ret_root, int skipsigs ) * a start packet; issue a warning if it is not a comment */ if( !root && pkt->pkttype != PKT_COMMENT && pkt->pkttype != PKT_OLD_COMMENT ) { - log_info("keyring_enum: skipped packet of type %d\n", - pkt->pkttype ); break; } if( !root || (skipsigs && ( pkt->pkttype == PKT_SIGNATURE @@ -1108,11 +1111,11 @@ keyring_copy( KBPOS *kbpos, int mode, KBNODE root ) /* insert: create a new file */ newfp = iobuf_create( rentry->fname ); if( !newfp ) { - log_error("%s: can't create: %s\n", rentry->fname, strerror(errno)); + log_error(_("%s: can't create: %s\n"), rentry->fname, strerror(errno)); return G10ERR_OPEN_FILE; } else - log_info("%s: keyring created\n", rentry->fname ); + log_info(_("%s: keyring created\n"), rentry->fname ); kbctx=NULL; while( (node = walk_kbnode( root, &kbctx, 0 )) ) { @@ -1285,7 +1288,7 @@ keyring_copy( KBPOS *kbpos, int mode, KBNODE root ) rc = G10ERR_RENAME_FILE; if( rentry->secret ) { log_info(_( - "Warning: 2 files with confidential information exists.\n")); + "WARNING: 2 files with confidential information exists.\n")); log_info(_("%s is the unchanged one\n"), rentry->fname ); log_info(_("%s is the new one\n"), tmpfname ); log_info(_("Please fix this possible security flaw\n")); @@ -1469,7 +1472,7 @@ do_gdbm_locate_by_keyid( GDBM_FILE dbf, KBPOS *kbpos, u32 *keyid ) return G10ERR_INV_KEYRING; } if( content.dsize > 21 ) - log_info("gdbm_fetch: warning: more than one fingerprint\n" ); + log_info("gdbm_fetch: WARNING: more than one fingerprint\n" ); rc = do_gdbm_locate( dbf, kbpos, content.dptr+1, 20 ); free( content.dptr ); /* can't use m_free() here */ diff --git a/g10/seckey-cert.c b/g10/seckey-cert.c index d43f8619d..c7e0038e5 100644 --- a/g10/seckey-cert.c +++ b/g10/seckey-cert.c @@ -212,7 +212,7 @@ protect_secret_key( PKT_secret_key *sk, DEK *dek ) cipher_hd = cipher_open( sk->protect.algo, CIPHER_MODE_AUTO_CFB, 1 ); if( cipher_setkey( cipher_hd, dek->key, dek->keylen ) ) - log_info(_("Warning: Weak key detected" + log_info(_("WARNING: Weak key detected" " - please change passphrase again.\n")); cipher_setiv( cipher_hd, NULL ); cipher_encrypt( cipher_hd, sk->protect.iv, sk->protect.iv, 8 ); diff --git a/g10/sig-check.c b/g10/sig-check.c index da732c451..106355550 100644 --- a/g10/sig-check.c +++ b/g10/sig-check.c @@ -167,7 +167,7 @@ do_check( PKT_public_key *pk, PKT_signature *sig, MD_HANDLE digest ) } if( pk->expiredate && pk->expiredate < cur_time ) { - log_info(_("warning: signature key expired %s\n"), + log_info(_("NOTE: signature key expired %s\n"), asctimestamp( pk->expiredate ) ); write_status(STATUS_SIGEXPIRED); } diff --git a/g10/sign.c b/g10/sign.c index db5272e53..71b5108f0 100644 --- a/g10/sign.c +++ b/g10/sign.c @@ -62,11 +62,11 @@ do_sign( PKT_secret_key *sk, PKT_signature *sig, rc = pubkey_sign( sk->pubkey_algo, sig->data, frame, sk->skey ); mpi_free(frame); if( rc ) - log_error("pubkey_sign failed: %s\n", g10_errstr(rc) ); + log_error(_("signing failed: %s\n"), g10_errstr(rc) ); else { if( opt.verbose ) { char *ustr = get_user_id_string( sig->keyid ); - log_info("%s signature from: %s\n", + log_info(_("%s signature from: %s\n"), pubkey_algo_to_string(sk->pubkey_algo), ustr ); m_free(ustr); } @@ -197,12 +197,12 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr, if( outfile ) { if( !(out = iobuf_create( outfile )) ) { - log_error("can't create %s: %s\n", outfile, strerror(errno) ); + log_error(_("can't create %s: %s\n"), outfile, strerror(errno) ); rc = G10ERR_CREATE_FILE; goto leave; } else if( opt.verbose ) - log_info("writing to '%s'\n", outfile ); + log_info(_("writing to '%s'\n"), outfile ); } else if( (rc = open_outfile( fname, opt.armor? 1: detached? 2:0, &out ))) goto leave; @@ -293,12 +293,13 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr, STRLIST sl; if( opt.verbose ) - log_info("signing:" ); + log_info(_("signing:") ); /* must walk reverse trough this list */ for( sl = strlist_last(filenames); sl; sl = strlist_prev( filenames, sl ) ) { if( !(inp = iobuf_open(sl->d)) ) { - log_error("can't open %s: %s\n", sl->d, strerror(errno) ); + log_error(_("can't open %s: %s\n"), + sl->d, strerror(errno) ); rc = G10ERR_OPEN_FILE; goto leave; } @@ -332,7 +333,7 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr, } if( fname ) { if( !(filesize = iobuf_get_filelength(inp)) ) - log_info("warning: '%s' is an empty file\n", fname ); + log_info(_("WARNING: '%s' is an empty file\n"), fname ); /* because the text_filter modifies the length of the * data, it is not possible to know the used length @@ -538,12 +539,12 @@ clearsign_file( const char *fname, STRLIST locusr, const char *outfile ) if( outfile ) { if( !(out = iobuf_create( outfile )) ) { - log_error("can't create %s: %s\n", outfile, strerror(errno) ); + log_error(_("can't create %s: %s\n"), outfile, strerror(errno) ); rc = G10ERR_CREATE_FILE; goto leave; } else if( opt.verbose ) - log_info("writing to '%s'\n", outfile ); + log_info(_("writing to '%s'\n"), outfile ); } else if( (rc = open_outfile( fname, 1, &out )) ) goto leave; diff --git a/g10/skclist.c b/g10/skclist.c index efd97f3d1..caaab207c 100644 --- a/g10/skclist.c +++ b/g10/skclist.c @@ -31,6 +31,7 @@ #include "keydb.h" #include "memory.h" #include "util.h" +#include "i18n.h" void @@ -90,14 +91,14 @@ build_sk_list( STRLIST locusr, SK_LIST *ret_sk_list, int unlock, sk->pubkey_usage = usage; if( (rc = get_seckey_byname( sk, locusr->d, unlock )) ) { free_secret_key( sk ); sk = NULL; - log_error("skipped '%s': %s\n", locusr->d, g10_errstr(rc) ); + log_error(_("skipped '%s': %s\n"), locusr->d, g10_errstr(rc) ); } else if( !(rc=check_pubkey_algo2(sk->pubkey_algo, usage)) ) { SK_LIST r; if( sk->version == 4 && (usage & PUBKEY_USAGE_SIG) && sk->pubkey_algo == PUBKEY_ALGO_ELGAMAL_E ) { - log_info("skipped '%s': this is a PGP generated " - "ElGamal key which is not secure for signatures!\n", + log_info(_("skipped '%s': this is a PGP generated " + "ElGamal key which is not secure for signatures!\n"), locusr->d ); free_secret_key( sk ); sk = NULL; } diff --git a/g10/status.c b/g10/status.c index 97b4fba97..3fcf22b67 100644 --- a/g10/status.c +++ b/g10/status.c @@ -142,7 +142,7 @@ init_shm_coprocessing ( ulong requested_shm_size, int lock_mem ) if ( shm_area == (char*)-1 ) log_fatal("can't attach %uk shared memory: %s\n", (unsigned)shm_size/1024, strerror(errno)); - log_info("mapped %uk shared memory at %p, id=%d\n", + log_debug("mapped %uk shared memory at %p, id=%d\n", (unsigned)shm_size/1024, shm_area, shm_id ); if( lock_mem ) { #ifdef IPC_HAVE_SHM_LOCK @@ -293,6 +293,19 @@ cpr_get( const char *keyword, const char *prompt ) } char * +cpr_get_utf8( const char *keyword, const char *prompt ) +{ + char *p; + p = cpr_get( keyword, prompt ); + if( p ) { + char *utf8 = native_to_utf8( p ); + m_free( p ); + p = utf8; + } + return p; +} + +char * cpr_get_hidden( const char *keyword, const char *prompt ) { char *p; diff --git a/g10/status.h b/g10/status.h index e9ad819d3..4adce1282 100644 --- a/g10/status.h +++ b/g10/status.h @@ -60,6 +60,7 @@ void write_status_text ( int no, const char *text ); int cpr_enabled(void); char *cpr_get( const char *keyword, const char *prompt ); +char *cpr_get_utf8( const char *keyword, const char *prompt ); char *cpr_get_hidden( const char *keyword, const char *prompt ); void cpr_kill_prompt(void); int cpr_get_answer_is_yes( const char *keyword, const char *prompt ); diff --git a/g10/tdbio.c b/g10/tdbio.c index 424add4eb..11b2dcf25 100644 --- a/g10/tdbio.c +++ b/g10/tdbio.c @@ -215,8 +215,8 @@ put_record_into_cache( ulong recno, const char *data ) /* but we can't do this while in a transaction * we increase the cache size instead */ if( cache_entries < MAX_CACHE_ENTRIES_HARD ) { /* no */ - if( !(cache_entries % 100) ) - log_info("increasing tdbio cache size\n"); + if( opt.debug && !(cache_entries % 100) ) + log_debug("increasing tdbio cache size\n"); r = m_alloc( sizeof *r ); r->flags.used = 1; r->recno = recno; @@ -228,7 +228,7 @@ put_record_into_cache( ulong recno, const char *data ) cache_entries++; return 0; } - log_info("hard cache size limit reached\n"); + log_info(_("trustdb transaction to large\n")); return G10ERR_RESOURCE_LIMIT; } if( dirty_count ) { diff --git a/g10/trustdb.c b/g10/trustdb.c index bfecad229..c145525fa 100644 --- a/g10/trustdb.c +++ b/g10/trustdb.c @@ -42,6 +42,7 @@ #include "i18n.h" #include "tdbio.h" +#define MAX_CERT_DEPTH 5 #if MAX_FINGERPRINT_LEN > 20 #error Must change structure of trustdb @@ -139,7 +140,7 @@ read_record( ulong recno, TRUSTREC *rec, int rectype ) int rc = tdbio_read_record( recno, rec, rectype ); if( !rc ) return; - log_error("trust record %lu, req type %d: read failed: %s\n", + log_error(_("trust record %lu, req type %d: read failed: %s\n"), recno, rectype, g10_errstr(rc) ); die_invalid_db(); } @@ -154,7 +155,7 @@ write_record( TRUSTREC *rec ) int rc = tdbio_write_record( rec ); if( !rc ) return; - log_error("trust record %lu, type %d: write failed: %s\n", + log_error(_("trust record %lu, type %d: write failed: %s\n"), rec->recnum, rec->rectype, g10_errstr(rc) ); die_invalid_db(); } @@ -168,7 +169,7 @@ delete_record( ulong recno ) int rc = tdbio_delete_record( recno ); if( !rc ) return; - log_error("trust record %lu: delete failed: %s\n", + log_error(_("trust record %lu: delete failed: %s\n"), recno, g10_errstr(rc) ); die_invalid_db(); } @@ -182,7 +183,7 @@ do_sync( ) int rc = tdbio_sync(); if( !rc ) return; - log_error("trust db: sync failed: %s\n", g10_errstr(rc) ); + log_error(_("trust db: sync failed: %s\n"), g10_errstr(rc) ); g10_exit(2); } @@ -237,7 +238,7 @@ new_lid_table(void) a = unused_lid_tables; if( a ) { unused_lid_tables = a->next; - a->next = NULL; + memset( a, 0, sizeof *a ); } else a = m_alloc_clear( sizeof *a ); @@ -311,24 +312,24 @@ keyid_from_lid( ulong lid, u32 *keyid ) rc = tdbio_read_record( lid, &rec, 0 ); if( rc ) { - log_error("error reading dir record for LID %lu: %s\n", + log_error(_("error reading dir record for LID %lu: %s\n"), lid, g10_errstr(rc)); return G10ERR_TRUSTDB; } if( rec.rectype == RECTYPE_SDIR ) return 0; if( rec.rectype != RECTYPE_DIR ) { - log_error("lid %lu: expected dir record, got type %d\n", + log_error(_("lid %lu: expected dir record, got type %d\n"), lid, rec.rectype ); return G10ERR_TRUSTDB; } if( !rec.r.dir.keylist ) { - log_error("no primary key for LID %lu\n", lid ); + log_error(_("no primary key for LID %lu\n"), lid ); return G10ERR_TRUSTDB; } rc = tdbio_read_record( rec.r.dir.keylist, &rec, RECTYPE_KEY ); if( rc ) { - log_error("error reading primary key for LID %lu: %s\n", + log_error(_("error reading primary key for LID %lu: %s\n"), lid, g10_errstr(rc)); return G10ERR_TRUSTDB; } @@ -444,7 +445,7 @@ verify_own_keys() log_debug("key %08lX: checking secret key\n", (ulong)keyid[1] ); if( is_secret_key_protected( sk ) < 1 ) - log_info("note: secret key %08lX is NOT protected.\n", + log_info(_("NOTE: secret key %08lX is NOT protected.\n"), (ulong)keyid[1] ); /* see whether we can access the public key of this secret key */ @@ -484,7 +485,7 @@ verify_own_keys() if( ins_lid_table_item( ultikey_table, pk->local_id, 0 ) ) log_error(_("key %08lX: already in secret key table\n"), (ulong)keyid[1]); - else if( opt.verbose ) + else if( opt.verbose > 1 ) log_info(_("key %08lX: accepted as secret key.\n"), (ulong)keyid[1]); skip: @@ -492,7 +493,7 @@ verify_own_keys() release_public_key_parts( pk ); } if( rc != -1 ) - log_error(_("enum_secret_keys failed: %s\n"), g10_errstr(rc) ); + log_error(_("enumerate secret keys failed: %s\n"), g10_errstr(rc) ); else rc = 0; @@ -666,7 +667,8 @@ list_records( ulong lid ) rc = tdbio_read_record( lid, &dr, RECTYPE_DIR ); if( rc ) { - log_error("lid %lu: read dir record failed: %s\n", lid, g10_errstr(rc)); + log_error(_("lid %lu: read dir record failed: %s\n"), + lid, g10_errstr(rc)); return rc; } tdbio_dump_record( &dr, stdout ); @@ -674,7 +676,7 @@ list_records( ulong lid ) for( recno=dr.r.dir.keylist; recno; recno = rec.r.key.next ) { rc = tdbio_read_record( recno, &rec, 0 ); if( rc ) { - log_error("lid %lu: read key record failed: %s\n", + log_error(_("lid %lu: read key record failed: %s\n"), lid, g10_errstr(rc)); return rc; } @@ -684,7 +686,7 @@ list_records( ulong lid ) for( recno=dr.r.dir.uidlist; recno; recno = ur.r.uid.next ) { rc = tdbio_read_record( recno, &ur, RECTYPE_UID ); if( rc ) { - log_error("lid %lu: read uid record failed: %s\n", + log_error(_("lid %lu: read uid record failed: %s\n"), lid, g10_errstr(rc)); return rc; } @@ -693,7 +695,7 @@ list_records( ulong lid ) for(recno=ur.r.uid.prefrec; recno; recno = rec.r.pref.next ) { rc = tdbio_read_record( recno, &rec, RECTYPE_PREF ); if( rc ) { - log_error("lid %lu: read pref record failed: %s\n", + log_error(_("lid %lu: read pref record failed: %s\n"), lid, g10_errstr(rc)); return rc; } @@ -703,7 +705,7 @@ list_records( ulong lid ) for(recno=ur.r.uid.siglist; recno; recno = rec.r.sig.next ) { rc = tdbio_read_record( recno, &rec, RECTYPE_SIG ); if( rc ) { - log_error("lid %lu: read sig record failed: %s\n", + log_error(_("lid %lu: read sig record failed: %s\n"), lid, g10_errstr(rc)); return rc; } @@ -893,15 +895,15 @@ static int do_check( TRUSTREC *dr, unsigned *trustlevel ) { if( !dr->r.dir.keylist ) { - log_error("Ooops, no keys\n"); + log_error(_("Ooops, no keys\n")); 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; } - *trustlevel = verify_key( 5, dr ); + *trustlevel = verify_key( MAX_CERT_DEPTH, dr ); if( dr->r.dir.dirflags & DIRF_REVOKED ) *trustlevel |= TRUST_FLAG_REVOKED; @@ -955,25 +957,29 @@ list_trustdb( const char *username ) ulong lid = atoi(username+1); if( (rc = list_records( lid)) ) - log_error("user '%s' read problem: %s\n", username, g10_errstr(rc)); + log_error(_("user '%s' read problem: %s\n"), + username, g10_errstr(rc)); else if( (rc = list_sigs( lid )) ) - log_error("user '%s' list problem: %s\n", username, g10_errstr(rc)); + log_error(_("user '%s' list problem: %s\n"), + username, g10_errstr(rc)); } else if( username ) { PKT_public_key *pk = m_alloc_clear( sizeof *pk ); int rc; if( (rc = get_pubkey_byname( NULL, pk, username, NULL )) ) - log_error("user '%s' not found: %s\n", username, g10_errstr(rc) ); + log_error(_("user '%s' not found: %s\n"), username, g10_errstr(rc) ); else if( (rc=tdbio_search_dir_bypk( pk, &rec )) && rc != -1 ) - log_error("problem finding '%s' in trustdb: %s\n", + log_error(_("problem finding '%s' in trustdb: %s\n"), username, g10_errstr(rc)); else if( rc == -1 ) - log_error("user '%s' not in trustdb\n", username); + log_error(_("user '%s' not in trustdb\n"), username); else if( (rc = list_records( pk->local_id)) ) - log_error("user '%s' read problem: %s\n", username, g10_errstr(rc)); + log_error(_("user '%s' read problem: %s\n"), + username, g10_errstr(rc)); else if( (rc = list_sigs( pk->local_id )) ) - log_error("user '%s' list problem: %s\n", username, g10_errstr(rc)); + log_error(_("user '%s' list problem: %s\n"), + username, g10_errstr(rc)); free_public_key( pk ); } else { @@ -1002,20 +1008,20 @@ export_ownertrust() byte *p; int rc; - printf("# List of assigned trustvalues, created %s\n" - "# (Use \"gpgm --import-ownertrust\" to restore them)\n", + printf(_("# List of assigned trustvalues, created %s\n" + "# (Use \"gpgm --import-ownertrust\" to restore them)\n"), asctimestamp( make_timestamp() ) ); for(recnum=0; !tdbio_read_record( recnum, &rec, 0); recnum++ ) { if( rec.rectype == RECTYPE_DIR ) { if( !rec.r.dir.keylist ) { - log_error("Oops; directory record w/o primary key\n"); + log_error(_("directory record w/o primary key\n")); continue; } if( !rec.r.dir.ownertrust ) continue; rc = tdbio_read_record( rec.r.dir.keylist, &rec2, RECTYPE_KEY); if( rc ) { - log_error("error reading key record: %s\n", g10_errstr(rc)); + log_error(_("error reading key record: %s\n"), g10_errstr(rc)); continue; } p = rec2.r.key.fingerprint; @@ -1055,7 +1061,7 @@ import_ownertrust( const char *fname ) continue; n = strlen(line); if( line[n-1] != '\n' ) { - log_error_f(fname, "line to long\n" ); + log_error_f(fname, _("line to long\n") ); /* ... or last line does not have a LF */ break; /* can't continue */ } @@ -1063,16 +1069,16 @@ import_ownertrust( const char *fname ) if( !isxdigit(*p) ) break; if( *p != ':' ) { - log_error_f(fname, "error: missing colon\n" ); + log_error_f(fname, _("error: missing colon\n") ); continue; } fprlen = p - line; if( fprlen != 32 && fprlen != 40 ) { - log_error_f(fname, "error: invalid fingerprint\n" ); + log_error_f(fname, _("error: invalid fingerprint\n") ); continue; } if( sscanf(p, ":%u:", &otrust ) != 1 ) { - log_error_f(fname, "error: no otrust value\n" ); + log_error_f(fname, _("error: no ownertrust value\n") ); continue; } if( !otrust ) @@ -1086,10 +1092,10 @@ import_ownertrust( const char *fname ) rc = tdbio_search_dir_byfpr( line, fprlen, 0, &rec ); if( !rc ) { /* found: update */ if( rec.r.dir.ownertrust ) - log_info("LID %lu: changing trust from %u to %u\n", + log_info(_("LID %lu: changing trust from %u to %u\n"), rec.r.dir.lid, rec.r.dir.ownertrust, otrust ); else - log_info("LID %lu: setting trust to %u\n", + log_info(_("LID %lu: setting trust to %u\n"), rec.r.dir.lid, otrust ); rec.r.dir.ownertrust = otrust; write_record( &rec ); @@ -1097,25 +1103,25 @@ import_ownertrust( const char *fname ) else if( rc == -1 ) { /* not found; get the key from the ring */ PKT_public_key *pk = m_alloc_clear( sizeof *pk ); - log_info_f(fname, "key not in trustdb, searching ring.\n"); + log_info_f(fname, _("key not in trustdb, searching ring.\n")); rc = get_pubkey_byfprint( pk, line, fprlen ); if( rc ) - log_info_f(fname, "key not in ring: %s\n", g10_errstr(rc)); + log_info_f(fname, _("key not in ring: %s\n"), g10_errstr(rc)); else { rc = query_trust_record( pk ); /* only as assertion */ if( rc != -1 ) - log_error_f(fname, "Oops: key is now in trustdb???\n"); + log_error_f(fname, _("Oops: key is now in trustdb???\n")); else { rc = insert_trust_record( pk ); if( !rc ) goto repeat; /* update the ownertrust */ - log_error_f(fname, "insert trust record failed: %s\n", + log_error_f(fname, _("insert trust record failed: %s\n"), g10_errstr(rc) ); } } } else /* error */ - log_error_f(fname, "error finding dir record: %s\n", + log_error_f(fname, _("error finding dir record: %s\n"), g10_errstr(rc)); } if( ferror(fp) ) @@ -1166,15 +1172,16 @@ list_trust_path( int max_depth, const char *username ) } if( (rc = get_pubkey_byname(NULL, pk, username, NULL )) ) - log_error("user '%s' not found: %s\n", username, g10_errstr(rc) ); + log_error(_("user '%s' not found: %s\n"), username, g10_errstr(rc) ); else if( (rc=tdbio_search_dir_bypk( pk, &rec )) && rc != -1 ) - log_error("problem finding '%s' in trustdb: %s\n", + log_error(_("problem finding '%s' in trustdb: %s\n"), username, g10_errstr(rc)); else if( rc == -1 ) { - log_info("user '%s' not in trustdb - inserting\n", username); + log_info(_("user '%s' not in trustdb - inserting\n"), username); rc = insert_trust_record( pk ); if( rc ) - log_error("failed to put '%s' into trustdb: %s\n", username, g10_errstr(rc)); + log_error(_("failed to put '%s' into trustdb: %s\n"), + username, g10_errstr(rc)); else { assert( pk->local_id ); } @@ -1217,7 +1224,7 @@ check_trustdb( const char *username ) if( !rc ) rc = read_keyblock( &kbpos, &keyblock ); if( rc ) { - log_error("%s: keyblock read problem: %s\n", + log_error(_("%s: keyblock read problem: %s\n"), username, g10_errstr(rc)); } else { @@ -1231,12 +1238,12 @@ check_trustdb( const char *username ) } if( rc ) - log_error("%s: update failed: %s\n", + log_error(_("%s: update failed: %s\n"), username, g10_errstr(rc) ); else if( modified ) - log_info("%s: updated\n", username ); + log_info(_("%s: updated\n"), username ); else - log_info("%s: okay\n", username ); + log_info(_("%s: okay\n"), username ); } release_kbnode( keyblock ); keyblock = NULL; @@ -1251,7 +1258,8 @@ check_trustdb( const char *username ) int modified; if( !rec.r.dir.keylist ) { - log_info("lid %lu: dir record w/o key - skipped\n", recnum); + log_info(_("lid %lu: dir record w/o key - skipped\n"), + recnum); count++; skip_count++; continue; @@ -1263,7 +1271,7 @@ check_trustdb( const char *username ) tmp.r.key.fingerprint, tmp.r.key.fingerprint_len ); if( rc ) { - log_error("lid %lu: keyblock not found: %s\n", + log_error(_("lid %lu: keyblock not found: %s\n"), recnum, g10_errstr(rc) ); count++; skip_count++; @@ -1272,17 +1280,17 @@ check_trustdb( const char *username ) rc = update_trust_record( keyblock, 0, &modified ); if( rc ) { - log_error("lid %lu: update failed: %s\n", + log_error(_("lid %lu: update failed: %s\n"), recnum, g10_errstr(rc) ); err_count++; } else if( modified ) { if( opt.verbose ) - log_info("lid %lu: updated\n", recnum ); + log_info(_("lid %lu: updated\n"), recnum ); upd_count++; } else if( opt.verbose > 1 ) - log_info("lid %lu: okay\n", recnum ); + log_info(_("lid %lu: okay\n"), recnum ); release_kbnode( keyblock ); keyblock = NULL; if( !(++count % 100) ) @@ -1325,33 +1333,33 @@ update_trustdb( ) ) ->pkt->pkt.public_key; rc = insert_trust_record( pk ); if( rc && !pk->local_id ) { - log_error("lid ?: insert failed: %s\n", + log_error(_("lid ?: insert failed: %s\n"), g10_errstr(rc) ); err_count++; } else if( rc ) { - log_error("lid %lu: insert failed: %s\n", + log_error(_("lid %lu: insert failed: %s\n"), pk->local_id, g10_errstr(rc) ); err_count++; } else { if( opt.verbose ) - log_info("lid %lu: inserted\n", pk->local_id ); + log_info(_("lid %lu: inserted\n"), pk->local_id ); new_count++; } } else if( rc ) { - log_error("lid %lu: update failed: %s\n", + log_error(_("lid %lu: update failed: %s\n"), lid_from_keyblock(keyblock), g10_errstr(rc) ); err_count++; } else if( modified ) { if( opt.verbose ) - log_info("lid %lu: updated\n", lid_from_keyblock(keyblock)); + log_info(_("lid %lu: updated\n"), lid_from_keyblock(keyblock)); upd_count++; } else if( opt.verbose > 1 ) - log_info("lid %lu: okay\n", lid_from_keyblock(keyblock) ); + log_info(_("lid %lu: okay\n"), lid_from_keyblock(keyblock) ); release_kbnode( keyblock ); keyblock = NULL; if( !(++count % 100) ) @@ -1366,7 +1374,7 @@ update_trustdb( ) log_info(_("\t%lu keys inserted\n"), new_count); } if( rc && rc != -1 ) - log_error("enum_keyblocks failed: %s\n", g10_errstr(rc)); + log_error(_("enumerate keyblocks failed: %s\n"), g10_errstr(rc)); enum_keyblocks( 2, &kbpos, &keyblock ); /* close */ release_kbnode( keyblock ); @@ -1411,7 +1419,7 @@ check_trust( PKT_public_key *pk, unsigned *r_trustlevel ) } else { /* no local_id: scan the trustdb */ if( (rc=tdbio_search_dir_bypk( pk, &rec )) && rc != -1 ) { - log_error("check_trust: search dir record failed: %s\n", + log_error(_("check_trust: search dir record failed: %s\n"), g10_errstr(rc)); return rc; } @@ -1501,8 +1509,46 @@ query_trust_info( PKT_public_key *pk ) int enum_trust_web( void **context, ulong *lid ) { - /* REPLACE THIS with a BETTER ONE */ + #if 0 + struct { + int init; + } *ctx; + int rc; + int wipe=0; + TRUSTREC rec; + TRUST_INFO *tmppath; + TRUST_SEG_LIST trust_seg_list, tsl, tsl2; + PKT_public_key *pk = m_alloc_clear( sizeof *pk ); + if( !*context ) { + asssert( *lid ); + + ctx = m_alloc_clear( sizeof *ctx ); + *context = ctx; + /* collect the paths */ + read_record( *lid, &rec, RECTYPE_DIR ); + tmppath = m_alloc_clear( (MAX_CERT_DEPTH+1)* sizeof *tmppath ); + trust_seg_list = NULL; + collect_paths( 0, MAX_CERT_DEPTH, 1, &rec, tmppath, &trust_seg_list ); + m_free( tmppath ); + /* and now print them */ + for(tsl = trust_seg_list; tsl; tsl = tsl->next ) { + print_path( tsl->pathlen, tsl->path ); + } + } + else + ctx = *context; + + if( !lid ) { /* release the context */ + if( * + /* release the list */ + for(tsl = trust_seg_list; tsl; tsl = tsl2 ) { + tsl2 = tsl->next; + m_free( tsl ); + } + trust_seg_list = NULL; + } + #endif return -1; /* eof */ } @@ -1552,7 +1598,7 @@ get_pref_data( ulong lid, const byte *namehash, size_t *ret_n ) /* found the correct one or the first one */ read_record( rec.r.uid.prefrec, &rec, RECTYPE_PREF ); if( rec.r.pref.next ) - log_info("warning: can't yet handle long pref records\n"); + log_info(_("WARNING: can't yet handle long pref records\n")); buf = m_alloc( ITEMS_PER_PREF_RECORD ); memcpy( buf, rec.r.pref.data, ITEMS_PER_PREF_RECORD ); *ret_n = ITEMS_PER_PREF_RECORD; @@ -1581,7 +1627,7 @@ is_algo_in_prefs( ulong lid, int preftype, int algo ) if( rec.r.uid.prefrec ) { read_record( rec.r.uid.prefrec, &rec, RECTYPE_PREF ); if( rec.r.pref.next ) - log_info("warning: can't yet handle long pref records\n"); + log_info(_("WARNING: can't yet handle long pref records\n")); pref = rec.r.pref.data; for(i=0; i+1 < ITEMS_PER_PREF_RECORD; i+=2 ) { if( pref[i] == preftype && pref[i+1] == algo ) @@ -1603,7 +1649,7 @@ get_dir_record( PKT_public_key *pk, TRUSTREC *rec ) } else { /* no local_id: scan the trustdb */ if( (rc=tdbio_search_dir_bypk( pk, rec )) && rc != -1 ) - log_error("get_dir_record: search_record failed: %s\n", + log_error(_("get_dir_record: search_record failed: %s\n"), g10_errstr(rc)); } return rc; @@ -1663,11 +1709,11 @@ check_hint_sig( ulong lid, KBNODE keyblock, u32 *keyid, byte *uidrec_hash, int revoke = 0; if( sigrec->r.sig.sig[sigidx].flag & SIGF_CHECKED ) - log_info(_("note: sig rec %lu[%d] in hintlist " + log_info(_("NOTE: sig rec %lu[%d] in hintlist " "of %lu but marked as checked\n"), sigrec->recnum, sigidx, hint_owner ); if( !(sigrec->r.sig.sig[sigidx].flag & SIGF_NOPUBKEY) ) - log_info(_("note: sig rec %lu[%d] in hintlist " + log_info(_("NOTE: sig rec %lu[%d] in hintlist " "of %lu but not marked\n"), sigrec->recnum, sigidx, hint_owner ); @@ -1866,7 +1912,7 @@ create_shadow_dir( PKT_signature *sig, ulong lid ) /* first see whether we already have such a record */ rc = tdbio_search_sdir( sig->keyid, sig->pubkey_algo, &sdir ); if( rc && rc != -1 ) { - log_error("tdbio_search_dir failed: %s\n", g10_errstr(rc)); + log_error(_("tdbio_search_dir failed: %s\n"), g10_errstr(rc)); die_invalid_db(); } if( rc == -1 ) { /* not found: create */ @@ -2283,7 +2329,7 @@ upd_pref_record( TRUSTREC *urec, u32 *keyid, PKT_signature *sig ) if( n_prefs_rec >= DIM(prefs_rec)-1 ) { log_info("uid %08lX.%lu/%02X%02X: %s\n", (ulong)keyid[1], lid, uidhash[18], uidhash[19], - _("Too many preferences items") ); + _("Too many preference items") ); break; } prefs_rec[n_prefs_rec++] = prec.r.pref.data[i]; @@ -2304,7 +2350,7 @@ upd_pref_record( TRUSTREC *urec, u32 *keyid, PKT_signature *sig ) } if( n_prefs_sig > ITEMS_PER_PREF_RECORD ) - log_info("cannot yet handle long preferences"); + log_info(_("WARNING: can't yet handle long pref records\n")); memset( &prec, 0, sizeof prec ); prec.recnum = tdbio_new_recnum(); @@ -2452,7 +2498,7 @@ upd_cert_record( KBNODE keyblock, KBNODE signode, u32 *keyid, log_info("sig %08lX.%lu/%02X%02X/%08lX: %s\n", (ulong)keyid[1], lid, uidhash[18], uidhash[19], (ulong)sig->keyid[1], - _("public key lost") ); + _("Hmmm, public key lost?") ); rec.r.sig.sig[i].flag = SIGF_NOPUBKEY; if( revoke ) rec.r.sig.sig[i].flag |= SIGF_REVOKED; @@ -2477,8 +2523,8 @@ upd_cert_record( KBNODE keyblock, KBNODE signode, u32 *keyid, && (!tmp.r.sdir.pubkey_algo || tmp.r.sdir.pubkey_algo == sig->pubkey_algo )) { if( !(rec.r.sig.sig[i].flag & SIGF_NOPUBKEY) ) - log_info("uid %08lX.%lu/%02X%02X: " - "has shadow dir %lu but not yet marked.\n", + log_info(_("uid %08lX.%lu/%02X%02X: " + "has shadow dir %lu but is not yet marked.\n"), (ulong)keyid[1], lid, uidhash[18], uidhash[19], tmp.recnum ); rec.r.sig.sig[i].flag = SIGF_NOPUBKEY; @@ -2491,7 +2537,7 @@ upd_cert_record( KBNODE keyblock, KBNODE signode, u32 *keyid, } } else { - log_error("sig record %lu[%d] points to wrong record.\n", + log_error(_("sig record %lu[%d] points to wrong record.\n"), rec.r.sig.sig[i].lid, i ); die_invalid_db(); } @@ -2733,7 +2779,7 @@ insert_trust_record( PKT_public_key *pk ) /* get the keyblock which has the key */ rc = get_keyblock_byfprint( &keyblock, fingerprint, fingerlen ); if( rc ) { /* that should never happen */ - log_error( "insert_trust_record: keyblock not found: %s\n", + log_error( _("insert_trust_record: keyblock not found: %s\n"), g10_errstr(rc) ); goto leave; } @@ -2751,7 +2797,7 @@ insert_trust_record( PKT_public_key *pk ) keyid_from_pk( pk, bkid ); if( akid[0] != bkid[0] || akid[1] != bkid[1] ) { - log_error("did not use primary key for insert_trust_record()\n"); + log_error(_("did not use primary key for insert_trust_record()\n")); rc = G10ERR_GENERAL; goto leave; } @@ -2763,7 +2809,7 @@ insert_trust_record( PKT_public_key *pk ) */ rc = tdbio_search_sdir( pk->keyid, pk->pubkey_algo, &shadow ); if( rc && rc != -1 ) { - log_error("tdbio_search_dir failed: %s\n", g10_errstr(rc)); + log_error(_("tdbio_search_dir failed: %s\n"), g10_errstr(rc)); die_invalid_db(); } memset( &dirrec, 0, sizeof dirrec ); |