aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--THANKS1
-rw-r--r--TODO11
-rw-r--r--cipher/Makefile.am3
-rw-r--r--cipher/rndlinux.c34
-rw-r--r--configure.in2
-rw-r--r--g10/ChangeLog7
-rw-r--r--g10/Makefile.am3
-rw-r--r--g10/delkey.c6
-rw-r--r--g10/helptext.c214
-rw-r--r--g10/keyedit.c16
-rw-r--r--g10/keygen.c22
-rw-r--r--g10/main.h3
-rw-r--r--g10/openfile.c2
-rw-r--r--g10/passphrase.c4
-rw-r--r--g10/pkclist.c10
-rw-r--r--g10/plaintext.c4
-rw-r--r--g10/revoke.c2
-rw-r--r--g10/status.c31
-rw-r--r--mpi/ChangeLog6
-rw-r--r--mpi/config.links6
-rw-r--r--mpi/powerpc32/distfiles1
-rw-r--r--mpi/powerpc32/mpih-add1.S76
-rw-r--r--mpi/powerpc32/mpih-lshift.S127
-rw-r--r--mpi/powerpc32/mpih-mul1.S52
-rw-r--r--mpi/powerpc32/mpih-mul2.S56
-rw-r--r--mpi/powerpc32/mpih-mul3.S56
-rw-r--r--mpi/powerpc32/mpih-rshift.S63
-rw-r--r--mpi/powerpc32/mpih-sub1.S72
-rw-r--r--mpi/powerpc32/syntax.h75
-rw-r--r--po/ChangeLog6
-rw-r--r--po/POTFILES.in1
-rw-r--r--po/en.po2920
-rw-r--r--scripts/ChangeLog8
-rwxr-xr-xscripts/commit28
34 files changed, 922 insertions, 3006 deletions
diff --git a/THANKS b/THANKS
index 3888e708d..e80e278bc 100644
--- a/THANKS
+++ b/THANKS
@@ -16,6 +16,7 @@ Christopher Oliver [email protected]
Daniel Eisenbud [email protected]
David Ellement [email protected]
Detlef Lannert [email protected]
+Dirk Lattermann [email protected]
Ernst Molitor [email protected]
Fabio Coatti [email protected]
diff --git a/TODO b/TODO
index 39124b507..895a9db4d 100644
--- a/TODO
+++ b/TODO
@@ -5,17 +5,12 @@
* preferences of hash algorithms are not yet used.
- * Hash calculation for cleartext sigs without a "Hash: xxx" line
- does it work as specified in the RFC? - Hmmm, I think so
-
* Check Berkeley BD - it is in glibc -any licensing problems?
* I noticed, that we sometimes have only 3 items in a trustrecord, but
a next pointer ro more records - check wehther the reuse code really
works. Maybe this is the reason for the "Hmmm public key lost"
- * check support for mpi/powerpc (see Brian's mail)
-
* use zlib 1.1.13 to avoid a bug with 13 bit windows
but there are more problems with large files
@@ -55,9 +50,6 @@
* add test cases for invalid data (scrambled armor or other random data)
- * add some sanity checks to read_keyblock, so that we are sure that
- the minimal requirements are met (?)
-
* rewrite --list-packets or put it into another tool.
* Burn the buffers used by fopen(), or use read(2). Does this
@@ -70,11 +62,10 @@
* 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?)
* change the fake_data stuff to mpi_set_opaque
- * Is it okay to use gettext for the help system?
-
* Add some stuff for DU cc
* Use "user ID", "trustdb", "NOTE" and "WARNING".
diff --git a/cipher/Makefile.am b/cipher/Makefile.am
index 69ba2962e..a27989cb0 100644
--- a/cipher/Makefile.am
+++ b/cipher/Makefile.am
@@ -59,6 +59,9 @@ twofish: $(srcdir)/twofish.c
rndunix: $(srcdir)/rndunix.c
$(COMPILE) $(DYNLINK_MOD_CFLAGS) -o rndunix $(srcdir)/rndunix.c
+rndlinux: $(srcdir)/rndlinux.c
+ $(COMPILE) $(DYNLINK_MOD_CFLAGS) -o rndlinux $(srcdir)/rndlinux.c
+
install-exec-hook:
diff --git a/cipher/rndlinux.c b/cipher/rndlinux.c
index de2710ce5..69af64f5d 100644
--- a/cipher/rndlinux.c
+++ b/cipher/rndlinux.c
@@ -39,15 +39,27 @@
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
-#include "util.h"
-#include "ttyio.h"
-#include "i18n.h"
-
-/* #define IS_MODULE 1 */
+#include "types.h"
+#ifdef IS_MODULE
+ #include "g10lib.h"
+ #define _(a) (a)
+#else
+ #include "util.h"
+ #include "ttyio.h"
+ #include "i18n.h"
+ #include "dynload.h"
+#endif
static int open_device( const char *name, int minor );
static int gather_random( byte *buffer, size_t *r_length, int level );
+#ifdef IS_MODULE
+static void tty_printf(const char *fmt, ... )
+{
+ g10_log_info("tty_printf not available (%s)\n", fmt );
+}
+#endif
+
static void
fast_poll( void (*add)(const void*, size_t, int) )
@@ -93,14 +105,14 @@ open_device( const char *name, int minor )
fd = open( name, O_RDONLY );
if( fd == -1 )
- log_fatal("can't open %s: %s\n", name, strerror(errno) );
+ g10_log_fatal("can't open %s: %s\n", name, strerror(errno) );
if( fstat( fd, &sb ) )
- log_fatal("stat() off %s failed: %s\n", name, strerror(errno) );
+ g10_log_fatal("stat() off %s failed: %s\n", name, strerror(errno) );
#if defined(__sparc__) && defined(__linux__)
#warning something is wrong with UltraPenguin /dev/random
#else
if( !S_ISCHR(sb.st_mode) )
- log_fatal("invalid random device!\n" );
+ g10_log_fatal("invalid random device!\n" );
#endif
return fd;
}
@@ -153,12 +165,12 @@ gather_random( byte *buffer, size_t *r_length, int level )
do {
n = read(fd, buffer, length );
if( n >= 0 && n > length ) {
- log_error("bogus read from random device (n=%d)\n", n );
+ g10_log_error("bogus read from random device (n=%d)\n", n );
n = length;
}
} while( n == -1 && errno == EINTR );
if( n == -1 )
- log_fatal("read error on random device: %s\n", strerror(errno) );
+ g10_log_fatal("read error on random device: %s\n", strerror(errno));
assert( n <= length );
buffer += n;
length -= n;
@@ -169,7 +181,7 @@ gather_random( byte *buffer, size_t *r_length, int level )
-#ifndef IS_MODULES
+#ifndef IS_MODULE
static
#endif
const char * const gnupgext_version = "RNDLINUX ($Revision$)";
diff --git a/configure.in b/configure.in
index 5480e8e19..26a3ed6a8 100644
--- a/configure.in
+++ b/configure.in
@@ -14,7 +14,7 @@ AM_CONFIG_HEADER(config.h)
VERSION=`cat $srcdir/VERSION`
PACKAGE=gnupg
-ALL_LINGUAS="en de it fr ru es_ES"
+ALL_LINGUAS="de it fr ru es_ES"
AC_SUBST(VERSION)
AC_SUBST(PACKAGE)
AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 8e0cc8574..c4e5da1ec 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,10 @@
+Fri Nov 27 12:39:29 CET 1998 Werner Koch <[email protected]>
+
+
+ * status.c (display_help): Removed.
+ * helptext.c: New and removed the N_() from all cpr_gets.
+
+
Fri Nov 20 16:54:52 1998 Werner Koch ([email protected])
* g10.c (main): New option --not-dash-escaped
diff --git a/g10/Makefile.am b/g10/Makefile.am
index 02e3ee525..5920365af 100644
--- a/g10/Makefile.am
+++ b/g10/Makefile.am
@@ -55,7 +55,8 @@ common_source = \
revoke.c \
keylist.c \
sig-check.c \
- signal.c
+ signal.c \
+ helptext.c
gpg_SOURCES = g10.c \
$(common_source) \
diff --git a/g10/delkey.c b/g10/delkey.c
index b84a8bfd7..08648b84b 100644
--- a/g10/delkey.c
+++ b/g10/delkey.c
@@ -128,8 +128,8 @@ delete_key( const char *username, int secret )
m_free(p);
tty_printf("\n\n");
- yes = cpr_get_answer_is_yes( secret? N_("delete_key.secret.okay")
- : N_("delete_key.okay"),
+ yes = cpr_get_answer_is_yes( secret? "delete_key.secret.okay"
+ : "delete_key.okay",
_("Delete this key from the keyring? "));
if( !cpr_enabled() && secret && yes ) {
/* I think it is not required to check a passphrase; if
@@ -137,7 +137,7 @@ delete_key( const char *username, int secret )
* (and has no backup) - it is up him to read some very
* basic texts about security.
*/
- yes = cpr_get_answer_is_yes(N_("delete_key.secret.okay"),
+ yes = cpr_get_answer_is_yes("delete_key.secret.okay",
_("This is a secret key! - really delete? "));
}
if( yes )
diff --git a/g10/helptext.c b/g10/helptext.c
new file mode 100644
index 000000000..6c9b981e0
--- /dev/null
+++ b/g10/helptext.c
@@ -0,0 +1,214 @@
+/* helptext.c - English help texts
+ * Copyright (C) 1998 Free Software Foundation, Inc.
+ *
+ * This file is part of GnuPG.
+ *
+ * GnuPG is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * GnuPG is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <config.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "util.h"
+#include "ttyio.h"
+#include "main.h"
+#include "i18n.h"
+
+
+/****************
+ * These helptexts are used for the "online" help feature. We use
+ * a key consisting of words and dots. Because the lookup is only
+ * done in an interactive mode on a user request (when she enters a "?"
+ * as response to a prompt) we can use a simple search through the list.
+ * Translators should use the key as msgid, this is to keep the msgid short
+ * and to allow for easy changing of the helptexts.
+ */
+
+
+static struct helptexts { const char *key; const char *help; } helptexts[] = {
+
+/* begin of list */
+
+{ N_("edit_ownertrust.value"),
+"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."
+},
+
+{ N_("revoked_key.override"),
+"If you want to use this revoked key anyway, answer \"yes\"."
+},
+
+{ N_("untrusted_key.override"),
+"If you want to use this untrusted key anyway, answer \"yes\"."
+},
+
+{ N_("pklist.user_id.enter"),
+"Enter the user id of the addresse to whom you want to send the message."
+},
+
+{ N_("keygen.algo"),
+"Select the algorithm to use.\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"
+"ElGamal is a algorithm which can be used for signatures and encryption.\n"
+"OpenPGP distunguishs between two flavors of this algorithms: a 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 implemenations are not required to understand\n"
+"the signature+encryption flavor.\n"
+"The first (primary) key must always be a key which is capable of signing;\n"
+"this is the reason why the ecrytion only ElGamal key is disabled in this.\n"
+"You should not select the \"ElGamal in a v3 packet\", because that key is\n"
+"not compatible to other OpenPGP implementations."
+},
+
+{ N_("keygen.size"),
+ ""
+},
+
+{ N_("keygen.size.huge.okay"),
+ ""
+},
+
+
+{ N_("keygen.size.large.okay"),
+ ""
+},
+
+
+{ N_("keygen.valid"),
+ ""
+},
+
+{ N_("keygen.valid.okay"),
+ ""
+},
+
+
+{ N_("keygen.name"),
+ ""
+},
+
+
+{ N_("keygen.email"),
+ ""
+},
+
+{ N_("keygen.comment"),
+ ""
+},
+
+
+{ N_("keygen.userid.cmd"),
+ ""
+"N to change the name.\n"
+"C to change the comment.\n"
+"E to change the email address.\n"
+"O to continue with key generation.\n"
+"Q to to quit the key generation."
+},
+
+{ N_("keygen.sub.okay"),
+ "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
+},
+
+{ N_("sign_uid.okay"),
+ ""
+},
+
+
+{ N_("change_passwd.empty.okay"),
+ ""
+},
+
+
+{ N_("keyedit.cmd"),
+ "Please enter \"help\" to see the list of commands."
+},
+
+{ N_("keyedit.save.okay"),
+ ""
+},
+
+
+{ N_("keyedit.cancel.okay"),
+ ""
+},
+
+{ N_("keyedit.sign_all.okay"),
+ ""
+},
+
+{ N_("keyedit.remove.uid.okay"),
+ ""
+},
+
+{ N_("keyedit.remove.subkey.okay"),
+ ""
+},
+
+{ N_("passphrase.enter"),
+ ""
+"Please enter the passhrase; this is a secret sentence \n"
+" Blurb, blurb,.... "
+},
+
+
+{ N_("passphrase.repeat"),
+ "Please repeat the last passphrase, so you are sure what you typed in."
+},
+
+{ N_("detached_signature.filename"),
+ ""
+},
+
+{ N_("openfile.overwrite.okay"),
+ ""
+},
+
+/* end of list */
+{ NULL, NULL } };
+
+
+void
+display_online_help( const char *keyword )
+{
+
+ tty_kill_prompt();
+ if( !keyword )
+ tty_printf(_("No help available") );
+ else {
+ const char *p = _(keyword);
+
+ if( strcmp( p, keyword ) )
+ tty_printf("%s", p );
+ else {
+ int i;
+
+ for(i=0; (p=helptexts[i].key) && strcmp( p, keyword ); i++ )
+ ;
+ if( !p || !*helptexts[i].help )
+ tty_printf(_("No help available for '%s'"), keyword );
+ else
+ tty_printf("%s", helptexts[i].help );
+ }
+ }
+ tty_printf("\n");
+}
+
+
diff --git a/g10/keyedit.c b/g10/keyedit.c
index 8ed316793..f940b9e27 100644
--- a/g10/keyedit.c
+++ b/g10/keyedit.c
@@ -279,7 +279,7 @@ sign_uids( KBNODE keyblock, STRLIST locusr, int *ret_modified )
m_free(p); p = NULL;
tty_printf("\"\n\n");
- if( !cpr_get_answer_is_yes(N_("sign_uid.okay"), _("Really sign? ")) )
+ if( !cpr_get_answer_is_yes("sign_uid.okay", _("Really sign? ")) )
continue;;
/* now we can sign the user ids */
reloop: /* (must use this, because we are modifing the list) */
@@ -392,7 +392,7 @@ change_passphrase( KBNODE keyblock )
rc = 0;
tty_printf(_( "You don't want a passphrase -"
" this is probably a *bad* idea!\n\n"));
- if( cpr_get_answer_is_yes(N_("change_passwd.empty.okay"),
+ if( cpr_get_answer_is_yes("change_passwd.empty.okay",
_("Do you really want to do this? ")))
changed++;
break;
@@ -587,7 +587,7 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands )
have_commands = 0;
}
if( !have_commands ) {
- answer = cpr_get(N_("keyedit.cmd"), _("Command> "));
+ answer = cpr_get("keyedit.cmd", _("Command> "));
cpr_kill_prompt();
}
trim_spaces(answer);
@@ -635,10 +635,10 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands )
goto leave;
if( !modified && !sec_modified )
goto leave;
- if( !cpr_get_answer_is_yes(N_("keyedit.save.okay"),
+ if( !cpr_get_answer_is_yes("keyedit.save.okay",
_("Save changes? ")) ) {
if( cpr_enabled()
- || cpr_get_answer_is_yes(N_("keyedit.cancel.okay"),
+ || cpr_get_answer_is_yes("keyedit.cancel.okay",
_("Quit without saving? ")) )
goto leave;
break;
@@ -697,7 +697,7 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands )
case cmdSIGN: /* sign (only the public key) */
if( count_uids(keyblock) > 1 && !count_selected_uids(keyblock) ) {
- if( !cpr_get_answer_is_yes(N_("keyedit.sign_all.okay"),
+ 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"));
break;
@@ -739,7 +739,7 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands )
else if( count_uids(keyblock) - n1 < 1 )
tty_printf(_("You can't delete the last user id!\n"));
else if( cpr_get_answer_is_yes(
- N_("keyedit.remove.uid.okay"),
+ "keyedit.remove.uid.okay",
n1 > 1? _("Really remove all selected user ids? ")
: _("Really remove this user id? ")
) ) {
@@ -766,7 +766,7 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands )
if( !(n1=count_selected_keys( keyblock )) )
tty_printf(_("You must select at least one key.\n"));
else if( sec_keyblock && !cpr_get_answer_is_yes(
- N_("keyedit.remove.subkey.okay"),
+ "keyedit.remove.subkey.okay",
n1 > 1?
_("Do you really want to delete the selected keys? "):
_("Do you really want to delete this key? ")
diff --git a/g10/keygen.c b/g10/keygen.c
index 34f4d97d1..fc64d496e 100644
--- a/g10/keygen.c
+++ b/g10/keygen.c
@@ -396,7 +396,7 @@ ask_algo( int *ret_v4, int addmode )
*ret_v4 = 1;
for(;;) {
- answer = cpr_get(N_("keygen.algo"),_("Your selection? "));
+ answer = cpr_get("keygen.algo",_("Your selection? "));
cpr_kill_prompt();
algo = *answer? atoi(answer): 1;
m_free(answer);
@@ -440,7 +440,7 @@ ask_keysize( int algo )
" highest suggested keysize is 2048 bits\n"),
pubkey_algo_to_string(algo) );
for(;;) {
- answer = cpr_get(N_("keygen.size"),
+ answer = cpr_get("keygen.size",
_("What keysize do you want? (1024) "));
cpr_kill_prompt();
nbits = *answer? atoi(answer): 1024;
@@ -453,7 +453,7 @@ ask_keysize( int algo )
tty_printf(
_("Keysizes larger than 2048 are not suggested because\n"
"computations take REALLY long!\n"));
- if( cpr_get_answer_is_yes(N_("keygen.size.huge.okay"),_(
+ if( cpr_get_answer_is_yes("keygen.size.huge.okay",_(
"Are you sure that you want this keysize? ")) ) {
tty_printf(_("Okay, but keep in mind that your monitor "
"and keyboard radiation is also very vulnerable "
@@ -462,7 +462,7 @@ ask_keysize( int algo )
}
}
else if( nbits > 1536 && !cpr_enabled() ) {
- if( cpr_get_answer_is_yes(N_("keygen.size.large.okay"),_(
+ if( cpr_get_answer_is_yes("keygen.size.large.okay",_(
"Do you really need such a large keysize? ")) )
break;
}
@@ -504,7 +504,7 @@ ask_expire_interval()
int mult;
m_free(answer);
- answer = cpr_get(N_("keygen.valid"),_("Key is valid for? (0) "));
+ answer = cpr_get("keygen.valid",_("Key is valid for? (0) "));
cpr_kill_prompt();
trim_spaces(answer);
if( !*answer )
@@ -531,7 +531,7 @@ ask_expire_interval()
}
if( !cpr_enabled()
- && cpr_get_answer_is_yes(N_("keygen.valid.okay"),
+ && cpr_get_answer_is_yes("keygen.valid.okay",
_("Is this correct (y/n)? ")) )
break;
}
@@ -585,7 +585,7 @@ ask_user_id( int mode )
if( !aname ) {
for(;;) {
m_free(aname);
- aname = cpr_get(N_("keygen.name"),_("Real name: "));
+ aname = cpr_get("keygen.name",_("Real name: "));
trim_spaces(aname);
cpr_kill_prompt();
if( strpbrk( aname, "<([])>" ) )
@@ -601,7 +601,7 @@ ask_user_id( int mode )
if( !amail ) {
for(;;) {
m_free(amail);
- amail = cpr_get(N_("keygen.email"),_("Email address: "));
+ amail = cpr_get("keygen.email",_("Email address: "));
trim_spaces(amail);
strlwr(amail);
cpr_kill_prompt();
@@ -621,7 +621,7 @@ ask_user_id( int mode )
if( !acomment ) {
for(;;) {
m_free(acomment);
- acomment = cpr_get(N_("keygen.comment"),_("Comment: "));
+ acomment = cpr_get("keygen.comment",_("Comment: "));
trim_spaces(acomment);
cpr_kill_prompt();
if( !*acomment )
@@ -659,7 +659,7 @@ ask_user_id( int mode )
answer[1] = 0;
}
else {
- answer = cpr_get(N_("keygen.userid.cmd"),_(
+ answer = cpr_get("keygen.userid.cmd",_(
"Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "));
cpr_kill_prompt();
}
@@ -997,7 +997,7 @@ generate_subkeypair( KBNODE pub_keyblock, KBNODE sec_keyblock )
assert(algo);
nbits = ask_keysize( algo );
expire = ask_expire_interval();
- if( !cpr_enabled() && !cpr_get_answer_is_yes(N_("keygen.sub.okay"),
+ if( !cpr_enabled() && !cpr_get_answer_is_yes("keygen.sub.okay",
_("Really create? ") ) )
goto leave;
diff --git a/g10/main.h b/g10/main.h
index 746a94dc2..424cc8d9a 100644
--- a/g10/main.h
+++ b/g10/main.h
@@ -56,6 +56,9 @@ u16 checksum_mpi( MPI a );
u16 checksum_mpi_counted_nbits( MPI a );
u32 buffer_to_u32( const byte *buffer );
+/*-- helptext.c --*/
+void display_online_help( const char *keyword );
+
/*-- encode.c --*/
int encode_symmetric( const char *filename );
int encode_store( const char *filename );
diff --git a/g10/openfile.c b/g10/openfile.c
index 0dff81bac..a6d24ed38 100644
--- a/g10/openfile.c
+++ b/g10/openfile.c
@@ -56,7 +56,7 @@ overwrite_filep( const char *fname )
return 0; /* do not overwrite */
tty_printf(_("File '%s' exists. "), fname);
- if( cpr_get_answer_is_yes(N_("openfile.overwrite.okay"),
+ if( cpr_get_answer_is_yes("openfile.overwrite.okay",
_("Overwrite (y/N)? ")) )
return 1;
return 0;
diff --git a/g10/passphrase.c b/g10/passphrase.c
index a6901b114..6a85f8a6a 100644
--- a/g10/passphrase.c
+++ b/g10/passphrase.c
@@ -171,10 +171,10 @@ 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 passphrase: ") );
+ pw = cpr_get_hidden("passphrase.enter", _("Enter passphrase: ") );
tty_kill_prompt();
if( mode == 2 && !cpr_enabled() ) {
- char *pw2 = cpr_get_hidden(N_("passphrase.repeat"),
+ char *pw2 = cpr_get_hidden("passphrase.repeat",
_("Repeat passphrase: ") );
tty_kill_prompt();
if( strcmp(pw, pw2) ) {
diff --git a/g10/pkclist.c b/g10/pkclist.c
index d313b8be4..b117dcc1e 100644
--- a/g10/pkclist.c
+++ b/g10/pkclist.c
@@ -146,7 +146,7 @@ edit_ownertrust( ulong lid, int mode )
if( strlen(ans) != 4 )
BUG();
- p = cpr_get(N_("edit_ownertrust.value"),_("Your decision? "));
+ p = cpr_get("edit_ownertrust.value",_("Your decision? "));
trim_spaces(p);
cpr_kill_prompt();
if( *p && p[1] )
@@ -240,7 +240,7 @@ do_we_trust( PKT_public_key *pk, int trustlevel )
if( opt.batch )
return 0;
- if( !cpr_get_answer_is_yes(N_("revoked_key.override"),
+ if( !cpr_get_answer_is_yes("revoked_key.override",
_("Use this key anyway? ")) )
return 0;
}
@@ -331,8 +331,8 @@ do_we_trust_pre( PKT_public_key *pk, int trustlevel )
"If you *really* know what you are doing, you may answer\n"
"the next question with yes\n\n") );
- if( cpr_get_answer_is_yes(N_("untrusted_key.override"),
- _("Use this key anyway? ")) )
+ if( cpr_get_answer_is_yes("untrusted_key.override",
+ _("Use this key anyway? ")) )
rc = 1;
}
else if( opt.always_trust && !rc ) {
@@ -478,7 +478,7 @@ build_pk_list( STRLIST remusr, PK_LIST *ret_pk_list, unsigned usage )
for(;;) {
rc = 0;
m_free(answer);
- answer = cpr_get_utf8(N_("pklist.user_id.enter"),
+ answer = cpr_get_utf8("pklist.user_id.enter",
_("Enter the user ID: "));
trim_spaces(answer);
cpr_kill_prompt();
diff --git a/g10/plaintext.c b/g10/plaintext.c
index a133f1670..7eda8df9d 100644
--- a/g10/plaintext.c
+++ b/g10/plaintext.c
@@ -211,8 +211,8 @@ ask_for_detached_datafile( md_filter_context_t *mfx, const char *inname )
tty_printf("Detached signature.\n");
do {
m_free(answer);
- answer = cpr_get(N_("detached_signature.filename"),
- _("Please enter name of data file: "));
+ answer = cpr_get("detached_signature.filename",
+ _("Please enter name of data file: "));
cpr_kill_prompt();
if( any && !*answer ) {
rc = G10ERR_READ_FILE;
diff --git a/g10/revoke.c b/g10/revoke.c
index 3d1eb4403..2491ee023 100644
--- a/g10/revoke.c
+++ b/g10/revoke.c
@@ -117,7 +117,7 @@ gen_revoke( const char *uname )
}
tty_printf("\n");
- if( !cpr_get_answer_is_yes(N_("gen_revoke.okay"),
+ if( !cpr_get_answer_is_yes("gen_revoke.okay",
_("Create a revocation certificate for this key? ")) ){
rc = 0;
goto leave;
diff --git a/g10/status.c b/g10/status.c
index 3fcf22b67..3b9e197b8 100644
--- a/g10/status.c
+++ b/g10/status.c
@@ -235,31 +235,6 @@ do_shm_get( const char *keyword, int hidden, int bool )
#endif /* USE_SHM_COPROCESSING */
-static void
-display_help( const char *keyword )
-{
- const char *p;
- int hint = 0;
-
- tty_kill_prompt();
- if( !keyword ) {
- tty_printf(_("No help available") );
- hint++;
- }
- else {
- p = _(keyword);
- if( !strcmp( p, keyword ) ) {
- tty_printf(_("No help available for '%s'"), keyword );
- hint++;
- }
- else
- tty_printf("%s", p );
- }
- tty_printf("\n");
- if( hint )
- tty_printf("You should set your LANG variable to a valid value.\n"
- "Set LANG to \"en\" to see the English help texts.\n" );
-}
int
@@ -285,7 +260,7 @@ cpr_get( const char *keyword, const char *prompt )
p = tty_get( prompt );
if( *p == '?' && !p[1] ) {
m_free(p);
- display_help( keyword );
+ display_online_help( keyword );
}
else
return p;
@@ -318,7 +293,7 @@ cpr_get_hidden( const char *keyword, const char *prompt )
p = tty_get_hidden( prompt );
if( *p == '?' && !p[1] ) {
m_free(p);
- display_help( keyword );
+ display_online_help( keyword );
}
else
return p;
@@ -350,7 +325,7 @@ cpr_get_answer_is_yes( const char *keyword, const char *prompt )
trim_spaces(p); /* it is okay to do this here */
if( *p == '?' && !p[1] ) {
m_free(p);
- display_help( keyword );
+ display_online_help( keyword );
}
else {
tty_kill_prompt();
diff --git a/mpi/ChangeLog b/mpi/ChangeLog
index 1fb336e8e..c5e67c475 100644
--- a/mpi/ChangeLog
+++ b/mpi/ChangeLog
@@ -1,3 +1,9 @@
+Thu Nov 26 07:27:52 1998 Werner Koch <[email protected]>
+
+ * config.links: Support for ppc with ELF
+ * powerpc32/syntax.h: New.
+ * powerpc32/*.S: Applied ELF patches (glibc patches)
+
Tue Nov 10 19:31:37 1998 Werner Koch ([email protected])
* power*/ : Started with stuff for PPC
diff --git a/mpi/config.links b/mpi/config.links
index 11871a83f..5de21ef5e 100644
--- a/mpi/config.links
+++ b/mpi/config.links
@@ -146,6 +146,12 @@ case "${target}" in
mpi_sflags="-Wa,-mppc"
path="powerpc64"
;;
+ powerpc*-*-linux*)
+ echo '/* configured for powerpc/ELF */' >>./mpi/asm-syntax.h
+ echo '#define ELF_SYNTAX' >>asm-syntax.h
+ cat $srcdir/powerpc32/syntax.h >>./mpi/asm-syntax.h
+ path="powerpc32"
+ ;;
*)
echo '/* No assembler modules configured */' >>./mpi/asm-syntax.h
diff --git a/mpi/powerpc32/distfiles b/mpi/powerpc32/distfiles
index 2a6f0e5ca..af10d795b 100644
--- a/mpi/powerpc32/distfiles
+++ b/mpi/powerpc32/distfiles
@@ -5,4 +5,5 @@ mpih-mul2.S
mpih-mul3.S
mpih-lshift.S
mpih-rshift.S
+syntax.h
diff --git a/mpi/powerpc32/mpih-add1.S b/mpi/powerpc32/mpih-add1.S
index b4c00df95..bbc513154 100644
--- a/mpi/powerpc32/mpih-add1.S
+++ b/mpi/powerpc32/mpih-add1.S
@@ -19,8 +19,12 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
+#include "sysdep.h"
+#include "asm-syntax.h"
+#ifndef USE_PPC_PATCHES
+
/*******************
* mpi_limb_t
* mpihelp_add_n( mpi_ptr_t res_ptr, (r3)
@@ -57,4 +61,76 @@ Lend: stw 7,4(3) # store ultimate result limb
addze 3,3 # ... return value register
blr
+#else
+/* Add two limb vectors of equal, non-zero length for PowerPC.
+ Copyright (C) 1997 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#include "sysdep.h"
+#include "asm-syntax.h"
+
+
+/* mp_limb_t mpn_add_n (mp_ptr res_ptr, mp_srcptr s1_ptr, mp_srcptr s2_ptr,
+ mp_size_t size)
+ Calculate s1+s2 and put result in res_ptr; return carry, 0 or 1. */
+
+/* Note on optimisation: This code is optimal for the 601. Almost every other
+ possible 2-unrolled inner loop will not be. Also, watch out for the
+ alignment... */
+
+EALIGN(_mpihelp_add_n,3,0)
+/* Set up for loop below. */
+ mtcrf 0x01,%r6
+ srwi. %r7,%r6,1
+ li %r10,0
+ mtctr %r7
+ bt 31,2f
+
+/* Clear the carry. */
+ addic %r0,%r0,0
+/* Adjust pointers for loop. */
+ addi %r3,%r3,-4
+ addi %r4,%r4,-4
+ addi %r5,%r5,-4
+ b 0f
+
+2: lwz %r7,0(%r5)
+ lwz %r6,0(%r4)
+ addc %r6,%r6,%r7
+ stw %r6,0(%r3)
+ beq 1f
+
+/* The loop. */
+
+/* Align start of loop to an odd word boundary to guarantee that the
+ last two words can be fetched in one access (for 601). */
+0: lwz %r9,4(%r4)
+ lwz %r8,4(%r5)
+ lwzu %r6,8(%r4)
+ lwzu %r7,8(%r5)
+ adde %r8,%r9,%r8
+ stw %r8,4(%r3)
+ adde %r6,%r6,%r7
+ stwu %r6,8(%r3)
+ bdnz 0b
+/* Return the carry. */
+1: addze %r3,%r10
+ blr
+END(_mpihelp_add_n)
+#endif
diff --git a/mpi/powerpc32/mpih-lshift.S b/mpi/powerpc32/mpih-lshift.S
index eb5bd5031..d85fe2119 100644
--- a/mpi/powerpc32/mpih-lshift.S
+++ b/mpi/powerpc32/mpih-lshift.S
@@ -19,6 +19,11 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
+#include "sysdep.h"
+#include "asm-syntax.h"
+
+
+#ifndef USE_PPC_PATCHES
/*******************
* mpi_limb_t
@@ -68,4 +73,126 @@ Lend2: slw 0,10,6
stw 0,-4(7)
blr
+#else
+/* Shift a limb left, low level routine.
+ Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* mp_limb_t mpn_lshift (mp_ptr wp, mp_srcptr up, mp_size_t usize,
+ unsigned int cnt) */
+
+EALIGN(_mpihelp_lshift,3,0)
+ mtctr %r5 # copy size into CTR
+ cmplwi %cr0,%r5,16 # is size < 16
+ slwi %r0,%r5,2
+ add %r7,%r3,%r0 # make r7 point at end of res
+ add %r4,%r4,%r0 # make r4 point at end of s1
+ lwzu %r11,-4(%r4) # load first s1 limb
+ subfic %r8,%r6,32
+ srw %r3,%r11,%r8 # compute function return value
+ bge %cr0,L(big) # branch if size >= 16
+
+ bdz L(end1)
+
+0: lwzu %r10,-4(%r4)
+ slw %r9,%r11,%r6
+ srw %r12,%r10,%r8
+ or %r9,%r9,%r12
+ stwu %r9,-4(%r7)
+ bdz L(end2)
+ lwzu %r11,-4(%r4)
+ slw %r9,%r10,%r6
+ srw %r12,%r11,%r8
+ or %r9,%r9,%r12
+ stwu %r9,-4(%r7)
+ bdnz 0b
+
+L(end1):slw %r0,%r11,%r6
+ stw %r0,-4(%r7)
+ blr
+
+
+/* Guaranteed not to succeed. */
+L(boom): tweq %r0,%r0
+
+/* We imitate a case statement, by using (yuk!) fixed-length code chunks,
+ of size 4*12 bytes. We have to do this (or something) to make this PIC. */
+L(big): mflr %r9
+ bltl- %cr0,L(boom) # Never taken, only used to set LR.
+ slwi %r10,%r6,4
+ mflr %r12
+ add %r10,%r12,%r10
+ slwi %r8,%r6,5
+ add %r10,%r8,%r10
+ mtctr %r10
+ addi %r5,%r5,-1
+ mtlr %r9
+ bctr
+
+L(end2):slw %r0,%r10,%r6
+ stw %r0,-4(%r7)
+ blr
+
+#define DO_LSHIFT(n) \
+ mtctr %r5; \
+0: lwzu %r10,-4(%r4); \
+ slwi %r9,%r11,n; \
+ inslwi %r9,%r10,n,32-n; \
+ stwu %r9,-4(%r7); \
+ bdz- L(end2); \
+ lwzu %r11,-4(%r4); \
+ slwi %r9,%r10,n; \
+ inslwi %r9,%r11,n,32-n; \
+ stwu %r9,-4(%r7); \
+ bdnz 0b; \
+ b L(end1)
+
+ DO_LSHIFT(1)
+ DO_LSHIFT(2)
+ DO_LSHIFT(3)
+ DO_LSHIFT(4)
+ DO_LSHIFT(5)
+ DO_LSHIFT(6)
+ DO_LSHIFT(7)
+ DO_LSHIFT(8)
+ DO_LSHIFT(9)
+ DO_LSHIFT(10)
+ DO_LSHIFT(11)
+ DO_LSHIFT(12)
+ DO_LSHIFT(13)
+ DO_LSHIFT(14)
+ DO_LSHIFT(15)
+ DO_LSHIFT(16)
+ DO_LSHIFT(17)
+ DO_LSHIFT(18)
+ DO_LSHIFT(19)
+ DO_LSHIFT(20)
+ DO_LSHIFT(21)
+ DO_LSHIFT(22)
+ DO_LSHIFT(23)
+ DO_LSHIFT(24)
+ DO_LSHIFT(25)
+ DO_LSHIFT(26)
+ DO_LSHIFT(27)
+ DO_LSHIFT(28)
+ DO_LSHIFT(29)
+ DO_LSHIFT(30)
+ DO_LSHIFT(31)
+END(_mpihelp_lshift)
+#endif
diff --git a/mpi/powerpc32/mpih-mul1.S b/mpi/powerpc32/mpih-mul1.S
index 854624d11..35f94b1ff 100644
--- a/mpi/powerpc32/mpih-mul1.S
+++ b/mpi/powerpc32/mpih-mul1.S
@@ -20,6 +20,11 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
+#include "sysdep.h"
+#include "asm-syntax.h"
+
+
+#ifndef USE_PPC_PATCHES
/*******************
* mpi_limb_t
@@ -65,3 +70,50 @@ Lend: stw 7,4(3)
addze 3,10
blr
+#else
+/* Multiply a limb vector by a limb, for PowerPC.
+ Copyright (C) 1993, 1994, 1995, 1997 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+
+/* mp_limb_t mpn_mul_1 (mp_ptr res_ptr, mp_srcptr s1_ptr,
+ mp_size_t s1_size, mp_limb_t s2_limb)
+ Calculate s1*s2 and put result in res_ptr; return carry. */
+
+ENTRY(_mpihelp_mul_1)
+ mtctr %r5
+
+ lwz %r0,0(%r4)
+ mullw %r7,%r0,%r6
+ mulhwu %r10,%r0,%r6
+ addi %r3,%r3,-4 # adjust res_ptr
+ addic %r5,%r5,0 # clear cy with dummy insn
+ bdz 1f
+
+0: lwzu %r0,4(%r4)
+ stwu %r7,4(%r3)
+ mullw %r8,%r0,%r6
+ adde %r7,%r8,%r10
+ mulhwu %r10,%r0,%r6
+ bdnz 0b
+
+1: stw %r7,4(%r3)
+ addze %r3,%r10
+ blr
+END(_mpihelp_mul_1)
+#endif
diff --git a/mpi/powerpc32/mpih-mul2.S b/mpi/powerpc32/mpih-mul2.S
index 0b6486ee1..9577c282c 100644
--- a/mpi/powerpc32/mpih-mul2.S
+++ b/mpi/powerpc32/mpih-mul2.S
@@ -1,6 +1,6 @@
/* PowerPC-32 addmul_1 -- Multiply a limb vector with a limb and add
* the result to a second limb vector.
-
+ *
* Copyright (C) 1995, 1998 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
@@ -20,6 +20,11 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
+#include "sysdep.h"
+#include "asm-syntax.h"
+
+
+#ifndef USE_PPC_PATCHES
/*******************
* mpi_limb_t
@@ -70,4 +75,53 @@ Lend: stw 8,4(3)
addze 3,10
blr
+#else
+/* Multiply a limb vector by a single limb, for PowerPC.
+ Copyright (C) 1993, 1994, 1995, 1997 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+
+/* mp_limb_t mpn_addmul_1 (mp_ptr res_ptr, mp_srcptr s1_ptr,
+ mp_size_t s1_size, mp_limb_t s2_limb)
+ Calculate res+s1*s2 and put result back in res; return carry. */
+ENTRY(_mpihelp_addmul_1)
+ mtctr %r5
+
+ lwz %r0,0(%r4)
+ mullw %r7,%r0,%r6
+ mulhwu %r10,%r0,%r6
+ lwz %r9,0(%r3)
+ addc %r8,%r7,%r9
+ addi %r3,%r3,-4 /* adjust res_ptr */
+ bdz 1f
+
+0: lwzu %r0,4(%r4)
+ stwu %r8,4(%r3)
+ mullw %r8,%r0,%r6
+ adde %r7,%r8,%r10
+ mulhwu %r10,%r0,%r6
+ lwz %r9,4(%r3)
+ addze %r10,%r10
+ addc %r8,%r7,%r9
+ bdnz 0b
+1: stw %r8,4(%r3)
+ addze %r3,%r10
+ blr
+END(_mpihelp_addmul_1)
+#endif
diff --git a/mpi/powerpc32/mpih-mul3.S b/mpi/powerpc32/mpih-mul3.S
index 46e85f687..a4a4d163b 100644
--- a/mpi/powerpc32/mpih-mul3.S
+++ b/mpi/powerpc32/mpih-mul3.S
@@ -20,6 +20,11 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
+#include "sysdep.h"
+#include "asm-syntax.h"
+
+
+#ifndef USE_PPC_PATCHES
/*******************
* mpi_limb_t
@@ -71,4 +76,55 @@ Lend: stw 8,4(3)
addze 3,10
blr
+#else
+/* Multiply a limb vector by a single limb, for PowerPC.
+ Copyright (C) 1993, 1994, 1995, 1997 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* mp_limb_t mpn_submul_1 (mp_ptr res_ptr, mp_srcptr s1_ptr,
+ mp_size_t s1_size, mp_limb_t s2_limb)
+ Calculate res-s1*s2 and put result back in res; return carry. */
+
+ENTRY(_mpihelp_submul_1)
+ mtctr %r5
+
+ lwz %r0,0(%r4)
+ mullw %r7,%r0,%r6
+ mulhwu %r10,%r0,%r6
+ lwz %r9,0(%r3)
+ subf %r8,%r7,%r9
+ addc %r7,%r7,%r8 # invert cy (r7 is junk)
+ addi %r3,%r3,-4 # adjust res_ptr
+ bdz 1f
+
+0: lwzu %r0,4(%r4)
+ stwu %r8,4(%r3)
+ mullw %r8,%r0,%r6
+ adde %r7,%r8,%r10
+ mulhwu %r10,%r0,%r6
+ lwz %r9,4(%r3)
+ addze %r10,%r10
+ subf %r8,%r7,%r9
+ addc %r7,%r7,%r8 # invert cy (r7 is junk)
+ bdnz 0b
+1: stw %r8,4(%r3)
+ addze %r3,%r10
+ blr
+END(_mpihelp_submul_1)
+#endif
diff --git a/mpi/powerpc32/mpih-rshift.S b/mpi/powerpc32/mpih-rshift.S
index 9d7075914..0dc54f26c 100644
--- a/mpi/powerpc32/mpih-rshift.S
+++ b/mpi/powerpc32/mpih-rshift.S
@@ -20,6 +20,12 @@
*/
+#include "sysdep.h"
+#include "asm-syntax.h"
+
+
+#ifndef USE_PPC_PATCHES
+
/*******************
* mpi_limb_t
* mpihelp_rshift( mpi_ptr_t wp, (r3)
@@ -66,3 +72,60 @@ Lend2: srw 0,10,6
stw 0,4(7)
blr
+#else
+/* Shift a limb right, low level routine.
+ Copyright (C) 1995, 1997 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+
+/* INPUT PARAMETERS
+ res_ptr r3
+ s1_ptr r4
+ size r5
+ cnt r6 */
+
+ENTRY(_mpihelp_rshift)
+ mtctr 5 # copy size into CTR
+ addi 7,3,-4 # move adjusted res_ptr to free return reg
+ subfic 8,6,32
+ lwz 11,0(4) # load first s1 limb
+ slw 3,11,8 # compute function return value
+ bdz 1f
+
+0: lwzu 10,4(4)
+ srw 9,11,6
+ slw 12,10,8
+ or 9,9,12
+ stwu 9,4(7)
+ bdz 2f
+ lwzu 11,4(4)
+ srw 9,10,6
+ slw 12,11,8
+ or 9,9,12
+ stwu 9,4(7)
+ bdnz 0b
+
+1: srw 0,11,6
+ stw 0,4(7)
+ blr
+
+2: srw 0,10,6
+ stw 0,4(7)
+ blr
+END(_mpihelp_rshift)
+#endif
diff --git a/mpi/powerpc32/mpih-sub1.S b/mpi/powerpc32/mpih-sub1.S
index b2e0590f6..1387650be 100644
--- a/mpi/powerpc32/mpih-sub1.S
+++ b/mpi/powerpc32/mpih-sub1.S
@@ -20,6 +20,11 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
+#include "sysdep.h"
+#include "asm-syntax.h"
+
+
+#ifndef USE_PPC_PATCHES
/*******************
* mpi_limb_t
@@ -57,4 +62,71 @@ Lend: stw 7,4(3) # store ultimate result limb
subfic 3,3,0 # ... return value register
blr
+#else
+/* Subtract two limb vectors of equal, non-zero length for PowerPC.
+ Copyright (C) 1997 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* mp_limb_t mpn_sub_n (mp_ptr res_ptr, mp_srcptr s1_ptr, mp_srcptr s2_ptr,
+ mp_size_t size)
+ Calculate s1-s2 and put result in res_ptr; return borrow, 0 or 1. */
+
+/* Note on optimisation: This code is optimal for the 601. Almost every other
+ possible 2-unrolled inner loop will not be. Also, watch out for the
+ alignment... */
+
+EALIGN(_mpihelp_sub_n,3,1)
+/* Set up for loop below. */
+ mtcrf 0x01,%r6
+ srwi. %r7,%r6,1
+ mtctr %r7
+ bt 31,2f
+
+/* Set the carry (clear the borrow). */
+ subfc %r0,%r0,%r0
+/* Adjust pointers for loop. */
+ addi %r3,%r3,-4
+ addi %r4,%r4,-4
+ addi %r5,%r5,-4
+ b 0f
+
+2: lwz %r7,0(%r5)
+ lwz %r6,0(%r4)
+ subfc %r6,%r7,%r6
+ stw %r6,0(%r3)
+ beq 1f
+/* Align start of loop to an odd word boundary to guarantee that the
+ last two words can be fetched in one access (for 601). This turns
+ out to be important. */
+0:
+ lwz %r9,4(%r4)
+ lwz %r8,4(%r5)
+ lwzu %r6,8(%r4)
+ lwzu %r7,8(%r5)
+ subfe %r8,%r8,%r9
+ stw %r8,4(%r3)
+ subfe %r6,%r7,%r6
+ stwu %r6,8(%r3)
+ bdnz 0b
+/* Return the borrow. */
+1: subfe %r3,%r3,%r3
+ neg %r3,%r3
+ blr
+END(_mpihelp_sub_n)
+#endif
diff --git a/mpi/powerpc32/syntax.h b/mpi/powerpc32/syntax.h
new file mode 100644
index 000000000..6abb9ebb8
--- /dev/null
+++ b/mpi/powerpc32/syntax.h
@@ -0,0 +1,75 @@
+/* gmp2-2.0.2-ppc/mpn/powerpc-linux/syntax.h Tue Oct 6 19:27:01 1998 */
+/* From glibc's sysdeps/unix/sysv/linux/powerpc/sysdep.h */
+
+/* Copyright (C) 1992, 1997, 1998 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+
+#define USE_PPC_PATCHES 1
+
+/* This seems to always be the case on PPC. */
+#define ALIGNARG(log2) log2
+/* For ELF we need the `.type' directive to make shared libs work right. */
+#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg;
+#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
+#define ASM_GLOBAL_DIRECTIVE .globl
+
+#ifdef __STDC__
+# define C_LABEL(name) C_SYMBOL_NAME(name)##:
+#else
+# define C_LABEL(name) C_SYMBOL_NAME(name)/**/:
+#endif
+
+#ifdef __STDC__
+# define L(body) .L##body
+#else
+# define L(body) .L/**/body
+#endif
+
+/* No profiling of gmp's assembly for now... */
+#define CALL_MCOUNT /* no profiling */
+
+#define ENTRY(name) \
+ ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name); \
+ ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
+ .align ALIGNARG(2); \
+ C_LABEL(name) \
+ CALL_MCOUNT
+
+#define EALIGN_W_0 /* No words to insert. */
+#define EALIGN_W_1 nop
+#define EALIGN_W_2 nop;nop
+#define EALIGN_W_3 nop;nop;nop
+#define EALIGN_W_4 EALIGN_W_3;nop
+#define EALIGN_W_5 EALIGN_W_4;nop
+#define EALIGN_W_6 EALIGN_W_5;nop
+#define EALIGN_W_7 EALIGN_W_6;nop
+
+/* EALIGN is like ENTRY, but does alignment to 'words'*4 bytes
+ past a 2^align boundary. */
+#define EALIGN(name, alignt, words) \
+ ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name); \
+ ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
+ .align ALIGNARG(alignt); \
+ EALIGN_W_##words; \
+ C_LABEL(name)
+
+#undef END
+#define END(name) \
+ ASM_SIZE_DIRECTIVE(name)
+
diff --git a/po/ChangeLog b/po/ChangeLog
index 0a5afda35..5932a970a 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,9 @@
+Fri Nov 27 12:39:29 CET 1998 Werner Koch <[email protected]>
+
+
+ * en.po: Removed
+
+
Fri Nov 20 11:46:22 1998 Werner Koch ([email protected])
* de.po: Imported new version
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 19fdd07ac..ec35732fa 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -45,5 +45,6 @@ g10/pubkey-enc.c
g10/openfile.c
g10/encr-data.c
g10/seskey.c
+g10/helptext.c
#---end--
diff --git a/po/en.po b/po/en.po
deleted file mode 100644
index ae76ee6b1..000000000
--- a/po/en.po
+++ /dev/null
@@ -1,2920 +0,0 @@
-msgid ""
-msgstr ""
-"POT-Creation-Date: 1998-11-20 19:52+0100\n"
-"Content-Type: text/plain; charset=\n"
-"Date: 1998-08-08 18:07:50+0200\n"
-"From: Werner Koch <wk@frodo>\n"
-"Xgettext-Options: --default-domain=gnupg --directory=.. --add-comments "
-"--keyword=_ --keyword=N_ --files-from=./POTFILES.in\n"
-"Files: util/secmem.c util/argparse.c cipher/random.c cipher/rand-dummy.c "
-"cipher/rand-unix.c cipher/rand-w32.c g10/g10.c g10/pkclist.c g10/keygen.c "
-"g10/decrypt.c g10/encode.c g10/import.c g10/keyedit.c g10/keylist.c "
-"g10/mainproc.c g10/passphrase.c g10/plaintext.c g10/pref.c g10/seckey-cert.c "
-"g10/sig-check.c g10/sign.c g10/trustdb.c g10/verify.c g10/status.c "
-"g10/pubkey-enc.c\n"
-
-#: util/secmem.c:77
-msgid "Warning: using insecure memory!\n"
-msgstr ""
-
-#: util/miscutil.c:139
-msgid "yes"
-msgstr ""
-
-#: util/miscutil.c:140
-msgid "yY"
-msgstr ""
-
-#: util/errors.c:54
-msgid "General error"
-msgstr ""
-
-#: util/errors.c:55
-msgid "Unknown packet type"
-msgstr ""
-
-#: util/errors.c:56
-msgid "Unknown version"
-msgstr ""
-
-#: util/errors.c:57
-msgid "Unknown pubkey algorithm"
-msgstr ""
-
-#: util/errors.c:58
-msgid "Unknown digest algorithm"
-msgstr ""
-
-#: util/errors.c:59
-msgid "Bad public key"
-msgstr ""
-
-#: util/errors.c:60
-msgid "Bad secret key"
-msgstr ""
-
-#: util/errors.c:61
-msgid "Bad signature"
-msgstr ""
-
-#: util/errors.c:62
-msgid "Checksum error"
-msgstr ""
-
-#: util/errors.c:63
-#, fuzzy
-msgid "Bad passphrase"
-msgstr ""
-"Please enter the passhrase; this is a secret sentence \n"
-" Blurb, blurb,.... "
-
-#: util/errors.c:64
-msgid "Public key not found"
-msgstr ""
-
-#: util/errors.c:65
-msgid "Unknown cipher algorithm"
-msgstr ""
-
-#: util/errors.c:66
-msgid "Can't open the keyring"
-msgstr ""
-
-#: util/errors.c:67
-msgid "Invalid packet"
-msgstr ""
-
-#: util/errors.c:68
-msgid "Invalid armor"
-msgstr ""
-
-#: util/errors.c:69
-msgid "No such user id"
-msgstr ""
-
-#: util/errors.c:70
-msgid "Secret key not available"
-msgstr ""
-
-#: util/errors.c:71
-msgid "Wrong secret key used"
-msgstr ""
-
-#: util/errors.c:72
-msgid "Not supported"
-msgstr ""
-
-#: util/errors.c:73
-msgid "Bad key"
-msgstr ""
-
-#: util/errors.c:74
-msgid "File read error"
-msgstr ""
-
-#: util/errors.c:75
-msgid "File write error"
-msgstr ""
-
-#: util/errors.c:76
-msgid "Unknown compress algorithm"
-msgstr ""
-
-#: util/errors.c:77
-msgid "File open error"
-msgstr ""
-
-#: util/errors.c:78
-msgid "File create error"
-msgstr ""
-
-#: util/errors.c:79
-msgid "Invalid passphrase"
-msgstr ""
-
-#: util/errors.c:80
-msgid "Unimplemented pubkey algorithm"
-msgstr ""
-
-#: util/errors.c:81
-msgid "Unimplemented cipher algorithm"
-msgstr ""
-
-#: util/errors.c:82
-msgid "Unknown signature class"
-msgstr ""
-
-#: util/errors.c:83
-msgid "Trust database error"
-msgstr ""
-
-#: util/errors.c:84
-msgid "Bad MPI"
-msgstr ""
-
-#: util/errors.c:85
-msgid "Resource limit"
-msgstr ""
-
-#: util/errors.c:86
-msgid "Invalid keyring"
-msgstr ""
-
-#: util/errors.c:87
-msgid "Bad certificate"
-msgstr ""
-
-#: util/errors.c:88
-msgid "Malformed user id"
-msgstr ""
-
-#: util/errors.c:89
-msgid "File close error"
-msgstr ""
-
-#: util/errors.c:90
-msgid "File rename error"
-msgstr ""
-
-#: util/errors.c:91
-msgid "File delete error"
-msgstr ""
-
-#: util/errors.c:92
-msgid "Unexpected data"
-msgstr ""
-
-#: util/errors.c:93
-msgid "Timestamp conflict"
-msgstr ""
-
-#: util/errors.c:94
-msgid "Unusable pubkey algorithm"
-msgstr ""
-
-#: util/errors.c:95
-msgid "File exists"
-msgstr ""
-
-#: util/errors.c:96
-msgid "Weak key"
-msgstr ""
-
-#: util/logger.c:178
-#, c-format
-msgid "... this is a bug (%s:%d:%s)\n"
-msgstr ""
-
-#: util/logger.c:184
-#, c-format
-msgid "you found a bug ... (%s:%d)\n"
-msgstr ""
-
-#: cipher/rand-dummy.c:112
-msgid "WARNING: using insecure random number generator!!\n"
-msgstr ""
-
-#: cipher/rand-dummy.c:113
-msgid ""
-"The random number generator is only a kludge to let\n"
-"it compile - it is in no way a strong RNG!\n"
-"\n"
-"DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n"
-"\n"
-msgstr ""
-
-#: cipher/rand-unix.c:149
-#, c-format
-msgid ""
-"\n"
-"Not enough random bytes available. Please do some other work to give\n"
-"the OS a chance to collect more entropy! (Need %d more bytes)\n"
-msgstr ""
-
-#: g10/g10.c:155
-msgid ""
-"@Commands:\n"
-" "
-msgstr ""
-
-#: g10/g10.c:158
-msgid "|[file]|make a signature"
-msgstr ""
-
-#: g10/g10.c:159
-msgid "|[file]|make a clear text signature"
-msgstr ""
-
-#: g10/g10.c:160
-msgid "make a detached signature"
-msgstr ""
-
-#: g10/g10.c:161
-msgid "encrypt data"
-msgstr ""
-
-#: g10/g10.c:162
-msgid "encryption only with symmetric cipher"
-msgstr ""
-
-#: g10/g10.c:163
-msgid "store only"
-msgstr ""
-
-#: g10/g10.c:164
-msgid "decrypt data (default)"
-msgstr ""
-
-#: g10/g10.c:165
-msgid "verify a signature"
-msgstr ""
-
-#: g10/g10.c:167
-msgid "list keys"
-msgstr ""
-
-#: g10/g10.c:168
-msgid "list keys and signatures"
-msgstr ""
-
-#: g10/g10.c:169
-msgid "check key signatures"
-msgstr ""
-
-#: g10/g10.c:170
-msgid "list keys and fingerprints"
-msgstr ""
-
-#: g10/g10.c:171
-msgid "list secret keys"
-msgstr ""
-
-#: g10/g10.c:173
-msgid "generate a new key pair"
-msgstr ""
-
-#: g10/g10.c:175
-msgid "remove key from the public keyring"
-msgstr ""
-
-#: g10/g10.c:177
-msgid "sign or edit a key"
-msgstr ""
-
-#: g10/g10.c:178
-msgid "generate a revocation certificate"
-msgstr ""
-
-#: g10/g10.c:180
-msgid "export keys"
-msgstr ""
-
-#: g10/g10.c:182
-msgid "import/merge keys"
-msgstr ""
-
-#: g10/g10.c:184
-msgid "list only the sequence of packets"
-msgstr ""
-
-#: g10/g10.c:187
-#, fuzzy
-msgid "export the ownertrust values"
-msgstr ""
-"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."
-
-#: g10/g10.c:189
-#, fuzzy
-msgid "import ownertrust values"
-msgstr ""
-"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."
-
-#: g10/g10.c:191
-msgid "|[NAMES]|update the trust database"
-msgstr ""
-
-#: g10/g10.c:193
-msgid "|[NAMES]|check the trust database"
-msgstr ""
-
-#: g10/g10.c:194
-msgid "fix a corrupted trust database"
-msgstr ""
-
-#: g10/g10.c:195
-msgid "De-Armor a file or stdin"
-msgstr ""
-
-#: g10/g10.c:196
-msgid "En-Armor a file or stdin"
-msgstr ""
-
-#: g10/g10.c:197
-msgid "|algo [files]|print message digests"
-msgstr ""
-
-#: g10/g10.c:198
-msgid "print all message digests"
-msgstr ""
-
-#: g10/g10.c:205
-msgid ""
-"@\n"
-"Options:\n"
-" "
-msgstr ""
-
-#: g10/g10.c:207
-msgid "create ascii armored output"
-msgstr ""
-
-#: g10/g10.c:209
-msgid "use this user-id to sign or decrypt"
-msgstr ""
-
-#: g10/g10.c:210
-msgid "use this user-id for encryption"
-msgstr ""
-
-#: g10/g10.c:211
-msgid "|N|set compress level N (0 disables)"
-msgstr ""
-
-#: g10/g10.c:213
-msgid "use canonical text mode"
-msgstr ""
-
-#: g10/g10.c:215
-msgid "use as output file"
-msgstr ""
-
-#: g10/g10.c:216
-msgid "verbose"
-msgstr ""
-
-#: g10/g10.c:217
-msgid "be somewhat more quiet"
-msgstr ""
-
-#: g10/g10.c:218
-msgid "force v3 signatures"
-msgstr ""
-
-#. { oDryRun, "dry-run", 0, N_("do not make any changes") },
-#: g10/g10.c:220
-msgid "batch mode: never ask"
-msgstr ""
-
-#: g10/g10.c:221
-msgid "assume yes on most questions"
-msgstr ""
-
-#: g10/g10.c:222
-msgid "assume no on most questions"
-msgstr ""
-
-#: g10/g10.c:223
-msgid "add this keyring to the list of keyrings"
-msgstr ""
-
-#: g10/g10.c:224
-msgid "add this secret keyring to the list"
-msgstr ""
-
-#: g10/g10.c:225
-msgid "|NAME|use NAME as default secret key"
-msgstr ""
-
-#: g10/g10.c:226
-msgid "|NAME| set terminal charset to NAME"
-msgstr ""
-
-#: g10/g10.c:227
-msgid "read options from file"
-msgstr ""
-
-#: g10/g10.c:229
-msgid "set debugging flags"
-msgstr ""
-
-#: g10/g10.c:230
-msgid "enable full debugging"
-msgstr ""
-
-#: g10/g10.c:231
-msgid "|FD|write status info to this FD"
-msgstr ""
-
-#: g10/g10.c:232
-msgid "do not write comment packets"
-msgstr ""
-
-#: g10/g10.c:233
-msgid "(default is 1)"
-msgstr ""
-
-#: g10/g10.c:234
-msgid "(default is 3)"
-msgstr ""
-
-#: g10/g10.c:236
-msgid "|FILE|load extension module FILE"
-msgstr ""
-
-#: g10/g10.c:237
-msgid "emulate the mode described in RFC1991"
-msgstr ""
-
-#: g10/g10.c:238
-msgid "|N|use passphrase mode N"
-msgstr ""
-
-#: g10/g10.c:240
-msgid "|NAME|use message digest algorithm NAME for passphrases"
-msgstr ""
-
-#: g10/g10.c:242
-msgid "|NAME|use cipher algorithm NAME for passphrases"
-msgstr ""
-
-#: g10/g10.c:244
-msgid "|NAME|use cipher algorithm NAME"
-msgstr ""
-
-#: g10/g10.c:245
-msgid "|NAME|use message digest algorithm NAME"
-msgstr ""
-
-#: g10/g10.c:246
-msgid "|N|use compress algorithm N"
-msgstr ""
-
-#: g10/g10.c:247
-msgid "throw keyid field of encrypted packets"
-msgstr ""
-
-#: g10/g10.c:255
-msgid ""
-"@\n"
-"Examples:\n"
-"\n"
-" -se -r Bob [file] sign and encrypt for user Bob\n"
-" --clearsign [file] make a clear text signature\n"
-" --detach-sign [file] make a detached signature\n"
-" --list-keys [names] show keys\n"
-" --fingerprint [names] show fingerprints\n"
-msgstr ""
-
-#: g10/g10.c:333
-msgid "Please report bugs to <[email protected]>.\n"
-msgstr ""
-
-#: g10/g10.c:338
-msgid "Usage: gpgm [options] [files] (-h for help)"
-msgstr ""
-
-#: g10/g10.c:340
-msgid "Usage: gpg [options] [files] (-h for help)"
-msgstr ""
-
-#: g10/g10.c:345
-msgid ""
-"Syntax: gpgm [options] [files]\n"
-"GnuPG maintenance utility\n"
-msgstr ""
-
-#: g10/g10.c:348
-msgid ""
-"Syntax: gpg [options] [files]\n"
-"sign, check, encrypt or decrypt\n"
-"default operation depends on the input data\n"
-msgstr ""
-
-#: g10/g10.c:354
-msgid ""
-"\n"
-"Supported algorithms:\n"
-msgstr ""
-
-#: g10/g10.c:429
-msgid "usage: gpgm [options] "
-msgstr ""
-
-#: g10/g10.c:431
-msgid "usage: gpg [options] "
-msgstr ""
-
-#: g10/g10.c:472
-msgid "conflicting commands\n"
-msgstr ""
-
-#: g10/g10.c:610
-#, c-format
-msgid "NOTE: no default option file '%s'\n"
-msgstr ""
-
-#: g10/g10.c:614
-#, c-format
-msgid "option file '%s': %s\n"
-msgstr ""
-
-#: g10/g10.c:621
-#, c-format
-msgid "reading options from '%s'\n"
-msgstr ""
-
-#: g10/g10.c:769
-#, c-format
-msgid "%s is not a valid character set\n"
-msgstr ""
-
-#: g10/g10.c:802 g10/g10.c:814
-msgid "selected cipher algorithm is invalid\n"
-msgstr ""
-
-#: g10/g10.c:808 g10/g10.c:820
-msgid "selected digest algorithm is invalid\n"
-msgstr ""
-
-#: g10/g10.c:823
-#, c-format
-msgid "compress algorithm must be in range %d..%d\n"
-msgstr ""
-
-#: g10/g10.c:825
-msgid "completes-needed must be greater than 0\n"
-msgstr ""
-
-#: g10/g10.c:827
-msgid "marginals-needed must be greater than 1\n"
-msgstr ""
-
-#: g10/g10.c:829
-msgid "max-cert-depth must be in range 1 to 255\n"
-msgstr ""
-
-#: g10/g10.c:832
-msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
-msgstr ""
-
-#: g10/g10.c:836
-msgid "invalid S2K mode; must be 0, 1 or 3\n"
-msgstr ""
-
-#: g10/g10.c:912
-#, c-format
-msgid "failed to initialize the TrustDB: %s\n"
-msgstr ""
-
-#: g10/g10.c:918
-msgid "--store [filename]"
-msgstr ""
-
-#: g10/g10.c:926
-msgid "--symmetric [filename]"
-msgstr ""
-
-#: g10/g10.c:934
-msgid "--encrypt [filename]"
-msgstr ""
-
-#: g10/g10.c:947
-msgid "--sign [filename]"
-msgstr ""
-
-#: g10/g10.c:960
-msgid "--sign --encrypt [filename]"
-msgstr ""
-
-#: g10/g10.c:974
-msgid "--clearsign [filename]"
-msgstr ""
-
-#: g10/g10.c:986
-msgid "--decrypt [filename]"
-msgstr ""
-
-#: g10/g10.c:995
-msgid "--edit-key username [commands]"
-msgstr ""
-
-#: g10/g10.c:1011
-msgid "--delete-secret-key username"
-msgstr ""
-
-#: g10/g10.c:1014
-msgid "--delete-key username"
-msgstr ""
-
-#: g10/encode.c:216 g10/g10.c:1037 g10/sign.c:301
-#, c-format
-msgid "can't open %s: %s\n"
-msgstr ""
-
-#: g10/g10.c:1048
-msgid "-k[v][v][v][c] [userid] [keyring]"
-msgstr ""
-
-#: g10/g10.c:1104
-#, c-format
-msgid "dearmoring failed: %s\n"
-msgstr ""
-
-#: g10/g10.c:1112
-#, c-format
-msgid "enarmoring failed: %s\n"
-msgstr ""
-
-#: g10/g10.c:1173
-#, c-format
-msgid "invalid hash algorithm '%s'\n"
-msgstr ""
-
-#: g10/g10.c:1256
-msgid "[filename]"
-msgstr ""
-
-#: g10/g10.c:1260
-msgid "Go ahead and type your message ...\n"
-msgstr ""
-
-#: g10/decrypt.c:59 g10/g10.c:1263 g10/verify.c:66
-#, c-format
-msgid "can't open '%s'\n"
-msgstr ""
-
-#: g10/g10.c:1312
-msgid ""
-"RSA keys are deprecated; please consider creating a new key and use this key "
-"in the future\n"
-msgstr ""
-
-#: g10/armor.c:344 g10/armor.c:391
-msgid "armor header: "
-msgstr ""
-
-#: g10/armor.c:355
-msgid "invalid clearsig header\n"
-msgstr ""
-
-#: g10/armor.c:382
-msgid "invalid armor header: "
-msgstr ""
-
-#: g10/armor.c:459
-#, c-format
-msgid "armor: %s\n"
-msgstr ""
-
-#: g10/armor.c:532
-msgid "invalid dash escaped line: "
-msgstr ""
-
-#: g10/armor.c:601
-msgid "invalid clear text header: "
-msgstr ""
-
-#: g10/armor.c:843
-#, c-format
-msgid "invalid radix64 character %02x skipped\n"
-msgstr ""
-
-#: g10/armor.c:876
-msgid "premature eof (no CRC)\n"
-msgstr ""
-
-#: g10/armor.c:895
-msgid "premature eof (in CRC)\n"
-msgstr ""
-
-#: g10/armor.c:899
-msgid "malformed CRC\n"
-msgstr ""
-
-#: g10/armor.c:903
-#, c-format
-msgid "CRC error; %06lx - %06lx\n"
-msgstr ""
-
-#: g10/armor.c:922
-msgid "premature eof (in Trailer)\n"
-msgstr ""
-
-#: g10/armor.c:926
-msgid "error in trailer line\n"
-msgstr ""
-
-#: g10/armor.c:1180
-msgid "no valid RFC1991 or OpenPGP data found.\n"
-msgstr ""
-
-#: g10/pkclist.c:121
-#, c-format
-msgid ""
-"No trust value assigned to %lu:\n"
-"%4u%c/%08lX %s \""
-msgstr ""
-
-#: g10/pkclist.c:131
-msgid ""
-"Please decide how far you trust this user to correctly\n"
-"verify other users' keys (by looking at passports,\n"
-"checking fingerprints from different sources...)?\n"
-"\n"
-" 1 = Don't know\n"
-" 2 = I do NOT trust\n"
-" 3 = I trust marginally\n"
-" 4 = I trust fully\n"
-" s = please show me more information\n"
-msgstr ""
-
-#: g10/pkclist.c:140
-msgid " m = back to the main menu\n"
-msgstr ""
-
-#. a string with valid answers
-#: g10/pkclist.c:145
-msgid "sSmM"
-msgstr ""
-
-#: g10/pkclist.c:149
-msgid "edit_ownertrust.value"
-msgstr ""
-"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."
-
-#: g10/pkclist.c:149
-msgid "Your decision? "
-msgstr ""
-
-#: g10/pkclist.c:169
-msgid "Certificates leading to an ultimately trusted key:\n"
-msgstr ""
-
-#: g10/pkclist.c:197
-msgid ""
-"Could not find a valid trust path to the key. Let's see whether we\n"
-"can assign some missing owner trust values.\n"
-"\n"
-msgstr ""
-
-#: g10/pkclist.c:219
-msgid ""
-"No path leading to one of our keys found.\n"
-"\n"
-msgstr ""
-
-#: g10/pkclist.c:221
-msgid ""
-"No certificates with undefined trust found.\n"
-"\n"
-msgstr ""
-
-#: g10/pkclist.c:223
-msgid ""
-"No trust values changed.\n"
-"\n"
-msgstr ""
-
-#: g10/pkclist.c:238
-#, c-format
-msgid "key %08lX: key has been revoked!\n"
-msgstr ""
-
-#: g10/pkclist.c:243
-msgid "revoked_key.override"
-msgstr "If you want to use this revoked key anyway, answer \"yes\"."
-
-#: g10/pkclist.c:244 g10/pkclist.c:335
-msgid "Use this key anyway? "
-msgstr ""
-
-#: g10/pkclist.c:266
-#, c-format
-msgid "%08lX: key has expired\n"
-msgstr ""
-
-#: g10/pkclist.c:272
-#, c-format
-msgid "%08lX: no info to calculate a trust probability\n"
-msgstr ""
-
-#: g10/pkclist.c:288
-#, c-format
-msgid "%08lX: We do NOT trust this key\n"
-msgstr ""
-
-#: g10/pkclist.c:294
-#, c-format
-msgid ""
-"%08lX: It is not sure taht this key really belongs to the owner\n"
-"but it is accepted anyway\n"
-msgstr ""
-
-#: g10/pkclist.c:300
-msgid "This key probably belongs to the owner\n"
-msgstr ""
-
-#: g10/pkclist.c:305
-msgid "This key belongs to us (we have the secret key)\n"
-msgstr ""
-
-#: g10/pkclist.c:330
-msgid ""
-"It is NOT certain that the key belongs to its owner.\n"
-"If you *really* know what you are doing, you may answer\n"
-"the next question with yes\n"
-"\n"
-msgstr ""
-
-#: g10/pkclist.c:334
-msgid "untrusted_key.override"
-msgstr "If you want to use this untrusted key anyway, answer \"yes\"."
-
-#: g10/pkclist.c:339
-msgid "WARNING: Using untrusted key!\n"
-msgstr ""
-
-#: g10/pkclist.c:375
-msgid "WARNING: This key has been revoked by its owner!\n"
-msgstr ""
-
-#: g10/pkclist.c:376
-msgid " This could mean that the signature is forgery.\n"
-msgstr ""
-
-#: g10/pkclist.c:397
-msgid "Note: This key has expired!\n"
-msgstr ""
-
-#: g10/pkclist.c:404
-msgid "WARNING: This key is not certified with a trusted signature!\n"
-msgstr ""
-
-#: g10/pkclist.c:406
-msgid ""
-" There is no indication that the signature belongs to the owner.\n"
-msgstr ""
-
-#: g10/pkclist.c:421
-msgid "WARNING: We do NOT trust this key!\n"
-msgstr ""
-
-#: g10/pkclist.c:422
-msgid " The signature is probably a FORGERY.\n"
-msgstr ""
-
-#: g10/pkclist.c:429
-msgid ""
-"WARNING: This key is not certified with sufficiently trusted signatures!\n"
-msgstr ""
-
-#: g10/pkclist.c:432
-msgid " It is not certain that the signature belongs to the owner.\n"
-msgstr ""
-
-#: g10/pkclist.c:477
-msgid ""
-"You did not specify a user ID. (you may use \"-r\")\n"
-"\n"
-msgstr ""
-
-#: g10/pkclist.c:481
-msgid "pklist.user_id.enter"
-msgstr ""
-"Enter the user id of the addresse to whom you want to send the message."
-
-#: g10/pkclist.c:482
-msgid "Enter the user ID: "
-msgstr ""
-
-#: g10/pkclist.c:493
-msgid "No such user ID.\n"
-msgstr ""
-
-#: g10/pkclist.c:527 g10/pkclist.c:554
-#, c-format
-msgid "%s: skipped: %s\n"
-msgstr ""
-
-#: g10/pkclist.c:535
-#, c-format
-msgid "%s: error checking key: %s\n"
-msgstr ""
-
-#: g10/pkclist.c:561
-msgid "no valid addressees\n"
-msgstr ""
-
-#: g10/keygen.c:124
-msgid "writing self signature\n"
-msgstr ""
-
-#: g10/keygen.c:162
-msgid "writing key binding signature\n"
-msgstr ""
-
-#: g10/keygen.c:388
-msgid "Please select what kind of key you want:\n"
-msgstr ""
-
-#: g10/keygen.c:390
-#, c-format
-msgid " (%d) DSA and ElGamal (default)\n"
-msgstr ""
-
-#: g10/keygen.c:391
-#, c-format
-msgid " (%d) ElGamal (sign and encrypt)\n"
-msgstr ""
-
-#: g10/keygen.c:393
-#, c-format
-msgid " (%d) ElGamal (encrypt only)\n"
-msgstr ""
-
-#: g10/keygen.c:394
-#, c-format
-msgid " (%d) DSA (sign only)\n"
-msgstr ""
-
-#: g10/keygen.c:395
-#, c-format
-msgid " (%d) ElGamal in a v3 packet\n"
-msgstr ""
-
-#: g10/keygen.c:399
-msgid "keygen.algo"
-msgstr ""
-"Select the algorithm to use.\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"
-"ElGamal is a algorithm which can be used for signatures and encryption.\n"
-"OpenPGP distunguishs between two flavors of this algorithms: a 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 implemenations are not required to understand\n"
-"the signature+encryption flavor.\n"
-"The first (primary) key must always be a key which is capable of signing;\n"
-"this is the reason why the ecrytion only ElGamal key is disabled in this.\n"
-"You should not select the \"ElGamal in a v3 packet\", because that key is\n"
-"not compatible to other OpenPGP implementations."
-
-#: g10/keygen.c:399
-msgid "Your selection? "
-msgstr ""
-
-#: g10/keygen.c:425
-msgid "Invalid selection.\n"
-msgstr ""
-
-#: g10/keygen.c:437
-#, c-format
-msgid ""
-"About to generate a new %s keypair.\n"
-" minimum keysize is 768 bits\n"
-" default keysize is 1024 bits\n"
-" highest suggested keysize is 2048 bits\n"
-msgstr ""
-
-#: g10/keygen.c:443
-msgid "keygen.size"
-msgstr ""
-
-#: g10/keygen.c:444
-msgid "What keysize do you want? (1024) "
-msgstr ""
-
-#: g10/keygen.c:449
-msgid "DSA only allows keysizes from 512 to 1024\n"
-msgstr ""
-
-#: g10/keygen.c:451
-msgid "keysize too small; 768 is smallest value allowed.\n"
-msgstr ""
-
-#: g10/keygen.c:454
-msgid ""
-"Keysizes larger than 2048 are not suggested because\n"
-"computations take REALLY long!\n"
-msgstr ""
-
-#: g10/keygen.c:456
-msgid "keygen.size.huge.okay"
-msgstr ""
-
-#: g10/keygen.c:457
-msgid "Are you sure that you want this keysize? "
-msgstr ""
-
-#: g10/keygen.c:458
-msgid ""
-"Okay, but keep in mind that your monitor and keyboard radiation is also very "
-"vulnerable to attacks!\n"
-msgstr ""
-
-#: g10/keygen.c:465
-msgid "keygen.size.large.okay"
-msgstr ""
-
-#: g10/keygen.c:466
-msgid "Do you really need such a large keysize? "
-msgstr ""
-
-#: g10/keygen.c:472
-#, c-format
-msgid "Requested keysize is %u bits\n"
-msgstr ""
-
-#: g10/keygen.c:475 g10/keygen.c:479
-#, c-format
-msgid "rounded up to %u bits\n"
-msgstr ""
-
-#: g10/keygen.c:492
-msgid ""
-"Please specify how long the key should be valid.\n"
-" 0 = key does not expire\n"
-" <n> = key expires in n days\n"
-" <n>w = key expires in n weeks\n"
-" <n>m = key expires in n months\n"
-" <n>y = key expires in n years\n"
-msgstr ""
-
-#: g10/keygen.c:507
-msgid "keygen.valid"
-msgstr ""
-
-#: g10/keygen.c:507
-msgid "Key is valid for? (0) "
-msgstr ""
-
-#: g10/keygen.c:518
-msgid "invalid value\n"
-msgstr ""
-
-#: g10/keygen.c:523
-msgid "Key does not expire at all\n"
-msgstr ""
-
-#. print the date when the key expires
-#: g10/keygen.c:529
-#, c-format
-msgid "Key expires at %s\n"
-msgstr ""
-
-#: g10/keygen.c:534
-msgid "keygen.valid.okay"
-msgstr ""
-
-#: g10/keygen.c:535
-msgid "Is this correct (y/n)? "
-msgstr ""
-
-#: g10/keygen.c:577
-msgid ""
-"\n"
-"You need a User-ID to identify your key; the software constructs the user "
-"id\n"
-"from Real Name, Comment and Email Address in this form:\n"
-" \"Heinrich Heine (Der Dichter) <[email protected]>\"\n"
-"\n"
-msgstr ""
-
-#: g10/keygen.c:588
-msgid "keygen.name"
-msgstr ""
-
-#: g10/keygen.c:588
-msgid "Real name: "
-msgstr ""
-
-#: g10/keygen.c:592
-msgid "Invalid character in name\n"
-msgstr ""
-
-#: g10/keygen.c:594
-msgid "Name may not start with a digit\n"
-msgstr ""
-
-#: g10/keygen.c:596
-msgid "Name must be at least 5 characters long\n"
-msgstr ""
-
-#: g10/keygen.c:604
-msgid "keygen.email"
-msgstr ""
-
-#: g10/keygen.c:604
-msgid "Email address: "
-msgstr ""
-
-#: g10/keygen.c:616
-msgid "Not a valid email address\n"
-msgstr ""
-
-#: g10/keygen.c:624
-msgid "keygen.comment"
-msgstr ""
-
-#: g10/keygen.c:624
-msgid "Comment: "
-msgstr ""
-
-#: g10/keygen.c:630
-msgid "Invalid character in comment\n"
-msgstr ""
-
-#: g10/keygen.c:650
-#, c-format
-msgid ""
-"You selected this USER-ID:\n"
-" \"%s\"\n"
-"\n"
-msgstr ""
-
-#: g10/keygen.c:653
-msgid "NnCcEeOoQq"
-msgstr ""
-
-#: g10/keygen.c:662
-msgid "keygen.userid.cmd"
-msgstr ""
-"N to change the name.\n"
-"C to change the comment.\n"
-"E to change the email address.\n"
-"O to continue with key generation.\n"
-"Q to to quit the key generation."
-
-#: g10/keygen.c:663
-msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
-msgstr ""
-
-#: g10/keygen.c:715
-msgid ""
-"You need a Passphrase to protect your secret key.\n"
-"\n"
-msgstr ""
-
-#: g10/keyedit.c:389 g10/keygen.c:723
-msgid "passphrase not correctly repeated; try again.\n"
-msgstr ""
-
-#: g10/keygen.c:729
-msgid ""
-"You don't want a passphrase - this is probably a *bad* idea!\n"
-"I will do it anyway. You can change your passphrase at any time,\n"
-"using this program with the option \"--edit-key\".\n"
-"\n"
-msgstr ""
-
-#: g10/keygen.c:750
-msgid ""
-"We need to generate a lot of random bytes. It is a good idea to perform\n"
-"some other action (work in another window, move the mouse, utilize the\n"
-"network and the disks) during the prime generation; this gives the random\n"
-"number generator a better chance to gain enough entropy.\n"
-msgstr ""
-
-#: g10/keygen.c:820
-msgid "Key generation can only be used in interactive mode\n"
-msgstr ""
-
-#: g10/keygen.c:828
-msgid "DSA keypair will have 1024 bits.\n"
-msgstr ""
-
-#: g10/keygen.c:834
-msgid "Key generation cancelled.\n"
-msgstr ""
-
-#: g10/keygen.c:844
-#, c-format
-msgid "writing public certificate to '%s'\n"
-msgstr ""
-
-#: g10/keygen.c:845
-#, c-format
-msgid "writing secret certificate to '%s'\n"
-msgstr ""
-
-#: g10/keygen.c:922
-msgid "public and secret key created and signed.\n"
-msgstr ""
-
-#: g10/keygen.c:924
-msgid ""
-"Note that this key cannot be used for encryption. You may want to use\n"
-"the command \"--add-key\" to generate a secondary key for this purpose.\n"
-msgstr ""
-
-#: g10/keygen.c:938 g10/keygen.c:1023
-#, c-format
-msgid "Key generation failed: %s\n"
-msgstr ""
-
-#: g10/keygen.c:1000
-msgid "keygen.sub.okay"
-msgstr "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
-
-#: g10/keygen.c:1001
-msgid "Really create? "
-msgstr ""
-
-#: g10/encode.c:88 g10/openfile.c:81 g10/openfile.c:158 g10/tdbio.c:417
-#: g10/tdbio.c:468
-#, c-format
-msgid "%s: can't open: %s\n"
-msgstr ""
-
-#: g10/encode.c:107
-#, c-format
-msgid "error creating passphrase: %s\n"
-msgstr ""
-
-#: g10/encode.c:155 g10/encode.c:269
-#, c-format
-msgid "%s: WARNING: empty file\n"
-msgstr ""
-
-#: g10/encode.c:222
-#, c-format
-msgid "reading from '%s'\n"
-msgstr ""
-
-#: g10/encode.c:397
-#, c-format
-msgid "%s encrypted for: %s\n"
-msgstr ""
-
-#: g10/export.c:162
-msgid "WARNING: nothing exported\n"
-msgstr ""
-
-#: g10/getkey.c:164
-msgid "too many entries in pk cache - disabled\n"
-msgstr ""
-
-#: g10/getkey.c:263
-msgid "too many entries in unk cache - disabled\n"
-msgstr ""
-
-#: g10/getkey.c:969
-#, c-format
-msgid "using secondary key %08lX instead of primary key %08lX\n"
-msgstr ""
-
-#: g10/import.c:125 g10/trustdb.c:1082
-#, c-format
-msgid "can't open file: %s\n"
-msgstr ""
-
-#: g10/import.c:141
-#, c-format
-msgid "skipping block of type %d\n"
-msgstr ""
-
-#: g10/import.c:148 g10/trustdb.c:1341 g10/trustdb.c:1410
-#, c-format
-msgid "%lu keys so far processed\n"
-msgstr ""
-
-#: g10/import.c:153 g10/trustdb.c:1158
-#, c-format
-msgid "read error: %s\n"
-msgstr ""
-
-#: g10/import.c:155
-#, c-format
-msgid "Total number processed: %lu\n"
-msgstr ""
-
-#: g10/import.c:157
-#, c-format
-msgid " w/o user IDs: %lu\n"
-msgstr ""
-
-#: g10/import.c:159
-#, c-format
-msgid " imported: %lu"
-msgstr ""
-
-#: g10/import.c:165
-#, c-format
-msgid " unchanged: %lu\n"
-msgstr ""
-
-#: g10/import.c:167
-#, c-format
-msgid " new user IDs: %lu\n"
-msgstr ""
-
-#: g10/import.c:169
-#, c-format
-msgid " new subkeys: %lu\n"
-msgstr ""
-
-#: g10/import.c:171
-#, c-format
-msgid " new signatures: %lu\n"
-msgstr ""
-
-#: g10/import.c:173
-#, c-format
-msgid " new key revocations: %lu\n"
-msgstr ""
-
-#: g10/import.c:175
-#, c-format
-msgid " secret keys read: %lu\n"
-msgstr ""
-
-#: g10/import.c:177
-#, c-format
-msgid " secret keys imported: %lu\n"
-msgstr ""
-
-#: g10/import.c:179
-#, c-format
-msgid " secret keys unchanged: %lu\n"
-msgstr ""
-
-#: g10/import.c:321 g10/import.c:513
-#, c-format
-msgid "key %08lX: no user id\n"
-msgstr ""
-
-#: g10/import.c:332
-#, c-format
-msgid "key %08lX: no valid user ids\n"
-msgstr ""
-
-#: g10/import.c:334
-msgid "this may be caused by a missing self-signature\n"
-msgstr ""
-
-#: g10/import.c:345 g10/import.c:581
-#, c-format
-msgid "key %08lX: public key not found: %s\n"
-msgstr ""
-
-#: g10/import.c:351
-msgid "no default public keyring\n"
-msgstr ""
-
-#: g10/import.c:355 g10/openfile.c:105 g10/sign.c:205 g10/sign.c:563
-#, c-format
-msgid "writing to '%s'\n"
-msgstr ""
-
-#: g10/import.c:359 g10/import.c:419 g10/import.c:635
-#, c-format
-msgid "can't lock public keyring: %s\n"
-msgstr ""
-
-#: g10/import.c:362
-#, c-format
-msgid "can't write to keyring: %s\n"
-msgstr ""
-
-#: g10/import.c:366
-#, c-format
-msgid "key %08lX: public key imported\n"
-msgstr ""
-
-#: g10/import.c:379
-#, c-format
-msgid "key %08lX: doesn't match our copy\n"
-msgstr ""
-
-#: g10/import.c:392 g10/import.c:590
-#, c-format
-msgid "key %08lX: can't locate original keyblock: %s\n"
-msgstr ""
-
-#: g10/import.c:399 g10/import.c:597
-#, c-format
-msgid "key %08lX: can't read original keyblock: %s\n"
-msgstr ""
-
-#: g10/import.c:416 g10/import.c:528 g10/import.c:632
-msgid "writing keyblock\n"
-msgstr ""
-
-#: g10/import.c:422 g10/import.c:638
-#, c-format
-msgid "can't write keyblock: %s\n"
-msgstr ""
-
-#: g10/import.c:427
-#, c-format
-msgid "key %08lX: 1 new user-id\n"
-msgstr ""
-
-#: g10/import.c:430
-#, c-format
-msgid "key %08lX: %d new user-ids\n"
-msgstr ""
-
-#: g10/import.c:433
-#, c-format
-msgid "key %08lX: 1 new signature\n"
-msgstr ""
-
-#: g10/import.c:436
-#, c-format
-msgid "key %08lX: %d new signatures\n"
-msgstr ""
-
-#: g10/import.c:439
-#, c-format
-msgid "key %08lX: 1 new subkey\n"
-msgstr ""
-
-#: g10/import.c:442
-#, c-format
-msgid "key %08lX: %d new subkeys\n"
-msgstr ""
-
-#: g10/import.c:452
-#, c-format
-msgid "key %08lX: not changed\n"
-msgstr ""
-
-#: g10/import.c:531
-#, c-format
-msgid "can't lock secret keyring: %s\n"
-msgstr ""
-
-#: g10/import.c:534
-#, c-format
-msgid "can't write keyring: %s\n"
-msgstr ""
-
-#. we are ready
-#: g10/import.c:537
-#, c-format
-msgid "key %08lX: secret key imported\n"
-msgstr ""
-
-#. we can't merge secret keys
-#: g10/import.c:541
-#, c-format
-msgid "key %08lX: already in secret keyring\n"
-msgstr ""
-
-#: g10/import.c:546
-#, c-format
-msgid "key %08lX: secret key not found: %s\n"
-msgstr ""
-
-#: g10/import.c:575
-#, c-format
-msgid "key %08lX: no public key - can't apply revocation certificate\n"
-msgstr ""
-
-#: g10/import.c:608
-#, c-format
-msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
-msgstr ""
-
-#: g10/import.c:642
-#, c-format
-msgid "key %08lX: revocation certificate imported\n"
-msgstr ""
-
-#: g10/import.c:673
-#, c-format
-msgid "key %08lX: no user-id for signature\n"
-msgstr ""
-
-#: g10/import.c:680
-#, c-format
-msgid "key %08lX: unsupported public key algorithm\n"
-msgstr ""
-
-#: g10/import.c:681
-#, c-format
-msgid "key %08lX: invalid self-signature\n"
-msgstr ""
-
-#: g10/import.c:710
-#, c-format
-msgid "key %08lX: skipped userid '"
-msgstr ""
-
-#: g10/import.c:733
-#, c-format
-msgid "key %08lX: revocation certificate at wrong place - skipped\n"
-msgstr ""
-
-#: g10/import.c:741
-#, c-format
-msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
-msgstr ""
-
-#: g10/import.c:803
-#, c-format
-msgid "key %08lX: revocation certificate added\n"
-msgstr ""
-
-#: g10/import.c:866 g10/import.c:902
-#, c-format
-msgid "key %08lX: our copy has no self-signature\n"
-msgstr ""
-
-#: g10/keyedit.c:81
-#, c-format
-msgid "%s: user not found\n"
-msgstr ""
-
-#: g10/keyedit.c:164
-msgid "[self-signature]"
-msgstr ""
-
-#: g10/keyedit.c:182
-msgid "1 bad signature\n"
-msgstr ""
-
-#: g10/keyedit.c:184
-#, c-format
-msgid "%d bad signatures\n"
-msgstr ""
-
-#: g10/keyedit.c:186
-msgid "1 signature not checked due to a missing key\n"
-msgstr ""
-
-#: g10/keyedit.c:188
-#, c-format
-msgid "%d signatures not checked due to missing keys\n"
-msgstr ""
-
-#: g10/keyedit.c:190
-msgid "1 signature not checked due to an error\n"
-msgstr ""
-
-#: g10/keyedit.c:192
-#, c-format
-msgid "%d signatures not checked due to errors\n"
-msgstr ""
-
-#: g10/keyedit.c:194
-msgid "1 user id without valid self-signature detected\n"
-msgstr ""
-
-#: g10/keyedit.c:196
-#, c-format
-msgid "%d user ids without valid self-signatures detected\n"
-msgstr ""
-
-#: g10/keyedit.c:258
-#, c-format
-msgid "Already signed by key %08lX\n"
-msgstr ""
-
-#: g10/keyedit.c:266
-#, c-format
-msgid "Nothing to sign with key %08lX\n"
-msgstr ""
-
-#: g10/keyedit.c:275
-msgid ""
-"Are you really sure that you want to sign this key\n"
-"with your key: \""
-msgstr ""
-
-#: g10/keyedit.c:282
-msgid "sign_uid.okay"
-msgstr ""
-
-#: g10/keyedit.c:282
-msgid "Really sign? "
-msgstr ""
-
-#: g10/keyedit.c:303 g10/sign.c:65
-#, c-format
-msgid "signing failed: %s\n"
-msgstr ""
-
-#: g10/keyedit.c:356
-msgid "This key is not protected.\n"
-msgstr ""
-
-#: g10/keyedit.c:359
-msgid "Key is protected.\n"
-msgstr ""
-
-#: g10/keyedit.c:376
-#, c-format
-msgid "Can't edit this key: %s\n"
-msgstr ""
-
-#: g10/keyedit.c:381
-msgid ""
-"Enter the new passphrase for this secret key.\n"
-"\n"
-msgstr ""
-
-#: g10/keyedit.c:393
-msgid ""
-"You don't want a passphrase - this is probably a *bad* idea!\n"
-"\n"
-msgstr ""
-
-#: g10/keyedit.c:395
-msgid "change_passwd.empty.okay"
-msgstr ""
-
-#: g10/keyedit.c:396
-msgid "Do you really want to do this? "
-msgstr ""
-
-#: g10/keyedit.c:455
-msgid "moving a key signature to the correct place\n"
-msgstr ""
-
-#: g10/keyedit.c:490
-msgid "quit"
-msgstr ""
-
-#: g10/keyedit.c:490
-msgid "quit this menu"
-msgstr ""
-
-#: g10/keyedit.c:491
-msgid "q"
-msgstr ""
-
-#: g10/keyedit.c:492
-msgid "save"
-msgstr ""
-
-#: g10/keyedit.c:492
-msgid "save and quit"
-msgstr ""
-
-#: g10/keyedit.c:493
-msgid "help"
-msgstr ""
-
-#: g10/keyedit.c:493
-msgid "show this help"
-msgstr ""
-
-#: g10/keyedit.c:495
-msgid "fpr"
-msgstr ""
-
-#: g10/keyedit.c:495
-msgid "show fingerprint"
-msgstr ""
-
-#: g10/keyedit.c:496
-msgid "list"
-msgstr ""
-
-#: g10/keyedit.c:496
-msgid "list key and user ids"
-msgstr ""
-
-#: g10/keyedit.c:497
-msgid "l"
-msgstr ""
-
-#: g10/keyedit.c:498
-msgid "uid"
-msgstr ""
-
-#: g10/keyedit.c:498
-msgid "select user id N"
-msgstr ""
-
-#: g10/keyedit.c:499
-msgid "key"
-msgstr ""
-
-#: g10/keyedit.c:499
-msgid "select secondary key N"
-msgstr ""
-
-#: g10/keyedit.c:500
-msgid "check"
-msgstr ""
-
-#: g10/keyedit.c:500
-msgid "list signatures"
-msgstr ""
-
-#: g10/keyedit.c:501
-msgid "c"
-msgstr ""
-
-#: g10/keyedit.c:502
-msgid "sign"
-msgstr ""
-
-#: g10/keyedit.c:502
-msgid "sign the key"
-msgstr ""
-
-#: g10/keyedit.c:503
-msgid "s"
-msgstr ""
-
-#: g10/keyedit.c:504
-msgid "debug"
-msgstr ""
-
-#: g10/keyedit.c:505
-msgid "adduid"
-msgstr ""
-
-#: g10/keyedit.c:505
-msgid "add a user id"
-msgstr ""
-
-#: g10/keyedit.c:506
-msgid "deluid"
-msgstr ""
-
-#: g10/keyedit.c:506
-msgid "delete user id"
-msgstr ""
-
-#: g10/keyedit.c:507
-msgid "addkey"
-msgstr ""
-
-#: g10/keyedit.c:507
-msgid "add a secondary key"
-msgstr ""
-
-#: g10/keyedit.c:508
-msgid "delkey"
-msgstr ""
-
-#: g10/keyedit.c:508
-msgid "delete a secondary key"
-msgstr ""
-
-#: g10/keyedit.c:509
-msgid "expire"
-msgstr ""
-
-#: g10/keyedit.c:509
-msgid "change the expire date"
-msgstr ""
-
-#: g10/keyedit.c:510
-msgid "toggle"
-msgstr ""
-
-#: g10/keyedit.c:510
-msgid "toggle between secret and public key listing"
-msgstr ""
-
-#: g10/keyedit.c:512
-msgid "t"
-msgstr ""
-
-#: g10/keyedit.c:513
-msgid "pref"
-msgstr ""
-
-#: g10/keyedit.c:513
-msgid "list preferences"
-msgstr ""
-
-#: g10/keyedit.c:514
-msgid "passwd"
-msgstr ""
-
-#: g10/keyedit.c:514
-msgid "change the passphrase"
-msgstr ""
-
-#: g10/keyedit.c:515
-msgid "trust"
-msgstr ""
-
-#: g10/keyedit.c:515
-msgid "change the ownertrust"
-msgstr ""
-
-#: g10/keyedit.c:534
-msgid "can't do that in batchmode\n"
-msgstr ""
-
-#. check that they match
-#. FIXME: check that they both match
-#: g10/keyedit.c:561
-msgid "Secret key is available.\n"
-msgstr ""
-
-#: g10/keyedit.c:590
-msgid "keyedit.cmd"
-msgstr "Please enter \"help\"."
-
-#: g10/keyedit.c:590
-msgid "Command> "
-msgstr ""
-
-#: g10/keyedit.c:617
-msgid "Need the secret key to to this.\n"
-msgstr ""
-
-#: g10/keyedit.c:638
-msgid "keyedit.save.okay"
-msgstr ""
-
-#: g10/keyedit.c:639
-msgid "Save changes? "
-msgstr ""
-
-#: g10/keyedit.c:641
-msgid "keyedit.cancel.okay"
-msgstr ""
-
-#: g10/keyedit.c:642
-msgid "Quit without saving? "
-msgstr ""
-
-#: g10/keyedit.c:652
-#, c-format
-msgid "update failed: %s\n"
-msgstr ""
-
-#: g10/keyedit.c:659
-#, c-format
-msgid "update secret failed: %s\n"
-msgstr ""
-
-#: g10/keyedit.c:666
-msgid "Key not changed so no update needed.\n"
-msgstr ""
-
-#: g10/keyedit.c:669 g10/keyedit.c:727
-#, c-format
-msgid "update of trust db failed: %s\n"
-msgstr ""
-
-#: g10/keyedit.c:700
-msgid "keyedit.sign_all.okay"
-msgstr ""
-
-#: g10/keyedit.c:701
-msgid "Really sign all user ids? "
-msgstr ""
-
-#: g10/keyedit.c:702
-msgid "Hint: Select the user ids to sign\n"
-msgstr ""
-
-#: g10/keyedit.c:738
-msgid "You must select at least one user id.\n"
-msgstr ""
-
-#: g10/keyedit.c:740
-msgid "You can't delete the last user id!\n"
-msgstr ""
-
-#: g10/keyedit.c:742
-msgid "keyedit.remove.uid.okay"
-msgstr ""
-
-#: g10/keyedit.c:743
-msgid "Really remove all selected user ids? "
-msgstr ""
-
-#: g10/keyedit.c:744
-msgid "Really remove this user id? "
-msgstr ""
-
-#: g10/keyedit.c:767
-msgid "You must select at least one key.\n"
-msgstr ""
-
-#: g10/keyedit.c:769
-msgid "keyedit.remove.subkey.okay"
-msgstr ""
-
-#: g10/keyedit.c:771
-msgid "Do you really want to delete the selected keys? "
-msgstr ""
-
-#: g10/keyedit.c:772
-msgid "Do you really want to delete this key? "
-msgstr ""
-
-#: g10/keyedit.c:819
-msgid "Invalid command (try \"help\")\n"
-msgstr ""
-
-#: g10/keyedit.c:1197
-msgid "Please remove selections from the secret keys.\n"
-msgstr ""
-
-#: g10/keyedit.c:1203
-msgid "Please select at most one secondary key.\n"
-msgstr ""
-
-#: g10/keyedit.c:1207
-msgid "Changing exiration time for a secondary key.\n"
-msgstr ""
-
-#: g10/keyedit.c:1209
-msgid "Changing exiration time for the primary key.\n"
-msgstr ""
-
-#: g10/keyedit.c:1250
-msgid "You can't change the expiration date of a v3 key\n"
-msgstr ""
-
-#: g10/keyedit.c:1266
-msgid "No corresponding signature in secret ring\n"
-msgstr ""
-
-#: g10/keyedit.c:1326
-#, c-format
-msgid "No user id with index %d\n"
-msgstr ""
-
-#: g10/keyedit.c:1371
-#, c-format
-msgid "No secondary key with index %d\n"
-msgstr ""
-
-#: g10/mainproc.c:198
-msgid "public key encrypted data: Good DEK\n"
-msgstr ""
-
-#: g10/mainproc.c:201
-#, c-format
-msgid "public key decryption failed: %s\n"
-msgstr ""
-
-#: g10/mainproc.c:228
-msgid "decryption okay\n"
-msgstr ""
-
-#: g10/mainproc.c:231
-#, c-format
-msgid "decryption failed: %s\n"
-msgstr ""
-
-#: g10/mainproc.c:248
-msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
-msgstr ""
-
-#: g10/mainproc.c:250
-#, c-format
-msgid "original file name='%.*s'\n"
-msgstr ""
-
-#: g10/mainproc.c:833
-msgid "signature verification suppressed\n"
-msgstr ""
-
-#: g10/mainproc.c:839
-#, c-format
-msgid "Signature made %.*s using %s key ID %08lX\n"
-msgstr ""
-
-#: g10/mainproc.c:847
-msgid "BAD signature from \""
-msgstr ""
-
-#: g10/mainproc.c:848
-msgid "Good signature from \""
-msgstr ""
-
-#: g10/mainproc.c:861
-#, c-format
-msgid "Can't check signature: %s\n"
-msgstr ""
-
-#: g10/mainproc.c:934
-msgid "old style (PGP 2.x) signature\n"
-msgstr ""
-
-#: g10/mainproc.c:939
-msgid "invalid root packet detected in proc_tree()\n"
-msgstr ""
-
-#: g10/misc.c:88
-#, c-format
-msgid "can't disable core dumps: %s\n"
-msgstr ""
-
-#: g10/misc.c:90
-msgid "WARNING: Program may create a core file!\n"
-msgstr ""
-
-#: g10/parse-packet.c:109
-#, c-format
-msgid "can't handle public key algorithm %d\n"
-msgstr ""
-
-#: g10/passphrase.c:141
-msgid ""
-"\n"
-"You need a passphrase to unlock the secret key for\n"
-"user: \""
-msgstr ""
-
-#: g10/passphrase.c:150
-#, c-format
-msgid "(%u-bit %s key, ID %08lX, created %s)\n"
-msgstr ""
-
-#: g10/passphrase.c:174
-msgid "passphrase.enter"
-msgstr ""
-"Please enter the passhrase; this is a secret sentence \n"
-" Blurb, blurb,.... "
-
-#: g10/passphrase.c:174
-#, fuzzy
-msgid "Enter passphrase: "
-msgstr ""
-"Please enter the passhrase; this is a secret sentence \n"
-" Blurb, blurb,.... "
-
-#: g10/passphrase.c:177
-msgid "passphrase.repeat"
-msgstr "Please repeat the last passphrase, so you are sure what you typed in."
-
-#: g10/passphrase.c:178
-#, fuzzy
-msgid "Repeat passphrase: "
-msgstr ""
-"Please enter the passhrase; this is a secret sentence \n"
-" Blurb, blurb,.... "
-
-#: g10/plaintext.c:102
-msgid "data not saved; use option \"--output\" to save it\n"
-msgstr ""
-
-#: g10/plaintext.c:214
-msgid "detached_signature.filename"
-msgstr ""
-
-#: g10/plaintext.c:215
-msgid "Please enter name of data file: "
-msgstr ""
-
-#: g10/plaintext.c:236
-msgid "reading stdin ...\n"
-msgstr ""
-
-#: g10/plaintext.c:299
-#, c-format
-msgid "can't open signed data '%s'\n"
-msgstr ""
-
-#: g10/pubkey-enc.c:78
-#, c-format
-msgid "anonymous receiver; trying secret key %08lX ...\n"
-msgstr ""
-
-#: g10/pubkey-enc.c:84
-msgid "okay, we are the anonymous receiver.\n"
-msgstr ""
-
-#: g10/pubkey-enc.c:136
-msgid "old encoding of the DEK is not supported\n"
-msgstr ""
-
-#: g10/pubkey-enc.c:183
-#, c-format
-msgid "NOTE: cipher algorithm %d not found in preferences\n"
-msgstr ""
-
-#: g10/seckey-cert.c:56
-#, c-format
-msgid "protection algorithm %d is not supported\n"
-msgstr ""
-
-#: g10/seckey-cert.c:169
-msgid "Invalid passphrase; please try again ...\n"
-msgstr ""
-
-#: g10/seckey-cert.c:215
-msgid "WARNING: Weak key detected - please change passphrase again.\n"
-msgstr ""
-
-#: g10/sig-check.c:155
-msgid ""
-"this is a PGP generated ElGamal key which is NOT secure for signatures!\n"
-msgstr ""
-
-#: g10/sig-check.c:165
-msgid "public key created in future (time warp or clock problem)\n"
-msgstr ""
-
-#: g10/sig-check.c:170
-#, c-format
-msgid "NOTE: signature key expired %s\n"
-msgstr ""
-
-#: g10/sign.c:69
-#, c-format
-msgid "%s signature from: %s\n"
-msgstr ""
-
-#: g10/sign.c:200 g10/sign.c:558
-#, c-format
-msgid "can't create %s: %s\n"
-msgstr ""
-
-#: g10/sign.c:296
-msgid "signing:"
-msgstr ""
-
-#: g10/sign.c:336
-#, c-format
-msgid "WARNING: '%s' is an empty file\n"
-msgstr ""
-
-#: g10/tdbio.c:115 g10/tdbio.c:1377
-#, c-format
-msgid "trustdb rec %lu: lseek failed: %s\n"
-msgstr ""
-
-#: g10/tdbio.c:121 g10/tdbio.c:1384
-#, c-format
-msgid "trustdb rec %lu: write failed (n=%d): %s\n"
-msgstr ""
-
-#: g10/tdbio.c:231
-msgid "trustdb transaction to large\n"
-msgstr ""
-
-#: g10/tdbio.c:374
-#, c-format
-msgid "%s: can't access: %s\n"
-msgstr ""
-
-#: g10/ringedit.c:257 g10/tdbio.c:394
-#, c-format
-msgid "%s: can't create directory: %s\n"
-msgstr ""
-
-#: g10/ringedit.c:263 g10/tdbio.c:397
-#, c-format
-msgid "%s: directory created\n"
-msgstr ""
-
-#: g10/tdbio.c:401
-#, c-format
-msgid "%s: directory does not exist!\n"
-msgstr ""
-
-#: g10/openfile.c:101 g10/openfile.c:165 g10/ringedit.c:1235 g10/tdbio.c:407
-#, c-format
-msgid "%s: can't create: %s\n"
-msgstr ""
-
-#: g10/tdbio.c:431
-#, c-format
-msgid "%s: failed to create version record: %s"
-msgstr ""
-
-#: g10/tdbio.c:435
-#, c-format
-msgid "%s: invalid trust-db created\n"
-msgstr ""
-
-#: g10/tdbio.c:437
-#, c-format
-msgid "%s: trust-db created\n"
-msgstr ""
-
-#: g10/tdbio.c:470
-#, c-format
-msgid "%s: invalid trust-db\n"
-msgstr ""
-
-#: g10/tdbio.c:504
-#, c-format
-msgid "%s: failed to create hashtable: %s\n"
-msgstr ""
-
-#: g10/tdbio.c:512
-#, c-format
-msgid "%s: error updating version record: %s\n"
-msgstr ""
-
-#: g10/tdbio.c:528 g10/tdbio.c:567 g10/tdbio.c:592 g10/tdbio.c:1310
-#: g10/tdbio.c:1337
-#, c-format
-msgid "%s: error reading version record: %s\n"
-msgstr ""
-
-#: g10/tdbio.c:541
-#, c-format
-msgid "%s: error writing version record: %s\n"
-msgstr ""
-
-#: g10/tdbio.c:1017
-#, c-format
-msgid "trustdb: lseek failed: %s\n"
-msgstr ""
-
-#: g10/tdbio.c:1025
-#, c-format
-msgid "trustdb: read failed (n=%d): %s\n"
-msgstr ""
-
-#: g10/tdbio.c:1046
-#, c-format
-msgid "%s: not a trustdb file\n"
-msgstr ""
-
-#: g10/tdbio.c:1062
-#, c-format
-msgid "%s: version record with recnum %lu\n"
-msgstr ""
-
-#: g10/tdbio.c:1067
-#, c-format
-msgid "%s: invalid file version %d\n"
-msgstr ""
-
-#: g10/tdbio.c:1343
-#, c-format
-msgid "%s: error reading free record: %s\n"
-msgstr ""
-
-#: g10/tdbio.c:1351
-#, c-format
-msgid "%s: error writing dir record: %s\n"
-msgstr ""
-
-#: g10/tdbio.c:1361
-#, c-format
-msgid "%s: failed to zero a record: %s\n"
-msgstr ""
-
-#: g10/tdbio.c:1391
-#, c-format
-msgid "%s: failed to append a record: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:128
-msgid "The trust DB is corrupted; please run \"gpgm --fix-trust-db\".\n"
-msgstr ""
-
-#: g10/trustdb.c:141
-#, c-format
-msgid "trust record %lu, req type %d: read failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:156
-#, c-format
-msgid "trust record %lu, type %d: write failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:170
-#, c-format
-msgid "trust record %lu: delete failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:184
-#, c-format
-msgid "trust db: sync failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:313
-#, c-format
-msgid "error reading dir record for LID %lu: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:320
-#, c-format
-msgid "lid %lu: expected dir record, got type %d\n"
-msgstr ""
-
-#: g10/trustdb.c:325
-#, c-format
-msgid "no primary key for LID %lu\n"
-msgstr ""
-
-#: g10/trustdb.c:330
-#, c-format
-msgid "error reading primary key for LID %lu: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:406
-#, c-format
-msgid "chained sigrec %lu has a wrong owner\n"
-msgstr ""
-
-#: g10/trustdb.c:460
-#, c-format
-msgid "NOTE: secret key %08lX is NOT protected.\n"
-msgstr ""
-
-#: g10/trustdb.c:467
-#, c-format
-msgid "key %08lX: secret key without public key - skipped\n"
-msgstr ""
-
-#: g10/trustdb.c:473
-#, c-format
-msgid "key %08lX: secret and public key don't match\n"
-msgstr ""
-
-#: g10/trustdb.c:483
-#, c-format
-msgid "key %08lX: can't put it into the trustdb\n"
-msgstr ""
-
-#: g10/trustdb.c:489
-#, c-format
-msgid "key %08lX: query record failed\n"
-msgstr ""
-
-#: g10/trustdb.c:498
-#, c-format
-msgid "key %08lX: already in secret key table\n"
-msgstr ""
-
-#: g10/trustdb.c:501
-#, c-format
-msgid "key %08lX: accepted as secret key.\n"
-msgstr ""
-
-#: g10/trustdb.c:508
-#, c-format
-msgid "enumerate secret keys failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:682
-#, c-format
-msgid "lid %lu: read dir record failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:691
-#, c-format
-msgid "lid %lu: read key record failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:701
-#, c-format
-msgid "lid %lu: read uid record failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:710
-#, c-format
-msgid "lid %lu: read pref record failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:720
-#, c-format
-msgid "lid %lu: read sig record failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:915
-msgid "Ooops, no keys\n"
-msgstr ""
-
-#: g10/trustdb.c:919
-msgid "Ooops, no user ids\n"
-msgstr ""
-
-#: g10/trustdb.c:990 g10/trustdb.c:1008
-#, c-format
-msgid "user '%s' read problem: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:993 g10/trustdb.c:1011
-#, c-format
-msgid "user '%s' list problem: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1001 g10/trustdb.c:1216
-#, c-format
-msgid "user '%s' not found: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1003 g10/trustdb.c:1218
-#, c-format
-msgid "problem finding '%s' in trustdb: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1006
-#, c-format
-msgid "user '%s' not in trustdb\n"
-msgstr ""
-
-#: g10/trustdb.c:1041
-#, c-format
-msgid ""
-"# List of assigned trustvalues, created %s\n"
-"# (Use \"gpgm --import-ownertrust\" to restore them)\n"
-msgstr ""
-
-#: g10/trustdb.c:1047
-msgid "directory record w/o primary key\n"
-msgstr ""
-
-#: g10/trustdb.c:1054
-#, c-format
-msgid "error reading key record: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1094
-msgid "line to long\n"
-msgstr ""
-
-#: g10/trustdb.c:1102
-msgid "error: missing colon\n"
-msgstr ""
-
-#: g10/trustdb.c:1107
-msgid "error: invalid fingerprint\n"
-msgstr ""
-
-#: g10/trustdb.c:1111
-#, fuzzy
-msgid "error: no ownertrust value\n"
-msgstr ""
-"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."
-
-#: g10/trustdb.c:1125
-#, c-format
-msgid "LID %lu: changing trust from %u to %u\n"
-msgstr ""
-
-#: g10/trustdb.c:1128
-#, c-format
-msgid "LID %lu: setting trust to %u\n"
-msgstr ""
-
-#: g10/trustdb.c:1136
-msgid "key not in trustdb, searching ring.\n"
-msgstr ""
-
-#: g10/trustdb.c:1139
-#, c-format
-msgid "key not in ring: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1143
-msgid "Oops: key is now in trustdb???\n"
-msgstr ""
-
-#. update the ownertrust
-#: g10/trustdb.c:1148
-#, c-format
-msgid "insert trust record failed: %s\n"
-msgstr ""
-
-#. error
-#: g10/trustdb.c:1154
-#, c-format
-msgid "error finding dir record: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1221
-#, c-format
-msgid "user '%s' not in trustdb - inserting\n"
-msgstr ""
-
-#: g10/trustdb.c:1224
-#, c-format
-msgid "failed to put '%s' into trustdb: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1271
-#, c-format
-msgid "%s: keyblock read problem: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1285
-#, c-format
-msgid "%s: update failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1288
-#, c-format
-msgid "%s: updated\n"
-msgstr ""
-
-#: g10/trustdb.c:1290
-#, c-format
-msgid "%s: okay\n"
-msgstr ""
-
-#: g10/trustdb.c:1305
-#, c-format
-msgid "lid %lu: dir record w/o key - skipped\n"
-msgstr ""
-
-#: g10/trustdb.c:1318
-#, c-format
-msgid "lid %lu: keyblock not found: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1327 g10/trustdb.c:1396
-#, c-format
-msgid "lid %lu: update failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1333 g10/trustdb.c:1402
-#, c-format
-msgid "lid %lu: updated\n"
-msgstr ""
-
-#: g10/trustdb.c:1337 g10/trustdb.c:1406
-#, c-format
-msgid "lid %lu: okay\n"
-msgstr ""
-
-#: g10/trustdb.c:1344 g10/trustdb.c:1412
-#, c-format
-msgid "%lu keys processed\n"
-msgstr ""
-
-#: g10/trustdb.c:1346
-#, c-format
-msgid "\t%lu keys skipped\n"
-msgstr ""
-
-#: g10/trustdb.c:1348 g10/trustdb.c:1414
-#, c-format
-msgid "\t%lu keys with errors\n"
-msgstr ""
-
-#: g10/trustdb.c:1350 g10/trustdb.c:1416
-#, c-format
-msgid "\t%lu keys updated\n"
-msgstr ""
-
-#: g10/trustdb.c:1380
-#, c-format
-msgid "lid ?: insert failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1385
-#, c-format
-msgid "lid %lu: insert failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1391
-#, c-format
-msgid "lid %lu: inserted\n"
-msgstr ""
-
-#: g10/trustdb.c:1418
-#, c-format
-msgid "\t%lu keys inserted\n"
-msgstr ""
-
-#: g10/trustdb.c:1421
-#, c-format
-msgid "enumerate keyblocks failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1466
-#, c-format
-msgid "check_trust: search dir record failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1473
-#, c-format
-msgid "key %08lX: insert trust record failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1477
-#, c-format
-msgid "key %08lX.%lu: inserted into trustdb\n"
-msgstr ""
-
-#: g10/trustdb.c:1485
-#, c-format
-msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
-msgstr ""
-
-#: g10/trustdb.c:1492
-#, c-format
-msgid "key %08lX.%lu: expired at %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1500
-#, c-format
-msgid "key %08lX.%lu: trust check failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1669 g10/trustdb.c:1698 g10/trustdb.c:2428
-msgid "WARNING: can't yet handle long pref records\n"
-msgstr ""
-
-#: g10/trustdb.c:1720
-#, c-format
-msgid "get_dir_record: search_record failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1783
-#, c-format
-msgid "NOTE: sig rec %lu[%d] in hintlist of %lu but marked as checked\n"
-msgstr ""
-
-#: g10/trustdb.c:1787
-#, c-format
-msgid "NOTE: sig rec %lu[%d] in hintlist of %lu but not marked\n"
-msgstr ""
-
-#. we need the dir record
-#: g10/trustdb.c:1794
-#, c-format
-msgid "sig rec %lu[%d] in hintlist of %lu does not point to a dir record\n"
-msgstr ""
-
-#: g10/trustdb.c:1800
-#, c-format
-msgid "lid %lu: no primary key\n"
-msgstr ""
-
-#: g10/trustdb.c:1833
-#, c-format
-msgid "lid %lu: user id not found in keyblock\n"
-msgstr ""
-
-#: g10/trustdb.c:1837
-#, c-format
-msgid "lid %lu: user id without signature\n"
-msgstr ""
-
-#: g10/trustdb.c:1844
-#, c-format
-msgid "lid %lu: self-signature in hintlist\n"
-msgstr ""
-
-#: g10/trustdb.c:1855 g10/trustdb.c:2565 g10/trustdb.c:2647
-msgid "Valid certificate revocation"
-msgstr ""
-
-#: g10/trustdb.c:1856 g10/trustdb.c:2566 g10/trustdb.c:2648
-msgid "Good certificate"
-msgstr ""
-
-#: g10/trustdb.c:1865
-msgid "very strange: no public key\n"
-msgstr ""
-
-#: g10/trustdb.c:1913
-#, c-format
-msgid "hintlist %lu[%d] of %lu does not point to a dir record\n"
-msgstr ""
-
-#: g10/trustdb.c:1919
-#, c-format
-msgid "lid %lu does not have a key\n"
-msgstr ""
-
-#: g10/trustdb.c:1929
-#, c-format
-msgid "lid %lu: can't get keyblock: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:1986 g10/trustdb.c:2889
-#, c-format
-msgid "tdbio_search_dir failed: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:2139
-#, c-format
-msgid "key %08lX.%lu: Good subkey binding\n"
-msgstr ""
-
-#: g10/trustdb.c:2145 g10/trustdb.c:2187
-#, c-format
-msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:2160
-#, c-format
-msgid "key %08lX.%lu: Valid key revocation\n"
-msgstr ""
-
-#: g10/trustdb.c:2166
-#, c-format
-msgid "key %08lX.%lu: Invalid key revocation: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:2181
-#, c-format
-msgid "key %08lX.%lu: Valid subkey revocation\n"
-msgstr ""
-
-#: g10/trustdb.c:2281
-msgid "Good self-signature"
-msgstr ""
-
-#: g10/trustdb.c:2289
-msgid "Invalid self-signature"
-msgstr ""
-
-#: g10/trustdb.c:2300
-msgid "Valid user ID revocation\n"
-msgstr ""
-
-#: g10/trustdb.c:2307
-msgid "Invalid user ID revocation"
-msgstr ""
-
-#: g10/trustdb.c:2391
-msgid "Too many preferences"
-msgstr ""
-
-#: g10/trustdb.c:2405
-msgid "Too many preference items"
-msgstr ""
-
-#: g10/trustdb.c:2544
-msgid "Duplicated certificate - deleted"
-msgstr ""
-
-#: g10/trustdb.c:2576
-msgid "Hmmm, public key lost?"
-msgstr ""
-
-#: g10/trustdb.c:2585 g10/trustdb.c:2668
-msgid "Invalid certificate revocation"
-msgstr ""
-
-#: g10/trustdb.c:2586 g10/trustdb.c:2669
-msgid "Invalid certificate"
-msgstr ""
-
-#: g10/trustdb.c:2601
-#, c-format
-msgid "uid %08lX.%lu/%02X%02X: has shadow dir %lu but is not yet marked.\n"
-msgstr ""
-
-#: g10/trustdb.c:2615
-#, c-format
-msgid "sig record %lu[%d] points to wrong record.\n"
-msgstr ""
-
-#. that should never happen
-#: g10/trustdb.c:2859
-#, c-format
-msgid "insert_trust_record: keyblock not found: %s\n"
-msgstr ""
-
-#: g10/trustdb.c:2877
-msgid "did not use primary key for insert_trust_record()\n"
-msgstr ""
-
-#: g10/ringedit.c:277
-#, c-format
-msgid "%s: can't create keyring: %s\n"
-msgstr ""
-
-#: g10/ringedit.c:283 g10/ringedit.c:1239
-#, c-format
-msgid "%s: keyring created\n"
-msgstr ""
-
-#: g10/ringedit.c:1412
-msgid "WARNING: 2 files with confidential information exists.\n"
-msgstr ""
-
-#: g10/ringedit.c:1413
-#, c-format
-msgid "%s is the unchanged one\n"
-msgstr ""
-
-#: g10/ringedit.c:1414
-#, c-format
-msgid "%s is the new one\n"
-msgstr ""
-
-#: g10/ringedit.c:1415
-msgid "Please fix this possible security flaw\n"
-msgstr ""
-
-#: g10/skclist.c:94
-#, c-format
-msgid "skipped '%s': %s\n"
-msgstr ""
-
-#: g10/skclist.c:100
-#, c-format
-msgid ""
-"skipped '%s': this is a PGP generated ElGamal key which is not secure for "
-"signatures!\n"
-msgstr ""
-
-#: g10/status.c:246
-msgid "No help available"
-msgstr ""
-
-#: g10/status.c:252
-#, c-format
-msgid "No help available for '%s'"
-msgstr ""
-
-#. do not overwrite
-#: g10/openfile.c:58
-#, c-format
-msgid "File '%s' exists. "
-msgstr ""
-
-#: g10/openfile.c:59
-msgid "openfile.overwrite.okay"
-msgstr ""
-
-#: g10/openfile.c:60
-msgid "Overwrite (y/N)? "
-msgstr ""
-
-#: g10/openfile.c:85
-msgid "writing to stdout\n"
-msgstr ""
-
-#: g10/openfile.c:134
-#, c-format
-msgid "assuming signed data in '%s'\n"
-msgstr ""
-
-#: g10/openfile.c:181
-#, c-format
-msgid "%s: new options file created\n"
-msgstr ""
-
-#: g10/encr-data.c:59
-#, c-format
-msgid "%s encrypted data\n"
-msgstr ""
-
-#: g10/encr-data.c:61
-#, c-format
-msgid "encrypted with unknown algorithm %d\n"
-msgstr ""
-
-#: g10/encr-data.c:74
-msgid ""
-"WARNING: Message was encrypted with a weak key in the symmetric cipher.\n"
-msgstr ""
-
-#: g10/seskey.c:52
-msgid "weak key created - retrying\n"
-msgstr ""
-
-#: g10/seskey.c:57
-#, c-format
-msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
-msgstr ""
diff --git a/scripts/ChangeLog b/scripts/ChangeLog
index 7bf0c509d..61034c23a 100644
--- a/scripts/ChangeLog
+++ b/scripts/ChangeLog
@@ -1,6 +1,12 @@
+Fri Nov 27 12:39:29 CET 1998 Werner Koch <[email protected]>
+
+
+ * commit: New
+
+
Fri Nov 20 12:01:57 1998 Werner Koch ([email protected])
- * mkdiff: signs the pacth file
+ * mkdiff: signs the patch file
Sat Oct 17 16:10:16 1998 Werner Koch ([email protected])
diff --git a/scripts/commit b/scripts/commit
new file mode 100755
index 000000000..18e540078
--- /dev/null
+++ b/scripts/commit
@@ -0,0 +1,28 @@
+#!/bin/bash
+# need a Posix shell, so we simply use bash
+
+set -e
+
+uid=`id -u`
+date=`date`
+name=$(awk -F: "\$3==$uid { print \$5 }" /etc/passwd )
+addr="<`id -un`@`hostname -d`>"
+
+for i in `find . -name Changes -print`; do
+ dir=`dirname $i`
+ if [ -s $dir/Changes ]; then
+ lines=`wc -l <$dir/Changes`
+ echo "$date $name $addr" >$dir/ChangeLog.new
+ echo >>$dir/ChangeLog.new
+ cat $dir/Changes >>$dir/ChangeLog.new
+ echo >>$dir/ChangeLog.new
+ [ -f $dir/ChangeLog ] && cat $dir/ChangeLog >>$dir/ChangeLog.new
+ echo -n > $dir/Changes
+ [ -f $dir/ChangeLog ] && rm $dir/ChangeLog
+ mv $dir/ChangeLog.new $dir/ChangeLog
+ echo "$lines new lines in $dir/ChangeLog"
+ fi
+done
+
+cvs commit -m "See ChangeLog: $date $name" $*
+