This commit was manufactured by cvs2svn to create branch
authorRepo Admin <nobody@gnupg.org>
Thu, 9 Jan 2003 13:29:36 +0000 (13:29 +0000)
committerRepo Admin <nobody@gnupg.org>
Thu, 9 Jan 2003 13:29:36 +0000 (13:29 +0000)
'GNUPG-1-9-BRANCH'.

19 files changed:
agent/cache.c [new file with mode: 0644]
common/isascii.c [new file with mode: 0644]
common/putc_unlocked.c [new file with mode: 0644]
common/signal.c [new file with mode: 0644]
doc/ChangeLog [new file with mode: 0644]
g10/delkey.c [new file with mode: 0644]
g10/pubkey-enc.c [new file with mode: 0644]
g10/status.h [new file with mode: 0644]
include/_regex.h [new file with mode: 0644]
include/distfiles [new file with mode: 0644]
include/ttyio.h [new file with mode: 0644]
include/zlib-riscos.h [new file with mode: 0644]
po/de.po [new file with mode: 0644]
scripts/config.guess [new file with mode: 0755]
scripts/config.sub [new file with mode: 0755]
tests/ChangeLog [new file with mode: 0644]
tests/Makefile.am [new file with mode: 0644]
tests/asschk.c [new file with mode: 0644]
tests/inittests [new file with mode: 0755]

diff --git a/agent/cache.c b/agent/cache.c
new file mode 100644 (file)
index 0000000..b6ab550
--- /dev/null
@@ -0,0 +1,314 @@
+/* cache.c - keep a cache of passphrases
+ *     Copyright (C) 2002 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 <time.h>
+#include <assert.h>
+
+#include "agent.h"
+
+struct secret_data_s {
+  int  totallen; /* this includes the padding */
+  int  datalen;  /* actual data length */
+  char data[1];
+};
+
+typedef struct cache_item_s *ITEM;
+struct cache_item_s {
+  ITEM next;
+  time_t created;
+  time_t accessed;
+  int  ttl;  /* max. lifetime given in seonds */
+  int lockcount;
+  struct secret_data_s *pw;
+  char key[1];
+};
+
+
+static ITEM thecache;
+
+
+static void
+release_data (struct secret_data_s *data)
+{
+   xfree (data);
+}
+
+static struct secret_data_s *
+new_data (const void *data, size_t length)
+{
+  struct secret_data_s *d;
+  int total;
+
+  /* we pad the data to 32 bytes so that it get more complicated
+     finding something out by watching allocation patterns.  This is
+     usally not possible but we better assume nothing about our
+     secure storage provider*/
+  total = length + 32 - (length % 32);
+
+  d = gcry_malloc_secure (sizeof *d + total - 1);
+  if (d)
+    {
+      d->totallen = total;
+      d->datalen  = length;
+      memcpy (d->data, data, length);
+    }
+  return d;
+}
+
+
+/* check whether there are items to expire */
+static void
+housekeeping (void)
+{
+  ITEM r, rprev;
+  time_t current = gnupg_get_time ();
+
+  /* first expire the actual data */
+  for (r=thecache; r; r = r->next)
+    {
+      if (!r->lockcount && r->pw && r->accessed + r->ttl < current)
+        {
+          if (DBG_CACHE)
+            log_debug ("  expired `%s' (%ds after last access)\n",
+                       r->key, r->ttl);
+          release_data (r->pw);
+          r->pw = NULL;
+          r->accessed = current;
+        }
+    }
+
+  /* second, make sure that we also remove them based on the created stamp so
+     that the user has to enter it from time to time.  We do this every hour */
+  for (r=thecache; r; r = r->next)
+    {
+      if (!r->lockcount && r->pw && r->created + 60*60 < current)
+        {
+          if (DBG_CACHE)
+            log_debug ("  expired `%s' (1h after creation)\n", r->key);
+          release_data (r->pw);
+          r->pw = NULL;
+          r->accessed = current;
+        }
+    }
+
+  /* third, make sure that we don't have too many items in the list.
+     Expire old and unused entries after 30 minutes */
+  for (rprev=NULL, r=thecache; r; )
+    {
+      if (!r->pw && r->accessed + 60*30 < current)
+        {
+          if (r->lockcount)
+            {
+              log_error ("can't remove unused cache entry `%s' due to"
+                         " lockcount=%d\n",
+                         r->key, r->lockcount);
+              r->accessed += 60*10; /* next error message in 10 minutes */
+              rprev = r;
+              r = r->next;
+            }
+          else
+            {
+              ITEM r2 = r->next;
+              if (DBG_CACHE)
+                log_debug ("  removed `%s' (slot not used for 30m)\n", r->key);
+              xfree (r);
+              if (!rprev)
+                thecache = r2;
+              else
+                rprev->next = r2;
+              r = r2;
+            }
+        }
+      else
+        {
+          rprev = r;
+          r = r->next;
+        }
+    }
+}
+
+
+void
+agent_flush_cache (void)
+{
+  ITEM r;
+
+  if (DBG_CACHE)
+    log_debug ("agent_flush_cache\n");
+
+  for (r=thecache; r; r = r->next)
+    {
+      if (!r->lockcount && r->pw)
+        {
+          if (DBG_CACHE)
+            log_debug ("  flushing `%s'\n", r->key);
+          release_data (r->pw);
+          r->pw = NULL;
+          r->accessed = 0;
+        }
+      else if (r->lockcount && r->pw)
+        {
+          if (DBG_CACHE)
+            log_debug ("    marked `%s' for flushing\n", r->key);
+          r->accessed = 0;
+          r->ttl = 0;
+        }
+    }
+}
+
+
+
+/* Store DATA of length DATALEN in the cache under KEY and mark it
+   with a maximum lifetime of TTL seconds.  If there is already data
+   under this key, it will be replaced.  Using a DATA of NULL deletes
+   the entry */
+int
+agent_put_cache (const char *key, const char *data, int ttl)
+{
+  ITEM r;
+
+  if (DBG_CACHE)
+    log_debug ("agent_put_cache `%s'\n", key);
+  housekeeping ();
+
+  if (ttl < 1)
+    ttl = opt.def_cache_ttl;
+  if (!ttl)
+    return 0;
+
+  for (r=thecache; r; r = r->next)
+    {
+      if (!r->lockcount && !strcmp (r->key, key))
+        break;
+    }
+  if (r)
+    { /* replace */
+      if (r->pw)
+        {
+          release_data (r->pw);
+          r->pw = NULL;
+        }
+      if (data)
+        {
+          r->created = r->accessed = gnupg_get_time (); 
+          r->ttl = ttl;
+          r->pw = new_data (data, strlen (data)+1);
+          if (!r->pw)
+            log_error ("out of core while allocating new cache item\n");
+        }
+    }
+  else if (data)
+    { /* simply insert */
+      r = xtrycalloc (1, sizeof *r + strlen (key));
+      if (!r)
+        log_error ("out of core while allocating new cache control\n");
+      else
+        {
+          strcpy (r->key, key);
+          r->created = r->accessed = gnupg_get_time (); 
+          r->ttl = ttl;
+          r->pw = new_data (data, strlen (data)+1);
+          if (!r->pw)
+            {
+              log_error ("out of core while allocating new cache item\n");
+              xfree (r);
+            }
+          else
+            {
+              r->next = thecache;
+              thecache = r;
+            }
+        }
+    }
+  return 0;
+}
+
+
+/* Try to find an item in the cache */
+const char *
+agent_get_cache (const char *key, void **cache_id)
+{
+  ITEM r;
+
+  if (DBG_CACHE)
+    log_debug ("agent_get_cache `%s'...\n", key);
+  housekeeping ();
+
+  /* first try to find one with no locks - this is an updated cache
+     entry: We might have entries with a lockcount and without a
+     lockcount. */
+  for (r=thecache; r; r = r->next)
+    {
+      if (!r->lockcount && r->pw && !strcmp (r->key, key))
+        {
+          /* put_cache does only put strings into the cache, so we
+             don't need the lengths */
+          r->accessed = gnupg_get_time ();
+          if (DBG_CACHE)
+            log_debug ("... hit\n");
+          r->lockcount++;
+          *cache_id = r;
+          return r->pw->data;
+        }
+    }
+  /* again, but this time get even one with a lockcount set */
+  for (r=thecache; r; r = r->next)
+    {
+      if (r->pw && !strcmp (r->key, key))
+        {
+          r->accessed = gnupg_get_time ();
+          if (DBG_CACHE)
+            log_debug ("... hit (locked)\n");
+          r->lockcount++;
+          *cache_id = r;
+          return r->pw->data;
+        }
+    }
+  if (DBG_CACHE)
+    log_debug ("... miss\n");
+
+  *cache_id = NULL;
+  return NULL;
+}
+
+
+void
+agent_unlock_cache_entry (void **cache_id)
+{
+  ITEM r;
+
+  for (r=thecache; r; r = r->next)
+    {
+      if (r == *cache_id)
+        {
+          if (!r->lockcount)
+            log_error ("trying to unlock non-locked cache entry `%s'\n",
+                       r->key);
+          else
+            r->lockcount--;
+          return;
+        }
+    }
+}
diff --git a/common/isascii.c b/common/isascii.c
new file mode 100644 (file)
index 0000000..565c716
--- /dev/null
@@ -0,0 +1,29 @@
+/* isascii.c - Replacement for isascii.
+ * Copyright (C) 2002 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
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+int
+isascii (int c)
+{
+  return (((c) & ~0x7f) == 0);
+}
diff --git a/common/putc_unlocked.c b/common/putc_unlocked.c
new file mode 100644 (file)
index 0000000..02c6461
--- /dev/null
@@ -0,0 +1,31 @@
+/* putc_unlocked.c - Replacement for putc_unlocked.
+ * Copyright (C) 2002 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
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+
+int
+putc_unlocked (int c, FILE *stream)
+{
+  return putc (c, stream);
+}
diff --git a/common/signal.c b/common/signal.c
new file mode 100644 (file)
index 0000000..dc026c1
--- /dev/null
@@ -0,0 +1,226 @@
+/* signal.c - signal handling
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002 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 <signal.h>
+#include <unistd.h>
+#include <string.h>
+#include <errno.h>
+#include <assert.h>
+
+#include "util.h"
+
+
+static volatile int caught_fatal_sig;
+static volatile int caught_sigusr1;
+static void (*cleanup_fnc)(void);
+
+
+static void
+init_one_signal (int sig, RETSIGTYPE (*handler)(int), int check_ign )
+{
+#ifndef HAVE_DOSISH_SYSTEM
+# ifdef HAVE_SIGACTION
+  struct sigaction oact, nact;
+  
+  if (check_ign)
+    {
+      /* we don't want to change an IGN handler */
+      sigaction (sig, NULL, &oact );
+      if (oact.sa_handler == SIG_IGN )
+        return;
+    }
+
+  nact.sa_handler = handler;
+  sigemptyset (&nact.sa_mask);
+  nact.sa_flags = 0;
+  sigaction ( sig, &nact, NULL);
+# else 
+  RETSIGTYPE (*ohandler)(int);
+  
+  ohandler = signal (sig, handler);
+  if (check_ign && ohandler == SIG_IGN) 
+    {
+      /* Change it back if it was already set to IGN */
+      signal (sig, SIG_IGN);
+    }
+# endif
+#endif /*!HAVE_DOSISH_SYSTEM*/
+}
+
+static const char *
+get_signal_name( int signum )
+{
+#if defined(SYS_SIGLIST_DECLARED) && defined(NSIG)
+  return (signum >= 0 && signum < NSIG) ? sys_siglist[signum] : "?";
+#else
+  return "some signal";
+#endif
+}
+
+static RETSIGTYPE
+got_fatal_signal (int sig)
+{
+  const char *s;
+
+  if (caught_fatal_sig)
+       raise (sig);
+  caught_fatal_sig = 1;
+
+  if (cleanup_fnc)
+    cleanup_fnc ();
+  /* better don't translate these messages */
+  write (2, "\n", 1 );
+  s = log_get_prefix (NULL);
+  if (s)
+    write(2, s, strlen (s));
+  write (2, ": ", 2 );
+  s = get_signal_name(sig);
+  write (2, s, strlen(s) );
+  write (2, " caught ... exiting\n", 20);
+  
+  /* reset action to default action and raise signal again */
+  init_one_signal (sig, SIG_DFL, 0);
+  /* fixme: remove_lockfiles ();*/
+#ifdef __riscos__
+  close_fds ();
+#endif /* __riscos__ */
+  raise( sig );
+}
+
+
+static RETSIGTYPE
+got_usr_signal (int sig)
+{
+  caught_sigusr1 = 1;
+}
+
+
+void
+gnupg_init_signals (int mode, void (*fast_cleanup)(void))
+{
+  assert (!mode);
+
+  cleanup_fnc = fast_cleanup;
+#ifndef HAVE_DOSISH_SYSTEM
+  init_one_signal (SIGINT, got_fatal_signal, 1 );
+  init_one_signal (SIGHUP, got_fatal_signal, 1 );
+  init_one_signal (SIGTERM, got_fatal_signal, 1 );
+  init_one_signal (SIGQUIT, got_fatal_signal, 1 );
+  init_one_signal (SIGSEGV, got_fatal_signal, 1 );
+  init_one_signal (SIGUSR1, got_usr_signal, 0 );
+  init_one_signal (SIGPIPE, SIG_IGN, 0 );
+#endif
+}
+
+void
+gnupg_pause_on_sigusr (int which)
+{
+#ifndef HAVE_DOSISH_SYSTEM
+# ifdef HAVE_SIGPROCMASK
+  sigset_t mask, oldmask;
+
+  assert (which == 1);
+  sigemptyset( &mask );
+  sigaddset( &mask, SIGUSR1 );
+  
+  sigprocmask( SIG_BLOCK, &mask, &oldmask );
+  while (!caught_sigusr1)
+    sigsuspend (&oldmask);
+  caught_sigusr1 = 0;
+  sigprocmask (SIG_UNBLOCK, &mask, NULL);
+# else 
+  assert (which == 1);
+  sighold (SIGUSR1);
+  while (!caught_sigusr1)
+    sigpause(SIGUSR1);
+  caught_sigusr1 = 0;
+  sigrelease(SIGUSR1);
+# endif /*!HAVE_SIGPROCMASK*/
+#endif
+}
+
+
+static void
+do_block( int block )
+{
+#ifndef HAVE_DOSISH_SYSTEM
+  static int is_blocked;
+#ifdef HAVE_SIGPROCMASK
+  static sigset_t oldmask;
+
+  if (block)
+    {
+      sigset_t newmask;
+
+      if (is_blocked)
+        log_bug ("signals are already blocked\n");
+      sigfillset( &newmask );
+      sigprocmask( SIG_BLOCK, &newmask, &oldmask );
+      is_blocked = 1;
+    }
+  else
+    {
+      if (!is_blocked)
+        log_bug("signals are not blocked\n");
+      sigprocmask (SIG_SETMASK, &oldmask, NULL);
+      is_blocked = 0;
+    }
+#else /*!HAVE_SIGPROCMASK*/
+  static void (*disposition[MAXSIG])();
+  int sig;
+
+  if (block)
+    {
+      if (is_blocked)
+        log_bug("signals are already blocked\n");
+      for (sig=1; sig < MAXSIG; sig++)
+        {
+          disposition[sig] = sigset (sig, SIG_HOLD);
+        }
+      is_blocked = 1;
+    }
+  else
+    {
+      if (!is_blocked)
+        log_bug ("signals are not blocked\n");
+      for (sig=1; sig < MAXSIG; sig++) {
+        sigset (sig, disposition[sig]);
+      }
+      is_blocked = 0;
+    }
+#endif /*!HAVE_SIGPROCMASK*/
+#endif /*HAVE_DOSISH_SYSTEM*/
+}
+
+
+void
+gnupg_block_all_signals ()
+{
+  do_block(1);
+}
+
+void
+gnupg_unblock_all_signals ()
+{
+  do_block(0);
+}
diff --git a/doc/ChangeLog b/doc/ChangeLog
new file mode 100644 (file)
index 0000000..628793a
--- /dev/null
@@ -0,0 +1,593 @@
+2003-01-06  David Shaw  <dshaw@jabberwocky.com>
+
+       * DETAILS: Document disabled flag in capabilities field.
+
+2002-12-27  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Clarify --no-permission-warning to note that the
+       permission warnings are not intended to be the be-all and end-all
+       in security checks.  Add note to --group that when used on the
+       command line, it may be necessary to quote the argument so it is
+       not treated as multiple arguments.  Noted by Stefan Bellon.
+
+2002-12-23  Werner Koch  <wk@gnupg.org>
+
+       * samplekeys.asc: Updated.
+
+2002-12-10  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Clarify include-revoked and include-disabled so they
+       match what the program actually does.  Noted by Dick Gevers.
+
+       * gpg.sgml: Document %-expandos for policy URLs and notations.
+
+       * gpg.sgml: Document --pgp8.  Clarify that --pgp6 and --pgp7
+       disable --throw-keyid.
+
+2002-12-05  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Document --no-mangle-dos-filenames.
+
+2002-12-01  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Point out that if the user absolutely must, it's
+       better to use --pgpX than forcing an algorithm manually.  Better
+       still not to use anything, of course.
+
+2002-11-25  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Document --primary-keyring.  Clarify
+       --s2k-cipher-algo, --s2k-digest-algo,
+       --personal-cipher-preferences, --personal-digest-preferences, and
+       --personal-compress-preferences.
+
+       * gpg.sgml: Document --sig-policy-url, --cert-policy-url,
+       --sig-notation, --cert-notation.  Clarify --show-notation and
+       --show-policy-url that policy URLs and notations can be used in
+       data signatures as well.  Add note about '@' being a required
+       character in notation names.
+
+2002-11-21  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Add an interoperability section.
+
+2002-11-17  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Correct defaults for --s2k-mode and --s2k-digest-mode.
+       Noted by Haakon Riiser.
+
+2002-11-14  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: --compress-algo now allows algorithm names.
+
+2002-11-13  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Document --trust-model.
+
+2002-11-04  David Shaw  <dshaw@jabberwocky.com>
+
+       * KEYSERVER: New.  Documents the --with-colons format for
+       keyserver listings.
+
+       * DETAILS: Clarify meaning of 'u'.  Noted by Timo.
+
+2002-11-03  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Document "tsign", clarify "setpref", clarify
+       --recipient, document --hidden-recipient, document
+       --hidden-encrypt-to, clarify --no-encrypt-to, clarify
+       --throw-keyid, document --no-throw-keyid.
+
+2002-10-25  Werner Koch  <wk@gnupg.org>
+
+        * README.W32: Add blurb on how to create a ZIP file, changed
+        requirement for mingw32 to 0.3.2.
+
+2002-10-24  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Document --refresh-keys.
+
+2002-10-19  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Clarify --force-mdc, and document --disable-mdc.
+
+2002-10-12  Werner Koch  <wk@gnupg.org>
+
+       * DETAILS (KEY_CREATED): Enhanced by fingerprint.
+
+2002-10-03  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Note that '#' means secret-key-unavailable, and that
+       keyserver schemes are case-insensitive.
+
+2002-09-30  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Note that --pgp2 disables --textmode when encrypting.
+
+2002-09-20  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Some minor language cleanup.
+
+2002-09-20  Werner Koch  <wk@gnupg.org>
+
+       * DETAILS: s/XORed/ORed/.
+
+2002-09-15  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Add rebuild-keydb-caches.
+
+2002-09-12  David Shaw  <dshaw@jabberwocky.com>
+
+       * DETAILS: Fix batch key generation example.
+
+2002-09-11  Werner Koch  <wk@gnupg.org>
+
+       * Makefile.am (EXTRA_DIST): Include gnupg-32.reg
+
+2002-09-02  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Updated the charset option.
+
+       * DETAILS: Added status IMPORT_OK.
+
+       * gnupg.7: New mini man page.
+
+2002-08-30  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Document keyserver-option include-subkeys.  Note that
+       honor-http-proxy is a keyserver-option now.
+
+       * DETAILS: Add "Key not trusted" to INV_RECP status code.
+
+2002-08-23  Werner Koch  <wk@gnupg.org>
+
+       * faq.raw: Updated.  New Maintainer is David D. Scribner.
+
+2002-08-22  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Clarify meaning of keyserver option include-revoked.
+
+2002-08-21  Werner Koch  <wk@gnupg.org>
+
+       * DETAILS: Added IMPORT_PROBLEM.
+
+2002-08-20  David Shaw  <dshaw@jabberwocky.com>
+
+       * DETAILS: Clarify that trust letters 'q' and '-' can be treated
+       identically.
+
+       * gpg.sgml: Document --ignore-mdc-error.
+
+2002-08-06  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Clarify that only long-form options can go in the
+       config file.
+
+2002-08-06  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Fixed doc regarding the name change of the option
+       file.
+
+2002-07-30  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Clarify --edit/addrevoker (sensitive), and
+       --keyserver-options (--import/export-options may be used as well).
+       Document --import-options and --export-options with their various
+       options.  --show-photos now works during signature verification as
+       well.  Document --exec-path.  Note in --simple-sk-checksum that
+       the passphrase must be changed for this to take effect.  Note that
+       --pgp7 does not disable MDC.  Document --no-mdc-warning.
+
+2002-07-25  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Document new --delete behaviour.
+
+2002-07-25  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Clarify the differences between "pref" and "showpref".
+       Note in "setpref" that a list of available algorithms can be
+       printed with "gpg -v --version".  Note in "updpref" that we don't
+       select keys via attribute uids, so preferences there will be
+       ignored.
+
+2002-07-01  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Clarify "group".
+
+2002-07-01  Werner Koch  <wk@gnupg.org>
+
+       * Makefile.am: Due to problems with VPATH builds we don't try to
+       build the texi vesions of the manual pages anymore automatically.
+
+2002-06-30  Werner Koch  <wk@gnupg.org>
+
+       * README.W32: Adjusted some descriptions.  Fixed the regsitry
+       entry descriptions.
+
+2002-06-21  David Shaw  <dshaw@jabberwocky.com>
+
+       * DETAILS: Document "uat".
+
+       * gpg.sgml: Document
+       --personal-{compress|digest|compress}-preferences, --group, and
+       add comments to --expert.
+
+2002-06-17  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Grammar fix.
+
+2002-06-03  David Shaw  <dshaw@jabberwocky.com>
+
+       * DETAILS: Details of ATTRIBUTE.
+
+       * gpg.sgml: Document --attribute-fd
+
+2002-06-03  Timo Schulz  <ts@winpt.org>
+
+       * DETAILS: Add ATTRIBUTE.
+       
+2002-05-31  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Add "edit/addrevoker".  Document --desig-revoke.  Note
+       that -z and --compress are the same option.  Note that
+       --digest-algo can no longer violate OpenPGP with a non-160 bit
+       hash with DSA.  Document --cert-digest-algo with suitable warnings
+       not to use it.  Note the default s2k-cipher-algo is now CAST5.
+       Note that --force-v3-sigs overrides --ask-sig-expire.  Revise
+       --expert documentation, as it is now definitely legal to have more
+       than one photo ID on a key.  --preference-list is now
+       --default-preference-list with the new meaning.  Document
+       --personal-preference-list.
+
+       * DETAILS: Document "Revoker" for batch key generation.
+
+2002-05-22  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: sgml syntax fix.
+
+2002-05-12  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Fixed URL in the description section.
+
+       * faq.raw: Minor typo fixes noted by kromJx@myrealbox.com.
+
+2002-05-11  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Typo fix.
+
+2002-05-07  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Add entries for --sk-comments, --no-sk-comments,
+       --pgp7, and --no-pgp7.  Fix --pgp2 and --pgp6: the proper name is
+       --escape-from-lines and not --escape-from.
+
+2002-04-30  Timo Schulz  <ts@winpt.org>
+
+       * gpg.sgml: Add an entry for --encrypt-files and --decrypt-files.
+       
+2002-04-29  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Fix minor error in --pgp6 documentation: it does not
+       imply --digest-algo MD5
+
+2002-04-29  Werner Koch  <wk@gnupg.org>
+
+       * samplekeys.asc: Added gnupg distribution key 57548DCD.
+
+       * faq.raw: Inserted Douglas Calvert as new maintainer. Acknowledge
+       Nils.  Add entry about trust packet parsing problems.
+
+2002-04-24  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Add some documentation for
+       --edit/{addphoto|showphoto|nrsign|nrlsign}, and the difference
+       between %t and %T in photo viewer command lines.
+
+2002-04-23  Stefan Bellon  <sbellon@sbellon.de>
+
+       * gpg.sgml: Moved options from section "COMMANDS" to
+       section "OPTIONS".
+
+2002-04-20  David Shaw  <dshaw@jabberwocky.com>
+
+       * samplekeys.asc: Added 0x5B0358A2
+
+2002-04-19  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Add "%t" flag for photo IDs, a note about primary
+       having different meanings for photo and regular IDs, rename
+       --default-check-level to --default-cert-check-level, add
+       --auto-check-trustdb, and --pgp6.
+
+       * DETAILS: Add EXPSIG, EXPKEYSIG, and KEYEXPIRED.  Add notes to
+       SIGEXPIRED (deprecated), and VALIDSIG (added expiration date).
+       Add "Preferences" command to unattended key generation
+       instructions.  Also fixed a few typos.
+       * samplekeys.asc: new (added to EXTRA_DIST in Makefile.am as well)
+
+2002-01-31  Marcus Brinkmann  <marcus@g10code.de>
+
+       * DETAILS: Fix a spelling error, correct IMPORTED_RES to IMPORT_RES,
+       correct INV_RECP (the second occurence) to NO_RECP.
+
+2002-04-03  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: auto-key-retrieve is a keyserver-option (noted by
+       Roger Sondermann).
+       
+2002-03-27  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: --pgp2 also means --disable-mdc, --no-ask-sig-expire,
+       and --no-ask-cert-expire.  It does not mean --no-force-v3-sigs
+       (noted by Timo).
+
+2002-03-27  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Add a few notes about --pgp2 meaning MIT PGP 2.6.2,
+       and keyserver details about HKP and NAI HKP.
+
+2002-03-18  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Change meaning of --allow-non-selfsigned-uid to match
+       change in code, and add --no-allow-non-selfsigned-uid.
+
+2002-03-13  Werner Koch  <wk@gnupg.org>
+
+       * faq.raw: Due to a lack of time Nils can't serve anymore as a
+       maintainer.  Removed his address and setup a generic address.
+
+2002-03-06  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Add an entry for --export-ownertrust.  Suggested by
+       Bernhard Reiter.
+
+2002-01-26  Timo Schulz  <ts@winpt.org>
+
+       * gnupg-w32.reg: New. Registry file for W32 in registry format.
+       
+2002-01-26  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: A few words about --gpg-agent-info and GPG_AGENT_INFO.
+
+2002-01-25  Timo Schulz  <ts@winpt.org>
+
+       * README.W32: Modify the filename because now the .exe extension
+       is automatically added to the binary.
+       
+2002-01-14  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Talk about PGP 5 and higher.
+
+2002-01-11  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Added documentation for --{no-}ask-cert-expire,
+       --{no-}ask-sig-expire, and revise --expert (it doesn't switch on
+       the expiration prompt anymore) and --default-check-level (to be
+       clearer as to what makes a good key check before signing).
+
+2002-01-07  Werner Koch  <wk@gnupg.org>
+
+       * DETAILS: Removed the comment that unattended key generation is
+       experimental.  It is now a standard feature.
+
+2001-12-22  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.sgml: Fixed a few typos.
+
+       * gpg.sgml: Added documentation for --show-photos,
+       --no-show-photos, --photo-viewer, --nrsign-key,
+       --default-check-level, --search-keys, --keyserver-options,
+       --show-notation, --no-show-notation, --show-policy-url,
+       --no-show-policy-url, --for-your-eyes-only,
+       --no-for-your-eyes-only, --pgp2, --no-pgp2,
+       --no-permission-warning, --expert, --no-expert.
+
+2001-10-31  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Add a remark on how to get the long key ID.  Suggested
+       by Sebastian Klemke.
+
+2001-10-23  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Add missing tag.
+
+2001-09-28  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Add a note on option parsing.
+
+2001-09-24  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Described --{update,check}-trustdb.
+
+2001-09-03  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml, gpgv.sgml: Removed GDBM stuff.
+
+2001-08-29  Werner Koch  <wk@gnupg.org>
+
+       * faq.raw: Described how to delete a secret key w/o a public key
+       and changed the entry on updating the preferences.
+
+2001-08-08  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Documented --print-mds and marked the --print-md * as
+       deprecated because it does not work in the W32 version.  Suggested
+       by John Kane.
+       (WARNINGS): Typo fix.
+       (--with-colons): Clarified that the output is in UTF-8.
+
+2001-08-01  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Added --ignore-valid-from
+
+2001-04-20  Werner Koch  <wk@gnupg.org>
+
+       * faq.raw (Maintained-by): Removed note that load-extension is not
+       available under Windoze.
+
+       * gpg.sgml: Add new --charset UTF-8.
+
+2001-04-19  Werner Koch  <wk@gnupg.org>
+
+       * faq.raw: Add a note about dates displayed as ????-??-??.
+
+2001-04-17  Werner Koch  <wk@gnupg.org>
+
+       * Makefile.am (%.texi): Add rules to create .texi from .sgml.
+       However we can't automate this because automake does not like
+       .texi files as BUILT_SOURCES.
+       (%.dvi,%.ps): Removed these rules, because they are not needed
+       and get in the way of automake's dvi target
+
+       * HACKING: Changed CVS description.
+
+2001-04-06  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Small typo fixes by Florian Weimer.
+
+2001-03-27  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Add --no-sig-cache and --no-sig-create-check.
+
+2001-03-23  Werner Koch  <wk@gnupg.org>
+
+       * DETAILS: New status UNEXPECTED.
+
+2001-03-13  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Described --fixed-list-mode.
+
+2001-03-06  Werner Koch  <wk@gnupg.org>
+
+       * gpgv.sgml: Changed some gpg to gpgv. Thanks to John A. Murdie.
+
+2001-03-03  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Tell something about the 0x12345678! key ID syntax.
+
+2001-01-18  Werner Koch  <wk@gnupg.org>
+
+       * README.W32: Changed building instructions for MinGW32/CPD 0.3 
+
+2001-01-09  Werner Koch  <wk@gnupg.org>
+
+       * DETAILS: Fixed docs for NEED_PASSPHRASE and added USERID_HINT.
+
+2000-11-30  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Fixed the description of --verify.  Add a short note
+       the warnings sections.
+
+2000-10-19  Werner Koch  <wk@gnupg.org>
+
+       * gpg.sgml: Fixed doc for --allow-non-selfsigned-uid.
+       Add entry for --ignore-crc-error.
+
+2000-10-18  Werner Koch  <wk@gnupg.org>
+
+       * OpenPGP: Dropped the paragraph that RSA is not implemented.
+
+2000-10-14  Werner Koch  <wk@gnupg.org>
+
+       * faq.raw: Add an answer to the problem of multiple signatures.
+
+Wed Oct  4 15:50:18 CEST 2000  Werner Koch  <wk@openit.de>
+
+        * gpgv.sgml: New.
+        * Makefile.am: build it.
+
+Thu Sep 14 14:20:38 CEST 2000  Werner Koch  <wk@openit.de>
+
+        * faq.raw: New.
+        * Makefile.am: Support to build FAQs
+
+Wed Jul 12 13:32:06 CEST 2000  Werner Koch  <wk@>
+
+        * gpg.sgml: Add a note about the availability of the GPH.
+
+2000-07-03 13:59:24  Werner Koch  (wk@habibti.openit.de)
+
+        * DETAILS, FAQ: Typo fixes by Yosiaki IIDA.
+
+2000-05-12 10:57:21  Werner Koch  (wk@habibti.openit.de)
+
+       * gpg.sgml: Documented --no-tty.
+
+2000-03-09 15:01:51  Werner Koch  (wk@habibti.openit.de)
+
+       * DETAILS: Ad a short blurb about unattended key generation.
+
+Wed Feb  9 15:33:44 CET 2000  Werner Koch  <wk@gnupg.de>
+
+       * gpg.sgml: Describe --ignore-time-conflict.
+
+       * gpg.sgml: Fixed a few typos.  Thanks to Holger Trapp.
+
+Wed Jan  5 11:51:17 CET 2000  Werner Koch  <wk@gnupg.de>
+
+       * FAQ: Enhanced answer for the 3des-s2k bug.
+
+Sat Dec  4 12:30:28 CET 1999  Werner Koch  <wk@gnupg.de>
+
+       * gpg.sgml: Add section about the user ID
+
+Mon Nov 22 11:14:53 CET 1999  Werner Koch  <wk@gnupg.de>
+
+       * gph: Removed the directory from the dist becuase it will
+       go into it's own package.
+
+Thu Sep 23 09:52:58 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+       * README.W32: New.
+
+Mon Sep  6 19:59:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+
+       * Makefile.am (SUBDIRS): New subdir gph for the manual.
+
+Thu Jul 22 20:03:03 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+
+       * gpg.sgml (--always-trust): Added.
+
+Wed Jul 14 19:42:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+
+       * Makefile.am: Create a dummy man page if docbook-to-man is missing.
+
+Wed Jun 16 20:16:21 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+
+       * gpg1.pod: Removed.
+       * gpg.sgml: New. Replaces the pod file
+       * Makefile.am: Add rule to make a man file from sgml
+
+Tue Jun 15 12:21:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+
+       * Makefile.in.in: Use DESTDIR.
+
+Mon May 31 19:41:10 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+       * gpg.1pod: Enhanced the Bugs section (Michael).
+
+Wed Feb 10 17:15:39 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+
+       * gpg.1pod: Spelling and grammar corrections (John A. Martin)
+       * FAQ: Ditto.
+       * DETAILS: Ditto.
+
+
+ Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+
+ This file is free software; as a special exception the author gives
+ unlimited permission to copy and/or distribute it, with or without
+ modifications, as long as this notice is preserved.
+
+ This file is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+
diff --git a/g10/delkey.c b/g10/delkey.c
new file mode 100644 (file)
index 0000000..35c903c
--- /dev/null
@@ -0,0 +1,209 @@
+/* delkey.c - delete keys
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002 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 <errno.h>
+#include <assert.h>
+#include <ctype.h>
+
+#include "options.h"
+#include "packet.h"
+#include "errors.h"
+#include "iobuf.h"
+#include "keydb.h"
+#include "memory.h"
+#include "util.h"
+#include "main.h"
+#include "trustdb.h"
+#include "filter.h"
+#include "ttyio.h"
+#include "status.h"
+#include "i18n.h"
+
+
+/****************
+ * Delete a public or secret key from a keyring.
+ * r_sec_avail will be set if a secret key is available and the public
+ * key can't be deleted for that reason.
+ */
+static int
+do_delete_key( const char *username, int secret, int *r_sec_avail )
+{
+    int rc = 0;
+    KBNODE keyblock = NULL;
+    KBNODE node;
+    KEYDB_HANDLE hd = keydb_new (secret);
+    PKT_public_key *pk = NULL;
+    PKT_secret_key *sk = NULL;
+    u32 keyid[2];
+    int okay=0;
+    int yes;
+    KEYDB_SEARCH_DESC desc;
+    int exactmatch;
+
+    *r_sec_avail = 0;
+
+    /* search the userid */
+    classify_user_id (username, &desc);
+    exactmatch = (desc.mode == KEYDB_SEARCH_MODE_FPR
+                  || desc.mode == KEYDB_SEARCH_MODE_FPR16
+                  || desc.mode == KEYDB_SEARCH_MODE_FPR20);
+    rc = desc.mode? keydb_search (hd, &desc, 1):G10ERR_INV_USER_ID;
+    if (rc) {
+       log_error (_("key `%s' not found: %s\n"), username, g10_errstr (rc));
+       write_status_text( STATUS_DELETE_PROBLEM, "1" );
+       goto leave;
+    }
+
+    /* read the keyblock */
+    rc = keydb_get_keyblock (hd, &keyblock );
+    if (rc) {
+       log_error (_("error reading keyblock: %s\n"), g10_errstr(rc) );
+       goto leave;
+    }
+
+    /* get the keyid from the keyblock */
+    node = find_kbnode( keyblock, secret? PKT_SECRET_KEY:PKT_PUBLIC_KEY );
+    if( !node ) {
+       log_error("Oops; key not found anymore!\n");
+       rc = G10ERR_GENERAL;
+       goto leave;
+    }
+
+    if( secret ) {
+       sk = node->pkt->pkt.secret_key;
+       keyid_from_sk( sk, keyid );
+    }
+    else {
+       pk = node->pkt->pkt.public_key;
+       keyid_from_pk( pk, keyid );
+       rc = seckey_available( keyid );
+       if( !rc ) {
+            *r_sec_avail = 1;
+            rc = -1;
+            goto leave;
+       }
+       else if( rc != G10ERR_NO_SECKEY ) {
+           log_error("%s: get secret key: %s\n", username, g10_errstr(rc) );
+       }
+       else
+           rc = 0;
+    }
+
+    if( rc )
+       rc = 0;
+    else if (opt.batch && exactmatch)
+        okay++;
+    else if( opt.batch && secret )
+      {
+       log_error(_("can't do that in batchmode\n"));
+        log_info (_("(unless you specify the key by fingerprint)\n"));
+      }
+    else if( opt.batch && opt.answer_yes )
+       okay++;
+    else if( opt.batch )
+      {
+       log_error(_("can't do that in batchmode without \"--yes\"\n"));
+        log_info (_("(unless you specify the key by fingerprint)\n"));
+      }
+    else {
+        if( secret )
+            print_seckey_info( sk );
+        else
+            print_pubkey_info( pk );
+       tty_printf( "\n" );
+
+       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
+            * the user is so stupid as to let others access his secret keyring
+            * (and has no backup) - it is up him to read some very
+            * basic texts about security.
+            */
+           yes = cpr_get_answer_is_yes("delete_key.secret.okay",
+                        _("This is a secret key! - really delete? "));
+       }
+       if( yes )
+           okay++;
+    }
+
+
+    if( okay ) {
+       rc = keydb_delete_keyblock (hd);
+       if (rc) {
+           log_error (_("deleting keyblock failed: %s\n"), g10_errstr(rc) );
+           goto leave;
+       }
+
+       /* Note that the ownertrust being cleared will trigger a
+           revalidation_mark().  This makes sense - only deleting keys
+           that have ownertrust set should trigger this. */
+
+        if (!secret && pk && clear_ownertrusts (pk)) {
+          if (opt.verbose)
+            log_info (_("ownertrust information cleared\n"));
+        }
+    }
+
+  leave:
+    keydb_release (hd);
+    release_kbnode (keyblock);
+    return rc;
+}
+
+/****************
+ * Delete a public or secret key from a keyring.
+ */
+int
+delete_keys( STRLIST names, int secret, int allow_both )
+{
+    int rc, avail;
+
+    for(;names;names=names->next) {
+       rc = do_delete_key (names->d, secret, &avail );
+       if ( rc && avail ) { 
+        if ( allow_both ) {
+          rc = do_delete_key (names->d, 1, &avail );
+          if ( !rc )
+            rc = do_delete_key (names->d, 0, &avail );
+        }
+        else {
+          log_error(_(
+             "there is a secret key for public key \"%s\"!\n"),names->d);
+          log_info(_(
+             "use option \"--delete-secret-keys\" to delete it first.\n"));
+          write_status_text( STATUS_DELETE_PROBLEM, "2" );
+          return rc;
+        }
+       }
+
+       if(rc) {
+        log_error("%s: delete key failed: %s\n", names->d, g10_errstr(rc) );
+        return rc;
+       }
+    }
+
+    return 0;
+}
diff --git a/g10/pubkey-enc.c b/g10/pubkey-enc.c
new file mode 100644 (file)
index 0000000..1c52ce4
--- /dev/null
@@ -0,0 +1,307 @@
+/* pubkey-enc.c -  public key encoded packet handling
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002 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 <assert.h>
+#include "util.h"
+#include "memory.h"
+#include "packet.h"
+#include "mpi.h"
+#include "keydb.h"
+#include "trustdb.h"
+#include "cipher.h"
+#include "status.h"
+#include "options.h"
+#include "main.h"
+#include "i18n.h"
+
+static int get_it( PKT_pubkey_enc *k,
+                  DEK *dek, PKT_secret_key *sk, u32 *keyid );
+
+
+/* check that the given algo is mentioned in one of the valid user IDs */
+static int
+is_algo_in_prefs ( KBNODE keyblock, preftype_t type, int algo )
+{
+    KBNODE k;
+
+    for (k=keyblock; k; k=k->next) {
+        if (k->pkt->pkttype == PKT_USER_ID) {
+            PKT_user_id *uid = k->pkt->pkt.user_id;
+            prefitem_t *prefs = uid->prefs;
+            
+            if (uid->created && prefs &&
+               !uid->is_revoked && !uid->is_expired ) {
+                for (; prefs->type; prefs++ )
+                    if (prefs->type == type && prefs->value == algo)
+                        return 1;
+            }
+        }
+    }
+    return 0;
+}
+
+
+/****************
+ * Get the session key from a pubkey enc packet and return
+ * it in DEK, which should have been allocated in secure memory.
+ */
+int
+get_session_key( PKT_pubkey_enc *k, DEK *dek )
+{
+    PKT_secret_key *sk = NULL;
+    int rc;
+
+    rc = check_pubkey_algo2 (k->pubkey_algo, PUBKEY_USAGE_ENC);
+    if( rc )
+       goto leave;
+
+    if( (k->keyid[0] || k->keyid[1]) && !opt.try_all_secrets ) {
+       sk = m_alloc_clear( sizeof *sk );
+       sk->pubkey_algo = k->pubkey_algo; /* we want a pubkey with this algo*/
+       if( !(rc = get_seckey( sk, k->keyid )) )
+           rc = get_it( k, dek, sk, k->keyid );
+    }
+    else { /* anonymous receiver: Try all available secret keys */
+       void *enum_context = NULL;
+       u32 keyid[2];
+       char *p;
+
+       for(;;) {
+           if( sk )
+               free_secret_key( sk );
+           sk = m_alloc_clear( sizeof *sk );
+           rc=enum_secret_keys( &enum_context, sk, 1, 0);
+           if( rc ) {
+               rc = G10ERR_NO_SECKEY;
+               break;
+           }
+           if( sk->pubkey_algo != k->pubkey_algo )
+               continue;
+           keyid_from_sk( sk, keyid );
+           log_info(_("anonymous recipient; trying secret key %08lX ...\n"),
+                     (ulong)keyid[1] );
+
+           if(!opt.try_all_secrets && !is_status_enabled())
+             {
+               p=get_last_passphrase();
+               set_next_passphrase(p);
+               m_free(p);
+             }
+
+           rc = check_secret_key( sk, opt.try_all_secrets?1:-1 ); /* ask
+                                                                     only
+                                                                     once */
+           if( !rc )
+               rc = get_it( k, dek, sk, keyid );
+           if( !rc ) {
+               log_info(_("okay, we are the anonymous recipient.\n") );
+               break;
+           }
+       }
+       enum_secret_keys( &enum_context, NULL, 0, 0 ); /* free context */
+    }
+
+  leave:
+    if( sk )
+       free_secret_key( sk );
+    return rc;
+}
+
+
+static int
+get_it( PKT_pubkey_enc *enc, DEK *dek, PKT_secret_key *sk, u32 *keyid )
+{
+    int rc;
+    MPI plain_dek  = NULL;
+    byte *frame = NULL;
+    unsigned n, nframe;
+    u16 csum, csum2;
+
+    rc = pubkey_decrypt(sk->pubkey_algo, &plain_dek, enc->data, sk->skey );
+    if( rc )
+       goto leave;
+    frame = mpi_get_buffer( plain_dek, &nframe, NULL );
+    mpi_free( plain_dek ); plain_dek = NULL;
+
+    /* Now get the DEK (data encryption key) from the frame
+     *
+     * Old versions encode the DEK in in this format (msb is left):
+     *
+     *    0  1  DEK(16 bytes)  CSUM(2 bytes)  0  RND(n bytes) 2
+     *
+     * Later versions encode the DEK like this:
+     *
+     *    0  2  RND(n bytes)  0  A  DEK(k bytes)  CSUM(2 bytes)
+     *
+     * (mpi_get_buffer already removed the leading zero).
+     *
+     * RND are non-zero randow bytes.
+     * A   is the cipher algorithm
+     * DEK is the encryption key (session key) with length k
+     * CSUM
+     */
+    if( DBG_CIPHER )
+       log_hexdump("DEK frame:", frame, nframe );
+    n=0;
+    if( n + 7 > nframe )
+       { rc = G10ERR_WRONG_SECKEY; goto leave; }
+    if( frame[n] == 1 && frame[nframe-1] == 2 ) {
+       log_info(_("old encoding of the DEK is not supported\n"));
+       rc = G10ERR_CIPHER_ALGO;
+       goto leave;
+    }
+    if( frame[n] != 2 )  /* somethink is wrong */
+       { rc = G10ERR_WRONG_SECKEY; goto leave; }
+    for(n++; n < nframe && frame[n]; n++ ) /* skip the random bytes */
+       ;
+    n++; /* and the zero byte */
+    if( n + 4 > nframe )
+       { rc = G10ERR_WRONG_SECKEY; goto leave; }
+
+    dek->keylen = nframe - (n+1) - 2;
+    dek->algo = frame[n++];
+    if( dek->algo ==  CIPHER_ALGO_IDEA )
+       write_status(STATUS_RSA_OR_IDEA);
+    rc = check_cipher_algo( dek->algo );
+    if( rc ) {
+       if( !opt.quiet && rc == G10ERR_CIPHER_ALGO ) {
+           log_info(_("cipher algorithm %d%s is unknown or disabled\n"),
+                     dek->algo, dek->algo == CIPHER_ALGO_IDEA? " (IDEA)":"");
+           if(dek->algo==CIPHER_ALGO_IDEA)
+             idea_cipher_warn(0);
+       }
+       dek->algo = 0;
+       goto leave;
+    }
+    if( (dek->keylen*8) != cipher_get_keylen( dek->algo ) ) {
+       rc = G10ERR_WRONG_SECKEY;
+       goto leave;
+    }
+
+    /* copy the key to DEK and compare the checksum */
+    csum  = frame[nframe-2] << 8;
+    csum |= frame[nframe-1];
+    memcpy( dek->key, frame+n, dek->keylen );
+    for( csum2=0, n=0; n < dek->keylen; n++ )
+       csum2 += dek->key[n];
+    if( csum != csum2 ) {
+       rc = G10ERR_WRONG_SECKEY;
+       goto leave;
+    }
+    if( DBG_CIPHER )
+       log_hexdump("DEK is:", dek->key, dek->keylen );
+    /* check that the algo is in the preferences and whether it has expired */
+    {
+       PKT_public_key *pk = NULL;
+        KBNODE pkb = get_pubkeyblock (keyid);
+
+       if( !pkb ) {
+            rc = -1;
+           log_error("oops: public key not found for preference check\n");
+        }
+       else if( pkb->pkt->pkt.public_key->selfsigversion > 3
+            && dek->algo != CIPHER_ALGO_3DES
+           && !is_algo_in_prefs( pkb, PREFTYPE_SYM, dek->algo ) ) {
+           /* Don't print a note while we are not on verbose mode,
+            * the cipher is blowfish and the preferences have twofish
+            * listed */
+           if( opt.verbose || dek->algo != CIPHER_ALGO_BLOWFISH
+               || !is_algo_in_prefs( pkb, PREFTYPE_SYM, CIPHER_ALGO_TWOFISH))
+               log_info(_(
+                   "NOTE: cipher algorithm %d not found in preferences\n"),
+                                                                dek->algo );
+       }
+
+        if (!rc) {
+            KBNODE k;
+            
+            for (k=pkb; k; k = k->next) {
+                if (k->pkt->pkttype == PKT_PUBLIC_KEY 
+                    || k->pkt->pkttype == PKT_PUBLIC_SUBKEY){
+                    u32 aki[2];
+                   keyid_from_pk(k->pkt->pkt.public_key, aki);
+
+                    if (aki[0]==keyid[0] && aki[1]==keyid[1]) {
+                        pk = k->pkt->pkt.public_key;
+                        break;
+                    }
+                }
+            }
+            if (!pk)
+                BUG ();
+            if ( pk->expiredate && pk->expiredate <= make_timestamp() ) {
+                log_info(_("NOTE: secret key %08lX expired at %s\n"),
+                         (ulong)keyid[1], asctimestamp( pk->expiredate) );
+            }
+        }
+
+        if ( pk &&  pk->is_revoked ) {
+            log_info( _("NOTE: key has been revoked") );
+            putc( '\n', log_stream() );
+            show_revocation_reason( pk, 1 );
+        }
+
+       release_kbnode (pkb);
+       rc = 0;
+    }
+
+
+  leave:
+    mpi_free(plain_dek);
+    m_free(frame);
+    return rc;
+}
+
+
+/****************
+ * Get the session key from the given string.
+ * String is supposed to be formatted as this:
+ *  <algo-id>:<even-number-of-hex-digits>
+ */
+int
+get_override_session_key( DEK *dek, const char *string )
+{
+    const char *s;
+    int i;
+
+    if ( !string )
+       return G10ERR_BAD_KEY;
+    dek->algo = atoi(string);
+    if ( dek->algo < 1 )
+       return G10ERR_BAD_KEY;
+    if ( !(s = strchr ( string, ':' )) )
+       return G10ERR_BAD_KEY;
+    s++;
+    for(i=0; i < DIM(dek->key) && *s; i++, s +=2 ) {
+       int c = hextobyte ( s );
+       if (c == -1)
+           return G10ERR_BAD_KEY;
+       dek->key[i] = c;
+    }
+    if ( *s )
+       return G10ERR_BAD_KEY;
+    dek->keylen = i;
+    return 0;
+}
+
diff --git a/g10/status.h b/g10/status.h
new file mode 100644 (file)
index 0000000..44a7d6d
--- /dev/null
@@ -0,0 +1,127 @@
+/* status.h
+ * Copyright (C) 1998, 1999, 2000, 2001 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
+ */
+#ifndef G10_STATUS_H
+#define G10_STATUS_H
+
+
+#define STATUS_ENTER    1
+#define STATUS_LEAVE    2
+#define STATUS_ABORT    3
+
+#define STATUS_GOODSIG  4
+#define STATUS_BADSIG   5
+#define STATUS_ERRSIG   6
+
+
+#define STATUS_BADARMOR  7
+
+#define STATUS_RSA_OR_IDEA 8
+#define STATUS_KEYEXPIRED  9
+#define STATUS_KEYREVOKED  10
+
+#define STATUS_TRUST_UNDEFINED 11
+#define STATUS_TRUST_NEVER     12
+#define STATUS_TRUST_MARGINAL  13
+#define STATUS_TRUST_FULLY     14
+#define STATUS_TRUST_ULTIMATE  15
+
+#define STATUS_SHM_INFO        16
+#define STATUS_SHM_GET        17
+#define STATUS_SHM_GET_BOOL    18
+#define STATUS_SHM_GET_HIDDEN  19
+
+#define STATUS_NEED_PASSPHRASE 20
+#define STATUS_VALIDSIG        21
+#define STATUS_SIG_ID         22
+#define STATUS_ENC_TO         23
+#define STATUS_NODATA         24
+#define STATUS_BAD_PASSPHRASE  25
+#define STATUS_NO_PUBKEY       26
+#define STATUS_NO_SECKEY       27
+#define STATUS_NEED_PASSPHRASE_SYM 28
+#define STATUS_DECRYPTION_FAILED 29
+#define STATUS_DECRYPTION_OKAY  30
+#define STATUS_MISSING_PASSPHRASE 31
+#define STATUS_GOOD_PASSPHRASE 32
+#define STATUS_GOODMDC         33
+#define STATUS_BADMDC          34
+#define STATUS_ERRMDC          35
+#define STATUS_IMPORTED        36
+#define STATUS_IMPORT_RES      37
+#define STATUS_FILE_START      38
+#define STATUS_FILE_DONE       39
+#define STATUS_FILE_ERROR      40
+
+#define STATUS_BEGIN_DECRYPTION 41
+#define STATUS_END_DECRYPTION  42
+#define STATUS_BEGIN_ENCRYPTION 43
+#define STATUS_END_ENCRYPTION  44
+
+#define STATUS_DELETE_PROBLEM  45
+#define STATUS_GET_BOOL        46
+#define STATUS_GET_LINE        47
+#define STATUS_GET_HIDDEN      48
+#define STATUS_GOT_IT          49
+#define STATUS_PROGRESS        50
+#define STATUS_SIG_CREATED     51
+#define STATUS_SESSION_KEY     52
+#define STATUS_NOTATION_NAME    53
+#define STATUS_NOTATION_DATA    54
+#define STATUS_POLICY_URL       55
+#define STATUS_BEGIN_STREAM     56
+#define STATUS_END_STREAM       57
+#define STATUS_KEY_CREATED      58
+#define STATUS_USERID_HINT      59
+#define STATUS_UNEXPECTED       60
+#define STATUS_INV_RECP         61
+#define STATUS_NO_RECP          62
+#define STATUS_ALREADY_SIGNED   63
+#define STATUS_SIGEXPIRED       64
+#define STATUS_EXPSIG           65
+#define STATUS_EXPKEYSIG        66
+#define STATUS_ATTRIBUTE        67
+#define STATUS_IMPORT_OK       68
+#define STATUS_IMPORT_CHECK     69
+
+/*-- status.c --*/
+void set_status_fd ( int fd );
+int  is_status_enabled ( void );
+void write_status ( int no );
+void write_status_text ( int no, const char *text );
+void write_status_buffer ( int no,
+                           const char *buffer, size_t len, int wrap );
+void write_status_text_and_buffer ( int no, const char *text,
+                                    const char *buffer, size_t len, int wrap );
+
+#ifdef USE_SHM_COPROCESSING
+  void init_shm_coprocessing ( ulong requested_shm_size, int lock_mem );
+#endif /*USE_SHM_COPROCESSING*/
+
+int cpr_enabled(void);
+char *cpr_get( const char *keyword, const char *prompt );
+char *cpr_get_no_help( const char *keyword, const char *prompt );
+char *cpr_get_utf8( const char *keyword, const char *prompt );
+char *cpr_get_hidden( const char *keyword, const char *prompt );
+void cpr_kill_prompt(void);
+int  cpr_get_answer_is_yes( const char *keyword, const char *prompt );
+int  cpr_get_answer_yes_no_quit( const char *keyword, const char *prompt );
+
+
+#endif /*G10_STATUS_H*/
diff --git a/include/_regex.h b/include/_regex.h
new file mode 100644 (file)
index 0000000..fac441d
--- /dev/null
@@ -0,0 +1,574 @@
+/* Definitions for data structures and routines for the regular
+   expression library.
+   Copyright (C) 1985,1989-93,1995-98,2000,2001,2002
+   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 Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef _REGEX_H
+#define _REGEX_H 1
+
+/* Allow the use in C++ code.  */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* POSIX says that <sys/types.h> must be included (by the caller) before
+   <regex.h>.  */
+
+#if !defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE && defined VMS
+/* VMS doesn't have `size_t' in <sys/types.h>, even though POSIX says it
+   should be there.  */
+# include <stddef.h>
+#endif
+
+/* The following two types have to be signed and unsigned integer type
+   wide enough to hold a value of a pointer.  For most ANSI compilers
+   ptrdiff_t and size_t should be likely OK.  Still size of these two
+   types is 2 for Microsoft C.  Ugh... */
+typedef long int s_reg_t;
+typedef unsigned long int active_reg_t;
+
+/* The following bits are used to determine the regexp syntax we
+   recognize.  The set/not-set meanings are chosen so that Emacs syntax
+   remains the value 0.  The bits are given in alphabetical order, and
+   the definitions shifted by one from the previous bit; thus, when we
+   add or remove a bit, only one other definition need change.  */
+typedef unsigned long int reg_syntax_t;
+
+/* If this bit is not set, then \ inside a bracket expression is literal.
+   If set, then such a \ quotes the following character.  */
+#define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1)
+
+/* If this bit is not set, then + and ? are operators, and \+ and \? are
+     literals.
+   If set, then \+ and \? are operators and + and ? are literals.  */
+#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
+
+/* If this bit is set, then character classes are supported.  They are:
+     [:alpha:], [:upper:], [:lower:],  [:digit:], [:alnum:], [:xdigit:],
+     [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:].
+   If not set, then character classes are not supported.  */
+#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1)
+
+/* If this bit is set, then ^ and $ are always anchors (outside bracket
+     expressions, of course).
+   If this bit is not set, then it depends:
+        ^  is an anchor if it is at the beginning of a regular
+           expression or after an open-group or an alternation operator;
+        $  is an anchor if it is at the end of a regular expression, or
+           before a close-group or an alternation operator.
+
+   This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because
+   POSIX draft 11.2 says that * etc. in leading positions is undefined.
+   We already implemented a previous draft which made those constructs
+   invalid, though, so we haven't changed the code back.  */
+#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1)
+
+/* If this bit is set, then special characters are always special
+     regardless of where they are in the pattern.
+   If this bit is not set, then special characters are special only in
+     some contexts; otherwise they are ordinary.  Specifically,
+     * + ? and intervals are only special when not after the beginning,
+     open-group, or alternation operator.  */
+#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
+
+/* If this bit is set, then *, +, ?, and { cannot be first in an re or
+     immediately after an alternation or begin-group operator.  */
+#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1)
+
+/* If this bit is set, then . matches newline.
+   If not set, then it doesn't.  */
+#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1)
+
+/* If this bit is set, then . doesn't match NUL.
+   If not set, then it does.  */
+#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1)
+
+/* If this bit is set, nonmatching lists [^...] do not match newline.
+   If not set, they do.  */
+#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
+
+/* If this bit is set, either \{...\} or {...} defines an
+     interval, depending on RE_NO_BK_BRACES.
+   If not set, \{, \}, {, and } are literals.  */
+#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
+
+/* If this bit is set, +, ? and | aren't recognized as operators.
+   If not set, they are.  */
+#define RE_LIMITED_OPS (RE_INTERVALS << 1)
+
+/* If this bit is set, newline is an alternation operator.
+   If not set, newline is literal.  */
+#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
+
+/* If this bit is set, then `{...}' defines an interval, and \{ and \}
+     are literals.
+  If not set, then `\{...\}' defines an interval.  */
+#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
+
+/* If this bit is set, (...) defines a group, and \( and \) are literals.
+   If not set, \(...\) defines a group, and ( and ) are literals.  */
+#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1)
+
+/* If this bit is set, then \<digit> matches <digit>.
+   If not set, then \<digit> is a back-reference.  */
+#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
+
+/* If this bit is set, then | is an alternation operator, and \| is literal.
+   If not set, then \| is an alternation operator, and | is literal.  */
+#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
+
+/* If this bit is set, then an ending range point collating higher
+     than the starting range point, as in [z-a], is invalid.
+   If not set, then when ending range point collates higher than the
+     starting range point, the range is ignored.  */
+#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1)
+
+/* If this bit is set, then an unmatched ) is ordinary.
+   If not set, then an unmatched ) is invalid.  */
+#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
+
+/* If this bit is set, succeed as soon as we match the whole pattern,
+   without further backtracking.  */
+#define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1)
+
+/* If this bit is set, do not process the GNU regex operators.
+   If not set, then the GNU regex operators are recognized. */
+#define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1)
+
+/* If this bit is set, turn on internal regex debugging.
+   If not set, and debugging was on, turn it off.
+   This only works if regex.c is compiled -DDEBUG.
+   We define this bit always, so that all that's needed to turn on
+   debugging is to recompile regex.c; the calling code can always have
+   this bit set, and it won't affect anything in the normal case. */
+#define RE_DEBUG (RE_NO_GNU_OPS << 1)
+
+/* If this bit is set, a syntactically invalid interval is treated as
+   a string of ordinary characters.  For example, the ERE 'a{1' is
+   treated as 'a\{1'.  */
+#define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1)
+
+/* If this bit is set, then ignore case when matching.
+   If not set, then case is significant.  */
+#define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1)
+
+/* This global variable defines the particular regexp syntax to use (for
+   some interfaces).  When a regexp is compiled, the syntax used is
+   stored in the pattern buffer, so changing this does not affect
+   already-compiled regexps.  */
+extern reg_syntax_t re_syntax_options;
+\f
+/* Define combinations of the above bits for the standard possibilities.
+   (The [[[ comments delimit what gets put into the Texinfo file, so
+   don't delete them!)  */
+/* [[[begin syntaxes]]] */
+#define RE_SYNTAX_EMACS 0
+
+#define RE_SYNTAX_AWK                                                  \
+  (RE_BACKSLASH_ESCAPE_IN_LISTS   | RE_DOT_NOT_NULL                    \
+   | RE_NO_BK_PARENS              | RE_NO_BK_REFS                      \
+   | RE_NO_BK_VBAR                | RE_NO_EMPTY_RANGES                 \
+   | RE_DOT_NEWLINE              | RE_CONTEXT_INDEP_ANCHORS            \
+   | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS)
+
+#define RE_SYNTAX_GNU_AWK                                              \
+  ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DEBUG)        \
+   & ~(RE_DOT_NOT_NULL | RE_INTERVALS | RE_CONTEXT_INDEP_OPS           \
+       | RE_CONTEXT_INVALID_OPS ))
+
+#define RE_SYNTAX_POSIX_AWK                                            \
+  (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS             \
+   | RE_INTERVALS          | RE_NO_GNU_OPS)
+
+#define RE_SYNTAX_GREP                                                 \
+  (RE_BK_PLUS_QM              | RE_CHAR_CLASSES                                \
+   | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS                           \
+   | RE_NEWLINE_ALT)
+
+#define RE_SYNTAX_EGREP                                                        \
+  (RE_CHAR_CLASSES        | RE_CONTEXT_INDEP_ANCHORS                   \
+   | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE                   \
+   | RE_NEWLINE_ALT       | RE_NO_BK_PARENS                            \
+   | RE_NO_BK_VBAR)
+
+#define RE_SYNTAX_POSIX_EGREP                                          \
+  (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES                    \
+   | RE_INVALID_INTERVAL_ORD)
+
+/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff.  */
+#define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC
+
+#define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC
+
+/* Syntax bits common to both basic and extended POSIX regex syntax.  */
+#define _RE_SYNTAX_POSIX_COMMON                                                \
+  (RE_CHAR_CLASSES | RE_DOT_NEWLINE      | RE_DOT_NOT_NULL             \
+   | RE_INTERVALS  | RE_NO_EMPTY_RANGES)
+
+#define RE_SYNTAX_POSIX_BASIC                                          \
+  (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM)
+
+/* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes
+   RE_LIMITED_OPS, i.e., \? \+ \| are not recognized.  Actually, this
+   isn't minimal, since other operators, such as \`, aren't disabled.  */
+#define RE_SYNTAX_POSIX_MINIMAL_BASIC                                  \
+  (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS)
+
+#define RE_SYNTAX_POSIX_EXTENDED                                       \
+  (_RE_SYNTAX_POSIX_COMMON  | RE_CONTEXT_INDEP_ANCHORS                 \
+   | RE_CONTEXT_INDEP_OPS   | RE_NO_BK_BRACES                          \
+   | RE_NO_BK_PARENS        | RE_NO_BK_VBAR                            \
+   | RE_CONTEXT_INVALID_OPS | RE_UNMATCHED_RIGHT_PAREN_ORD)
+
+/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INDEP_OPS is
+   removed and RE_NO_BK_REFS is added.  */
+#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED                               \
+  (_RE_SYNTAX_POSIX_COMMON  | RE_CONTEXT_INDEP_ANCHORS                 \
+   | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES                          \
+   | RE_NO_BK_PARENS        | RE_NO_BK_REFS                            \
+   | RE_NO_BK_VBAR         | RE_UNMATCHED_RIGHT_PAREN_ORD)
+/* [[[end syntaxes]]] */
+\f
+/* Maximum number of duplicates an interval can allow.  Some systems
+   (erroneously) define this in other header files, but we want our
+   value, so remove any previous define.  */
+#ifdef RE_DUP_MAX
+# undef RE_DUP_MAX
+#endif
+/* If sizeof(int) == 2, then ((1 << 15) - 1) overflows.  */
+#define RE_DUP_MAX (0x7fff)
+
+
+/* POSIX `cflags' bits (i.e., information for `regcomp').  */
+
+/* If this bit is set, then use extended regular expression syntax.
+   If not set, then use basic regular expression syntax.  */
+#define REG_EXTENDED 1
+
+/* If this bit is set, then ignore case when matching.
+   If not set, then case is significant.  */
+#define REG_ICASE (REG_EXTENDED << 1)
+
+/* If this bit is set, then anchors do not match at newline
+     characters in the string.
+   If not set, then anchors do match at newlines.  */
+#define REG_NEWLINE (REG_ICASE << 1)
+
+/* If this bit is set, then report only success or fail in regexec.
+   If not set, then returns differ between not matching and errors.  */
+#define REG_NOSUB (REG_NEWLINE << 1)
+
+
+/* POSIX `eflags' bits (i.e., information for regexec).  */
+
+/* If this bit is set, then the beginning-of-line operator doesn't match
+     the beginning of the string (presumably because it's not the
+     beginning of a line).
+   If not set, then the beginning-of-line operator does match the
+     beginning of the string.  */
+#define REG_NOTBOL 1
+
+/* Like REG_NOTBOL, except for the end-of-line.  */
+#define REG_NOTEOL (1 << 1)
+
+
+/* If any error codes are removed, changed, or added, update the
+   `re_error_msg' table in regex.c.  */
+typedef enum
+{
+#ifdef _XOPEN_SOURCE
+  REG_ENOSYS = -1,     /* This will never happen for this implementation.  */
+#endif
+
+  REG_NOERROR = 0,     /* Success.  */
+  REG_NOMATCH,         /* Didn't find a match (for regexec).  */
+
+  /* POSIX regcomp return error codes.  (In the order listed in the
+     standard.)  */
+  REG_BADPAT,          /* Invalid pattern.  */
+  REG_ECOLLATE,                /* Not implemented.  */
+  REG_ECTYPE,          /* Invalid character class name.  */
+  REG_EESCAPE,         /* Trailing backslash.  */
+  REG_ESUBREG,         /* Invalid back reference.  */
+  REG_EBRACK,          /* Unmatched left bracket.  */
+  REG_EPAREN,          /* Parenthesis imbalance.  */
+  REG_EBRACE,          /* Unmatched \{.  */
+  REG_BADBR,           /* Invalid contents of \{\}.  */
+  REG_ERANGE,          /* Invalid range end.  */
+  REG_ESPACE,          /* Ran out of memory.  */
+  REG_BADRPT,          /* No preceding re for repetition op.  */
+
+  /* Error codes we've added.  */
+  REG_EEND,            /* Premature end.  */
+  REG_ESIZE,           /* Compiled pattern bigger than 2^16 bytes.  */
+  REG_ERPAREN          /* Unmatched ) or \); not returned from regcomp.  */
+} reg_errcode_t;
+\f
+/* This data structure represents a compiled pattern.  Before calling
+   the pattern compiler, the fields `buffer', `allocated', `fastmap',
+   `translate', and `no_sub' can be set.  After the pattern has been
+   compiled, the `re_nsub' field is available.  All other fields are
+   private to the regex routines.  */
+
+#ifndef RE_TRANSLATE_TYPE
+# define RE_TRANSLATE_TYPE char *
+#endif
+
+struct re_pattern_buffer
+{
+/* [[[begin pattern_buffer]]] */
+       /* Space that holds the compiled pattern.  It is declared as
+          `unsigned char *' because its elements are
+           sometimes used as array indexes.  */
+  unsigned char *buffer;
+
+       /* Number of bytes to which `buffer' points.  */
+  unsigned long int allocated;
+
+       /* Number of bytes actually used in `buffer'.  */
+  unsigned long int used;
+
+        /* Syntax setting with which the pattern was compiled.  */
+  reg_syntax_t syntax;
+
+        /* Pointer to a fastmap, if any, otherwise zero.  re_search uses
+           the fastmap, if there is one, to skip over impossible
+           starting points for matches.  */
+  char *fastmap;
+
+        /* Either a translate table to apply to all characters before
+           comparing them, or zero for no translation.  The translation
+           is applied to a pattern when it is compiled and to a string
+           when it is matched.  */
+  RE_TRANSLATE_TYPE translate;
+
+       /* Number of subexpressions found by the compiler.  */
+  size_t re_nsub;
+
+        /* Zero if this pattern cannot match the empty string, one else.
+           Well, in truth it's used only in `re_search_2', to see
+           whether or not we should use the fastmap, so we don't set
+           this absolutely perfectly; see `re_compile_fastmap' (the
+           `duplicate' case).  */
+  unsigned can_be_null : 1;
+
+        /* If REGS_UNALLOCATED, allocate space in the `regs' structure
+             for `max (RE_NREGS, re_nsub + 1)' groups.
+           If REGS_REALLOCATE, reallocate space if necessary.
+           If REGS_FIXED, use what's there.  */
+#define REGS_UNALLOCATED 0
+#define REGS_REALLOCATE 1
+#define REGS_FIXED 2
+  unsigned regs_allocated : 2;
+
+        /* Set to zero when `regex_compile' compiles a pattern; set to one
+           by `re_compile_fastmap' if it updates the fastmap.  */
+  unsigned fastmap_accurate : 1;
+
+        /* If set, `re_match_2' does not return information about
+           subexpressions.  */
+  unsigned no_sub : 1;
+
+        /* If set, a beginning-of-line anchor doesn't match at the
+           beginning of the string.  */
+  unsigned not_bol : 1;
+
+        /* Similarly for an end-of-line anchor.  */
+  unsigned not_eol : 1;
+
+        /* If true, an anchor at a newline matches.  */
+  unsigned newline_anchor : 1;
+
+/* [[[end pattern_buffer]]] */
+};
+
+typedef struct re_pattern_buffer regex_t;
+\f
+/* Type for byte offsets within the string.  POSIX mandates this.  */
+typedef int regoff_t;
+
+
+/* This is the structure we store register match data in.  See
+   regex.texinfo for a full description of what registers match.  */
+struct re_registers
+{
+  unsigned num_regs;
+  regoff_t *start;
+  regoff_t *end;
+};
+
+
+/* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer,
+   `re_match_2' returns information about at least this many registers
+   the first time a `regs' structure is passed.  */
+#ifndef RE_NREGS
+# define RE_NREGS 30
+#endif
+
+
+/* POSIX specification for registers.  Aside from the different names than
+   `re_registers', POSIX uses an array of structures, instead of a
+   structure of arrays.  */
+typedef struct
+{
+  regoff_t rm_so;  /* Byte offset from string's start to substring's start.  */
+  regoff_t rm_eo;  /* Byte offset from string's start to substring's end.  */
+} regmatch_t;
+\f
+/* Declarations for routines.  */
+
+/* To avoid duplicating every routine declaration -- once with a
+   prototype (if we are ANSI), and once without (if we aren't) -- we
+   use the following macro to declare argument types.  This
+   unfortunately clutters up the declarations a bit, but I think it's
+   worth it.  */
+
+#if __STDC__
+
+# define _RE_ARGS(args) args
+
+#else /* not __STDC__ */
+
+# define _RE_ARGS(args) ()
+
+#endif /* not __STDC__ */
+
+/* Sets the current default syntax to SYNTAX, and return the old syntax.
+   You can also simply assign to the `re_syntax_options' variable.  */
+extern reg_syntax_t re_set_syntax _RE_ARGS ((reg_syntax_t syntax));
+
+/* Compile the regular expression PATTERN, with length LENGTH
+   and syntax given by the global `re_syntax_options', into the buffer
+   BUFFER.  Return NULL if successful, and an error string if not.  */
+extern const char *re_compile_pattern
+  _RE_ARGS ((const char *pattern, size_t length,
+             struct re_pattern_buffer *buffer));
+
+
+/* Compile a fastmap for the compiled pattern in BUFFER; used to
+   accelerate searches.  Return 0 if successful and -2 if was an
+   internal error.  */
+extern int re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer));
+
+
+/* Search in the string STRING (with length LENGTH) for the pattern
+   compiled into BUFFER.  Start searching at position START, for RANGE
+   characters.  Return the starting position of the match, -1 for no
+   match, or -2 for an internal error.  Also return register
+   information in REGS (if REGS and BUFFER->no_sub are nonzero).  */
+extern int re_search
+  _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
+            int length, int start, int range, struct re_registers *regs));
+
+
+/* Like `re_search', but search in the concatenation of STRING1 and
+   STRING2.  Also, stop searching at index START + STOP.  */
+extern int re_search_2
+  _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
+             int length1, const char *string2, int length2,
+             int start, int range, struct re_registers *regs, int stop));
+
+
+/* Like `re_search', but return how many characters in STRING the regexp
+   in BUFFER matched, starting at position START.  */
+extern int re_match
+  _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
+             int length, int start, struct re_registers *regs));
+
+
+/* Relates to `re_match' as `re_search_2' relates to `re_search'.  */
+extern int re_match_2
+  _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
+             int length1, const char *string2, int length2,
+             int start, struct re_registers *regs, int stop));
+
+
+/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
+   ENDS.  Subsequent matches using BUFFER and REGS will use this memory
+   for recording register information.  STARTS and ENDS must be
+   allocated with malloc, and must each be at least `NUM_REGS * sizeof
+   (regoff_t)' bytes long.
+
+   If NUM_REGS == 0, then subsequent matches should allocate their own
+   register data.
+
+   Unless this function is called, the first search or match using
+   PATTERN_BUFFER will allocate its own register data, without
+   freeing the old data.  */
+extern void re_set_registers
+  _RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs,
+             unsigned num_regs, regoff_t *starts, regoff_t *ends));
+
+#if defined _REGEX_RE_COMP || defined _LIBC
+# ifndef _CRAY
+/* 4.2 bsd compatibility.  */
+extern char *re_comp _RE_ARGS ((const char *));
+extern int re_exec _RE_ARGS ((const char *));
+# endif
+#endif
+
+/* GCC 2.95 and later have "__restrict"; C99 compilers have
+   "restrict", and "configure" may have defined "restrict".  */
+#ifndef __restrict
+# if ! (2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__))
+#  if defined restrict || 199901L <= __STDC_VERSION__
+#   define __restrict restrict
+#  else
+#   define __restrict
+#  endif
+# endif
+#endif
+/* gcc 3.1 and up support the [restrict] syntax.  */
+#ifndef __restrict_arr
+# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
+#  define __restrict_arr __restrict
+# else
+#  define __restrict_arr
+# endif
+#endif
+
+/* POSIX compatibility.  */
+extern int regcomp _RE_ARGS ((regex_t *__restrict __preg,
+                             const char *__restrict __pattern,
+                             int __cflags));
+
+extern int regexec _RE_ARGS ((const regex_t *__restrict __preg,
+                             const char *__restrict __string, size_t __nmatch,
+                             regmatch_t __pmatch[__restrict_arr],
+                             int __eflags));
+
+extern size_t regerror _RE_ARGS ((int __errcode, const regex_t *__preg,
+                                 char *__errbuf, size_t __errbuf_size));
+
+extern void regfree _RE_ARGS ((regex_t *__preg));
+
+
+#ifdef __cplusplus
+}
+#endif /* C++ */
+
+#endif /* regex.h */
+\f
+/*
+Local variables:
+make-backup-files: t
+version-control: t
+trim-versions-without-asking: nil
+End:
+*/
diff --git a/include/distfiles b/include/distfiles
new file mode 100644 (file)
index 0000000..20a9091
--- /dev/null
@@ -0,0 +1,15 @@
+cipher.h
+errors.h
+iobuf.h
+memory.h
+mpi.h
+ttyio.h
+types.h
+util.h
+i18n.h
+host2net.h
+http.h
+keyserver.h
+_regex.h
+
+ChangeLog
diff --git a/include/ttyio.h b/include/ttyio.h
new file mode 100644 (file)
index 0000000..5f65579
--- /dev/null
@@ -0,0 +1,40 @@
+/* ttyio.h
+ *     Copyright (C) 1998, 1999, 2000, 2001 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
+ */
+#ifndef G10_TTYIO_H
+#define G10_TTYIO_H
+
+const char *tty_get_ttyname (void);
+int tty_batchmode( int onoff );
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5 )
+ void tty_printf (const char *fmt, ... ) __attribute__ ((format (printf,1,2)));
+#else
+ void tty_printf (const char *fmt, ... );
+#endif
+void tty_print_string( byte *p, size_t n );
+void tty_print_utf8_string( byte *p, size_t n );
+void tty_print_utf8_string2( byte *p, size_t n, size_t max_n );
+char *tty_get( const char *prompt );
+char *tty_get_hidden( const char *prompt );
+void tty_kill_prompt(void);
+int tty_get_answer_is_yes( const char *prompt );
+int tty_no_terminal(int onoff);
+
+
+#endif /*G10_TTYIO_H*/
diff --git a/include/zlib-riscos.h b/include/zlib-riscos.h
new file mode 100644 (file)
index 0000000..fad556b
--- /dev/null
@@ -0,0 +1,134 @@
+/* zlib-riscos.h
+ *     Copyright (C) 2002 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
+ */
+#ifndef G10_ZLIB_RISCOS_H
+#define G10_ZLIB_RISCOS_H
+
+#include <kernel.h>
+#include <swis.h>
+
+static const char * const zlib_path[] = {
+    "System:310.Modules.ZLib",
+    NULL
+};
+
+#define ZLib_Compress             0x53AC0
+#define ZLib_Decompress           0x53AC1
+#define ZLib_CRC32                0x53AC2
+#define ZLib_Adler32              0x53AC3
+#define ZLib_Version              0x53AC4
+#define ZLib_ZCompress            0x53AC5
+#define ZLib_ZCompress2           0x53AC6
+#define ZLib_ZUncompress          0x53AC7
+#define ZLib_DeflateInit          0x53AC8
+#define ZLib_InflateInit          0x53AC9
+#define ZLib_DeflateInit2         0x53ACA
+#define ZLib_InflateInit2         0x53ACB
+#define ZLib_Deflate              0x53ACC
+#define ZLib_DeflateEnd           0x53ACD
+#define ZLib_Inflate              0x53ACE
+#define ZLib_InflateEnd           0x53ACF
+#define ZLib_DeflateSetDictionary 0x53AD0
+#define ZLib_DeflateCopy          0x53AD1
+#define ZLib_DeflateReset         0x53AD2
+#define ZLib_DeflateParams        0x53AD3
+#define ZLib_InflateSetDictionary 0x53AD4
+#define ZLib_InflateSync          0x53AD5
+#define ZLib_InflateReset         0x53AD6
+#define ZLib_GZOpen               0x53AD7
+#define ZLib_GZRead               0x53AD8
+#define ZLib_GRWrite              0x53AD9
+#define ZLib_GZFlush              0x53ADA
+#define ZLib_GZClose              0x53ADB
+#define ZLib_GZError              0x53ADC
+#define ZLib_GZSeek               0x53ADD
+#define ZLib_GZTell               0x53ADE
+#define ZLib_GZEOF                0x53ADF
+#define ZLib_TaskAssociate        0x53AE0
+
+#define crc32(r0,r1,r2) \
+    _swi(ZLib_CRC32, _INR(0,2) | _RETURN(0), r0,r1,r2)
+#define adler32(r0,r1,r2) \
+    _swi(ZLib_Adler32, _INR(0,2) | _RETURN(0), r0,r1,r2)
+#define zlibVersion() \
+    _swi(ZLib_Version, _RETURN(0))
+#define compress(r0,r1,r2,r3) \
+    _swi(ZLib_ZCompress, _INR(0,3) | _RETURN(0)|_OUT(1), r0,r1,r2,r3, &r1)
+#define compress2(r0,r1,r2,r3,r4) \
+    _swi(ZLib_ZCompress2, _INR(0,4) | _RETURN(0)|_OUT(1), r0,r1,r2,r3,r4, &r1)
+#define uncompress(r0,r1,r2,r3) \
+    _swi(ZLib_ZUncompress, _INR(0,3) | _RETURN(0)|_OUT(1), r0,r1,r2,r3, &r1)
+#define deflateInit_(r0,r1,r2,r3) \
+    _swi(ZLib_DeflateInit, _INR(0,3) | _RETURN(0), r0,r1,r2,r3)
+#define inflateInit_(r0,r1,r2) \
+    _swi(ZLib_InflateInit, _INR(0,2) | _RETURN(0), r0,r1,r2)
+#define deflateInit2_(r0,r1,r2,r3,r4,r5,r6,r7) \
+    _swi(ZLib_DeflateInit2, _INR(0,7) | _RETURN(0), r0,r1,r2,r3,r4,r5,r6,r7)
+#define inflateInit2_(r0,r1,r2,r3) \
+    _swi(ZLib_InflateInit2, _INR(0,3) | _RETURN(0), r0,r1,r2,r3)
+#define deflate(r0,r1) \
+    _swi(ZLib_Deflate, _INR(0,1) | _RETURN(0), r0,r1)
+#define deflateEnd(r0) \
+    _swi(ZLib_DeflateEnd, _IN(0) | _RETURN(0), r0)
+#define inflate(r0,r1) \
+    _swi(ZLib_Inflate, _INR(0,1) | _RETURN(0), r0,r1)
+#define inflateEnd(r0) \
+    _swi(ZLib_InflateEnd, _IN(0) | _RETURN(0), r0)
+#define deflateSetDictionary(r0,r1,r2) \
+    _swi(ZLib_DeflateSetDictionary, _INR(0,2) | _RETURN(0), r0,r1,r2)
+#define deflateCopy(r0,r1) \
+    _swi(ZLib_DeflateCopy, _INR(0,1) | _RETURN(0), r0,r1)
+#define deflateReset(r0) \
+    _swi(ZLib_DeflateReset, _IN(0) | _RETURN(0), r0)
+#define deflateParams(r0,r1,r2) \
+    _swi(ZLib_DeflateParams, _INR(0,2) | _RETURN(0), r0,r1,r2)
+#define inflateSetDictionary(r0,r1,r2) \
+    _swi(ZLib_InflateSetDictionary, _INR(0,2) | _RETURN(0), r0,r1,r2)
+#define inflateSync(r0) \
+    _swi(ZLib_InflateSync, _IN(0) | _RETURN(0), r0)
+#define inflateReset(r0) \
+    _swi(ZLib_InflateReset, _IN(0) | _RETURN(0), r0)
+#define gzopen(r0,r1) \
+    _swi(ZLib_GZOpen, _INR(0,1) | _RETURN(0), r0)
+#define gzdopen(r0,r1) BUG()
+#define gzsetparams(r0,r1,r2) BUG()
+#define gzread(r0,r1,r2) \
+    _swi(ZLib_GZRead, _INR(0,2) | _RETURN(0), r0,r1,r2)
+#define gzwrite(r0,r1,r2) \
+    _swi(ZLib_GZWrite, _INR(0,2) | _RETURN(0), r0,r1,r2)
+#define gzprintf(r0,r1,...) BUG()
+#define gzputs(r0,r1) BUG()
+#define gzgets(r0,r1,r2) BUG()
+#define gzputc(r0,r1) BUG()
+#define gzgetc(r0) BUG()
+#define gzflush(r0,r1) \
+    _swi(ZLib_GZFlush, _INR(0,1) | _RETURN(0), r0,r1)
+#define gzclose(r0) \
+    _swi(ZLib_GZClose, _IN(0) | _RETURN(0), r0)
+#define gzerror(r0,r1) \
+    _swi(ZLib_GZError, _IN(0) | _RETURN(0)|_OUT(1), r0, &r1)
+#define gzseek(r0,r1,r2) \
+    _swi(ZLib_GZSeek, _INR(0,2) | _RETURN(0), r0,r1,r2)
+#define gzrewind(r0) BUG()
+#define gztell(r0) \
+    _swi(ZLib_GZTell, _IN(0) | _RETURN(0), r0)
+#define gzeof(r0) \
+    _swi(ZLib_GZEOF, _IN(0) | _RETURN(0), r0)
+
+#endif /* G10_ZLIB_RISCOS_H */
diff --git a/po/de.po b/po/de.po
new file mode 100644 (file)
index 0000000..d11d8d9
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,5254 @@
+# GnuPG german translation
+# Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+# Walter Koch <koch@hsp.de>, 1998, 1999, 2000, 2001
+msgid ""
+msgstr ""
+"Project-Id-Version: gnupg-1.0.7\n"
+"POT-Creation-Date: 2002-11-11 19:56+0100\n"
+"PO-Revision-Date: 2002-09-11 15:40+0200\n"
+"Last-Translator: Walter Koch <koch@hsp.de>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: util/secmem.c:90
+msgid "WARNING: using insecure memory!\n"
+msgstr "WARNUNG: Sensible Daten könnten auf Platte ausgelagert werden.\n"
+
+#: util/secmem.c:91
+msgid "please see http://www.gnupg.org/faq.html for more information\n"
+msgstr "siehe http://www.gnupg.org/de/faq.html für weitere Informationen\n"
+
+# "  Um dies zu vermeiden, kann das Programm suid(root) installiert werden.\n"
+# "  Bitte wenden Sie sich hierzu an den Systemadministrator.\n"
+#: util/secmem.c:328
+msgid "operation is not possible without initialized secure memory\n"
+msgstr "Vorgang ist ohne sicheren Hauptspeicher nicht möglich\n"
+
+#: util/secmem.c:329
+msgid "(you may have used the wrong program for this task)\n"
+msgstr ""
+"(möglicherweise haben Sie das falsche Programm für diese Aufgabe benutzt)\n"
+
+#: util/miscutil.c:296 util/miscutil.c:331
+msgid "yes"
+msgstr "ja"
+
+#: util/miscutil.c:297 util/miscutil.c:334
+msgid "yY"
+msgstr "jJyY"
+
+#: util/miscutil.c:298 util/miscutil.c:332
+msgid "no"
+msgstr "nein"
+
+#: util/miscutil.c:299 util/miscutil.c:335
+msgid "nN"
+msgstr "nN"
+
+#: g10/keyedit.c:1032 util/miscutil.c:333
+msgid "quit"
+msgstr "quit"
+
+#: util/miscutil.c:336
+msgid "qQ"
+msgstr "qQ"
+
+#: util/errors.c:54
+msgid "general error"
+msgstr "Allgemeiner Fehler"
+
+#: util/errors.c:55
+msgid "unknown packet type"
+msgstr "Unbekannter Pakettyp"
+
+#: util/errors.c:56
+msgid "unknown version"
+msgstr "Unbekannte Version"
+
+#: util/errors.c:57
+msgid "unknown pubkey algorithm"
+msgstr "Unbekanntes Public-Key-Verfahren"
+
+#: util/errors.c:58
+msgid "unknown digest algorithm"
+msgstr "Unbekanntes Hashverfahren"
+
+#: util/errors.c:59
+msgid "bad public key"
+msgstr "Falscher öffentlicher Schüssel"
+
+#: util/errors.c:60
+msgid "bad secret key"
+msgstr "Falscher geheimer Schlüssel"
+
+#: util/errors.c:61
+msgid "bad signature"
+msgstr "Falsche Unterschrift"
+
+#: util/errors.c:62
+msgid "checksum error"
+msgstr "Prüfsummen-Fehler"
+
+#: util/errors.c:63
+msgid "bad passphrase"
+msgstr "Falsches Mantra"
+
+#: util/errors.c:64
+msgid "public key not found"
+msgstr "Öffentlicher Schlüssel nicht gefunden"
+
+#: util/errors.c:65
+msgid "unknown cipher algorithm"
+msgstr "Unbekanntes Verschlüsselungsverfahren"
+
+#: util/errors.c:66
+msgid "can't open the keyring"
+msgstr "Der Schlüsselbund kann nicht geöffnet werden"
+
+#: util/errors.c:67
+msgid "invalid packet"
+msgstr "Ungültiges Paket"
+
+#: util/errors.c:68
+msgid "invalid armor"
+msgstr "Ungültige ASCII-Hülle"
+
+#: util/errors.c:69
+msgid "no such user id"
+msgstr "Keine solche User-ID"
+
+#: util/errors.c:70
+msgid "secret key not available"
+msgstr "Geheimer Schlüssel ist nicht vorhanden"
+
+#: util/errors.c:71
+msgid "wrong secret key used"
+msgstr "Falscher geheimer Schlüssel benutzt"
+
+#: util/errors.c:72
+msgid "not supported"
+msgstr "Wird nicht unterstützt"
+
+#: util/errors.c:73
+msgid "bad key"
+msgstr "Falscher Schlüssel"
+
+#: util/errors.c:74
+msgid "file read error"
+msgstr "Dateilesefehler"
+
+#: util/errors.c:75
+msgid "file write error"
+msgstr "Dateischreibfehler"
+
+#: util/errors.c:76
+msgid "unknown compress algorithm"
+msgstr "Unbekanntes Komprimierverfahren"
+
+#: util/errors.c:77
+msgid "file open error"
+msgstr "Fehler beim Öffnen der Datei"
+
+#: util/errors.c:78
+msgid "file create error"
+msgstr "Fehler beim Erzeugen der Datei"
+
+#: util/errors.c:79
+msgid "invalid passphrase"
+msgstr "Ungültiges Mantra"
+
+#: util/errors.c:80
+msgid "unimplemented pubkey algorithm"
+msgstr "nicht implementiertes öffentliches Schlüsselverfahren"
+
+#: util/errors.c:81
+msgid "unimplemented cipher algorithm"
+msgstr "Verschlüsselungsverfahren ist nicht implementiert"
+
+#: util/errors.c:82
+msgid "unknown signature class"
+msgstr "Unbekannte Unterschriftenklasse"
+
+#: util/errors.c:83
+msgid "trust database error"
+msgstr "Fehler in der Trust-DB"
+
+#: util/errors.c:84
+msgid "bad MPI"
+msgstr "Falsche MPI"
+
+#: util/errors.c:85
+msgid "resource limit"
+msgstr "festdefinierte Ressourcenobergrenze erreicht"
+
+#: util/errors.c:86
+msgid "invalid keyring"
+msgstr "Ungültiger Schlüsselbund"
+
+#: util/errors.c:87
+msgid "bad certificate"
+msgstr "Falsches Zertifikat"
+
+#: util/errors.c:88
+msgid "malformed user id"
+msgstr "Ungünstig aufgebaute User-ID"
+
+#: util/errors.c:89
+msgid "file close error"
+msgstr "Fehler beim Schließen der Datei"
+
+#: util/errors.c:90
+msgid "file rename error"
+msgstr "Fehler beim Umbenennen einer Datei"
+
+#: util/errors.c:91
+msgid "file delete error"
+msgstr "Fehler beim Löschen einer Datei"
+
+#: util/errors.c:92
+msgid "unexpected data"
+msgstr "Unerwartete Daten"
+
+#: util/errors.c:93
+msgid "timestamp conflict"
+msgstr "Zeitangaben differieren"
+
+#: util/errors.c:94
+msgid "unusable pubkey algorithm"
+msgstr "Unbenutzbares öffentliches Schlüsselverfahren"
+
+#: util/errors.c:95
+msgid "file exists"
+msgstr "Datei existiert bereits"
+
+#: util/errors.c:96
+msgid "weak key"
+msgstr "Unsicherer Schlüssel"
+
+#: util/errors.c:97
+msgid "invalid argument"
+msgstr "Ungültiges Argument"
+
+#: util/errors.c:98
+msgid "bad URI"
+msgstr "fehlerhafter URI"
+
+#: util/errors.c:99
+msgid "unsupported URI"
+msgstr "Nicht unterstützter URI"
+
+#: util/errors.c:100
+msgid "network error"
+msgstr "Netzwerkfehler"
+
+#: util/errors.c:102
+msgid "not encrypted"
+msgstr "nicht verschlüsselt"
+
+#: util/errors.c:103
+msgid "not processed"
+msgstr "nicht bearbeitet"
+
+#. the key cannot be used for a specific usage
+#: util/errors.c:105
+msgid "unusable public key"
+msgstr "unbrauchbarer öffentlicher Schüssel"
+
+#: util/errors.c:106
+msgid "unusable secret key"
+msgstr "unbrauchbarer geheimer Schlüssel"
+
+#: util/errors.c:107
+msgid "keyserver error"
+msgstr "Schlüsselserverfehler"
+
+#: util/logger.c:183
+msgid "ERROR: "
+msgstr ""
+
+#: util/logger.c:186
+msgid "WARNING: "
+msgstr ""
+
+#: util/logger.c:279
+#, c-format
+msgid "... this is a bug (%s:%d:%s)\n"
+msgstr "... dies ist ein Bug (Programmfehler) (%s:%d:%s)\n"
+
+#: util/logger.c:285
+#, c-format
+msgid "you found a bug ... (%s:%d)\n"
+msgstr "Sie haben eine Bug (Programmfehler) gefunden ... (%s:%d)\n"
+
+#: cipher/random.c:157
+msgid "no entropy gathering module detected\n"
+msgstr "Kein Modul zum sammeln von Entropie vorhanden\n"
+
+#: cipher/random.c:381 g10/import.c:200 g10/keygen.c:1820
+#, c-format
+msgid "can't open `%s': %s\n"
+msgstr "'%s' kann nicht geöffnet werden: %s\n"
+
+#: cipher/random.c:385
+#, c-format
+msgid "can't stat `%s': %s\n"
+msgstr "Status von '%s' ist nicht feststellbar: %s\n"
+
+#: cipher/random.c:390
+#, c-format
+msgid "`%s' is not a regular file - ignored\n"
+msgstr "'%s' ist keine normale Datei - sie bleibt unbeachtet\n"
+
+#: cipher/random.c:395
+msgid "note: random_seed file is empty\n"
+msgstr "Hinweis: 'random_seed'-Datei ist leer\n"
+
+#: cipher/random.c:401
+msgid "WARNING: invalid size of random_seed file - not used\n"
+msgstr ""
+"WARNUNG: Falsche Größe der 'random_seed'-Datei - sie wird nicht verwendet\n"
+
+#: cipher/random.c:409
+#, c-format
+msgid "can't read `%s': %s\n"
+msgstr "'%s' ist unlesbar: %s\n"
+
+#: cipher/random.c:447
+msgid "note: random_seed file not updated\n"
+msgstr "Hinweis: 'random_seed'-Datei bleibt unverändert\n"
+
+#: cipher/random.c:467
+#, c-format
+msgid "can't create `%s': %s\n"
+msgstr "'%s' kann nicht erzeugt werden: %s\n"
+
+#: cipher/random.c:474
+#, c-format
+msgid "can't write `%s': %s\n"
+msgstr "kann '%s' nicht schreiben: %s\n"
+
+#: cipher/random.c:477
+#, c-format
+msgid "can't close `%s': %s\n"
+msgstr "kann '%s' nicht schliessen: %s\n"
+
+#: cipher/random.c:723
+msgid "WARNING: using insecure random number generator!!\n"
+msgstr "WARNUNG: Der Zufallsgenerator erzeugt keine echten Zufallszahlen!\n"
+
+#: cipher/random.c:724
+msgid ""
+"The random number generator is only a kludge to let\n"
+"it run - it is in no way a strong RNG!\n"
+"\n"
+"DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n"
+"\n"
+msgstr ""
+"Der Zufallsgenerator (RNG) ist lediglich ein \"kludge\", damit das\n"
+"Programms überhaupt läuft - es ist KEINESFALLS ein starker RNG!\n"
+"\n"
+"BENUTZEN SIE DIE DURCH DIESES PROGRAMM ERZEUGTEN DATEN NICHT!\n"
+"\n"
+
+#: cipher/rndlinux.c:134
+#, 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 ""
+"\n"
+"Es sind nicht genügend Zufallswerte vorhanden.  Bitte führen Sie andere\n"
+"Arbeiten durch, damit das Betriebssystem weitere Entropie sammeln kann!\n"
+"(Es werden noch %d Byte benötigt.)\n"
+
+#: g10/g10.c:316
+msgid ""
+"@Commands:\n"
+" "
+msgstr ""
+"@Befehle:\n"
+" "
+
+#: g10/g10.c:318
+msgid "|[file]|make a signature"
+msgstr "|[Datei]|Eine Unterschrift erzeugen"
+
+#: g10/g10.c:319
+msgid "|[file]|make a clear text signature"
+msgstr "|[Datei]|Eine Klartextunterschrift erzeugen"
+
+#: g10/g10.c:320
+msgid "make a detached signature"
+msgstr "Eine abgetrennte Unterschrift erzeugen"
+
+#: g10/g10.c:321
+msgid "encrypt data"
+msgstr "Daten verschlüsseln"
+
+#: g10/g10.c:322
+msgid "|[files]|encrypt files"
+msgstr "|[Dateien]|Dateien verschlüsseln"
+
+#: g10/g10.c:323
+msgid "encryption only with symmetric cipher"
+msgstr "Daten symmetrisch verschlüsseln"
+
+#: g10/g10.c:324
+msgid "store only"
+msgstr "Nur speichern"
+
+#: g10/g10.c:325
+msgid "decrypt data (default)"
+msgstr "Daten entschlüsseln (Voreinstellung)"
+
+#: g10/g10.c:326
+msgid "|[files]|decrypt files"
+msgstr "|[Dateien]|Dateien entschlüsseln"
+
+#: g10/g10.c:327
+msgid "verify a signature"
+msgstr "Signatur prüfen"
+
+#: g10/g10.c:329
+msgid "list keys"
+msgstr "Liste der Schlüssel"
+
+#: g10/g10.c:331
+msgid "list keys and signatures"
+msgstr "Liste der Schlüssel und ihrer Signaturen"
+
+#: g10/g10.c:332
+msgid "check key signatures"
+msgstr "Signaturen der Schlüssel prüfen"
+
+#: g10/g10.c:333
+msgid "list keys and fingerprints"
+msgstr "Liste der Schlüssel und ihrer \"Fingerabdrücke\""
+
+#: g10/g10.c:334
+msgid "list secret keys"
+msgstr "Liste der geheimen Schlüssel"
+
+#: g10/g10.c:335
+msgid "generate a new key pair"
+msgstr "Ein neues Schlüsselpaar erzeugen"
+
+#: g10/g10.c:336
+msgid "remove keys from the public keyring"
+msgstr "Schlüssel aus dem öff. Schlüsselbund entfernen"
+
+#: g10/g10.c:338
+msgid "remove keys from the secret keyring"
+msgstr "Schlüssel aus dem geh. Schlüsselbund entfernen"
+
+#: g10/g10.c:339
+msgid "sign a key"
+msgstr "Schlüssel signieren"
+
+#: g10/g10.c:340
+msgid "sign a key locally"
+msgstr "Schlüssel nur für diesen Rechner signieren"
+
+#: g10/g10.c:341
+msgid "sign a key non-revocably"
+msgstr "Schlüssel nicht widerrufbar signieren"
+
+#: g10/g10.c:342
+msgid "sign a key locally and non-revocably"
+msgstr "Schlüssel nur für diesen Rechner und nicht-widerrufbar signieren"
+
+#: g10/g10.c:343
+msgid "sign or edit a key"
+msgstr "Unterschreiben oder bearbeiten eines Schl."
+
+#: g10/g10.c:344
+msgid "generate a revocation certificate"
+msgstr "Ein Schlüsselwiderruf-Zertifikat erzeugen"
+
+#: g10/g10.c:346
+msgid "export keys"
+msgstr "Schlüssel exportieren"
+
+#: g10/g10.c:347
+msgid "export keys to a key server"
+msgstr "Schlüssel zu einem Schlü.server exportieren"
+
+#: g10/g10.c:348
+msgid "import keys from a key server"
+msgstr "Schlüssel von einem Schlü.server importieren"
+
+#: g10/g10.c:350
+msgid "search for keys on a key server"
+msgstr "Schlüssel auf einem Schlü.server suchen"
+
+#: g10/g10.c:352
+msgid "update all keys from a keyserver"
+msgstr "alle Schlüssel per Schlü.server aktualisieren"
+
+#: g10/g10.c:356
+msgid "import/merge keys"
+msgstr "Schlüssel importieren/kombinieren"
+
+#: g10/g10.c:358
+msgid "list only the sequence of packets"
+msgstr "Lediglich Struktur der Datenpakete anzeigen"
+
+#: g10/g10.c:360
+msgid "export the ownertrust values"
+msgstr "Exportieren der \"Owner trust\"-Werte"
+
+#: g10/g10.c:362
+msgid "import ownertrust values"
+msgstr "Importieren der \"Owner trust\"-Werte"
+
+#: g10/g10.c:364
+msgid "update the trust database"
+msgstr "Ändern der \"Trust\"-Datenbank"
+
+#: g10/g10.c:366
+msgid "unattended trust database update"
+msgstr "unbeaufsichtigtes Ändern der \"Trust\"-Datenbank"
+
+#: g10/g10.c:367
+msgid "fix a corrupted trust database"
+msgstr "Reparieren einer beschädigten \"Trust\"-Datenb."
+
+#: g10/g10.c:368
+msgid "De-Armor a file or stdin"
+msgstr "Datei oder stdin von der ASCII-Hülle befreien"
+
+#: g10/g10.c:370
+msgid "En-Armor a file or stdin"
+msgstr "Datei oder stdin in eine ASCII-Hülle einpacken"
+
+#: g10/g10.c:372
+msgid "|algo [files]|print message digests"
+msgstr "|algo [Dateien]|Message-Digests für die Dateien ausgeben"
+
+#: g10/g10.c:376
+msgid ""
+"@\n"
+"Options:\n"
+" "
+msgstr ""
+"@\n"
+"Optionen:\n"
+" "
+
+#: g10/g10.c:378
+msgid "create ascii armored output"
+msgstr "Ausgabe mit ASCII-Hülle versehen"
+
+#: g10/g10.c:380
+msgid "|NAME|encrypt for NAME"
+msgstr "|NAME|Verschlüsseln für NAME"
+
+#: g10/g10.c:384
+msgid "|NAME|use NAME as default recipient"
+msgstr "|NAME|NAME als voreingestellten Empfänger benutzen"
+
+#: g10/g10.c:386
+msgid "use the default key as default recipient"
+msgstr ""
+"Den Standardschlüssel als voreingestellten\n"
+"Empfänger benutzen"
+
+#: g10/g10.c:393
+msgid "use this user-id to sign or decrypt"
+msgstr "Mit dieser User-ID signieren"
+
+#: g10/g10.c:394
+msgid "|N|set compress level N (0 disables)"
+msgstr "Kompressionsstufe auf N setzen (0=keine)"
+
+#: g10/g10.c:396
+msgid "use canonical text mode"
+msgstr "Textmodus benutzen"
+
+#: g10/g10.c:403
+msgid "use as output file"
+msgstr "Als Ausgabedatei benutzen"
+
+#: g10/g10.c:404
+msgid "verbose"
+msgstr "Detaillierte Informationen"
+
+#: g10/g10.c:405
+msgid "be somewhat more quiet"
+msgstr "Etwas weniger Infos"
+
+#: g10/g10.c:406
+msgid "don't use the terminal at all"
+msgstr "das Terminal gar nicht benutzen"
+
+#: g10/g10.c:407
+msgid "force v3 signatures"
+msgstr "v3 Signaturen erzwingen"
+
+#: g10/g10.c:408
+msgid "do not force v3 signatures"
+msgstr "v3 Signaturen nicht erzwingen"
+
+#: g10/g10.c:409
+msgid "force v4 key signatures"
+msgstr "v4 Signaturen erzwingen"
+
+#: g10/g10.c:410
+msgid "do not force v4 key signatures"
+msgstr "v4 Signaturen nicht erzwingen"
+
+#: g10/g10.c:411
+msgid "always use a MDC for encryption"
+msgstr "Beim Verschlüsseln ein Siegel (MDC) verwenden"
+
+#: g10/g10.c:413
+msgid "never use a MDC for encryption"
+msgstr "Beim Verschlüsseln niemals ein Siegel (MDC) verwenden"
+
+#: g10/g10.c:415
+msgid "do not make any changes"
+msgstr "Keine wirklichen Änderungen durchführen"
+
+#: g10/g10.c:416
+msgid "prompt before overwriting"
+msgstr "vor Überschreiben nachfragen"
+
+#: g10/g10.c:417
+msgid "use the gpg-agent"
+msgstr "den GPG-Agent verwenden"
+
+#: g10/g10.c:420
+msgid "batch mode: never ask"
+msgstr "Stapelmodus: Keine Abfragen"
+
+#: g10/g10.c:421
+msgid "assume yes on most questions"
+msgstr "\"Ja\" als Standardantwort annehmen"
+
+#: g10/g10.c:422
+msgid "assume no on most questions"
+msgstr "\"Nein\" als Standardantwort annehmen"
+
+#: g10/g10.c:423
+msgid "add this keyring to the list of keyrings"
+msgstr "Als öffentlichen Schlüsselbund mitbenutzen"
+
+#: g10/g10.c:425
+msgid "add this secret keyring to the list"
+msgstr "Als geheimen Schlüsselbund mitbenutzen"
+
+#: g10/g10.c:426
+msgid "show which keyring a listed key is on"
+msgstr "Anzeigen des Schlüsselbundes, in dem ein Schlüssel drin ist"
+
+#: g10/g10.c:427
+msgid "|NAME|use NAME as default secret key"
+msgstr "|NAME|NAME als voreingestellten Schlüssel benutzen"
+
+#: g10/g10.c:428
+msgid "|HOST|use this keyserver to lookup keys"
+msgstr "|HOST|Schlüssel bei diesem Server nachschlagen"
+
+#: g10/g10.c:432
+msgid "|NAME|set terminal charset to NAME"
+msgstr "|NAME|Terminalzeichensatz NAME benutzen"
+
+#: g10/g10.c:433
+msgid "read options from file"
+msgstr "Optionen aus der Datei lesen"
+
+#: g10/g10.c:437
+msgid "|FD|write status info to this FD"
+msgstr "|FD|Statusinfo auf FD (Dateihandle) ausgeben"
+
+#: g10/g10.c:439
+msgid "|[file]|write status info to file"
+msgstr "|[Datei]|Statusinfo in Datei schreiben"
+
+#: g10/g10.c:451
+msgid "|KEYID|ultimately trust this key"
+msgstr "|KEYID|diesem Schlüssel uneingeschränkt vertrauen"
+
+#: g10/g10.c:452
+msgid "|FILE|load extension module FILE"
+msgstr "|DATEI|Erweiterungsmodul DATEI laden"
+
+#: g10/g10.c:453
+msgid "emulate the mode described in RFC1991"
+msgstr "Den in RFC1991 beschriebenen Modus nachahmen"
+
+#: g10/g10.c:454
+msgid "set all packet, cipher and digest options to OpenPGP behavior"
+msgstr ""
+"alle Paket-, Verschlüsselungs- und\n"
+"Hashoptionen auf OpenPGP-Verhalten einstellen"
+
+#: g10/g10.c:455
+msgid "set all packet, cipher and digest options to PGP 2.x behavior"
+msgstr ""
+"alle Paket-, Verschlüsselungs- und\n"
+"Hashoptionen auf PGP 2.X-Verhalten einstellen"
+
+#: g10/g10.c:461
+msgid "|N|use passphrase mode N"
+msgstr "|N|Verwenden des Mantra-Modus N"
+
+#: g10/g10.c:463
+msgid "|NAME|use message digest algorithm NAME for passphrases"
+msgstr "|NAME|Hashverfahren NAME für Mantras benutzen"
+
+#: g10/g10.c:465
+msgid "|NAME|use cipher algorithm NAME for passphrases"
+msgstr "|NAME|Verschl.verfahren NAME für Mantras benutzen"
+
+#: g10/g10.c:467
+msgid "|NAME|use cipher algorithm NAME"
+msgstr "|NAME|Verschl.verfahren NAME benutzen"
+
+#: g10/g10.c:468
+msgid "|NAME|use message digest algorithm NAME"
+msgstr "|NAME|Hashverfahren NAME benutzen"
+
+#: g10/g10.c:470
+msgid "|N|use compress algorithm N"
+msgstr "|N|Komprimierverfahren N benutzen"
+
+#: g10/g10.c:471
+msgid "throw keyid field of encrypted packets"
+msgstr "Empfänger-ID verschlüsselter Pakete entfernen"
+
+#: g10/g10.c:473
+msgid "Show Photo IDs"
+msgstr "Foto-IDs anzeigen"
+
+#: g10/g10.c:474
+msgid "Don't show Photo IDs"
+msgstr "Foto-IDs nicht anzeigen"
+
+#: g10/g10.c:475
+msgid "Set command line to view Photo IDs"
+msgstr "Kommandozeilentext für den Foto-Betrachter setzen"
+
+#: g10/g10.c:481
+msgid ""
+"@\n"
+"(See the man page for a complete listing of all commands and options)\n"
+msgstr ""
+"@\n"
+"(Auf der \"man\"-Seite ist eine vollständige Liste aller Kommandos und "
+"Optionen)\n"
+
+#: g10/g10.c:484
+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 ""
+"@\n"
+"Beispiele:\n"
+"\n"
+" -se -r Bob [Datei]         Signieren und verschlüsseln für Benutzer Bob\n"
+" --clearsign [Datei]        Eine Klartextsignatur erzeugen\n"
+" --detach-sign [Datei]      Eine abgetrennte Signatur erzeugen\n"
+" --list-keys [Namen]        Schlüssel anzeigen\n"
+" --fingerprint [Namen]      \"Fingerabdrücke\" anzeigen\n"
+
+#: g10/g10.c:640
+msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
+msgstr ""
+"Berichte über Programmfehler bitte in englisch an <gnupg-bugs@gnu.org>.\n"
+"Sinn- oder Schreibfehler in den deutschen Texten bitte an <de@li.org>.\n"
+
+#: g10/g10.c:644
+msgid "Usage: gpg [options] [files] (-h for help)"
+msgstr "Aufruf: gpg [Optionen] [Dateien] (-h für Hilfe)"
+
+#: g10/g10.c:647
+msgid ""
+"Syntax: gpg [options] [files]\n"
+"sign, check, encrypt or decrypt\n"
+"default operation depends on the input data\n"
+msgstr ""
+"Aufruf: gpg [Optionen] [Dateien]\n"
+"Signieren, prüfen, verschlüsseln, entschlüsseln.\n"
+"Die voreingestellte Operation ist abhängig von den Eingabedaten.\n"
+
+#: g10/g10.c:658
+msgid ""
+"\n"
+"Supported algorithms:\n"
+msgstr ""
+"\n"
+"Unterstützte Verfahren:\n"
+
+#: g10/g10.c:762
+msgid "usage: gpg [options] "
+msgstr "Aufruf: gpg [Optionen] "
+
+#: g10/g10.c:830
+msgid "conflicting commands\n"
+msgstr "Widersprüchliche Befehle\n"
+
+#: g10/g10.c:848
+#, c-format
+msgid "no = sign found in group definition \"%s\"\n"
+msgstr "Kein '='-Zeichen in der Gruppendefinition \"%s\"\n"
+
+#: g10/g10.c:1008
+#, fuzzy, c-format
+msgid "WARNING: unsafe ownership on homedir \"%s\"\n"
+msgstr "WARNUNG: Unsicheres Besitzverhältnis von %s \"%s\"\n"
+
+#: g10/g10.c:1011
+#, fuzzy, c-format
+msgid "WARNING: unsafe ownership on configuration file \"%s\"\n"
+msgstr "WARNUNG: Unsicheres Besitzverhältnis von %s \"%s\"\n"
+
+#: g10/g10.c:1014
+#, fuzzy, c-format
+msgid "WARNING: unsafe ownership on extension \"%s\"\n"
+msgstr "WARNUNG: Unsicheres Besitzverhältnis von %s \"%s\"\n"
+
+#: g10/g10.c:1020
+#, fuzzy, c-format
+msgid "WARNING: unsafe permissions on homedir \"%s\"\n"
+msgstr "WARNUNG: Unsichere Zugriffsrechte für %s \"%s\"\n"
+
+#: g10/g10.c:1023
+#, fuzzy, c-format
+msgid "WARNING: unsafe permissions on configuration file \"%s\"\n"
+msgstr "WARNUNG: Unsichere Zugriffsrechte für %s \"%s\"\n"
+
+#: g10/g10.c:1026
+#, fuzzy, c-format
+msgid "WARNING: unsafe permissions on extension \"%s\"\n"
+msgstr "WARNUNG: Unsichere Zugriffsrechte für %s \"%s\"\n"
+
+#: g10/g10.c:1032
+#, fuzzy, c-format
+msgid "WARNING: unsafe enclosing directory ownership on homedir \"%s\"\n"
+msgstr "WARNUNG: Unsicheres Besitzverhältnis von %s \"%s\"\n"
+
+#: g10/g10.c:1035
+#, fuzzy, c-format
+msgid ""
+"WARNING: unsafe enclosing directory ownership on configuration file \"%s\"\n"
+msgstr "WARNUNG: Unsicheres Besitzverhältnis von %s \"%s\"\n"
+
+#: g10/g10.c:1038
+#, fuzzy, c-format
+msgid "WARNING: unsafe enclosing directory ownership on extension \"%s\"\n"
+msgstr "WARNUNG: Unsicheres Besitzverhältnis von %s \"%s\"\n"
+
+#: g10/g10.c:1044
+#, fuzzy, c-format
+msgid "WARNING: unsafe enclosing directory permissions on homedir \"%s\"\n"
+msgstr "WARNUNG: Unsichere Zugriffsrechte für %s \"%s\"\n"
+
+#: g10/g10.c:1047
+#, fuzzy, c-format
+msgid ""
+"WARNING: unsafe enclosing directory permissions on configuration file \"%s"
+"\"\n"
+msgstr "WARNUNG: Unsichere Zugriffsrechte für %s \"%s\"\n"
+
+#: g10/g10.c:1050
+#, fuzzy, c-format
+msgid "WARNING: unsafe enclosing directory permissions on extension \"%s\"\n"
+msgstr "WARNUNG: Unsichere Zugriffsrechte für %s \"%s\"\n"
+
+#: g10/g10.c:1236
+#, c-format
+msgid "NOTE: old default options file `%s' ignored\n"
+msgstr "Hinweis: Alte voreingestellte Optionendatei '%s' wurde ignoriert\n"
+
+#: g10/g10.c:1272
+#, c-format
+msgid "NOTE: no default option file `%s'\n"
+msgstr "Hinweis: Keine voreingestellte Optionendatei '%s' vorhanden\n"
+
+#: g10/g10.c:1276
+#, c-format
+msgid "option file `%s': %s\n"
+msgstr "Optionendatei '%s': %s\n"
+
+#: g10/g10.c:1283
+#, c-format
+msgid "reading options from `%s'\n"
+msgstr "Optionen werden aus '%s' gelesen\n"
+
+#: g10/g10.c:1472 g10/g10.c:1805 g10/g10.c:1816
+#, c-format
+msgid "NOTE: %s is not for normal use!\n"
+msgstr "Hinweis: %s ist nicht für den üblichen Gebrauch gedacht!\n"
+
+#: g10/g10.c:1484
+#, c-format
+msgid "cipher extension \"%s\" not loaded due to unsafe permissions\n"
+msgstr ""
+"Verschlüsselungserweiterung \"%s\" wurde wegen falscher Rechte nicht "
+"geladen\n"
+
+#: g10/g10.c:1627
+#, c-format
+msgid "%s is not a valid character set\n"
+msgstr "%s ist kein gültiger Zeichensatz.\n"
+
+#: g10/g10.c:1645
+msgid "could not parse keyserver URI\n"
+msgstr "Schlüsselserver-URI konnte nicht zerlegt werden\n"
+
+#: g10/g10.c:1654
+#, c-format
+msgid "%s:%d: invalid import options\n"
+msgstr "%s:%d: ungültige Import Option.\n"
+
+#: g10/g10.c:1657
+msgid "invalid import options\n"
+msgstr "Ungültige Import Option\n"
+
+#: g10/g10.c:1664
+#, c-format
+msgid "%s:%d: invalid export options\n"
+msgstr "%s:%d: ungültige Export Option.\n"
+
+#: g10/g10.c:1667
+msgid "invalid export options\n"
+msgstr "Ungültige export Option\n"
+
+#: g10/g10.c:1673
+#, c-format
+msgid "unable to set exec-path to %s\n"
+msgstr "Der Ausführungspfad konnte nicht auf %s gesetzt werden.\n"
+
+#: g10/g10.c:1794
+msgid "WARNING: program may create a core file!\n"
+msgstr "WARNUNG: Programm könnte eine core-dump-Datei schreiben!\n"
+
+#: g10/g10.c:1798
+#, c-format
+msgid "WARNING: %s overrides %s\n"
+msgstr "WARNUNG: %s ersetzt %s\n"
+
+#: g10/g10.c:1807 g10/g10.c:1826
+#, c-format
+msgid "%s not allowed with %s!\n"
+msgstr "%s kann nicht zusammen mit %s verwendet werden!\n"
+
+#: g10/g10.c:1810
+#, c-format
+msgid "%s makes no sense with %s!\n"
+msgstr "%s zusammen mit %s ist nicht sinnvoll!\n"
+
+#: g10/g10.c:1836
+msgid "you can only make detached or clear signatures while in --pgp2 mode\n"
+msgstr ""
+"Im --pgp2-Modus können Sie nur abgetrennte oder Klartextunterschriften "
+"machen\n"
+
+#: g10/g10.c:1842
+msgid "you can't sign and encrypt at the same time while in --pgp2 mode\n"
+msgstr ""
+"Im --pgp2-Modus können Sie nicht gleichzeitig unterschreiben und "
+"verschlüsseln\n"
+
+#: g10/g10.c:1848
+msgid "you must use files (and not a pipe) when working with --pgp2 enabled.\n"
+msgstr ""
+"Im --pgp2-Modus müssen Sie Dateien benutzen und können keine Pipes "
+"verwenden.\n"
+
+#: g10/g10.c:1861
+msgid "encrypting a message in --pgp2 mode requires the IDEA cipher\n"
+msgstr ""
+"Verschlüssen einer Botschaft benötigt im --pgp2-Modus die IDEA-"
+"Verschlüsselung\n"
+
+#: g10/encode.c:409 g10/encode.c:459 g10/encode.c:710 g10/g10.c:1886
+#: g10/pkclist.c:821 g10/pkclist.c:859 g10/sign.c:647 g10/sign.c:879
+#, c-format
+msgid "this message may not be usable by %s\n"
+msgstr "Diese Botschaft könnte für %s unbrauchbar sein\n"
+
+#: g10/g10.c:1934 g10/g10.c:1952
+msgid "selected cipher algorithm is invalid\n"
+msgstr "Das ausgewählte Verschlüsselungsverfahren ist ungültig\n"
+
+#: g10/g10.c:1940 g10/g10.c:1958
+msgid "selected digest algorithm is invalid\n"
+msgstr "Das ausgewählte Hashverfahren ist ungültig\n"
+
+#: g10/g10.c:1946
+msgid "selected certification digest algorithm is invalid\n"
+msgstr "Das ausgewählte Hashverfahren ist ungültig\n"
+
+#: g10/g10.c:1961
+#, c-format
+msgid "compress algorithm must be in range %d..%d\n"
+msgstr "Das Komprimierverfahren muß im Bereich %d bis %d liegen\n"
+
+#: g10/g10.c:1963
+msgid "completes-needed must be greater than 0\n"
+msgstr "completes-needed müssen größer als 0 sein\n"
+
+#: g10/g10.c:1965
+msgid "marginals-needed must be greater than 1\n"
+msgstr "marginals-needed müssen größer als 1 sein\n"
+
+#: g10/g10.c:1967
+msgid "max-cert-depth must be in range 1 to 255\n"
+msgstr "max-cert-depth muß im Bereich 1 bis 255 liegen\n"
+
+#: g10/g10.c:1970
+msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
+msgstr "Hinweis: Vom \"simple S2K\"-Modus (0) ist strikt abzuraten\n"
+
+#: g10/g10.c:1974
+msgid "invalid S2K mode; must be 0, 1 or 3\n"
+msgstr "ungültiger \"simple S2K\"-Modus; Wert muß 0, 1 oder 3 sein\n"
+
+#: g10/g10.c:1978
+msgid "invalid default-check-level; must be 0, 1, 2, or 3\n"
+msgstr "ungültiger \"default-check-level\"; Wert muß 0, 1, 2 oder 3 sein\n"
+
+#: g10/g10.c:1984
+msgid "invalid default preferences\n"
+msgstr "ungültige Standard Voreinstellungen\n"
+
+#: g10/g10.c:1992
+msgid "invalid personal cipher preferences\n"
+msgstr "ungültige private Verschlüsselungsvoreinstellungen\n"
+
+#: g10/g10.c:1996
+msgid "invalid personal digest preferences\n"
+msgstr "ungültige private Hashvoreinstellungen\n"
+
+#: g10/g10.c:2000
+msgid "invalid personal compress preferences\n"
+msgstr "ungültige private Komprimierungsvoreinstellungen\n"
+
+#: g10/g10.c:2093
+#, c-format
+msgid "failed to initialize the TrustDB: %s\n"
+msgstr "Die Trust-DB kann nicht initialisiert werden: %s\n"
+
+#: g10/g10.c:2103
+msgid "WARNING: recipients (-r) given without using public key encryption\n"
+msgstr ""
+"WARNUNG: Empfänger (-r) angegeben ohne Verwendung von Public-Key-Verfahren\n"
+
+#: g10/g10.c:2113
+msgid "--store [filename]"
+msgstr "--store [Dateiname]"
+
+#: g10/g10.c:2120
+msgid "--symmetric [filename]"
+msgstr "--symmetric [Dateiname]"
+
+#: g10/g10.c:2128
+msgid "--encrypt [filename]"
+msgstr "--encrypt [Dateiname]"
+
+#: g10/g10.c:2145
+msgid "--sign [filename]"
+msgstr "--sign [Dateiname]"
+
+#: g10/g10.c:2158
+msgid "--sign --encrypt [filename]"
+msgstr "--sign --encrypt [Dateiname]"
+
+#: g10/g10.c:2172
+msgid "--sign --symmetric [filename]"
+msgstr "--sign --symmetric [Dateiname]"
+
+#: g10/g10.c:2181
+msgid "--clearsign [filename]"
+msgstr "--clearsign [Dateiname]"
+
+#: g10/g10.c:2199
+msgid "--decrypt [filename]"
+msgstr "--decrypt [Dateiname]"
+
+#: g10/g10.c:2210
+msgid "--sign-key user-id"
+msgstr "--sign-key User-ID"
+
+#: g10/g10.c:2218
+msgid "--lsign-key user-id"
+msgstr "--lsign-key User-ID"
+
+#: g10/g10.c:2226
+msgid "--nrsign-key user-id"
+msgstr "--nrsign-key User-ID"
+
+#: g10/g10.c:2234
+msgid "--nrlsign-key user-id"
+msgstr "--nrlsign-key User-ID"
+
+#: g10/g10.c:2242
+msgid "--edit-key user-id [commands]"
+msgstr "--edit-key User-ID [Befehle]"
+
+#: g10/encode.c:417 g10/g10.c:2298 g10/sign.c:790
+#, c-format
+msgid "can't open %s: %s\n"
+msgstr "'%s' kann nicht geöffnet werden: %s\n"
+
+#: g10/g10.c:2313
+msgid "-k[v][v][v][c] [user-id] [keyring]"
+msgstr "-k[v][v][v][c] [User-ID] [Schlüsselbund]"
+
+#: g10/g10.c:2405
+#, c-format
+msgid "dearmoring failed: %s\n"
+msgstr "Entfernen der ASCII-Hülle ist fehlgeschlagen: %s\n"
+
+#: g10/g10.c:2413
+#, c-format
+msgid "enarmoring failed: %s\n"
+msgstr "Anbringen der ASCII-Hülle ist fehlgeschlagen: %s\n"
+
+#: g10/g10.c:2500
+#, c-format
+msgid "invalid hash algorithm `%s'\n"
+msgstr "Ungültiges Hashverfahren '%s'\n"
+
+#: g10/g10.c:2586
+msgid "[filename]"
+msgstr "[Dateiname]"
+
+#: g10/g10.c:2590
+msgid "Go ahead and type your message ...\n"
+msgstr "Auf geht's - Botschaft eintippen ...\n"
+
+#: g10/decrypt.c:60 g10/decrypt.c:106 g10/g10.c:2593 g10/verify.c:94
+#: g10/verify.c:139
+#, c-format
+msgid "can't open `%s'\n"
+msgstr "'%s' kann nicht geöffnet werden\n"
+
+#: g10/g10.c:2807
+msgid ""
+"a notation name must have only printable characters or spaces, and end with "
+"an '='\n"
+msgstr ""
+"Ein \"notation\"-Name darf nur Buchstaben, Zahlen, Punkte oder Unterstriche "
+"enthalten und muß mit einem '=' enden\n"
+
+#: g10/g10.c:2816
+msgid "a notation value must not use any control characters\n"
+msgstr "Ein \"notation\"-Wert darf keine Kontrollzeichen verwenden\n"
+
+#: g10/g10.c:2853
+msgid "the given certification policy URL is invalid\n"
+msgstr "Die angegebene Zertifikat-Richtlinien-URL ist ungültig\n"
+
+#: g10/g10.c:2855
+msgid "the given signature policy URL is invalid\n"
+msgstr "Die angegebene Unterschriften-Richtlinien-URL ist ungültig\n"
+
+#: g10/armor.c:314
+#, c-format
+msgid "armor: %s\n"
+msgstr "ASCII-Hülle: %s\n"
+
+#: g10/armor.c:343
+msgid "invalid armor header: "
+msgstr "Ungültige ASCII-Hülle"
+
+#: g10/armor.c:350
+msgid "armor header: "
+msgstr "ASCII-Hülle: "
+
+#: g10/armor.c:361
+msgid "invalid clearsig header\n"
+msgstr "Ungültige Klartextsignatur-Einleitung\n"
+
+#: g10/armor.c:413
+msgid "nested clear text signatures\n"
+msgstr "verschachtelte Klartextunterschriften\n"
+
+#: g10/armor.c:537
+msgid "invalid dash escaped line: "
+msgstr "Ungültige mit Bindestrich \"escapte\" Zeile: "
+
+#: g10/armor.c:549
+msgid "unexpected armor:"
+msgstr "Unerwartete ASCII-Hülle:"
+
+#: g10/armor.c:675 g10/armor.c:1242
+#, c-format
+msgid "invalid radix64 character %02x skipped\n"
+msgstr "Ungültiges \"radix64\" Zeichen %02x ignoriert\n"
+
+#: g10/armor.c:718
+msgid "premature eof (no CRC)\n"
+msgstr "vorzeitiges Dateiende (keine Prüfsumme)\n"
+
+#: g10/armor.c:752
+msgid "premature eof (in CRC)\n"
+msgstr "vorzeitiges Dateiende (innerhalb der Prüfsumme)\n"
+
+#: g10/armor.c:756
+msgid "malformed CRC\n"
+msgstr "Falsch aufgebaute Prüfsumme\n"
+
+#: g10/armor.c:760 g10/armor.c:1279
+#, c-format
+msgid "CRC error; %06lx - %06lx\n"
+msgstr "Prüfsummenfehler; %06lx - %06lx\n"
+
+#: g10/armor.c:780
+msgid "premature eof (in Trailer)\n"
+msgstr "vorzeitiges Dateiende (im Nachsatz)\n"
+
+#: g10/armor.c:784
+msgid "error in trailer line\n"
+msgstr "Fehler in der Nachsatzzeile\n"
+
+#: g10/armor.c:1057
+msgid "no valid OpenPGP data found.\n"
+msgstr "Keine gültigen OpenPGP-Daten gefunden.\n"
+
+#: g10/armor.c:1062
+#, c-format
+msgid "invalid armor: line longer than %d characters\n"
+msgstr "ungültige ASCII-Hülle: Zeile ist länger als %d Zeichen\n"
+
+#: g10/armor.c:1066
+msgid ""
+"quoted printable character in armor - probably a buggy MTA has been used\n"
+msgstr ""
+"\"quoted printable\" Zeichen in der ASCII-Hülle gefunden - möglicherweise\n"
+" war ein fehlerhafter E-Mail-Transporter(\"MTA\") die Ursache\n"
+
+#: g10/pkclist.c:62
+msgid "No reason specified"
+msgstr "Kein Grund angegeben"
+
+#: g10/pkclist.c:64
+msgid "Key is superseded"
+msgstr "Schlüssel ist überholt"
+
+#: g10/pkclist.c:66
+msgid "Key has been compromised"
+msgstr "Hinweis: Dieser Schlüssel ist nicht mehr sicher"
+
+#: g10/pkclist.c:68
+msgid "Key is no longer used"
+msgstr "Schlüssel wird nicht mehr benutzt"
+
+#: g10/pkclist.c:70
+msgid "User ID is no longer valid"
+msgstr "User-ID ist nicht mehr gültig"
+
+#: g10/pkclist.c:74
+msgid "reason for revocation: "
+msgstr "Grund für Widerruf: "
+
+#: g10/pkclist.c:91
+msgid "revocation comment: "
+msgstr "Widerruf-Bemerkung: "
+
+#. a string with valid answers
+#: g10/pkclist.c:264
+msgid "iImMqQsS"
+msgstr "iImMqQsS"
+
+#: g10/pkclist.c:272
+#, c-format
+msgid ""
+"No trust value assigned to:\n"
+"%4u%c/%08lX %s \""
+msgstr ""
+"Es ist kein \"trust value\" zugewiesen für:\n"
+"%4u%c/%08lX %s \""
+
+#: g10/mainproc.c:1428 g10/pkclist.c:300
+msgid "                aka \""
+msgstr "                    alias \""
+
+#: g10/keyedit.c:297 g10/pkclist.c:311
+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"
+msgstr ""
+"Bitte entscheiden Sie, in wieweit Sie diesem User zutrauen,\n"
+"Schlüssel anderer User korrekt zu prüfen (durch Vergleich\n"
+"mit Lichtbildausweisen, Vergleich der Fingerabdrücke aus\n"
+"unterschiedlichen Quellen ...)?\n"
+"\n"
+
+#: g10/pkclist.c:315
+#, fuzzy, c-format
+msgid " %d = I don't know\n"
+msgstr " %d = Weiß nicht so recht\n"
+
+#: g10/pkclist.c:317
+#, c-format
+msgid " %d = I do NOT trust\n"
+msgstr " %d = Nein, ihm traue ich NICHT\n"
+
+#: g10/pkclist.c:319
+#, c-format
+msgid " %d = I trust marginally\n"
+msgstr " %d = Ich vertraue ihm einigermaßen\n"
+
+#: g10/pkclist.c:321
+#, c-format
+msgid " %d = I trust fully\n"
+msgstr " %d = Ich vertraue ihm vollständig\n"
+
+#: g10/pkclist.c:323
+#, c-format
+msgid " %d = I trust ultimately\n"
+msgstr " %d = Ich vertraue ihm absolut\n"
+
+#. not yet implemented
+#: g10/pkclist.c:326
+msgid " i = please show me more information\n"
+msgstr " i = Bitte weitere Information anzeigen\n"
+
+#: g10/pkclist.c:329
+msgid " m = back to the main menu\n"
+msgstr " m = Zurück zum Menü\n"
+
+#: g10/pkclist.c:332
+msgid " s = skip this key\n"
+msgstr " s = diesen Schlüssel überSpringen\n"
+
+#: g10/pkclist.c:333
+msgid " q = quit\n"
+msgstr " q = verlassen\n"
+
+#: g10/pkclist.c:337
+#, c-format
+msgid ""
+"The minimum trust level for this key is: %s\n"
+"\n"
+msgstr ""
+
+#: g10/pkclist.c:343
+msgid "Your decision? "
+msgstr "Ihre Auswahl? "
+
+#: g10/pkclist.c:364
+msgid "Do you really want to set this key to ultimate trust? "
+msgstr "Möchten Sie diesem Schlüssel wirklich uneingeschränkt vertrauen? "
+
+#: g10/pkclist.c:378
+msgid "Certificates leading to an ultimately trusted key:\n"
+msgstr "Zertifikate führen zu einem letztlich vertrauenswürdigen Schlüssel:\n"
+
+#: g10/pkclist.c:453
+#, c-format
+msgid "key %08lX: key has been revoked!\n"
+msgstr "Schlüssel %08lX: Schlüssel wurde widerrufen\n"
+
+#: g10/pkclist.c:460 g10/pkclist.c:472 g10/pkclist.c:566
+msgid "Use this key anyway? "
+msgstr "Diesen Schlüssel trotzdem benutzen? "
+
+#: g10/pkclist.c:465
+#, c-format
+msgid "key %08lX: subkey has been revoked!\n"
+msgstr "Schlüssel %08lX: Unterschlüssel wurde widerrufen\n"
+
+#: g10/pkclist.c:486
+#, c-format
+msgid "%08lX: key has expired\n"
+msgstr "%08lX: Schlüssel ist verfallen!\n"
+
+#: g10/pkclist.c:496
+#, c-format
+msgid ""
+"%08lX: There is no indication that this key really belongs to the owner\n"
+msgstr ""
+"%08lX: Es gibt keinen Hinweis, daß die Signatur wirklich dem vorgeblichen "
+"Besitzer gehört.\n"
+
+#: g10/pkclist.c:502
+#, c-format
+msgid "%08lX: We do NOT trust this key\n"
+msgstr "%08lX: Wir haben KEIN Vertrauen zu diesem Schlüssel!\n"
+
+#: g10/pkclist.c:508
+#, c-format
+msgid ""
+"%08lX: It is not sure that this key really belongs to the owner\n"
+"but it is accepted anyway\n"
+msgstr ""
+"%08lX: Es ist nicht sicher, daß dieser Schlüssel wirklich dem vorgeblichen\n"
+"Besitzer gehört, aber er wird trotzdem akzeptiert\n"
+
+#: g10/pkclist.c:514
+msgid "This key probably belongs to the owner\n"
+msgstr ""
+"Dieser Schlüssel gehört höchstwahrscheinlich dem angegebenen Besitzer\n"
+
+#: g10/pkclist.c:519
+msgid "This key belongs to us\n"
+msgstr ""
+"Dieser Schlüssel gehört uns (da wir nämlich den geheimen Schlüssel dazu "
+"haben)\n"
+
+#: g10/pkclist.c:561
+msgid ""
+"It is NOT certain that the key belongs to the person named\n"
+"in the user ID.  If you *really* know what you are doing,\n"
+"you may answer the next question with yes\n"
+"\n"
+msgstr ""
+"Es ist NICHT sicher, daß der Schlüssel dem vorgeblichen Besitzer gehört.\n"
+"Wenn Sie *wirklich* wissen, was Sie tun, können Sie die nächste\n"
+"Frage mit ja beantworten\n"
+
+#: g10/pkclist.c:575 g10/pkclist.c:597
+msgid "WARNING: Using untrusted key!\n"
+msgstr "WARNUNG: Ein Schlüssel ohne gesichertes Vertrauen wird benutzt!\n"
+
+#: g10/pkclist.c:616
+msgid "WARNING: This key has been revoked by its owner!\n"
+msgstr "WARNUNG: Dieser Schlüssel wurde von seinem Besitzer widerrufen!\n"
+
+#: g10/pkclist.c:617
+msgid "         This could mean that the signature is forgery.\n"
+msgstr "         Das könnte bedeuten, daß die Signatur gefälscht ist.\n"
+
+#: g10/pkclist.c:623
+msgid "WARNING: This subkey has been revoked by its owner!\n"
+msgstr "WARNUNG: Dieser Unterschlüssel wurde von seinem Besitzer widerrufen!\n"
+
+#: g10/pkclist.c:628
+msgid "Note: This key has been disabled.\n"
+msgstr "Hinweis: Dieser Schlüssel wurde abgeschaltet.\n"
+
+#: g10/pkclist.c:633
+msgid "Note: This key has expired!\n"
+msgstr "Hinweis: Dieser Schlüssel ist verfallen!\n"
+
+#: g10/pkclist.c:644
+msgid "WARNING: This key is not certified with a trusted signature!\n"
+msgstr "WARNUNG: Dieser Schlüssel trägt keine vertrauenswürdige Signatur!\n"
+
+#: g10/pkclist.c:646
+msgid ""
+"         There is no indication that the signature belongs to the owner.\n"
+msgstr ""
+"         Es gibt keinen Hinweis, daß die Signatur wirklich dem vorgeblichen "
+"Besitzer gehört.\n"
+
+#: g10/pkclist.c:654
+msgid "WARNING: We do NOT trust this key!\n"
+msgstr "WARNUNG: Wir haben KEIN Vertrauen zu diesem Schlüssel!\n"
+
+#: g10/pkclist.c:655
+msgid "         The signature is probably a FORGERY.\n"
+msgstr "         Die Signatur ist wahrscheinlich eine FÄLSCHUNG.\n"
+
+#: g10/pkclist.c:663
+msgid ""
+"WARNING: This key is not certified with sufficiently trusted signatures!\n"
+msgstr ""
+"WARNUNG: Dieser Schlüssel ist nicht durch hinreichend vertrauenswürdige "
+"Signaturen zertifiziert!\n"
+
+#: g10/pkclist.c:665
+msgid "         It is not certain that the signature belongs to the owner.\n"
+msgstr ""
+"         Es ist nicht sicher, daß die Signatur wirklich dem vorgeblichen "
+"Besitzer gehört.\n"
+
+#: g10/encode.c:706 g10/pkclist.c:817 g10/pkclist.c:855
+#, c-format
+msgid "you may not use %s while in %s mode\n"
+msgstr "Die Benutzung von %s ist im %s-Modus nicht erlaubt.\n"
+
+#: g10/pkclist.c:832 g10/pkclist.c:868 g10/pkclist.c:1020 g10/pkclist.c:1080
+#, c-format
+msgid "%s: skipped: %s\n"
+msgstr "%s: übersprungen: %s\n"
+
+#: g10/pkclist.c:842 g10/pkclist.c:1052
+#, c-format
+msgid "%s: skipped: public key already present\n"
+msgstr "%s: übersprungen: öffentlicher Schlüssel bereits vorhanden\n"
+
+#: g10/pkclist.c:885
+msgid "You did not specify a user ID. (you may use \"-r\")\n"
+msgstr ""
+"Sie haben keine User-ID angegeben (Sie können die Option \"-r\" verwenden).\n"
+
+#: g10/pkclist.c:898
+msgid ""
+"\n"
+"Enter the user ID.  End with an empty line: "
+msgstr ""
+"\n"
+"Geben Sie die User-ID ein. Beenden mit einer leeren Zeile: "
+
+#: g10/pkclist.c:914
+msgid "No such user ID.\n"
+msgstr "Keine solche User-ID vorhanden.\n"
+
+#: g10/pkclist.c:919 g10/pkclist.c:995
+msgid "skipped: public key already set as default recipient\n"
+msgstr ""
+"übersprungen: öffentlicher Schlüssel bereits als Standardempfänger gesetzt\n"
+
+#: g10/pkclist.c:937
+msgid "Public key is disabled.\n"
+msgstr "Öffentlicher Schlüssel ist abgeschaltet.\n"
+
+#: g10/pkclist.c:944
+msgid "skipped: public key already set\n"
+msgstr "übersprungen: öffentlicher Schlüssel bereits gesetzt\n"
+
+#: g10/pkclist.c:987
+#, c-format
+msgid "unknown default recipient `%s'\n"
+msgstr "Unbekannter voreingestellter Empfänger '%s'\n"
+
+#: g10/pkclist.c:1032
+#, c-format
+msgid "%s: skipped: public key is disabled\n"
+msgstr "%s: übersprungen: öffentlicher Schlüssel ist abgeschaltet\n"
+
+#: g10/pkclist.c:1087
+msgid "no valid addressees\n"
+msgstr "Keine gültigen Adressaten\n"
+
+#: g10/keygen.c:184
+#, fuzzy, c-format
+msgid "preference `%s' duplicated\n"
+msgstr "Voreinstellung %c%lu ist doppelt\n"
+
+#: g10/keygen.c:191
+#, fuzzy
+msgid "too many cipher preferences\n"
+msgstr "zu viele `%c' Voreinstellungen\n"
+
+#: g10/keygen.c:193
+#, fuzzy
+msgid "too many digest preferences\n"
+msgstr "zu viele `%c' Voreinstellungen\n"
+
+#: g10/keygen.c:195
+#, fuzzy
+msgid "too many compression preferences\n"
+msgstr "zu viele `%c' Voreinstellungen\n"
+
+#: g10/keygen.c:265
+#, fuzzy, c-format
+msgid "invalid item `%s' in preference string\n"
+msgstr "Ungültiges Zeichen in den Voreinstellungen\n"
+
+#: g10/keygen.c:535
+msgid "writing direct signature\n"
+msgstr "Die \"Direct Key Signature\" wird geschrieben\n"
+
+#: g10/keygen.c:574
+msgid "writing self signature\n"
+msgstr "Die Eigenbeglaubigung wird geschrieben\n"
+
+#: g10/keygen.c:618
+msgid "writing key binding signature\n"
+msgstr "Schreiben der \"key-binding\" Signatur\n"
+
+#: g10/keygen.c:672 g10/keygen.c:756 g10/keygen.c:847
+#, c-format
+msgid "keysize invalid; using %u bits\n"
+msgstr "Ungültig Schlüssellänge; %u Bit werden verwendet\n"
+
+#: g10/keygen.c:677 g10/keygen.c:761 g10/keygen.c:852
+#, c-format
+msgid "keysize rounded up to %u bits\n"
+msgstr "Schlüssellänge auf %u Bit aufgerundet\n"
+
+#: g10/keygen.c:952
+msgid "Please select what kind of key you want:\n"
+msgstr "Bitte wählen Sie, welche Art von Schlüssel Sie möchten:\n"
+
+#: g10/keygen.c:954
+#, c-format
+msgid "   (%d) DSA and ElGamal (default)\n"
+msgstr "   (%d) DSA und ElGamal (voreingestellt)\n"
+
+#: g10/keygen.c:955
+#, c-format
+msgid "   (%d) DSA (sign only)\n"
+msgstr "   (%d) DSA (nur signieren/beglaubigen)\n"
+
+#: g10/keygen.c:957
+#, c-format
+msgid "   (%d) ElGamal (encrypt only)\n"
+msgstr "   (%d) ElGamal (nur verschlüsseln)\n"
+
+#: g10/keygen.c:959
+#, c-format
+msgid "   (%d) ElGamal (sign and encrypt)\n"
+msgstr "   (%d) ElGamal (signieren/beglaubigen und verschlüsseln)\n"
+
+#: g10/keygen.c:960
+#, c-format
+msgid "   (%d) RSA (sign only)\n"
+msgstr "   (%d) RSA (nur signieren/beglaubigen)\n"
+
+#: g10/keygen.c:962
+#, c-format
+msgid "   (%d) RSA (encrypt only)\n"
+msgstr "   (%d) RSA (nur verschlüsseln)\n"
+
+#: g10/keygen.c:964
+#, c-format
+msgid "   (%d) RSA (sign and encrypt)\n"
+msgstr "   (%d) RSA (signieren/beglaubigen und verschlüsseln)\n"
+
+#: g10/keyedit.c:306 g10/keyedit.c:327 g10/keyedit.c:343 g10/keyedit.c:700
+#: g10/keygen.c:967
+msgid "Your selection? "
+msgstr "Ihre Auswahl? "
+
+#: g10/keygen.c:977 g10/keygen.c:995
+msgid "The use of this algorithm is deprecated - create anyway? "
+msgstr ""
+"Von der Benutzung dieses Verfahrens ist abzuraten - Trotzdem erzeugen? "
+
+#: g10/keyedit.c:713 g10/keygen.c:1009
+msgid "Invalid selection.\n"
+msgstr "Ungültige Auswahl.\n"
+
+#: g10/keygen.c:1022
+#, 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 ""
+"Es wird ein neues %s Schlüsselpaar erzeugt.\n"
+"              kleinste Schlüssellänge ist  768 Bit\n"
+"              standard Schlüssellänge ist 1024 Bit\n"
+"      größte sinnvolle Schlüssellänge ist 2048 Bit\n"
+
+#: g10/keygen.c:1031
+msgid "What keysize do you want? (1024) "
+msgstr "Welche Schlüssellänge wünschen Sie? (1024) "
+
+#: g10/keygen.c:1036
+msgid "DSA only allows keysizes from 512 to 1024\n"
+msgstr "DSA erlaubt nur Schlüssellängen von 512 bis 1024\n"
+
+#: g10/keygen.c:1038
+msgid "keysize too small; 1024 is smallest value allowed for RSA.\n"
+msgstr "zu kurz; 1024 ist die kleinste für RSA mögliche Schlüssellänge.\n"
+
+#: g10/keygen.c:1041
+msgid "keysize too small; 768 is smallest value allowed.\n"
+msgstr "zu kurz; 768 ist die kleinste mögliche Schlüssellänge.\n"
+
+#. It is ridiculous and an annoyance to use larger key sizes!
+#. * GnuPG can handle much larger sizes; but it takes an eternity
+#. * to create such a key (but less than the time the Sirius
+#. * Computer Corporation needs to process one of the usual
+#. * complaints) and {de,en}cryption although needs some time.
+#. * So, before you complain about this limitation, I suggest that
+#. * you start a discussion with Marvin about this theme and then
+#. * do whatever you want.
+#: g10/keygen.c:1052
+#, c-format
+msgid "keysize too large; %d is largest value allowed.\n"
+msgstr "Schüsselgröße zu hoch; %d ist der Maximalwert.\n"
+
+#: g10/keygen.c:1057
+msgid ""
+"Keysizes larger than 2048 are not suggested because\n"
+"computations take REALLY long!\n"
+msgstr ""
+"Schlüssellängen größer als 2048 werden nicht empfohlen, da die\n"
+"Berechnungen dann WIRKLICH lange brauchen!\n"
+
+#: g10/keygen.c:1060
+msgid "Are you sure that you want this keysize? "
+msgstr "Sind Sie sicher, daß Sie diese Schlüssellänge wünschen? "
+
+#: g10/keygen.c:1061
+msgid ""
+"Okay, but keep in mind that your monitor and keyboard radiation is also very "
+"vulnerable to attacks!\n"
+msgstr ""
+"Gut, aber bitte denken Sie auch daran, daß Monitor und Tastatur Daten "
+"abstrahlen und diese leicht mitgelesen werden können.\n"
+
+#: g10/keygen.c:1070
+#, c-format
+msgid "Requested keysize is %u bits\n"
+msgstr "Die verlangte Schlüssellänge beträgt %u Bit\n"
+
+#: g10/keygen.c:1073 g10/keygen.c:1077
+#, c-format
+msgid "rounded up to %u bits\n"
+msgstr "aufgerundet auf %u Bit\n"
+
+#: g10/keygen.c:1128
+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 ""
+"Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll.\n"
+"         0 = Schlüssel verfällt nie\n"
+"      <n>  = Schlüssel verfällt nach n Tagen\n"
+"      <n>w = Schlüssel verfällt nach n Wochen\n"
+"      <n>m = Schlüssel verfällt nach n Monaten\n"
+"      <n>y = Schlüssel verfällt nach n Jahren\n"
+
+#: g10/keygen.c:1137
+msgid ""
+"Please specify how long the signature should be valid.\n"
+"         0 = signature does not expire\n"
+"      <n>  = signature expires in n days\n"
+"      <n>w = signature expires in n weeks\n"
+"      <n>m = signature expires in n months\n"
+"      <n>y = signature expires in n years\n"
+msgstr ""
+"Bitte wählen Sie, wie lange die Beglaubigung gültig bleiben soll.\n"
+"         0 = Schlüssel verfällt nie\n"
+"      <n>  = Schlüssel verfällt nach n Tagen\n"
+"      <n>w = Schlüssel verfällt nach n Wochen\n"
+"      <n>m = Schlüssel verfällt nach n Monaten\n"
+"      <n>y = Schlüssel verfällt nach n Jahren\n"
+
+#: g10/keygen.c:1159
+msgid "Key is valid for? (0) "
+msgstr "Wie lange bleibt der Schlüssel gültig? (0) "
+
+#: g10/keygen.c:1161
+msgid "Signature is valid for? (0) "
+msgstr "Wie lange bleibt die Beglaubigung gültig? (0) "
+
+#: g10/keygen.c:1166
+msgid "invalid value\n"
+msgstr "Ungültiger Wert.\n"
+
+#: g10/keygen.c:1171
+#, c-format
+msgid "%s does not expire at all\n"
+msgstr "%s verfällt nie.\n"
+
+#. print the date when the key expires
+#: g10/keygen.c:1178
+#, c-format
+msgid "%s expires at %s\n"
+msgstr "%s verfällt am %s\n"
+
+#: g10/keygen.c:1184
+msgid ""
+"Your system can't display dates beyond 2038.\n"
+"However, it will be correctly handled up to 2106.\n"
+msgstr ""
+"Ihr Rechner kann Daten jenseits des Jahres 2038 nicht anzeigen.\n"
+"Trotzdem werden Daten bis 2106 korrekt verarbeitet.\n"
+
+#: g10/keygen.c:1189
+msgid "Is this correct (y/n)? "
+msgstr "Ist dies richtig? (j/n) "
+
+#: g10/keygen.c:1232
+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) <heinrichh@duesseldorf.de>\"\n"
+"\n"
+msgstr ""
+"\n"
+"Sie benötigen eine User-ID, um Ihren Schlüssel eindeutig zu machen; das\n"
+"Programm baut diese User-ID aus Ihrem echten Namen, einem Kommentar und\n"
+"Ihrer E-Mail-Adresse in dieser Form auf:\n"
+"    \"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>\"\n"
+"\n"
+
+#: g10/keygen.c:1244
+msgid "Real name: "
+msgstr "Ihr Name (\"Vorname Nachname\"): "
+
+#: g10/keygen.c:1252
+msgid "Invalid character in name\n"
+msgstr "Ungültiges Zeichen im Namen\n"
+
+#: g10/keygen.c:1254
+msgid "Name may not start with a digit\n"
+msgstr "Der Name darf nicht mit einer Ziffer beginnen.\n"
+
+#: g10/keygen.c:1256
+msgid "Name must be at least 5 characters long\n"
+msgstr "Der Name muß min. 5 Zeichen lang sein.\n"
+
+#: g10/keygen.c:1264
+msgid "Email address: "
+msgstr "E-Mail-Adresse: "
+
+#: g10/keygen.c:1275
+msgid "Not a valid email address\n"
+msgstr "Diese E-Mail-Adresse ist ungültig\n"
+
+#: g10/keygen.c:1283
+msgid "Comment: "
+msgstr "Kommentar: "
+
+#: g10/keygen.c:1289
+msgid "Invalid character in comment\n"
+msgstr "Ungültiges Zeichen im Kommentar.\n"
+
+#: g10/keygen.c:1312
+#, c-format
+msgid "You are using the `%s' character set.\n"
+msgstr "Sie benutzen den Zeichensatz `%s'\n"
+
+#: g10/keygen.c:1318
+#, c-format
+msgid ""
+"You selected this USER-ID:\n"
+"    \"%s\"\n"
+"\n"
+msgstr ""
+"Sie haben diese User-ID gewählt:\n"
+"    \"%s\"\n"
+"\n"
+
+#: g10/keygen.c:1322
+msgid "Please don't put the email address into the real name or the comment\n"
+msgstr "Bitte keine E-Mailadressen als Namen oder Kommentar verwenden\n"
+
+#: g10/keygen.c:1327
+msgid "NnCcEeOoQq"
+msgstr "NnKkEeFfBb"
+
+#: g10/keygen.c:1337
+msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
+msgstr "Ändern: (N)ame, (K)ommentar, (E)-Mail oder (B)eenden? "
+
+#: g10/keygen.c:1338
+msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
+msgstr "Ändern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(B)eenden? "
+
+#: g10/keygen.c:1357
+msgid "Please correct the error first\n"
+msgstr "Bitte beseitigen Sie zuerst den Fehler\n"
+
+#: g10/keygen.c:1396
+msgid ""
+"You need a Passphrase to protect your secret key.\n"
+"\n"
+msgstr ""
+"Sie benötigen ein Mantra, um den geheimen Schlüssel zu schützen.\n"
+"\n"
+
+#: g10/keyedit.c:918 g10/keygen.c:1404
+msgid "passphrase not correctly repeated; try again"
+msgstr "Mantra wurde nicht richtig wiederholt; noch einmal versuchen"
+
+#: g10/keygen.c:1405
+#, c-format
+msgid "%s.\n"
+msgstr "%s.\n"
+
+#: g10/keygen.c:1411
+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 ""
+"Sie möchten kein Mantra - Dies ist *nicht* zu empfehlen!\n"
+"Es ist trotzdem möglich.  Sie können Ihr Mantra jederzeit\n"
+"ändern, indem sie dieses Programm mit dem Befehl \"--edit-key\"\n"
+"aufrufen.\n"
+"\n"
+
+#: g10/keygen.c:1432
+msgid ""
+"We need to generate a lot of random bytes. It is a good idea to perform\n"
+"some other action (type on the keyboard, move the mouse, utilize the\n"
+"disks) during the prime generation; this gives the random number\n"
+"generator a better chance to gain enough entropy.\n"
+msgstr ""
+"Wir müssen eine ganze Menge Zufallswerte erzeugen.  Sie können dies\n"
+"unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas\n"
+"tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen.\n"
+
+#: g10/keygen.c:1996
+msgid "DSA keypair will have 1024 bits.\n"
+msgstr "Das DSA-Schlüsselpaar wird 1024 Bit haben.\n"
+
+#: g10/keygen.c:2050
+msgid "Key generation canceled.\n"
+msgstr "Schlüsselerzeugung abgebrochen.\n"
+
+#: g10/keygen.c:2157 g10/keygen.c:2245
+#, c-format
+msgid "writing public key to `%s'\n"
+msgstr "schreiben des öffentlichen Schlüssels nach '%s'\n"
+
+#: g10/keygen.c:2158 g10/keygen.c:2247
+#, c-format
+msgid "writing secret key to `%s'\n"
+msgstr "schreiben des geheimen Schlüssels nach '%s'\n"
+
+#: g10/keygen.c:2234
+#, c-format
+msgid "no writable public keyring found: %s\n"
+msgstr "kein schreibbarer öffentlicher Schlüsselbund gefunden: %s\n"
+
+#: g10/keygen.c:2240
+#, c-format
+msgid "no writable secret keyring found: %s\n"
+msgstr "kein schreibbarer geheimer Schlüsselbund gefunden: %s\n"
+
+#: g10/keygen.c:2254
+#, c-format
+msgid "error writing public keyring `%s': %s\n"
+msgstr "Fehler beim Schreiben des öff. Schlüsselbundes `%s': %s\n"
+
+#: g10/keygen.c:2261
+#, c-format
+msgid "error writing secret keyring `%s': %s\n"
+msgstr "Fehler beim Schreiben des geheimen Schlüsselbundes `%s': %s\n"
+
+#: g10/keygen.c:2281
+msgid "public and secret key created and signed.\n"
+msgstr "Öffentlichen und geheimen Schlüssel erzeugt und signiert.\n"
+
+#: g10/keygen.c:2282
+msgid "key marked as ultimately trusted.\n"
+msgstr "Schlüssel ist als uneingeschränkt vertrauenswürdig gekennzeichnet.\n"
+
+#: g10/keygen.c:2293
+msgid ""
+"Note that this key cannot be used for encryption.  You may want to use\n"
+"the command \"--edit-key\" to generate a secondary key for this purpose.\n"
+msgstr ""
+"Bitte beachten Sie, daß dieser Schlüssel nicht zum Verschlüsseln benutzt\n"
+"werden kann.  Sie können aber mit dem Befehl \"--edit-key\" einen\n"
+"Zweitschlüssel für diesem Zweck erzeugen.\n"
+
+#: g10/keygen.c:2305 g10/keygen.c:2415
+#, c-format
+msgid "Key generation failed: %s\n"
+msgstr "Schlüsselerzeugung fehlgeschlagen: %s\n"
+
+#: g10/keygen.c:2351 g10/sign.c:257
+#, c-format
+msgid ""
+"key has been created %lu second in future (time warp or clock problem)\n"
+msgstr ""
+"Der Schlüssel wurde %lu Sekunde in der Zukunft erzeugt (Zeitreise oder Uhren "
+"stimmen nicht überein)\n"
+
+#: g10/keygen.c:2353 g10/sign.c:259
+#, c-format
+msgid ""
+"key has been created %lu seconds in future (time warp or clock problem)\n"
+msgstr ""
+"Der Schlüssel wurde %lu Sekunden in der Zukunft erzeugt (Zeitreise oder "
+"Uhren stimmen nicht überein)\n"
+
+#: g10/keygen.c:2362
+msgid "NOTE: creating subkeys for v3 keys is not OpenPGP compliant\n"
+msgstr "HINWEIS: Unterschlüssel für v3-Schlüssen sind nicht OpenPGP-konform\n"
+
+#: g10/keygen.c:2391
+msgid "Really create? "
+msgstr "Wirklich erzeugen? "
+
+#: g10/decrypt.c:92 g10/encode.c:765
+msgid "--output doesn't work for this command\n"
+msgstr "--output funktioniert nicht bei diesem Kommando\n"
+
+#: g10/encode.c:177 g10/openfile.c:180 g10/openfile.c:301 g10/tdbio.c:496
+#: g10/tdbio.c:557
+#, c-format
+msgid "%s: can't open: %s\n"
+msgstr "%s: kann nicht geöffnet werden: %s\n"
+
+#: g10/encode.c:205 g10/sign.c:1036
+#, c-format
+msgid "error creating passphrase: %s\n"
+msgstr "Fehler beim Erzeugen des Mantras: %s\n"
+
+#: g10/encode.c:210
+msgid "can't use a symmetric ESK packet due to the S2K mode\n"
+msgstr ""
+"Aufgrund des S2K-Modus kann ein symmetrisches ESK Packet nicht benutzt "
+"werden\n"
+
+#: g10/encode.c:229 g10/encode.c:487
+#, c-format
+msgid "`%s' already compressed\n"
+msgstr "`%s' ist bereits komprimiert\n"
+
+#: g10/encode.c:296 g10/encode.c:523
+#, c-format
+msgid "%s: WARNING: empty file\n"
+msgstr "%s: WARNUNG: Leere Datei\n"
+
+#: g10/encode.c:407
+msgid "you can only encrypt to RSA keys of 2048 bits or less in --pgp2 mode\n"
+msgstr ""
+"Im --pgp2-Modus kann nur für RSA-Schlüssel mit maximal 2048 Bit "
+"verschlüsselt werden\n"
+
+#: g10/encode.c:423
+#, c-format
+msgid "reading from `%s'\n"
+msgstr "Lesen von '%s'\n"
+
+#: g10/encode.c:457
+msgid ""
+"unable to use the IDEA cipher for all of the keys you are encrypting to.\n"
+msgstr ""
+"Die IDEA-Verschlüsselung kann nicht mit allen Zielschlüsseln verwendet "
+"werden.\n"
+
+#: g10/encode.c:468 g10/encode.c:647
+#, c-format
+msgid "forcing symmetric cipher %s (%d) violates recipient preferences\n"
+msgstr ""
+"Erzwungene Verwendung des symmetrischen Verschlüsselungsverfahren %s (%d) "
+"verletzt die Empfängervoreinstellungen\n"
+
+#: g10/encode.c:561 g10/sign.c:759
+#, c-format
+msgid "forcing compression algorithm %s (%d) violates recipient preferences\n"
+msgstr ""
+"Erzwungenes Kompressionsverfahren %s (%d) verletzt die "
+"Empfängervoreinstellungen.\n"
+
+#: g10/encode.c:738
+#, c-format
+msgid "%s/%s encrypted for: \"%s\"\n"
+msgstr "%s/%s verschlüsselt für: %s\n"
+
+#: g10/delkey.c:73 g10/export.c:190 g10/keyedit.c:2452
+#, c-format
+msgid "key `%s' not found: %s\n"
+msgstr "Schlüssel `%s' nicht gefunden: %s\n"
+
+#: g10/delkey.c:81 g10/export.c:213
+#, c-format
+msgid "error reading keyblock: %s\n"
+msgstr "Fehler beim Lesen des Schlüsselblocks: %s\n"
+
+#: g10/export.c:222
+#, c-format
+msgid "key %08lX: not a rfc2440 key - skipped\n"
+msgstr "Schlüssel %08lX: dies ist kein RFC2440-Schüssel - übersprungen\n"
+
+#: g10/export.c:238
+#, c-format
+msgid "key %08lX: not protected - skipped\n"
+msgstr "Schlüssel %08lX: ungeschützt - übersprungen\n"
+
+#: g10/export.c:246
+#, c-format
+msgid "key %08lX: PGP 2.x style key - skipped\n"
+msgstr "Schlüssel %08lX: PGP 2.x-artiger Schlüssel - übersprungen\n"
+
+#: g10/export.c:347
+msgid "WARNING: nothing exported\n"
+msgstr "WARNUNG: Nichts exportiert\n"
+
+#: g10/getkey.c:150
+msgid "too many entries in pk cache - disabled\n"
+msgstr "zu viele Einträge im pk-Cache - abgeschaltet\n"
+
+#. fixme: returning translatable constants instead of a user ID is
+#. * not good because they are probably not utf-8 encoded.
+#: g10/getkey.c:186 g10/getkey.c:2461
+msgid "[User id not found]"
+msgstr "[User-ID nicht gefunden]"
+
+#: g10/getkey.c:1494
+#, c-format
+msgid "Invalid key %08lX made valid by --allow-non-selfsigned-uid\n"
+msgstr ""
+"Ungültiger Schlüssel %08lX, gültig gemacht per --allow-non-selfsigned-uid\n"
+
+#: g10/getkey.c:2171
+#, c-format
+msgid "using secondary key %08lX instead of primary key %08lX\n"
+msgstr ""
+"der Zweitschlüssel %08lX wird anstelle des Hauptschlüssels %08lX verwendet\n"
+
+#: g10/getkey.c:2218
+#, c-format
+msgid "key %08lX: secret key without public key - skipped\n"
+msgstr ""
+"Schlüssel %08lX: geheimer Schlüssel, aber ohne öffentlichen Schlüssel - "
+"übersprungen\n"
+
+#: g10/import.c:270
+#, c-format
+msgid "skipping block of type %d\n"
+msgstr "überspringe den Block vom Typ %d\n"
+
+#: g10/import.c:279
+#, fuzzy, c-format
+msgid "%lu keys processed so far\n"
+msgstr "%lu Schlüssel bislang bearbeitet\n"
+
+#: g10/import.c:284
+#, c-format
+msgid "error reading `%s': %s\n"
+msgstr "Fehler beim Lesen von `%s': %s\n"
+
+#: g10/import.c:296
+#, c-format
+msgid "Total number processed: %lu\n"
+msgstr "Anzahl insgesamt bearbeiteter Schlüssel: %lu\n"
+
+#: g10/import.c:298
+#, c-format
+msgid "      skipped new keys: %lu\n"
+msgstr "              ignorierte neue Schlüssel: %lu\n"
+
+#: g10/import.c:301
+#, c-format
+msgid "          w/o user IDs: %lu\n"
+msgstr "                           ohne User-ID: %lu\n"
+
+#: g10/import.c:303
+#, c-format
+msgid "              imported: %lu"
+msgstr "                             importiert: %lu"
+
+#: g10/import.c:309
+#, c-format
+msgid "             unchanged: %lu\n"
+msgstr "                            unverändert: %lu\n"
+
+#: g10/import.c:311
+#, c-format
+msgid "          new user IDs: %lu\n"
+msgstr "                          neue User-IDs: %lu\n"
+
+#: g10/import.c:313
+#, c-format
+msgid "           new subkeys: %lu\n"
+msgstr "                    neue Unterschlüssel: %lu\n"
+
+#: g10/import.c:315
+#, c-format
+msgid "        new signatures: %lu\n"
+msgstr "                        neue Signaturen: %lu\n"
+
+#: g10/import.c:317
+#, c-format
+msgid "   new key revocations: %lu\n"
+msgstr "                neue Schlüsselwiderrufe: %lu\n"
+
+#: g10/import.c:319
+#, c-format
+msgid "      secret keys read: %lu\n"
+msgstr "             gelesene geheime Schlüssel: %lu\n"
+
+#: g10/import.c:321
+#, c-format
+msgid "  secret keys imported: %lu\n"
+msgstr "           geheime Schlüssel importiert: %lu\n"
+
+#: g10/import.c:323
+#, c-format
+msgid " secret keys unchanged: %lu\n"
+msgstr "                 unveränderte geh.Schl.: %lu\n"
+
+#: g10/import.c:325
+#, c-format
+msgid "          not imported: %lu\n"
+msgstr "                       nicht importiert: %lu\n"
+
+#: g10/import.c:593 g10/import.c:908
+#, c-format
+msgid "key %08lX: no user ID\n"
+msgstr "Schlüssel %08lX: Keine User-ID\n"
+
+#: g10/import.c:609
+#, c-format
+msgid "key %08lX: HKP subkey corruption repaired\n"
+msgstr "Schlüssel %08lX: HKP Unterschlüsseldefekt repariert\n"
+
+#: g10/import.c:624
+#, c-format
+msgid "key %08lX: accepted non self-signed user ID '%s'\n"
+msgstr "Schlüssel %08lX: Nicht eigenbeglaubigte User-ID `%s' übernommen\n"
+
+#: g10/import.c:631
+#, c-format
+msgid "key %08lX: no valid user IDs\n"
+msgstr "Schlüssel %08lX: Keine gültigen User-IDs\n"
+
+#: g10/import.c:633
+msgid "this may be caused by a missing self-signature\n"
+msgstr "dies könnte durch fehlende Eigenbeglaubigung verursacht worden sein\n"
+
+#: g10/import.c:643 g10/import.c:1001
+#, c-format
+msgid "key %08lX: public key not found: %s\n"
+msgstr "Schlüssel %08lX: Öffentlicher Schlüssel nicht gefunden: %s\n"
+
+#: g10/import.c:648
+#, c-format
+msgid "key %08lX: new key - skipped\n"
+msgstr "Schlüssel %08lX: neuer Schlüssel - übersprungen\n"
+
+#: g10/import.c:657
+#, c-format
+msgid "no writable keyring found: %s\n"
+msgstr "kein schreibbarer Schlüsselbund gefunden: %s\n"
+
+#: g10/import.c:662 g10/openfile.c:244 g10/sign.c:671 g10/sign.c:898
+#, c-format
+msgid "writing to `%s'\n"
+msgstr "Schreiben nach '%s'\n"
+
+#: g10/import.c:665 g10/import.c:750 g10/import.c:935 g10/import.c:1061
+#, c-format
+msgid "error writing keyring `%s': %s\n"
+msgstr "Fehler beim Schreiben des Schlüsselbundes `%s': %s\n"
+
+#: g10/import.c:682
+#, c-format
+msgid "key %08lX: public key \"%s\" imported\n"
+msgstr "Schlüssel %08lX: Öffentlicher Schlüssel \"%s\" importiert\n"
+
+#: g10/import.c:704
+#, c-format
+msgid "key %08lX: doesn't match our copy\n"
+msgstr "Schlüssel %08lX: Stimmt nicht mit unserer Kopie überein\n"
+
+#: g10/import.c:721 g10/import.c:1018
+#, c-format
+msgid "key %08lX: can't locate original keyblock: %s\n"
+msgstr ""
+"Schlüssel %08lX: der lokale originale Schlüsselblocks wurde nicht gefunden: %"
+"s\n"
+
+#: g10/import.c:728 g10/import.c:1024
+#, c-format
+msgid "key %08lX: can't read original keyblock: %s\n"
+msgstr ""
+"Schlüssel %08lX: Lesefehler im lokalen originalen Schlüsselblocks: %s\n"
+
+#: g10/import.c:759
+#, c-format
+msgid "key %08lX: \"%s\" 1 new user ID\n"
+msgstr "Schlüssel %08lX: \"%s\" 1 neue User-ID\n"
+
+#: g10/import.c:762
+#, c-format
+msgid "key %08lX: \"%s\" %d new user IDs\n"
+msgstr "Schlüssel %08lX: \"%s\" %d neue User-IDs\n"
+
+#: g10/import.c:765
+#, c-format
+msgid "key %08lX: \"%s\" 1 new signature\n"
+msgstr "Schlüssel %08lX: \"%s\" 1 neue Signatur\n"
+
+#: g10/import.c:768
+#, c-format
+msgid "key %08lX: \"%s\" %d new signatures\n"
+msgstr "Schlüssel %08lX: \"%s\" %d neue Signaturen\n"
+
+#: g10/import.c:771
+#, c-format
+msgid "key %08lX: \"%s\" 1 new subkey\n"
+msgstr "Schlüssel %08lX: \"%s\" 1 neuer Unterschlüssel\n"
+
+#: g10/import.c:774
+#, c-format
+msgid "key %08lX: \"%s\" %d new subkeys\n"
+msgstr "Schlüssel %08lX: \"%s\" %d neue Unterschlüssel\n"
+
+#: g10/import.c:793
+#, c-format
+msgid "key %08lX: \"%s\" not changed\n"
+msgstr "Schlüssel %08lX: \"%s\" Nicht geändert\n"
+
+#: g10/import.c:914
+#, fuzzy, c-format
+msgid "key %08lX: secret key with invalid cipher %d - skipped\n"
+msgstr ""
+"Schlüssel %08lX: geheimer Schlüssel, aber ohne öffentlichen Schlüssel - "
+"übersprungen\n"
+
+#: g10/import.c:929
+#, c-format
+msgid "no default secret keyring: %s\n"
+msgstr "Kein voreingestellter geheimer Schlüsselbund: %s\n"
+
+#: g10/import.c:940
+#, c-format
+msgid "key %08lX: secret key imported\n"
+msgstr "Schlüssel %08lX: Geheimer Schlüssel importiert\n"
+
+#. we can't merge secret keys
+#: g10/import.c:956
+#, c-format
+msgid "key %08lX: already in secret keyring\n"
+msgstr "Schlüssel %08lX: Ist bereits im geheimen Schlüsselbund\n"
+
+#: g10/import.c:966
+#, c-format
+msgid "key %08lX: secret key not found: %s\n"
+msgstr "Schlüssel %08lX: geheimer Schlüssel nicht gefunden: %s\n"
+
+#: g10/import.c:995
+#, c-format
+msgid "key %08lX: no public key - can't apply revocation certificate\n"
+msgstr ""
+"Schlüssel %08lX: Kein öffentlicher Schlüssel - der Schlüsselwiderruf kann "
+"nicht angebracht werden\n"
+
+#: g10/import.c:1035
+#, c-format
+msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
+msgstr "Schlüssel %08lX: Ungültiges Widerrufzertifikat: %s - zurückgewiesen\n"
+
+#: g10/import.c:1067
+#, c-format
+msgid "key %08lX: \"%s\" revocation certificate imported\n"
+msgstr "Schlüssel %08lX: \"%s\" Widerrufzertifikat importiert\n"
+
+#: g10/import.c:1115
+#, c-format
+msgid "key %08lX: no user ID for signature\n"
+msgstr "Schlüssel %08lX: Keine User-ID für Signatur\n"
+
+#: g10/import.c:1128
+#, c-format
+msgid "key %08lX: unsupported public key algorithm on user id \"%s\"\n"
+msgstr ""
+"Schlüssel %08lX: Nicht unterstütztes Public-Key-Verfahren für User-ID \"%s"
+"\"\n"
+
+#: g10/import.c:1130
+#, c-format
+msgid "key %08lX: invalid self-signature on user id \"%s\"\n"
+msgstr "Schlüssel %08lX: Ungültige Eigenbeglaubigung für User-ID \"%s\"\n"
+
+#: g10/import.c:1145
+#, fuzzy, c-format
+msgid "key %08lX: no subkey for subkey binding signature\n"
+msgstr "Schlüssel %08lX: Kein Unterschlüssel für die Schlüsselanbindung\n"
+
+#: g10/import.c:1153 g10/import.c:1194
+#, c-format
+msgid "key %08lX: unsupported public key algorithm\n"
+msgstr "Schlüssel %08lX: Nicht unterstütztes Public-Key-Verfahren\n"
+
+#: g10/import.c:1154
+#, c-format
+msgid "key %08lX: invalid subkey binding\n"
+msgstr "Schlüssel %08lX: Ungültige Unterschlüssel-Anbindung\n"
+
+#. Delete the last binding
+#. sig since this one is
+#. newer
+#: g10/import.c:1166
+#, c-format
+msgid "key %08lX: removed multiple subkey binding\n"
+msgstr "Schlüssel %08lX: Ungültige Unterschlüssel-Anbindung entfernt\n"
+
+#: g10/import.c:1186 g10/sig-check.c:550
+#, fuzzy, c-format
+msgid "key %08lX: no subkey for subkey revocation signature\n"
+msgstr "Schlüssel %08lX: Kein Unterschlüssel für den Schlüsselwiderruf\n"
+
+#: g10/import.c:1195
+#, c-format
+msgid "key %08lX: invalid subkey revocation\n"
+msgstr "Schlüssel %08lX: Ungültiger Unterschlüsselwiderruf\n"
+
+#. Delete the last revocation
+#. sig since this one is
+#. newer
+#: g10/import.c:1206
+#, fuzzy, c-format
+msgid "key %08lX: removed multiple subkey revocation signatures\n"
+msgstr "Schlüssel %08lX: Mehrfacher Unterschlüssel-Widerruf entfernt\n"
+
+#: g10/import.c:1243
+#, c-format
+msgid "key %08lX: skipped user ID '"
+msgstr "Schlüssel %08lX: User-ID übergangen '"
+
+#: g10/import.c:1266
+#, c-format
+msgid "key %08lX: skipped subkey\n"
+msgstr "Schlüssel %08lX: Unterschlüssel ignoriert\n"
+
+#. here we violate the rfc a bit by still allowing
+#. * to import non-exportable signature when we have the
+#. * the secret key used to create this signature - it
+#. * seems that this makes sense
+#: g10/import.c:1292
+#, c-format
+msgid "key %08lX: non exportable signature (class %02x) - skipped\n"
+msgstr ""
+"Schlüssel %08lX: Nicht exportfähige Unterschrift (Klasse %02x) - übergangen\n"
+
+#: g10/import.c:1301
+#, c-format
+msgid "key %08lX: revocation certificate at wrong place - skipped\n"
+msgstr "Schlüssel %08lX: Widerrufzertifikat an falschem Platz - übergangen\n"
+
+#: g10/import.c:1318
+#, c-format
+msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
+msgstr "Schlüssel %08lX: Ungültiges Widerrufzertifikat: %s - übergangen\n"
+
+#: g10/import.c:1330
+#, c-format
+msgid "key %08lX: subkey signature in wrong place - skipped\n"
+msgstr "Schlüssel %08lX: Widerrufzertifikat an falschem Platz - übergangen\n"
+
+#: g10/import.c:1428
+#, c-format
+msgid "key %08lX: duplicated user ID detected - merged\n"
+msgstr "Schlüssel %08lX: Doppelte User-ID entdeckt - zusammengeführt\n"
+
+#: g10/import.c:1487
+#, c-format
+msgid "WARNING: key %08lX may be revoked: fetching revocation key %08lX\n"
+msgstr ""
+"WARNUNG: Schlüssel %08lX ist u.U. widerrufen: hole Widerrufschlüssel %08lX\n"
+
+#: g10/import.c:1501
+#, c-format
+msgid "WARNING: key %08lX may be revoked: revocation key %08lX not present.\n"
+msgstr ""
+"WARNUNG: Schlüssel %08lX ist u.U. widerrufen: Widerrufschlüssel %08lX ist "
+"nicht vorhanden\n"
+
+#: g10/import.c:1558
+#, c-format
+msgid "key %08lX: \"%s\" revocation certificate added\n"
+msgstr "Schlüssel %08lX: \"%s\" Widerrufzertifikat hinzugefügt\n"
+
+#: g10/import.c:1589
+#, c-format
+msgid "key %08lX: direct key signature added\n"
+msgstr "Schlüssel %08lX: \"direct-key\"-Signaturen hinzugefügt\n"
+
+#: g10/keyedit.c:151
+msgid "[revocation]"
+msgstr "[Widerruf]"
+
+#: g10/keyedit.c:152
+msgid "[self-signature]"
+msgstr "[Eigenbeglaubigung]"
+
+#: g10/keyedit.c:223 g10/keylist.c:190
+msgid "1 bad signature\n"
+msgstr "1 falsche Beglaubigung\n"
+
+#: g10/keyedit.c:225 g10/keylist.c:192
+#, c-format
+msgid "%d bad signatures\n"
+msgstr "%d falsche Beglaubigungen\n"
+
+#: g10/keyedit.c:227 g10/keylist.c:194
+msgid "1 signature not checked due to a missing key\n"
+msgstr "1 Beglaubigung wegen fehlendem Schlüssel nicht geprüft\n"
+
+#: g10/keyedit.c:229 g10/keylist.c:196
+#, c-format
+msgid "%d signatures not checked due to missing keys\n"
+msgstr "%d Beglaubigungen wegen fehlenden Schlüsseln nicht geprüft\n"
+
+#: g10/keyedit.c:231 g10/keylist.c:198
+msgid "1 signature not checked due to an error\n"
+msgstr "1 Beglaubigung aufgrund von Fehler nicht geprüft\n"
+
+#: g10/keyedit.c:233 g10/keylist.c:200
+#, c-format
+msgid "%d signatures not checked due to errors\n"
+msgstr "%d Beglaubigungen aufgrund von Fehlern nicht geprüft\n"
+
+#: g10/keyedit.c:235
+msgid "1 user ID without valid self-signature detected\n"
+msgstr "Eine User-ID ohne gültige Eigenbeglaubigung entdeckt\n"
+
+#: g10/keyedit.c:237
+#, c-format
+msgid "%d user IDs without valid self-signatures detected\n"
+msgstr "%d User-IDs ohne gültige Eigenbeglaubigung entdeckt\n"
+
+#: g10/keyedit.c:300
+#, fuzzy, c-format
+msgid "   (%d) I trust marginally\n"
+msgstr " %d = Ich vertraue ihm einigermaßen\n"
+
+#: g10/keyedit.c:301
+#, fuzzy, c-format
+msgid "   (%d) I trust fully\n"
+msgstr " %d = Ich vertraue ihm vollständig\n"
+
+#: g10/keyedit.c:320
+msgid ""
+"Please enter the depth of this trust signature.\n"
+"A depth greater than 1 allows the key you are signing to make\n"
+"trust signatures on your behalf.\n"
+msgstr ""
+
+#: g10/keyedit.c:338
+msgid "Please enter a domain to restrict this signature, or enter for none.\n"
+msgstr ""
+
+#: g10/keyedit.c:481
+#, c-format
+msgid "User ID \"%s\" is revoked."
+msgstr "User-ID \"%s\" ist widerrufen."
+
+#: g10/keyedit.c:488 g10/keyedit.c:605 g10/keyedit.c:663 g10/keyedit.c:1273
+msgid "Are you sure you still want to sign it? (y/N) "
+msgstr "Wollen Sie ihn immmer noch beglaubigen? (j/N) "
+
+#: g10/keyedit.c:496 g10/keyedit.c:611 g10/keyedit.c:1279
+msgid "  Unable to sign.\n"
+msgstr "  Beglaubigen ist nicht möglich.\n"
+
+#: g10/keyedit.c:501
+#, c-format
+msgid "WARNING: user ID \"%s\" is not self-signed.\n"
+msgstr "WARNUNG: User-ID \"%s\" ist nicht eigenbeglaubigt.\n"
+
+#: g10/keyedit.c:520
+#, c-format
+msgid ""
+"The self-signature on \"%s\"\n"
+"is a PGP 2.x-style signature.\n"
+msgstr ""
+"Die Eigenbeglaubigung von \"%s\"\n"
+"ist eine PGP 2.x artige Signatur.\n"
+
+#: g10/keyedit.c:529
+msgid "Do you want to promote it to an OpenPGP self-signature? (y/N) "
+msgstr "Soll sie zu einer OpenPGP Eigenbeglaubigung geändert werden? (j/N) "
+
+#. It's a local sig, and we want to make a
+#. exportable sig.
+#: g10/keyedit.c:543
+#, c-format
+msgid ""
+"Your current signature on \"%s\"\n"
+"is a local signature.\n"
+msgstr ""
+"Die derzeitige Beglaubigung von \"%s\"\n"
+"ist nur für diesen Rechner gültig.\n"
+
+#: g10/keyedit.c:547
+msgid "Do you want to promote it to a full exportable signature? (y/N) "
+msgstr ""
+"Soll sie zu einer voll exportierbaren Beglaubigung erhoben werden? (j/N) "
+
+#: g10/keyedit.c:567
+#, c-format
+msgid "\"%s\" was already locally signed by key %08lX\n"
+msgstr "\"%s\" wurde bereits durch Schlüssel %08lX lokal beglaubigt\n"
+
+#: g10/keyedit.c:571
+#, c-format
+msgid "\"%s\" was already signed by key %08lX\n"
+msgstr "\"%s\" wurde bereits durch Schlüssel %08lX beglaubigt\n"
+
+#: g10/keyedit.c:584
+#, c-format
+msgid "Nothing to sign with key %08lX\n"
+msgstr "Nichts zu beglaubigen für Schlüssel %08lX\n"
+
+#: g10/keyedit.c:599
+msgid "This key has expired!"
+msgstr "Dieser Schlüssel ist verfallen!"
+
+#: g10/keyedit.c:619
+#, c-format
+msgid "This key is due to expire on %s.\n"
+msgstr "Dieser Schlüssel wird %s verfallen.\n"
+
+#: g10/keyedit.c:623
+msgid "Do you want your signature to expire at the same time? (Y/n) "
+msgstr "Soll Ihre Beglaubigung zur selben Zeit verfallen? (J/n) "
+
+#: g10/keyedit.c:656
+msgid ""
+"You may not make an OpenPGP signature on a PGP 2.x key while in --pgp2 "
+"mode.\n"
+msgstr ""
+"Im --pgp2-Modus kann nur mit PGP-2.x-artigen Schlüsseln unterschrieben "
+"werden\n"
+
+#: g10/keyedit.c:658
+msgid "This would make the key unusable in PGP 2.x.\n"
+msgstr "Dies würde den Schlüssel für PGP 2.x unbrauchbar machen\n"
+
+#: g10/keyedit.c:683
+msgid ""
+"How carefully have you verified the key you are about to sign actually "
+"belongs\n"
+"to the person named above?  If you don't know what to answer, enter \"0\".\n"
+msgstr ""
+"Wie genau haben Sie überprüft, ob der Schlüssel, den Sie jetzt beglaubigen\n"
+"wollen, wirklich der o.g. Person gehört?\n"
+"Wenn Sie darauf keine Antwort wissen, geben Sie \"0\" ein.\n"
+
+#: g10/keyedit.c:688
+#, c-format
+msgid "   (0) I will not answer.%s\n"
+msgstr "   (0) Ich antworte nicht.%s\n"
+
+#: g10/keyedit.c:690
+#, c-format
+msgid "   (1) I have not checked at all.%s\n"
+msgstr "   (1) Ich habe es überhaupt nicht überprüft.%s\n"
+
+#: g10/keyedit.c:692
+#, c-format
+msgid "   (2) I have done casual checking.%s\n"
+msgstr "   (2) Ich habe es flüchtig überprüft.%s\n"
+
+#: g10/keyedit.c:694
+#, c-format
+msgid "   (3) I have done very careful checking.%s\n"
+msgstr "   (3) Ich habe es sehr sorgfältig überprüft.%s\n"
+
+#: g10/keyedit.c:723
+msgid ""
+"Are you really sure that you want to sign this key\n"
+"with your key: \""
+msgstr ""
+"Sind Sie wirklich sicher, daß Sie vorstehenden Schlüssel mit Ihrem\n"
+"Schlüssel beglaubigen wollen: \""
+
+#: g10/keyedit.c:732
+msgid ""
+"\n"
+"This will be a self-signature.\n"
+msgstr ""
+"\n"
+"Dies wird eine Eigenbeglaubigung sein.\n"
+
+#: g10/keyedit.c:736
+msgid ""
+"\n"
+"WARNING: the signature will not be marked as non-exportable.\n"
+msgstr ""
+"\n"
+"WARNUNG: Die Unterschrift wird nicht als nicht-exportierbar markiert "
+"werden.\n"
+
+#: g10/keyedit.c:741
+msgid ""
+"\n"
+"WARNING: the signature will not be marked as non-revocable.\n"
+msgstr ""
+"\n"
+"Die Unterschrift wird nicht als nicht-widerrufbar markiert werden.\n"
+
+#: g10/keyedit.c:748
+msgid ""
+"\n"
+"The signature will be marked as non-exportable.\n"
+msgstr ""
+"\n"
+"Die Unterschrift wird als nicht exportfähig markiert werden.\n"
+
+#: g10/keyedit.c:752
+msgid ""
+"\n"
+"The signature will be marked as non-revocable.\n"
+msgstr ""
+"\n"
+"Die Unterschrift wird als nicht exportfähig markiert werden.\n"
+
+#: g10/keyedit.c:757
+msgid ""
+"\n"
+"I have not checked this key at all.\n"
+msgstr ""
+"\n"
+"Ich habe diesen Schlüssel überhaupt nicht überprüft.\n"
+
+#: g10/keyedit.c:761
+msgid ""
+"\n"
+"I have checked this key casually.\n"
+msgstr ""
+"\n"
+"Ich habe diesen Schlüssel flüchtig überprüft.\n"
+
+#: g10/keyedit.c:765
+msgid ""
+"\n"
+"I have checked this key very carefully.\n"
+msgstr ""
+"\n"
+"Ich habe diesen Schlüssel sehr sorgfältig überprüft.\n"
+
+#: g10/keyedit.c:774
+msgid "Really sign? "
+msgstr "Wirklich unterschreiben? "
+
+#: g10/keyedit.c:819 g10/keyedit.c:3263 g10/keyedit.c:3325 g10/sign.c:308
+#, c-format
+msgid "signing failed: %s\n"
+msgstr "Beglaubigung fehlgeschlagen: %s\n"
+
+#: g10/keyedit.c:875
+msgid "This key is not protected.\n"
+msgstr "Dieser Schlüssel ist nicht geschützt.\n"
+
+#: g10/keyedit.c:879
+msgid "Secret parts of primary key are not available.\n"
+msgstr "Geheime Teile des Haupschlüssels sind nicht vorhanden\n"
+
+#: g10/keyedit.c:883
+msgid "Key is protected.\n"
+msgstr "Schlüssel ist geschützt.\n"
+
+#: g10/keyedit.c:903
+#, c-format
+msgid "Can't edit this key: %s\n"
+msgstr "Dieser Schlüssel kann nicht editiert werden: %s\n"
+
+#: g10/keyedit.c:909
+msgid ""
+"Enter the new passphrase for this secret key.\n"
+"\n"
+msgstr ""
+"Geben Sie das neue Mantra für diesen geheimen Schlüssel ein.\n"
+"\n"
+
+#: g10/keyedit.c:923
+msgid ""
+"You don't want a passphrase - this is probably a *bad* idea!\n"
+"\n"
+msgstr ""
+"Sie wollen kein Mantra - dies ist bestimmt *keine* gute Idee!\n"
+"\n"
+
+#: g10/keyedit.c:926
+msgid "Do you really want to do this? "
+msgstr "Möchten Sie dies wirklich tun? "
+
+#: g10/keyedit.c:990
+msgid "moving a key signature to the correct place\n"
+msgstr "schiebe eine Beglaubigung an die richtige Stelle\n"
+
+#: g10/keyedit.c:1032
+msgid "quit this menu"
+msgstr "Menü verlassen"
+
+#: g10/keyedit.c:1033
+msgid "q"
+msgstr "q"
+
+#: g10/keyedit.c:1034
+msgid "save"
+msgstr "save"
+
+#: g10/keyedit.c:1034
+msgid "save and quit"
+msgstr "speichern und Menü verlassen"
+
+#: g10/keyedit.c:1035
+msgid "help"
+msgstr "help"
+
+#: g10/keyedit.c:1035
+msgid "show this help"
+msgstr "Diese Hilfe zeigen"
+
+#: g10/keyedit.c:1037
+msgid "fpr"
+msgstr "fpr"
+
+#: g10/keyedit.c:1037
+msgid "show fingerprint"
+msgstr "\"Fingerabdruck\" anzeigen"
+
+#: g10/keyedit.c:1038
+msgid "list"
+msgstr "Liste der Schlüssel"
+
+#: g10/keyedit.c:1038
+msgid "list key and user IDs"
+msgstr "Schlüssel und User-IDs auflisten"
+
+#: g10/keyedit.c:1039
+msgid "l"
+msgstr "l"
+
+#: g10/keyedit.c:1040
+msgid "uid"
+msgstr "uid"
+
+#: g10/keyedit.c:1040
+msgid "select user ID N"
+msgstr "User-ID N auswählen"
+
+#: g10/keyedit.c:1041
+msgid "key"
+msgstr "key"
+
+#: g10/keyedit.c:1041
+msgid "select secondary key N"
+msgstr "Zweitschlüssel N auswählen"
+
+#: g10/keyedit.c:1042
+msgid "check"
+msgstr "check"
+
+#: g10/keyedit.c:1042
+msgid "list signatures"
+msgstr "Liste der Signaturen"
+
+#: g10/keyedit.c:1043
+msgid "c"
+msgstr "c"
+
+#: g10/keyedit.c:1044
+msgid "sign"
+msgstr "sign"
+
+#: g10/keyedit.c:1044
+msgid "sign the key"
+msgstr "Den Schlüssel signieren"
+
+#: g10/keyedit.c:1045
+msgid "s"
+msgstr "s"
+
+#: g10/keyedit.c:1046
+#, fuzzy
+msgid "tsign"
+msgstr "sign"
+
+#: g10/keyedit.c:1046
+#, fuzzy
+msgid "make a trust signature"
+msgstr "Eine abgetrennte Unterschrift erzeugen"
+
+#: g10/keyedit.c:1047
+msgid "lsign"
+msgstr "lsign"
+
+#: g10/keyedit.c:1047
+msgid "sign the key locally"
+msgstr "Den Schlüssel nur für diesen Rechner beglaubigen"
+
+#: g10/keyedit.c:1048
+msgid "nrsign"
+msgstr "nrsign"
+
+#: g10/keyedit.c:1048
+msgid "sign the key non-revocably"
+msgstr "Den Schlüssel nicht-widerrufbar beglaubigen"
+
+#: g10/keyedit.c:1049
+msgid "nrlsign"
+msgstr "nrlsign"
+
+#: g10/keyedit.c:1049
+msgid "sign the key locally and non-revocably"
+msgstr "Den Schlüssel nicht-widerrufbar und nur für diesen Rechner signieren"
+
+#: g10/keyedit.c:1050
+msgid "debug"
+msgstr "debug"
+
+#: g10/keyedit.c:1051
+msgid "adduid"
+msgstr "adduid"
+
+#: g10/keyedit.c:1051
+msgid "add a user ID"
+msgstr "Eine User-ID hinzufügen"
+
+#: g10/keyedit.c:1052
+msgid "addphoto"
+msgstr "addphoto"
+
+#: g10/keyedit.c:1052
+msgid "add a photo ID"
+msgstr "Eine Foto-ID hinzufügen"
+
+#: g10/keyedit.c:1053
+msgid "deluid"
+msgstr "deluid"
+
+#: g10/keyedit.c:1053
+msgid "delete user ID"
+msgstr "User-ID entfernen"
+
+#. delphoto is really deluid in disguise
+#: g10/keyedit.c:1055
+msgid "delphoto"
+msgstr "delphoto"
+
+#: g10/keyedit.c:1056
+msgid "addkey"
+msgstr "addkey"
+
+#: g10/keyedit.c:1056
+msgid "add a secondary key"
+msgstr "Einen Zweitschlüssel hinzufügen"
+
+#: g10/keyedit.c:1057
+msgid "delkey"
+msgstr "delkey"
+
+#: g10/keyedit.c:1057
+msgid "delete a secondary key"
+msgstr "Einen Zweitschlüssel entfernen"
+
+#: g10/keyedit.c:1058
+msgid "addrevoker"
+msgstr "addrevoker"
+
+#: g10/keyedit.c:1058
+msgid "add a revocation key"
+msgstr "Einen Widerrufschlüssel hinzufügen"
+
+#: g10/keyedit.c:1059
+msgid "delsig"
+msgstr "delsig"
+
+#: g10/keyedit.c:1059
+msgid "delete signatures"
+msgstr "Signatur entfernen"
+
+#: g10/keyedit.c:1060
+msgid "expire"
+msgstr "expire"
+
+#: g10/keyedit.c:1060
+msgid "change the expire date"
+msgstr "Ändern des Verfallsdatums"
+
+#: g10/keyedit.c:1061
+msgid "primary"
+msgstr "primary"
+
+#: g10/keyedit.c:1061
+msgid "flag user ID as primary"
+msgstr "User-ID als Haupt-User-ID kennzeichnen"
+
+#: g10/keyedit.c:1062
+msgid "toggle"
+msgstr "toggle"
+
+#: g10/keyedit.c:1062
+msgid "toggle between secret and public key listing"
+msgstr "Umschalten zwischen Anzeige geheimer und öffentlicher Schlüssel"
+
+#: g10/keyedit.c:1064
+msgid "t"
+msgstr "t"
+
+#: g10/keyedit.c:1065
+msgid "pref"
+msgstr "pref"
+
+#: g10/keyedit.c:1065
+msgid "list preferences (expert)"
+msgstr "Liste der Voreinstellungen (für Experten)"
+
+#: g10/keyedit.c:1066
+msgid "showpref"
+msgstr "showpref"
+
+#: g10/keyedit.c:1066
+msgid "list preferences (verbose)"
+msgstr "Liste der Voreinstellungen (ausführlich)"
+
+#: g10/keyedit.c:1067
+msgid "setpref"
+msgstr "setpref"
+
+#: g10/keyedit.c:1067
+msgid "set preference list"
+msgstr "Liste der Voreinstellungen einstellen"
+
+#: g10/keyedit.c:1068
+msgid "updpref"
+msgstr "updpref"
+
+#: g10/keyedit.c:1068
+msgid "updated preferences"
+msgstr "geänderte Voreinstellungen"
+
+#: g10/keyedit.c:1069
+msgid "passwd"
+msgstr "passwd"
+
+#: g10/keyedit.c:1069
+msgid "change the passphrase"
+msgstr "Das Mantra ändern"
+
+#: g10/keyedit.c:1070
+msgid "trust"
+msgstr "trust"
+
+#: g10/keyedit.c:1070
+msgid "change the ownertrust"
+msgstr "Den \"Owner trust\" ändern"
+
+#: g10/keyedit.c:1071
+msgid "revsig"
+msgstr "revsig"
+
+#: g10/keyedit.c:1071
+msgid "revoke signatures"
+msgstr "Signaturen widerrufen"
+
+#: g10/keyedit.c:1072
+msgid "revkey"
+msgstr "revkey"
+
+#: g10/keyedit.c:1072
+msgid "revoke a secondary key"
+msgstr "Einen Zweitschlüssel widerrufen"
+
+#: g10/keyedit.c:1073
+msgid "disable"
+msgstr "disable"
+
+#: g10/keyedit.c:1073
+msgid "disable a key"
+msgstr "Schlüssel abschalten"
+
+#: g10/keyedit.c:1074
+msgid "enable"
+msgstr "enable"
+
+#: g10/keyedit.c:1074
+msgid "enable a key"
+msgstr "Schlüssel anschalten"
+
+#: g10/keyedit.c:1075
+msgid "showphoto"
+msgstr "showphoto"
+
+#: g10/keyedit.c:1075
+msgid "show photo ID"
+msgstr "Foto-ID anzeigen"
+
+#: g10/delkey.c:119 g10/keyedit.c:1095
+msgid "can't do that in batchmode\n"
+msgstr "Dies kann im Batchmodus nicht durchgeführt werden.\n"
+
+#: g10/keyedit.c:1132
+#, c-format
+msgid "error reading secret keyblock `%s': %s\n"
+msgstr "Fehler beim Lesen des geheimen Schlüsselblocks `%s': %s\n"
+
+#: g10/keyedit.c:1150
+msgid "Secret key is available.\n"
+msgstr "Geheimer Schlüssel ist vorhanden.\n"
+
+#: g10/keyedit.c:1181
+msgid "Command> "
+msgstr "Befehl> "
+
+#: g10/keyedit.c:1213
+msgid "Need the secret key to do this.\n"
+msgstr "Hierzu wird der geheime Schlüssel benötigt.\n"
+
+#: g10/keyedit.c:1217
+msgid "Please use the command \"toggle\" first.\n"
+msgstr "Bitte verwenden sie zunächst den Befehl \"toggle\"\n"
+
+#: g10/keyedit.c:1267
+msgid "Key is revoked."
+msgstr "Schlüssel wurde widerrufen."
+
+#: g10/keyedit.c:1286
+msgid "Really sign all user IDs? "
+msgstr "Wirklich alle User-IDs beglaubigen? "
+
+#: g10/keyedit.c:1287
+msgid "Hint: Select the user IDs to sign\n"
+msgstr "Tip: Wählen Sie die User-IDs, die beglaubigt werden sollen\n"
+
+#: g10/keyedit.c:1313
+#, c-format
+msgid "This command is not allowed while in %s mode.\n"
+msgstr "Dieses Kommando ist im %s-Modus nicht erlaubt.\n"
+
+#: g10/keyedit.c:1333 g10/keyedit.c:1354
+msgid "You must select at least one user ID.\n"
+msgstr "Zumindestens eine User-ID muß ausgewählt werden.\n"
+
+#: g10/keyedit.c:1335
+msgid "You can't delete the last user ID!\n"
+msgstr "Die letzte User-ID kann nicht gelöscht werden!\n"
+
+#: g10/keyedit.c:1338
+msgid "Really remove all selected user IDs? "
+msgstr "Möchten Sie alle ausgewählten User-IDs wirklich entfernen? "
+
+#: g10/keyedit.c:1339
+msgid "Really remove this user ID? "
+msgstr "Diese User-ID wirklich entfernen? "
+
+#: g10/keyedit.c:1377 g10/keyedit.c:1414
+msgid "You must select at least one key.\n"
+msgstr "Zumindestens ein Schlüssel muß ausgewählt werden.\n"
+
+#: g10/keyedit.c:1381
+msgid "Do you really want to delete the selected keys? "
+msgstr "Möchten Sie die ausgewählten Schlüssel wirklich entfernen? "
+
+#: g10/keyedit.c:1382
+msgid "Do you really want to delete this key? "
+msgstr "Möchten Sie diesen Schlüssel wirklich entfernen? "
+
+#: g10/keyedit.c:1418
+msgid "Do you really want to revoke the selected keys? "
+msgstr "Möchten Sie die ausgewählten Schlüssel wirklich widerrufen? "
+
+#: g10/keyedit.c:1419
+msgid "Do you really want to revoke this key? "
+msgstr "Möchten Sie diesen Schlüssel wirklich wiederrufen? "
+
+#: g10/keyedit.c:1483
+#, fuzzy
+msgid "Current preference list:\n"
+msgstr "Liste der Voreinstellungen einstellen"
+
+#: g10/keyedit.c:1489
+msgid "Really update the preferences for the selected user IDs? "
+msgstr ""
+"Möchten Sie die Voreinstellungen der ausgewählten User-IDs wirklich ändern? "
+
+#: g10/keyedit.c:1491
+msgid "Really update the preferences? "
+msgstr "Die Voreinstellungen wirklich ändern? "
+
+#: g10/keyedit.c:1529
+msgid "Save changes? "
+msgstr "Änderungen speichern? "
+
+#: g10/keyedit.c:1532
+msgid "Quit without saving? "
+msgstr "Beenden ohne zu speichern? "
+
+#: g10/keyedit.c:1543
+#, c-format
+msgid "update failed: %s\n"
+msgstr "Änderung fehlgeschlagen: %s\n"
+
+#: g10/keyedit.c:1550
+#, c-format
+msgid "update secret failed: %s\n"
+msgstr "Änderung des Geheimnisses fehlgeschlagen: %s\n"
+
+#: g10/keyedit.c:1557
+msgid "Key not changed so no update needed.\n"
+msgstr "Schlüssel ist nicht geändert worden, also ist kein Speichern nötig.\n"
+
+#: g10/keyedit.c:1569
+msgid "Invalid command  (try \"help\")\n"
+msgstr "Ungültiger Befehl (versuchen Sie's mal mit \"help\")\n"
+
+#: g10/keyedit.c:1885
+#, c-format
+msgid "This key may be revoked by %s key "
+msgstr "Dieser Schlüssel könnte widerrufen worden sein von %s Schlüssel "
+
+#: g10/keyedit.c:1889
+msgid " (sensitive)"
+msgstr "(empfindlich)"
+
+#. Note, we use the same format string as in other show
+#. functions to make the translation job easier.
+#: g10/keyedit.c:1895 g10/keyedit.c:1921 g10/keyedit.c:2006 g10/keyedit.c:2021
+#, c-format
+msgid "%s%c %4u%c/%08lX  created: %s expires: %s"
+msgstr "%s%c %4u%c/%08lX  erstellt: %s verfällt: %s"
+
+#: g10/keyedit.c:1904
+#, c-format
+msgid " trust: %c/%c"
+msgstr " Vertrauen: %c/%c"
+
+#: g10/keyedit.c:1908
+msgid "This key has been disabled"
+msgstr "Hinweis: Dieser Schlüssel ist abgeschaltet"
+
+#: g10/keyedit.c:1937
+#, c-format
+msgid "rev! subkey has been revoked: %s\n"
+msgstr "rev! Unterschlüssel wurde widerrufen: %s\n"
+
+#: g10/keyedit.c:1940
+msgid "rev- faked revocation found\n"
+msgstr "rev- gefälschter Schlüsselwiderruf entdeckt\n"
+
+#: g10/keyedit.c:1942
+#, c-format
+msgid "rev? problem checking revocation: %s\n"
+msgstr "rev? Schwierigkeiten bei der Widerruf-Überprüfung: %s\n"
+
+#: g10/keyedit.c:1972
+msgid "There are no preferences on a PGP 2.x-style user ID.\n"
+msgstr "PGP 2.x-artige Schlüssel haben keine Voreinstellungen.\n"
+
+#: g10/keyedit.c:1980
+msgid ""
+"Please note that the shown key validity is not necessarily correct\n"
+"unless you restart the program.\n"
+msgstr ""
+"Bitte beachten Sie, daß ohne einen Programmneustart die angezeigte\n"
+"Schlüsselgültigkeit nicht notwendigerweise korrekt ist.\n"
+
+#: g10/keyedit.c:2137
+msgid ""
+"WARNING: This is a PGP2-style key.  Adding a photo ID may cause some "
+"versions\n"
+"         of PGP to reject this key.\n"
+msgstr ""
+"WARNUNG: Dies ist ein PGP2-artiger Schlüssel. Hinzufügen einer Foto-ID "
+"könnte\n"
+"         bei einigen PGP-Versionen zur Zurückweisung des Schlüssels führen.\n"
+
+#: g10/keyedit.c:2142 g10/keyedit.c:2415
+msgid "Are you sure you still want to add it? (y/N) "
+msgstr "Wollen Sie ihn immmer noch hinzufügen? (j/N) "
+
+#: g10/keyedit.c:2148
+msgid "You may not add a photo ID to a PGP2-style key.\n"
+msgstr "Sie können einem PGP2-artigen Schlüüsel keine Foto-ID hinzufügen.\n"
+
+#: g10/keyedit.c:2283
+msgid "Delete this good signature? (y/N/q)"
+msgstr "Diese korrekte Beglaubigung entfernen? (j/N/q)"
+
+#: g10/keyedit.c:2293
+msgid "Delete this invalid signature? (y/N/q)"
+msgstr "Diese ungültige Beglaubigung entfernen= (j/N/q)"
+
+#: g10/keyedit.c:2297
+msgid "Delete this unknown signature? (y/N/q)"
+msgstr "Diese unbekannte Beglaubigung entfernen? (j/N/q)"
+
+#: g10/keyedit.c:2303
+msgid "Really delete this self-signature? (y/N)"
+msgstr "Eigenbeglaubigung wirklich entfernen? (j/N)"
+
+#: g10/keyedit.c:2317
+#, c-format
+msgid "Deleted %d signature.\n"
+msgstr "%d Beglaubigungen entfernt.\n"
+
+#: g10/keyedit.c:2318
+#, c-format
+msgid "Deleted %d signatures.\n"
+msgstr "%d Beglaubigungen entfernt.\n"
+
+#: g10/keyedit.c:2321
+msgid "Nothing deleted.\n"
+msgstr "Nichts entfernt.\n"
+
+#: g10/keyedit.c:2410
+#, fuzzy
+msgid ""
+"WARNING: This is a PGP 2.x-style key.  Adding a designated revoker may "
+"cause\n"
+"         some versions of PGP to reject this key.\n"
+msgstr ""
+"WARNUNG: Dies ist ein PGP2-artiger Schlüssel. Hinzufügen einer Foto-ID "
+"könnte\n"
+"         bei einigen PGP-Versionen zur Zurückweisung des Schlüssels führen.\n"
+
+#: g10/keyedit.c:2421
+#, fuzzy
+msgid "You may not add a designated revoker to a PGP 2.x-style key.\n"
+msgstr "Sie können einem PGP2-artigen Schlüüsel keine Foto-ID hinzufügen.\n"
+
+#: g10/keyedit.c:2444
+msgid "Enter the user ID of the designated revoker: "
+msgstr "Geben sie die User-ID des designierten Widerrufers ein: "
+
+#: g10/keyedit.c:2459
+msgid "cannot appoint a PGP 2.x style key as a designated revoker\n"
+msgstr ""
+"Ein PGP 2.x-artiger Schlüssel kann nicht als designierter Widerrufer "
+"eingetragen werden\n"
+
+#. This actually causes no harm (after all, a key that
+#. designates itself as a revoker is the same as a
+#. regular key), but it's easy enough to check.
+#: g10/keyedit.c:2474
+msgid "you cannot appoint a key as its own designated revoker\n"
+msgstr ""
+"Ein Schlüssel kann nicht als sein eigener designierter Widerrufer agieren\n"
+
+#: g10/keyedit.c:2496
+#, fuzzy
+msgid "this key has already been designated as a revoker\n"
+msgstr ""
+"Ein Schlüssel kann nicht als sein eigener designierter Widerrufer agieren\n"
+
+#: g10/keyedit.c:2592
+msgid "Please remove selections from the secret keys.\n"
+msgstr "Bitte entfernen Sie die Auswahl von den geheimen Schlüsseln.\n"
+
+#: g10/keyedit.c:2598
+msgid "Please select at most one secondary key.\n"
+msgstr "Bitte wählen Sie höchstens einen Zweitschlüssel aus.\n"
+
+#: g10/keyedit.c:2602
+msgid "Changing expiration time for a secondary key.\n"
+msgstr "Ändern des Verfallsdatums des Zweitschlüssels.\n"
+
+#: g10/keyedit.c:2604
+msgid "Changing expiration time for the primary key.\n"
+msgstr "Ändern des Verfallsdatums des Hauptschlüssels.\n"
+
+#: g10/keyedit.c:2646
+msgid "You can't change the expiration date of a v3 key\n"
+msgstr "Sie können das Verfallsdatum eines v3-Schlüssels nicht ändern\n"
+
+#: g10/keyedit.c:2662
+msgid "No corresponding signature in secret ring\n"
+msgstr "Keine entsprechende Signatur im geheimen Schlüsselbund\n"
+
+#: g10/keyedit.c:2745
+msgid "Please select exactly one user ID.\n"
+msgstr "Bitte genau eine User-ID auswählen.\n"
+
+#: g10/keyedit.c:2782 g10/keyedit.c:2889
+#, c-format
+msgid "skipping v3 self-signature on user id \"%s\"\n"
+msgstr "Überspringen der v3 Eigenbeglaubigung von User-ID \"%s\"\n"
+
+#: g10/keyedit.c:2949
+#, c-format
+msgid "No user ID with index %d\n"
+msgstr "Keine User-ID mit Index %d\n"
+
+#: g10/keyedit.c:2995
+#, c-format
+msgid "No secondary key with index %d\n"
+msgstr "Kein Zweitschlüssel mit Index %d\n"
+
+#: g10/keyedit.c:3109
+msgid "user ID: \""
+msgstr "User-ID: \""
+
+#: g10/keyedit.c:3114
+#, c-format
+msgid ""
+"\"\n"
+"signed with your key %08lX at %s\n"
+msgstr ""
+"\"\n"
+"unterschrieben mit Ihrem Schlüssel %08lX um %s\n"
+
+#: g10/keyedit.c:3117
+#, c-format
+msgid ""
+"\"\n"
+"locally signed with your key %08lX at %s\n"
+msgstr ""
+"\"\n"
+"lokal unterschrieben mit Ihrem Schlüssel %08lX um %s\n"
+
+#: g10/keyedit.c:3122
+#, c-format
+msgid "This signature expired on %s.\n"
+msgstr "Diese Unterschrift ist seit %s verfallen.\n"
+
+#: g10/keyedit.c:3126
+msgid "Are you sure you still want to revoke it? (y/N) "
+msgstr "Wollen Sie ihn immmer noch widerrufen? (j/N) "
+
+#: g10/keyedit.c:3130
+msgid "Create a revocation certificate for this signature? (y/N) "
+msgstr "Ein Widerrufszertifikat für diese Unterschrift erzeugen (j/N)"
+
+#. FIXME: detect duplicates here
+#: g10/keyedit.c:3155
+msgid "You have signed these user IDs:\n"
+msgstr "Sie haben folgende User-IDs beglaubigt:\n"
+
+#: g10/keyedit.c:3174
+#, c-format
+msgid "   signed by %08lX at %s%s%s\n"
+msgstr "   beglaubigt durch %08lX um %s%s%s\n"
+
+#: g10/keyedit.c:3182
+#, c-format
+msgid "   revoked by %08lX at %s\n"
+msgstr "   widerrufen durch %08lX um %s\n"
+
+#: g10/keyedit.c:3202
+msgid "You are about to revoke these signatures:\n"
+msgstr "Es werden nun folgende Beglaubigungen entfernt:\n"
+
+#: g10/keyedit.c:3212
+#, c-format
+msgid "   signed by %08lX at %s%s\n"
+msgstr "   beglaubigt durch %08lX am %s%s\n"
+
+#: g10/keyedit.c:3214
+msgid " (non-exportable)"
+msgstr " (nicht-exportierbar)"
+
+#: g10/keyedit.c:3221
+msgid "Really create the revocation certificates? (y/N) "
+msgstr "Wirklich ein Unterschrift-Widerrufszertifikat erzeugen? (j/N) "
+
+#: g10/keyedit.c:3251
+msgid "no secret key\n"
+msgstr "Kein geheimer Schlüssel\n"
+
+#: g10/keyedit.c:3406
+#, c-format
+msgid "Displaying %s photo ID of size %ld for key 0x%08lX (uid %d)\n"
+msgstr ""
+"Anzeigen einer %s Photo ID (%ld Byte) für Schlüssel %08lX (User-ID %d)\n"
+
+#: g10/keylist.c:133
+msgid "Critical signature policy: "
+msgstr "Krititische Beglaubigungsrichtlinie: "
+
+#: g10/keylist.c:135
+msgid "Signature policy: "
+msgstr "Beglaubigungsrichtlinie: "
+
+#: g10/keylist.c:160 g10/keylist.c:183 g10/mainproc.c:769 g10/mainproc.c:778
+msgid "WARNING: invalid notation data found\n"
+msgstr "WARNUNG: Ungültige \"Notation\"-Daten gefunden\n"
+
+#: g10/keylist.c:169
+msgid "Critical signature notation: "
+msgstr "Krititische Beglaubigungs-\"Notation\": "
+
+#: g10/keylist.c:171
+msgid "Signature notation: "
+msgstr "Beglaubigungs-\"Notation\": "
+
+#: g10/keylist.c:178
+msgid "not human readable"
+msgstr "nicht als Klartext darstellbar"
+
+#: g10/keylist.c:267
+msgid "Keyring"
+msgstr "Schlüsselbund"
+
+#. of subkey
+#: g10/keylist.c:536 g10/mainproc.c:905
+#, c-format
+msgid " [expires: %s]"
+msgstr " [verfällt: %s]"
+
+#: g10/keylist.c:1063
+msgid "Primary key fingerprint:"
+msgstr "Haupt-Fingerabdruck  ="
+
+#: g10/keylist.c:1065
+msgid "     Subkey fingerprint:"
+msgstr "Unter-Fingerabdruck  ="
+
+#: g10/keylist.c:1072
+msgid " Primary key fingerprint:"
+msgstr " Haupt-Fingerabdruck  ="
+
+#: g10/keylist.c:1074
+msgid "      Subkey fingerprint:"
+msgstr " Unter-Fingerabdruck  ="
+
+#. use tty
+#: g10/keylist.c:1078 g10/keylist.c:1082
+#, fuzzy
+msgid "      Key fingerprint ="
+msgstr " Schl.-Fingerabdruck ="
+
+#: g10/mainproc.c:248
+#, c-format
+msgid "weird size for an encrypted session key (%d)\n"
+msgstr "Seltsame Länge des verschlüsselten Session-Keys (%d)\n"
+
+#: g10/mainproc.c:259
+#, c-format
+msgid "invalid symkey algorithm detected (%d)\n"
+msgstr "Ungültiger Veschlüsselungsalgorithmus entdeckt (%d)\n"
+
+#: g10/encr-data.c:66 g10/mainproc.c:288
+#, c-format
+msgid "%s encrypted data\n"
+msgstr "%s verschlüsselte Daten\n"
+
+#: g10/encr-data.c:68 g10/mainproc.c:290
+#, c-format
+msgid "encrypted with unknown algorithm %d\n"
+msgstr "Mit unbekanntem Verfahren verschlüsselt %d\n"
+
+#: g10/mainproc.c:318
+#, c-format
+msgid "public key is %08lX\n"
+msgstr "Öffentlicher Schlüssel ist %08lX\n"
+
+#: g10/mainproc.c:364
+msgid "public key encrypted data: good DEK\n"
+msgstr "Mit öffentlichem Schüssel verschlüsselte Daten: Korrekte DEK\n"
+
+#: g10/mainproc.c:416
+#, c-format
+msgid "encrypted with %u-bit %s key, ID %08lX, created %s\n"
+msgstr "verschlüsselt mit %u-Bit %s Schlüssel, ID %08lX, erzeugt %s\n"
+
+# Scripte scannen lt. dl1bke auf "ID (0-9A-F)+" deswegen muß "ID" rein :-(
+# [kw]
+#: g10/mainproc.c:426
+#, c-format
+msgid "encrypted with %s key, ID %08lX\n"
+msgstr "verschlüsselt mit %s Schlüssel, ID %08lX\n"
+
+#: g10/mainproc.c:440
+#, c-format
+msgid "public key decryption failed: %s\n"
+msgstr "Entschlüsselung mit öffentlichem Schlüssel fehlgeschlagen: %s\n"
+
+#: g10/mainproc.c:467 g10/mainproc.c:486
+#, c-format
+msgid "assuming %s encrypted data\n"
+msgstr "vermutlich %s-verschlüsselte Daten\n"
+
+#: g10/mainproc.c:474
+#, c-format
+msgid "IDEA cipher unavailable, optimistically attempting to use %s instead\n"
+msgstr "IDEA-Verschlüsselung nicht verfügbar; versucht wird stattdessen %s\n"
+
+#: g10/mainproc.c:504
+msgid "decryption okay\n"
+msgstr "Entschlüsselung erfolgreich\n"
+
+#: g10/mainproc.c:511
+msgid "WARNING: encrypted message has been manipulated!\n"
+msgstr "Warnung: Verschlüsselte Botschaft ist manipuliert worden!\n"
+
+#: g10/mainproc.c:517
+#, c-format
+msgid "decryption failed: %s\n"
+msgstr "Entschlüsselung fehlgeschlagen: %s\n"
+
+#: g10/mainproc.c:536
+msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
+msgstr ""
+"Hinweis: Der Absender verlangte Vertraulichkeit(\"for-your-eyes-only\")\n"
+
+#: g10/mainproc.c:538
+#, c-format
+msgid "original file name='%.*s'\n"
+msgstr "Ursprünglicher Dateiname='%.*s'\n"
+
+#: g10/mainproc.c:713
+msgid "standalone revocation - use \"gpg --import\" to apply\n"
+msgstr ""
+"Einzelner Widerruf - verwenden Sie \"gpg --import\" um ihn anzuwenden\n"
+
+#: g10/mainproc.c:781
+msgid "Notation: "
+msgstr "\"Notation\": "
+
+#: g10/mainproc.c:793
+msgid "Policy: "
+msgstr "Richtlinie: "
+
+#: g10/mainproc.c:1248
+msgid "signature verification suppressed\n"
+msgstr "Unterschriften-Überprüfung unterdrückt\n"
+
+#. plaintext before signatures but no one-pass packets
+#: g10/mainproc.c:1290 g10/mainproc.c:1300
+msgid "can't handle these multiple signatures\n"
+msgstr "diese Mehrfachunterschriften können nicht behandelt werden\n"
+
+# Scripte scannen lt. dl1bke auf "ID (0-9A-F)+" deswegen muß "ID" rein :-(
+#: g10/mainproc.c:1311
+#, c-format
+msgid "Signature made %.*s using %s key ID %08lX\n"
+msgstr "Unterschrift vom %.*s, %s Schlüssel ID %08lX\n"
+
+#: g10/mainproc.c:1360 g10/mainproc.c:1393
+msgid "BAD signature from \""
+msgstr "FALSCHE Unterschrift von \""
+
+#: g10/mainproc.c:1361 g10/mainproc.c:1394
+msgid "Expired signature from \""
+msgstr "Verfallene Unterschrift von \""
+
+#: g10/mainproc.c:1362 g10/mainproc.c:1395
+msgid "Good signature from \""
+msgstr "Korrekte Unterschrift von \""
+
+#: g10/mainproc.c:1397
+msgid "[uncertain]"
+msgstr "[ungewiß]  "
+
+#: g10/mainproc.c:1489
+#, c-format
+msgid "Can't check signature: %s\n"
+msgstr "Unterschrift kann nicht geprüft werden: %s\n"
+
+#: g10/mainproc.c:1558 g10/mainproc.c:1574 g10/mainproc.c:1636
+msgid "not a detached signature\n"
+msgstr "keine abgetrennte Unterschrift\n"
+
+#: g10/mainproc.c:1585
+#, c-format
+msgid "standalone signature of class 0x%02x\n"
+msgstr "Einzelne Unterschrift der Klasse 0x%02x\n"
+
+#: g10/mainproc.c:1642
+msgid "old style (PGP 2.x) signature\n"
+msgstr "Unterschrift nach alter (PGP 2.x) Art\n"
+
+#: g10/mainproc.c:1649
+msgid "invalid root packet detected in proc_tree()\n"
+msgstr "ungültiges root-Paket in proc_tree() entdeckt\n"
+
+#: g10/misc.c:98
+#, c-format
+msgid "can't disable core dumps: %s\n"
+msgstr "core-dump-Dateierzeugung kann nicht abgeschaltet werden: %s\n"
+
+#: g10/misc.c:162
+msgid "Experimental algorithms should not be used!\n"
+msgstr "Experimentiermethoden sollten nicht benutzt werden!\n"
+
+#: g10/misc.c:192
+msgid "this cipher algorithm is deprecated; please use a more standard one!\n"
+msgstr "Es ist davon abzuraten, diese Verschlüsselungsmethode zu benutzen!\n"
+
+#: g10/misc.c:300
+msgid "the IDEA cipher plugin is not present\n"
+msgstr "das IDEA-Verschlüsselungs-Plugin ist nicht vorhanden\n"
+
+#: g10/misc.c:301
+msgid ""
+"please see http://www.gnupg.org/why-not-idea.html for more information\n"
+msgstr "Für weitere Info siehe http://www.gnupg.org/why-not-idea.html\n"
+
+#: g10/misc.c:509
+#, c-format
+msgid "%s:%d: deprecated option \"%s\"\n"
+msgstr "%s:%d: mißbilligte Option \"%s\".\n"
+
+#: g10/misc.c:513
+#, c-format
+msgid "WARNING: \"%s\" is a deprecated option\n"
+msgstr "WARNUNG: \"%s\" ist eine mißbilligte Option.\n"
+
+#: g10/misc.c:515
+#, c-format
+msgid "please use \"%s%s\" instead\n"
+msgstr "Bitte benutzen Sie stattdessen \"%s%s\".\n"
+
+#: g10/parse-packet.c:120
+#, c-format
+msgid "can't handle public key algorithm %d\n"
+msgstr "dieses Public-Key Verfahren %d kann nicht benutzt werden\n"
+
+#: g10/parse-packet.c:1072
+#, c-format
+msgid "subpacket of type %d has critical bit set\n"
+msgstr "Im Unterpaket des Typs %d ist das \"critical bit\" gesetzt\n"
+
+#: g10/passphrase.c:442 g10/passphrase.c:489
+msgid "gpg-agent is not available in this session\n"
+msgstr "GPG-Agent ist in dieser Sitzung nicht vorhanden\n"
+
+#: g10/passphrase.c:450
+msgid "can't set client pid for the agent\n"
+msgstr "Client-PID für den Agent kann nicht gesetzt werden\n"
+
+#: g10/passphrase.c:458
+msgid "can't get server read FD for the agent\n"
+msgstr "Server-Lese-Handle für den Agent nicht verfügbar\n"
+
+#: g10/passphrase.c:465
+msgid "can't get server write FD for the agent\n"
+msgstr "Server-Schreib-Handle für den Agent nicht verfügbar\n"
+
+#: g10/passphrase.c:498
+msgid "malformed GPG_AGENT_INFO environment variable\n"
+msgstr "fehlerhaft aufgebaute GPG_AGENT_INFO - Umgebungsvariable\n"
+
+#: g10/passphrase.c:511
+#, c-format
+msgid "gpg-agent protocol version %d is not supported\n"
+msgstr "GPG-Agent-Protokoll-Version %d wird nicht unterstützt\n"
+
+#: g10/passphrase.c:532
+#, c-format
+msgid "can't connect to `%s': %s\n"
+msgstr "Verbindung zu '%s' kann nicht aufgebaut werden: %s\n"
+
+#: g10/passphrase.c:554
+msgid "communication problem with gpg-agent\n"
+msgstr "Kommunikationsproblem mit GPG-Agent\n"
+
+#: g10/passphrase.c:561 g10/passphrase.c:812 g10/passphrase.c:920
+msgid "problem with the agent - disabling agent use\n"
+msgstr ""
+"Schwierigkeiten mit dem Agenten - Agent-Ansteuerung wird abgeschaltet\n"
+
+#: g10/passphrase.c:631 g10/passphrase.c:1019
+#, c-format
+msgid " (main key ID %08lX)"
+msgstr " (Hauptschlüssel-ID %08lX)"
+
+#: g10/passphrase.c:641
+#, c-format
+msgid ""
+"You need a passphrase to unlock the secret key for user:\n"
+"\"%.*s\"\n"
+"%u-bit %s key, ID %08lX, created %s%s\n"
+msgstr ""
+"Sie benötigen ein Mantra, um den geheimen Schlüssel zu entsperren.\n"
+"Benutzer: \"\"%.*s\"\n"
+"%u-bit %s Schlüssel, ID %08lX, erzeugt %s%s\n"
+
+#: g10/passphrase.c:662
+msgid "Enter passphrase\n"
+msgstr "Geben Sie das Mantra ein\n"
+
+#: g10/passphrase.c:664
+msgid "Repeat passphrase\n"
+msgstr "Geben Sie das Mantra nochmal ein\n"
+
+#: g10/passphrase.c:705
+msgid "passphrase too long\n"
+msgstr "Mantra ist zu lang\n"
+
+#: g10/passphrase.c:718
+msgid "invalid response from agent\n"
+msgstr "Falsche Antwort des Agenten\n"
+
+#: g10/passphrase.c:727 g10/passphrase.c:809
+msgid "cancelled by user\n"
+msgstr "Abbruch durch Benutzer\n"
+
+#: g10/passphrase.c:729 g10/passphrase.c:891
+#, c-format
+msgid "problem with the agent: agent returns 0x%lx\n"
+msgstr "Schwierigkeiten mit dem Agenten: Agent antwortet 0x%lx\n"
+
+#: g10/passphrase.c:1005
+msgid ""
+"\n"
+"You need a passphrase to unlock the secret key for\n"
+"user: \""
+msgstr ""
+"\n"
+"Sie benötigen ein Mantra, um den geheimen Schlüssel zu entsperren.\n"
+"Benutzer: \""
+
+#: g10/passphrase.c:1014
+#, c-format
+msgid "%u-bit %s key, ID %08lX, created %s"
+msgstr "%u-Bit %s Schlüssel, ID %08lX, erzeugt %s"
+
+#: g10/passphrase.c:1065
+msgid "can't query password in batchmode\n"
+msgstr "Mantra kann im Batchmodus nicht abgefragt werden\n"
+
+#: g10/passphrase.c:1069
+msgid "Enter passphrase: "
+msgstr "Geben Sie das Mantra ein: "
+
+#: g10/passphrase.c:1073
+msgid "Repeat passphrase: "
+msgstr "Geben Sie das Mantra nochmal ein: "
+
+#: g10/plaintext.c:70
+msgid "data not saved; use option \"--output\" to save it\n"
+msgstr ""
+"Daten wurden nicht gespeichert; verwenden Sie dafür die Option \"--output\"\n"
+
+#: g10/plaintext.c:112 g10/plaintext.c:125
+#, c-format
+msgid "error creating `%s': %s\n"
+msgstr "Fehler beim Erstellen von `%s': %s\n"
+
+#: g10/plaintext.c:362
+msgid "Detached signature.\n"
+msgstr "Abgetrennte Beglaubigungen.\n"
+
+#: g10/plaintext.c:366
+msgid "Please enter name of data file: "
+msgstr "Bitte geben Sie den Namen der Datendatei ein: "
+
+#: g10/plaintext.c:387
+msgid "reading stdin ...\n"
+msgstr "lese stdin ...\n"
+
+#: g10/plaintext.c:421
+msgid "no signed data\n"
+msgstr "keine unterschriebene Daten\n"
+
+#: g10/plaintext.c:429
+#, c-format
+msgid "can't open signed data `%s'\n"
+msgstr "kann signierte Datei '%s' nicht öffnen.\n"
+
+#: g10/pubkey-enc.c:102
+#, c-format
+msgid "anonymous recipient; trying secret key %08lX ...\n"
+msgstr "Ungenannter Empfänger; Versuch mit geheimen Schlüssel %08lX ...\n"
+
+#: g10/pubkey-enc.c:118
+msgid "okay, we are the anonymous recipient.\n"
+msgstr "Alles klar, wir sind der ungenannte Empfänger.\n"
+
+#: g10/pubkey-enc.c:170
+msgid "old encoding of the DEK is not supported\n"
+msgstr "alte Kodierung des DEK wird nicht unterstützt\n"
+
+#: g10/pubkey-enc.c:189
+#, c-format
+msgid "cipher algorithm %d%s is unknown or disabled\n"
+msgstr "Verschüsselungsverfahren %d%s ist unbekannt oder abgeschaltet\n"
+
+#: g10/pubkey-enc.c:232
+#, c-format
+msgid "NOTE: cipher algorithm %d not found in preferences\n"
+msgstr "Hinweis: Verfahren %d ist kein bevorzugtes Verschlüsselungsverfahren\n"
+
+#: g10/pubkey-enc.c:254
+#, c-format
+msgid "NOTE: secret key %08lX expired at %s\n"
+msgstr "Hinweis: geheimer Schlüssel %08lX verfällt am %s\n"
+
+#: g10/pubkey-enc.c:260
+msgid "NOTE: key has been revoked"
+msgstr "Hinweis: Schlüssel wurde widerrufen"
+
+#: g10/seckey-cert.c:53
+msgid "secret key parts are not available\n"
+msgstr "Teile des geheimen Schlüssels sind nicht vorhanden\n"
+
+#: g10/seckey-cert.c:59
+#, c-format
+msgid "protection algorithm %d%s is not supported\n"
+msgstr "Schutzverfahren %d%s wird nicht unterstützt\n"
+
+#: g10/seckey-cert.c:234
+msgid "Invalid passphrase; please try again"
+msgstr "Ungültiges Mantra; versuchen Sie es bitte noch einmal"
+
+#: g10/seckey-cert.c:235
+#, c-format
+msgid "%s ...\n"
+msgstr "%s ...\n"
+
+#: g10/seckey-cert.c:292
+msgid "WARNING: Weak key detected - please change passphrase again.\n"
+msgstr ""
+"WARNUNG: Unsicherer Schlüssel entdeckt -\n"
+"         bitte Mantra nochmals wechseln.\n"
+
+#: g10/seckey-cert.c:330
+msgid "generating the deprecated 16-bit checksum for secret key protection\n"
+msgstr ""
+"Die mißbilligte 16-bit Prüfsumme wird zum Schutz des geheimen Schlüssels "
+"benutzt\n"
+
+#: g10/sig-check.c:73
+msgid "WARNING: signature digest conflict in message\n"
+msgstr "WARNUNG: Widersprechende Hashverfahren in der signierten Nachricht\n"
+
+#: g10/sig-check.c:213
+#, c-format
+msgid ""
+"key %08lX: this is a PGP generated ElGamal key which is NOT secure for "
+"signatures!\n"
+msgstr ""
+"Schlüssel %08lX: Dieser durch PGP erzeugte ElGamal-Schlüssel ist für "
+"Signaturen NICHT sicher genug!\n"
+
+#: g10/sig-check.c:222
+#, c-format
+msgid "public key %08lX is %lu second newer than the signature\n"
+msgstr ""
+"Öffentlicher Schlüssel %08lX ist um %lu Sekunde jünger als die Unterschrift\n"
+
+#: g10/sig-check.c:223
+#, c-format
+msgid "public key %08lX is %lu seconds newer than the signature\n"
+msgstr ""
+"Öffentlicher Schlüssel %08lX ist um %lu Sekunden jünger als die "
+"Unterschrift\n"
+
+#: g10/sig-check.c:232
+#, c-format
+msgid ""
+"key %08lX has been created %lu second in future (time warp or clock "
+"problem)\n"
+msgstr ""
+"Der Schlüssel %08lX wurde %lu Sekunde in der Zukunft erzeugt (Zeitreise oder "
+"Uhren stimmen nicht überein)\n"
+
+#: g10/sig-check.c:234
+#, c-format
+msgid ""
+"key %08lX has been created %lu seconds in future (time warp or clock "
+"problem)\n"
+msgstr ""
+"Der Schlüssel %08lX wurde %lu Sekunden in der Zukunft erzeugt (Zeitreise "
+"oder Uhren stimmen nicht überein)\n"
+
+#: g10/sig-check.c:247
+#, c-format
+msgid "NOTE: signature key %08lX expired %s\n"
+msgstr "Hinweis: Signaturschlüssel %08lX ist am %s verfallen.\n"
+
+#: g10/sig-check.c:346
+#, c-format
+msgid "assuming bad signature from key %08lX due to an unknown critical bit\n"
+msgstr ""
+"Vermutlich eine FALSCHE Unterschrift von Schlüssel %08lX, wegen unbekanntem "
+"\"critical bit\"\n"
+
+#: g10/sign.c:103
+#, c-format
+msgid "WARNING: unable to %%-expand notation (too large).  Using unexpanded.\n"
+msgstr ""
+"WARNUNG: \"Notation\" kann nicht %%-erweitert werden (zu groß). Verwende "
+"\"unerweiterte\".\n"
+
+#: g10/sign.c:151
+#, c-format
+msgid ""
+"WARNING: unable to %%-expand policy url (too large).  Using unexpanded.\n"
+msgstr ""
+"WARNUNG: Richtlinien-URL kann nicht %%-erweitert werden (zu gro0). Verwende "
+"\"unerweiterte\".\n"
+
+#: g10/sign.c:303
+#, c-format
+msgid "checking created signature failed: %s\n"
+msgstr "Prüfung der erstellten Unterschrift ist fehlgeschlagen: %s\n"
+
+#: g10/sign.c:312
+#, c-format
+msgid "%s signature from: \"%s\"\n"
+msgstr "%s Unterschrift von: \"%s\"\n"
+
+#: g10/sign.c:462
+#, c-format
+msgid "WARNING: `%s' is an empty file\n"
+msgstr "WARNUNG: '%s' ist eine leere Datei.\n"
+
+#: g10/sign.c:645
+msgid "you can only detach-sign with PGP 2.x style keys while in --pgp2 mode\n"
+msgstr ""
+"Im --pgp2-Modus kann nur mit PGP-2.x-artigen Schlüsseln eine abgetrennte "
+"Unterschrift erzeugt werden\n"
+
+#: g10/sign.c:666 g10/sign.c:893
+#, c-format
+msgid "can't create %s: %s\n"
+msgstr "%s kann nicht erzeugt werden: %s\n"
+
+#: g10/sign.c:691
+#, c-format
+msgid "forcing digest algorithm %s (%d) violates recipient preferences\n"
+msgstr ""
+"Erzwingen des Hashverfahrens %s (%d) verletzt die Empfängervoreinstellungen\n"
+
+#: g10/sign.c:785
+msgid "signing:"
+msgstr "unterschreibe:"
+
+#: g10/sign.c:877
+msgid "you can only clearsign with PGP 2.x style keys while in --pgp2 mode\n"
+msgstr ""
+"Im --pgp2-Modus können Sie Klartextunterschriften nur mit PGP-2.x-artigen "
+"Schlüssel machen\n"
+
+#: g10/sign.c:1030
+#, c-format
+msgid "%s encryption will be used\n"
+msgstr "%s Verschlüsselung wird verwendet\n"
+
+#: g10/textfilter.c:134
+#, c-format
+msgid "can't handle text lines longer than %d characters\n"
+msgstr "Textzeilen länger als %d Zeichen können nicht benutzt werden\n"
+
+#: g10/textfilter.c:231
+#, c-format
+msgid "input line longer than %d characters\n"
+msgstr "Eingabezeile ist länger als %d Zeichen\n"
+
+#: g10/tdbio.c:128 g10/tdbio.c:1389
+#, c-format
+msgid "trustdb rec %lu: lseek failed: %s\n"
+msgstr "trustdb Satz %lu: lseek fehlgeschlagen: %s\n"
+
+#: g10/tdbio.c:134 g10/tdbio.c:1396
+#, c-format
+msgid "trustdb rec %lu: write failed (n=%d): %s\n"
+msgstr "trustdb Satz %lu: write fehlgeschlagen (n=%d): %s\n"
+
+#: g10/tdbio.c:244
+msgid "trustdb transaction too large\n"
+msgstr "trustdb Transaktion zu groß\n"
+
+#: g10/tdbio.c:459
+#, c-format
+msgid "%s: can't access: %s\n"
+msgstr "%s: kann nicht zugegriffen werden: %s\n"
+
+#: g10/tdbio.c:474
+#, c-format
+msgid "%s: directory does not exist!\n"
+msgstr "%s: Verzeichnis existiert nicht!\n"
+
+#: g10/tdbio.c:484 g10/tdbio.c:502 g10/tdbio.c:545
+#, c-format
+msgid "%s: can't create lock\n"
+msgstr "%s: Sperre kann nicht erzeugt werden\n"
+
+#: g10/tdbio.c:486 g10/tdbio.c:548
+#, c-format
+msgid "%s: can't make lock\n"
+msgstr "%s: Sperre kann nicht erzeugt werden\n"
+
+#: g10/keyring.c:1453 g10/openfile.c:240 g10/openfile.c:310 g10/tdbio.c:492
+#, c-format
+msgid "%s: can't create: %s\n"
+msgstr "%s: kann nicht erzeugt werden: %s\n"
+
+#: g10/tdbio.c:507
+#, c-format
+msgid "%s: failed to create version record: %s"
+msgstr "%s: Fehler beim Erzeugen des Versionsatzes: %s"
+
+#: g10/tdbio.c:511
+#, c-format
+msgid "%s: invalid trustdb created\n"
+msgstr "%s: ungültige trust-db erzeugt\n"
+
+#: g10/tdbio.c:514
+#, c-format
+msgid "%s: trustdb created\n"
+msgstr "%s: trust-db erzeugt\n"
+
+#: g10/tdbio.c:554
+msgid "NOTE: trustdb not writable\n"
+msgstr "Notiz: Die \"trustdb\" ist nicht schreibbar\n"
+
+#: g10/tdbio.c:570
+#, c-format
+msgid "%s: invalid trustdb\n"
+msgstr "%s: ungültige 'Trust'-Datenbank\n"
+
+#: g10/tdbio.c:602
+#, c-format
+msgid "%s: failed to create hashtable: %s\n"
+msgstr "%s: hashtable kann nicht erzeugt werden: %s\n"
+
+#: g10/tdbio.c:610
+#, c-format
+msgid "%s: error updating version record: %s\n"
+msgstr "%s: Fehler beim Ändern des Versionsatzes: %s\n"
+
+#: g10/tdbio.c:626 g10/tdbio.c:662 g10/tdbio.c:676 g10/tdbio.c:706
+#: g10/tdbio.c:1322 g10/tdbio.c:1349
+#, c-format
+msgid "%s: error reading version record: %s\n"
+msgstr "%s: Fehler beim Lesen des Versionsatzes: %s\n"
+
+#: g10/tdbio.c:639 g10/tdbio.c:685
+#, c-format
+msgid "%s: error writing version record: %s\n"
+msgstr "%s: Fehler beim Schreiben des Versionsatzes: %s\n"
+
+#: g10/tdbio.c:1124
+#, c-format
+msgid "trustdb: lseek failed: %s\n"
+msgstr "trustdb: lseek fehlgeschlagen: %s\n"
+
+#: g10/tdbio.c:1132
+#, c-format
+msgid "trustdb: read failed (n=%d): %s\n"
+msgstr "trustdb: read failed (n=%d): %s\n"
+
+#: g10/tdbio.c:1153
+#, c-format
+msgid "%s: not a trustdb file\n"
+msgstr "%s: keine trustdb Datei\n"
+
+#: g10/tdbio.c:1170
+#, c-format
+msgid "%s: version record with recnum %lu\n"
+msgstr "%s: version record with recnum %lu\n"
+
+#: g10/tdbio.c:1175
+#, c-format
+msgid "%s: invalid file version %d\n"
+msgstr "%s: invalid file version %d\n"
+
+#: g10/tdbio.c:1355
+#, c-format
+msgid "%s: error reading free record: %s\n"
+msgstr "%s: Fehler beim Lesen eines freien Satzes: %s\n"
+
+#: g10/tdbio.c:1363
+#, c-format
+msgid "%s: error writing dir record: %s\n"
+msgstr "%s: Fehler beim Schreiben eines Verzeichnis-Satzes: %s\n"
+
+#: g10/tdbio.c:1373
+#, c-format
+msgid "%s: failed to zero a record: %s\n"
+msgstr "%s: konnte einen Satz nicht Nullen: %s\n"
+
+#: g10/tdbio.c:1403
+#, c-format
+msgid "%s: failed to append a record: %s\n"
+msgstr "%s: konnte Satz nicht anhängen: %s\n"
+
+#: g10/tdbio.c:1448
+msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
+msgstr ""
+"Die \"Trust\"-Datenbank ist beschädigt; verwenden Sie \"gpg --fix-trustdb"
+"\".\n"
+
+#: g10/trustdb.c:213
+#, c-format
+msgid "`%s' is not a valid long keyID\n"
+msgstr "'%s' ist keine gültige lange Schlüssel-ID\n"
+
+#: g10/trustdb.c:248
+#, c-format
+msgid "key %08lX: accepted as trusted key\n"
+msgstr "Schlüssel %08lX: Akzeptiert als vertrauenswürdiger Schlüssel\n"
+
+#: g10/trustdb.c:286
+#, c-format
+msgid "key %08lX occurs more than once in the trustdb\n"
+msgstr "Schlüssel %08lX tritt mehr als einmal in der \"trustdb\" auf\n"
+
+#: g10/trustdb.c:302
+#, c-format
+msgid "key %08lX: no public key for trusted key - skipped\n"
+msgstr ""
+"Schlüssel %08lX: kein öffentlicher Schlüssel für den vertrauenswürdigen "
+"Schlüssel - übersprungen\n"
+
+#: g10/trustdb.c:311
+#, fuzzy, c-format
+msgid "key %08lX marked as ultimately trusted\n"
+msgstr "Schlüssel ist als uneingeschränkt vertrauenswürdig gekennzeichnet.\n"
+
+#: g10/trustdb.c:337
+#, c-format
+msgid "trust record %lu, req type %d: read failed: %s\n"
+msgstr "trust record %lu, req type %d: read failed: %s\n"
+
+#: g10/trustdb.c:343
+#, c-format
+msgid "trust record %lu is not of requested type %d\n"
+msgstr "Vertrauenssatz %lu ist nicht von der angeforderten Art %d\n"
+
+#: g10/trustdb.c:358
+#, c-format
+msgid "trust record %lu, type %d: write failed: %s\n"
+msgstr "trust record %lu, type %d: write failed: %s\n"
+
+#: g10/trustdb.c:373
+#, c-format
+msgid "trustdb: sync failed: %s\n"
+msgstr "\"Trust-DB\": sync fehlgeschlagen: %s\n"
+
+#: g10/trustdb.c:463
+#, fuzzy
+msgid "unknown trust"
+msgstr "Unbekannte Version"
+
+#: g10/trustdb.c:464
+#, fuzzy
+msgid "expired"
+msgstr "expire"
+
+#: g10/trustdb.c:465
+msgid "undefined trust"
+msgstr ""
+
+#: g10/trustdb.c:466
+#, fuzzy
+msgid "do NOT trust"
+msgstr " %d = Nein, ihm traue ich NICHT\n"
+
+#: g10/trustdb.c:467
+msgid "marginal trust"
+msgstr ""
+
+#: g10/trustdb.c:468
+#, fuzzy
+msgid "full trust"
+msgstr "trust"
+
+#: g10/trustdb.c:469
+#, fuzzy
+msgid "ultimate trust"
+msgstr "|KEYID|diesem Schlüssel uneingeschränkt vertrauen"
+
+#: g10/trustdb.c:504
+msgid "no need for a trustdb check\n"
+msgstr "\"Trust-DB\"-Überprüfung nicht nötig\n"
+
+#: g10/trustdb.c:510 g10/trustdb.c:1912
+#, c-format
+msgid "next trustdb check due at %s\n"
+msgstr "nächste \"Trust-DB\"-Pflichtüberprüfung am %s\n"
+
+#: g10/trustdb.c:519
+#, fuzzy, c-format
+msgid "no need for a trustdb check with \"%s\" trust model\n"
+msgstr "\"Trust-DB\"-Überprüfung nicht nötig\n"
+
+#: g10/trustdb.c:536
+#, fuzzy, c-format
+msgid "no need for a trustdb update with \"%s\" trust model\n"
+msgstr "\"Trust-DB\"-Überprüfung nicht nötig\n"
+
+#: g10/trustdb.c:708 g10/trustdb.c:1073
+#, c-format
+msgid "public key %08lX not found: %s\n"
+msgstr "Öffentlicher Schlüssel %08lX nicht gefunden: %s\n"
+
+#: g10/trustdb.c:919
+msgid "checking the trustdb\n"
+msgstr "\"Trust-DB\" wird überprüft\n"
+
+#: g10/trustdb.c:1748
+#, c-format
+msgid "public key of ultimately trusted key %08lX not found\n"
+msgstr ""
+"öff.Schlüssel des uneingeschränkt vertrautem Schlüssel %08lX nicht gefunden\n"
+
+#: g10/trustdb.c:1854
+#, c-format
+msgid "checking at depth %d signed=%d ot(-/q/n/m/f/u)=%d/%d/%d/%d/%d/%d\n"
+msgstr ""
+"überprüfen, Tiefe %d, unterschrieben =%d ot(-/q/n/m/f/u)=%d/%d/%d/%d/%d/%d\n"
+
+#: g10/verify.c:108
+msgid ""
+"the signature could not be verified.\n"
+"Please remember that the signature file (.sig or .asc)\n"
+"should be the first file given on the command line.\n"
+msgstr ""
+"Die Unterschrift konnte nicht überprüft werden.\n"
+"Denken Sie daran, daß die Datei mit der Unterschrift (.sig oder .asc)\n"
+"als erster in der Kommandozeile stehen sollte.\n"
+
+#: g10/verify.c:173
+#, c-format
+msgid "input line %u too long or missing LF\n"
+msgstr "Eingabezeile %u ist zu lang oder es fehlt ein LF\n"
+
+#: g10/skclist.c:129 g10/skclist.c:185
+msgid "key is not flagged as insecure - can't use it with the faked RNG!\n"
+msgstr ""
+"Schlüssel ist nicht als unsicher gekennzeichnet - er ist nur mit einem\n"
+"echten Zufallsgenerator verwendbar\n"
+
+#: g10/skclist.c:157
+#, c-format
+msgid "skipped `%s': duplicated\n"
+msgstr "übersprungen '%s': doppelt\n"
+
+#: g10/skclist.c:164 g10/skclist.c:172
+#, c-format
+msgid "skipped `%s': %s\n"
+msgstr "übersprungen '%s': %s\n"
+
+#: g10/skclist.c:168
+msgid "skipped: secret key already present\n"
+msgstr "übersprungen: geheimer Schlüssel bereits vorhanden\n"
+
+#: g10/skclist.c:179
+#, c-format
+msgid ""
+"skipped `%s': this is a PGP generated ElGamal key which is not secure for "
+"signatures!\n"
+msgstr ""
+"'%s übersprungen: Dies ist ein durch PGP erzeugter ElGamal-Schlüssel. Das "
+"ist für Signaturen NICHT sicher genug!\n"
+
+#. do not overwrite
+#: g10/openfile.c:84
+#, c-format
+msgid "File `%s' exists. "
+msgstr "Datei '%s' existiert bereits. "
+
+#: g10/openfile.c:86
+msgid "Overwrite (y/N)? "
+msgstr "Überschreiben (j/N)? "
+
+#: g10/openfile.c:119
+#, c-format
+msgid "%s: unknown suffix\n"
+msgstr "%s: unbekannte Dateinamenerweiterung\n"
+
+#: g10/openfile.c:141
+msgid "Enter new filename"
+msgstr "Neuen Dateinamen eingeben"
+
+#: g10/openfile.c:184
+msgid "writing to stdout\n"
+msgstr "Schreiben auf die Standardausgabe\n"
+
+#: g10/openfile.c:273
+#, c-format
+msgid "assuming signed data in `%s'\n"
+msgstr "die unterzeichneten Daten sind wohl in '%s'\n"
+
+#: g10/openfile.c:326
+#, c-format
+msgid "new configuration file `%s' created\n"
+msgstr "Neue Konfigurationsdatei `%s' erstellt\n"
+
+#: g10/openfile.c:353
+#, c-format
+msgid "%s: can't create directory: %s\n"
+msgstr "%s: Verzeichnis kann nicht erzeugt werden: %s\n"
+
+#: g10/openfile.c:356
+#, c-format
+msgid "%s: directory created\n"
+msgstr "%s: Verzeichnis erzeugt\n"
+
+#: g10/encr-data.c:91
+msgid ""
+"WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
+msgstr ""
+"Warnung: Botschaft wurde mit einem unsicheren Schlüssel verschlüsselt.\n"
+
+#: g10/encr-data.c:98
+msgid "problem handling encrypted packet\n"
+msgstr "Problem beim Bearbeiten des verschlüsselten Pakets\n"
+
+#: g10/seskey.c:52
+msgid "weak key created - retrying\n"
+msgstr "Unsicherer Schlüssel erzeugt - neuer Versuch\n"
+
+#: g10/seskey.c:57
+#, c-format
+msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
+msgstr ""
+"Trotz %d-fachen Versuch konnte die Erzeugung eines unsicheren Schlüssels für "
+"sym.Verschlüsselung nicht vermieden werden!\n"
+
+#: g10/seskey.c:200
+msgid "DSA requires the use of a 160 bit hash algorithm\n"
+msgstr "DSA benötigt einen 160-bit Hash Algorithmus\n"
+
+#: g10/delkey.c:120 g10/delkey.c:127
+msgid "(unless you specify the key by fingerprint)\n"
+msgstr "(es sei denn, Sie geben den Schlüssel mittels Fingerprint an)\n"
+
+#: g10/delkey.c:126
+msgid "can't do that in batchmode without \"--yes\"\n"
+msgstr "Dies kann im Batchmodus ohne \"--yes\" nicht durchgeführt werden.\n"
+
+#: g10/delkey.c:138
+msgid "Delete this key from the keyring? "
+msgstr "Diesen Schlüssel aus dem Schlüsselbund löschen? "
+
+#: g10/delkey.c:146
+msgid "This is a secret key! - really delete? "
+msgstr "Dies ist ein privater Schlüssel! - Wirklich löschen? "
+
+#: g10/delkey.c:156
+#, c-format
+msgid "deleting keyblock failed: %s\n"
+msgstr "löschen des Schlüsselblocks fehlgeschlagen: %s\n"
+
+#: g10/delkey.c:166
+msgid "ownertrust information cleared\n"
+msgstr "Der \"Ownertrust\" wurde gelöscht\n"
+
+#: g10/delkey.c:194
+#, c-format
+msgid "there is a secret key for public key \"%s\"!\n"
+msgstr ""
+"Es gibt einen privaten Schlüssel zu diesem öffentlichen Schlüssel \"%s\"!\n"
+
+#: g10/delkey.c:196
+msgid "use option \"--delete-secret-keys\" to delete it first.\n"
+msgstr ""
+"Verwenden Sie zunächst das Kommando \"--delete-secret-key\", um ihn zu "
+"entfernen.\n"
+
+#: g10/helptext.c:47
+msgid ""
+"It's up to you to assign a value here; this value will never be exported\n"
+"to any 3rd party.  We need it to implement the web-of-trust; it has nothing\n"
+"to do with the (implicitly created) web-of-certificates."
+msgstr ""
+"Sie müssen selbst entscheiden, welchen Wert Sie hier eintragen; dieser Wert\n"
+"wird niemals an eine dritte Seite weitergegeben.  Wir brauchen diesen Wert,\n"
+"um das \"Netz des Vertrauens\" aufzubauen.  Dieses hat nichts mit dem\n"
+"(implizit erzeugten) \"Netz der Zertifikate\" zu tun."
+
+#: g10/helptext.c:53
+msgid ""
+"To build the Web-of-Trust, GnuPG needs to know which keys are\n"
+"ultimately trusted - those are usually the keys for which you have\n"
+"access to the secret key.  Answer \"yes\" to set this key to\n"
+"ultimately trusted\n"
+msgstr ""
+"Um das Web-of-Trust aufzubauen muß GnuPG wissen, welchen Schlüsseln\n"
+"uneingeschränkt vertraut wird. Das sind üblicherweise die Schlüssel\n"
+"auf deren geheimen Schlüssel Sie Zugruff haben.\n"
+"Antworten Sie mit \"yes\" um diesen Schlüssel uneingeschränkt zu vertrauen\n"
+
+#: g10/helptext.c:60
+msgid "If you want to use this revoked key anyway, answer \"yes\"."
+msgstr ""
+"Wenn Sie diesen widerrufenen Schlüssel trotzdem benutzen wollen,\n"
+"so antworten Sie mit \"ja\"."
+
+#: g10/helptext.c:64
+msgid "If you want to use this untrusted key anyway, answer \"yes\"."
+msgstr ""
+"Wenn Sie diesen nicht vertrauenswürdigen Schlüssel trotzdem benutzen "
+"wollen,\n"
+"so antworten Sie mit \"ja\"."
+
+#: g10/helptext.c:68
+msgid ""
+"Enter the user ID of the addressee to whom you want to send the message."
+msgstr "Geben Sie die User-ID dessen ein, dem Sie die Botschaft senden wollen."
+
+#: g10/helptext.c:72
+msgid ""
+"Select the algorithm to use.\n"
+"\n"
+"DSA (aka DSS) is the digital signature algorithm which can only be used\n"
+"for signatures.  This is the suggested algorithm because verification of\n"
+"DSA signatures are much faster than those of ElGamal.\n"
+"\n"
+"ElGamal is an algorithm which can be used for signatures and encryption.\n"
+"OpenPGP distinguishs between two flavors of this algorithms: an encrypt "
+"only\n"
+"and a sign+encrypt; actually it is the same, but some parameters must be\n"
+"selected in a special way to create a safe key for signatures: this program\n"
+"does this but other OpenPGP implementations are not required to understand\n"
+"the signature+encryption flavor.\n"
+"\n"
+"The first (primary) key must always be a key which is capable of signing;\n"
+"this is the reason why the encryption only ElGamal key is not available in\n"
+"this menu."
+msgstr ""
+"Wählen Sie die zu verwendende Methode aus.\n"
+"\n"
+"DSA (alias DSS) bedeutet \"digital signature algorithm\" (Digitales\n"
+"  Unterschrift-Verfahren). Es kann nur zum Unterschreiben und Beglaubigen\n"
+"  benutzt werden. Dies ist das empfohlene Verfahren, da dessen Überprüfung\n"
+"  wesentlich schneller abläuft, als die von \"ElGamal\".\n"
+"\n"
+"ElGamal ist ein Verfahren für Unterschrift, Beglaubigung und "
+"Verschlüsselung\n"
+"  OpenPGP unterscheidet zwischen zwei Arten von ElGamal: eines nur zum\n"
+"  Unterschreiben/Beglaubigen und eines zusätzlich zum Verschlüsseln.\n"
+"  Eigentlich sind diese Arten identisch; allerdings müssen einige Parameter\n"
+"  auf eine besondere Art gewählt werden, um einen sicheren Schlüssel für\n"
+"  Unterschriften zu erzeugen. Dieses Programm macht dies zwar so, aber "
+"andere\n"
+"  Programme sind laut der OpenPGP-Spezifikation nicht verpflichtet, die\n"
+"  zweite Art (die mit zusätzlichem Verschlüsseln) zu verstehen.\n"
+"\n"
+"Der Hauptschlüssel (\"primary Key\") muß auf jeden Fall zum Unterschreiben "
+"fähig\n"
+"sein. Deshalb kann ein nur-Verschlüssel-ElGamal-Schlüssel dafür nicht\n"
+"verwendet werden."
+
+#: g10/helptext.c:92
+msgid ""
+"Although these keys are defined in RFC2440 they are not suggested\n"
+"because they are not supported by all programs and signatures created\n"
+"with them are quite large and very slow to verify."
+msgstr ""
+"Obwohl diese Schlüssel in RFC 2440 definiert sind, ist ihre Verwendung "
+"nicht\n"
+"empfohlen. Sie werden nämlich nicht von allen Programmen unterstützt.\n"
+"Außerdem sind damit ezeugte Unterschriften recht groß und ihre Überprüfung\n"
+"ist langsam."
+
+#: g10/helptext.c:98
+msgid ""
+"In general it is not a good idea to use the same key for signing and\n"
+"encryption.  This algorithm should only be used in certain domains.\n"
+"Please consult your security expert first."
+msgstr ""
+"Normalerweise ist es nicht gut, denselben Schlüssel zum unterschreiben\n"
+"und verschlüsseln zu nutzen.  Dieses Verfahren sollte in speziellen\n"
+"Anwendungsgebiten benutzt werden.  Bitte lassen Sie sich zuerst von \n"
+"einem Sicherheistexperten beraten."
+
+#: g10/helptext.c:105
+msgid "Enter the size of the key"
+msgstr "Wählen Sie die gewünschte Schlüssellänge"
+
+#: g10/helptext.c:109 g10/helptext.c:114 g10/helptext.c:126 g10/helptext.c:158
+#: g10/helptext.c:186 g10/helptext.c:191 g10/helptext.c:196
+msgid "Answer \"yes\" or \"no\""
+msgstr "Geben Sie \"ja\" oder \"nein\" ein"
+
+#: g10/helptext.c:119
+msgid ""
+"Enter the required value as shown in the prompt.\n"
+"It is possible to enter a ISO date (YYYY-MM-DD) but you won't\n"
+"get a good error response - instead the system tries to interpret\n"
+"the given value as an interval."
+msgstr ""
+"Geben Sie den benötigten Wert so an, wie er im Prompt erscheint.\n"
+"Es ist zwar möglich ein \"ISO\"-Datum (JJJJ-MM-DD) einzugeben, aber man\n"
+"erhält dann ggfs. keine brauchbaren Fehlermeldungen - stattdessen versucht\n"
+"der Rechner den Wert als Intervall (von-bis) zu deuten."
+
+#: g10/helptext.c:131
+msgid "Enter the name of the key holder"
+msgstr "Geben Sie den Namen des Schlüsselinhabers ein"
+
+#: g10/helptext.c:136
+msgid "please enter an optional but highly suggested email address"
+msgstr ""
+"Geben Sie eine E-Mail-Adresse ein. Dies ist zwar nicht unbedingt notwendig,\n"
+"aber sehr empfehlenswert."
+
+#: g10/helptext.c:140
+msgid "Please enter an optional comment"
+msgstr "Geben Sie - bei Bedarf - einen Kommentar ein"
+
+#: g10/helptext.c:145
+msgid ""
+"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."
+msgstr ""
+"N  um den Namen zu ändern.\n"
+"K  um den Kommentar zu ändern.\n"
+"E  um die E-Mail-Adresse zu ändern.\n"
+"F  um mit der Schlüsselerzeugung fortzusetzen.\n"
+"B  um die Schlüsselerzeugung abbrechen."
+
+#: g10/helptext.c:154
+msgid "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
+msgstr ""
+"Geben Sie \"ja\" (oder nur \"j\") ein, um den Unterschlüssel zu erzeugen."
+
+#: g10/helptext.c:162
+msgid ""
+"When you sign a user ID on a key, you should first verify that the key\n"
+"belongs to the person named in the user ID.  It is useful for others to\n"
+"know how carefully you verified this.\n"
+"\n"
+"\"0\" means you make no particular claim as to how carefully you verified "
+"the\n"
+"    key.\n"
+"\n"
+"\"1\" means you believe the key is owned by the person who claims to own it\n"
+"    but you could not, or did not verify the key at all.  This is useful "
+"for\n"
+"    a \"persona\" verification, where you sign the key of a pseudonymous "
+"user.\n"
+"\n"
+"\"2\" means you did casual verification of the key.  For example, this "
+"could\n"
+"    mean that you verified the key fingerprint and checked the user ID on "
+"the\n"
+"    key against a photo ID.\n"
+"\n"
+"\"3\" means you did extensive verification of the key.  For example, this "
+"could\n"
+"    mean that you verified the key fingerprint with the owner of the key in\n"
+"    person, and that you checked, by means of a hard to forge document with "
+"a\n"
+"    photo ID (such as a passport) that the name of the key owner matches "
+"the\n"
+"    name in the user ID on the key, and finally that you verified (by "
+"exchange\n"
+"    of email) that the email address on the key belongs to the key owner.\n"
+"\n"
+"Note that the examples given above for levels 2 and 3 are *only* examples.\n"
+"In the end, it is up to you to decide just what \"casual\" and \"extensive"
+"\"\n"
+"mean to you when you sign other keys.\n"
+"\n"
+"If you don't know what the right answer is, answer \"0\"."
+msgstr ""
+"Wenn Sie die User-ID eines Schlüssels beglaubigen wollen, sollten Sie "
+"zunächst\n"
+"sicherstellen, daß der Schlüssel demjenigen gehört, der in der User-ID "
+"genannt\n"
+"ist. Für Dritte ist es hilfreich zu wissen, wie gut diese Zuordnung "
+"überprüft\n"
+"wurde.\n"
+"\n"
+"\"0\" zeigt, daß Sie keine bestimmte Aussage über die Sorgfalt der \n"
+"    Schlüsselzuordnung machen.\n"
+"\n"
+"\"1\" Sie glauben, daß der Schlüssel der benannten Person gehört,\n"
+"    aber Sie konnten oder nahmen die Überpüfung überhaupt nicht vor.\n"
+"    Dies ist hilfreich für eine \"persona\"-Überprüfung, wobei man den\n"
+"    Schlüssel eines Pseudonym-Trägers beglaubigt\n"
+"\n"
+"\"2\" Sie nahmen eine flüchtige Überprüfung vor. Das heisst Sie haben z.B.\n"
+"    den Schlüsselfingerabdruck kontrolliert und die User-ID des Schlüssels\n"
+"    anhand des Fotos geprüft.\n"
+"\n"
+"\"3\" Sie haben eine ausführlich Kontrolle des Schlüssels vorgenommen.\n"
+"    Das kann z.B. die Kontrolle des Schlüsselfingerabdrucks mit dem\n"
+"    Schlüsselinhaber persönlich vorgenommen haben; daß Sie die User-ID des\n"
+"    Schlüssel anhand einer schwer zu fälschenden Urkunde mit Foto (wie z.B.\n"
+"    einem Paß) abgeglichen haben und schliesslich per E-Mail-Verkehr die\n"
+"    E-Mail-Adresse als zum Schlüsselbesitzer gehörig erkannt haben.\n"
+"\n"
+"Beachten Sie, daß diese Beispiele für die Antworten 2 und 3 *nur* Beispiele "
+"sind.\n"
+"Schlußendlich ist es Ihre Sache, was Sie unter \"flüchtig\" oder "
+"\"ausführlich\"\n"
+"verstehen, wenn Sie Schlüssel Dritter beglaubigen.\n"
+"\n"
+"Wenn Sie nicht wissen, wie Sie antworten sollen, wählen Sie \"0\"."
+
+#: g10/helptext.c:200
+msgid "Answer \"yes\" is you want to sign ALL the user IDs"
+msgstr "Geben Sie \"ja\" (oder nur \"j\") ein, um alle User-IDs zu beglaubigen"
+
+#: g10/helptext.c:204
+msgid ""
+"Answer \"yes\" if you really want to delete this user ID.\n"
+"All certificates are then also lost!"
+msgstr ""
+"Geben Sie \"ja\" (oder nur \"j\") ein, um diese User-ID zu LÖSCHEN.\n"
+"Alle Zertifikate werden dann auch weg sein!"
+
+#: g10/helptext.c:209
+msgid "Answer \"yes\" if it is okay to delete the subkey"
+msgstr ""
+"Geben Sie \"ja\" (oder nur \"j\") ein, um diesen Unterschlüssel zu löschen"
+
+#: g10/helptext.c:214
+msgid ""
+"This is a valid signature on the key; you normally don't want\n"
+"to delete this signature because it may be important to establish a\n"
+"trust connection to the key or another key certified by this key."
+msgstr ""
+"Dies ist eine gültige Beglaubigung für den Schlüssel. Es ist normalerweise\n"
+"unnötig sie zu löschen. Sie ist möglicherweise sogar notwendig, um einen\n"
+"Trust-Weg zu diesem oder einem durch diesen Schlüssel beglaubigten "
+"Schlüssel\n"
+"herzustellen."
+
+#: g10/helptext.c:219
+msgid ""
+"This signature can't be checked because you don't have the\n"
+"corresponding key.  You should postpone its deletion until you\n"
+"know which key was used because this signing key might establish\n"
+"a trust connection through another already certified key."
+msgstr ""
+"Diese Beglaubigung kann nicht geprüft werden, da Sie den passenden "
+"Schlüssel\n"
+"nicht besitzen. Sie sollten die Löschung der Beglaubigung verschieben, bis\n"
+"sie wissen, welcher Schlüssel verwendet wurde. Denn vielleicht würde genau\n"
+"diese Beglaubigung den \"Trust\"-Weg kompletieren."
+
+#: g10/helptext.c:225
+msgid ""
+"The signature is not valid.  It does make sense to remove it from\n"
+"your keyring."
+msgstr ""
+"Diese Beglaubigung ist ungültig. Es ist sinnvoll sie aus Ihrem\n"
+"Schlüsselbund zu entfernen."
+
+#: g10/helptext.c:229
+msgid ""
+"This is a signature which binds the user ID to the key. It is\n"
+"usually not a good idea to remove such a signature.  Actually\n"
+"GnuPG might not be able to use this key anymore.  So do this\n"
+"only if this self-signature is for some reason not valid and\n"
+"a second one is available."
+msgstr ""
+"Diese Beglaubigung bindet die User-ID an den Schlüssel. Normalerweise ist\n"
+"es nicht gut, solche Beglaubigungen zu entfernen. Um ehrlich zu sein:\n"
+"Es könnte dann sein, daß GnuPG diesen Schlüssel gar nicht mehr benutzen "
+"kann.\n"
+"Sie sollten diese Eigenbeglaubigung also nur dann entfernen, wenn sie aus\n"
+"irgendeinem Grund nicht gültig ist und eine zweite Beglaubigung verfügbar "
+"ist."
+
+#: g10/helptext.c:237
+msgid ""
+"Change the preferences of all user IDs (or just of the selected ones)\n"
+"to the current list of preferences.  The timestamp of all affected\n"
+"self-signatures will be advanced by one second.\n"
+msgstr ""
+"Ändern der Voreinstellung aller User-IDs (oder nur der ausgewählten)\n"
+"auf die aktuelle Liste der Voreinstellung. Die Zeitangaben aller "
+"betroffenen\n"
+"Eigenbeglaubigungen werden um eine Sekunde vorgestellt.\n"
+
+#: g10/helptext.c:244
+msgid "Please enter the passhrase; this is a secret sentence \n"
+msgstr "Bitte geben Sie das Mantra ein. Dies ist ein geheimer Satz \n"
+
+#: g10/helptext.c:250
+msgid "Please repeat the last passphrase, so you are sure what you typed in."
+msgstr ""
+"Um sicher zu gehen, daß Sie sich bei der Eingabe des Mantras nicht\n"
+"vertippt haben, geben Sie diese bitte nochmal ein.  Nur wenn beide Eingaben\n"
+"übereinstimmen, wird das Mantra akzeptiert."
+
+#: g10/helptext.c:254
+msgid "Give the name of the file to which the signature applies"
+msgstr ""
+"Geben Sie den Namen der Datei an, zu dem die abgetrennte Unterschrift gehört"
+
+#: g10/helptext.c:259
+msgid "Answer \"yes\" if it is okay to overwrite the file"
+msgstr "Geben Sie \"ja\" ein, wenn Sie die Datei überschreiben möchten"
+
+#: g10/helptext.c:264
+msgid ""
+"Please enter a new filename. If you just hit RETURN the default\n"
+"file (which is shown in brackets) will be used."
+msgstr ""
+"Geben Sie bitte einen neuen Dateinamen ein. Falls Sie nur die\n"
+"Eingabetaste betätigen, wird der (in Klammern angezeigte) Standarddateiname\n"
+"verwendet."
+
+#: g10/helptext.c:270
+msgid ""
+"You should specify a reason for the certification.  Depending on the\n"
+"context you have the ability to choose from this list:\n"
+"  \"Key has been compromised\"\n"
+"      Use this if you have a reason to believe that unauthorized persons\n"
+"      got access to your secret key.\n"
+"  \"Key is superseded\"\n"
+"      Use this if you have replaced this key with a newer one.\n"
+"  \"Key is no longer used\"\n"
+"      Use this if you have retired this key.\n"
+"  \"User ID is no longer valid\"\n"
+"      Use this to state that the user ID should not longer be used;\n"
+"      this is normally used to mark an email address invalid.\n"
+msgstr ""
+"Sie sollten einen Grund für die Zertifizierung angeben. Je nach\n"
+"Zusammenhang können Sie aus dieser Liste auswählen:\n"
+"  \"Schlüssel wurde kompromitiert\"\n"
+"      Falls Sie Grund zu der Annahme haben, daß nicht berechtigte Personen\n"
+"      Zugriff zu Ihrem geheimen Schlüssel hatten\n"
+"  \"Schlüssel ist überholt\"\n"
+"      Falls Sie diesen Schlüssel durch einem neuen ersetzt haben.\n"
+"  \"Schlüssel wird nicht mehr benutzt\"\n"
+"      Falls Sie diesen Schlüssel zurückgezogen haben.\n"
+"  \"User-ID ist nicht mehr gültig\"\n"
+"      Um bekanntzugeben, daß die User-ID nicht mehr benutzt werden soll.\n"
+"      So weist man normalerweise auf eine ungültige E-Mailadresse hin.\n"
+
+#: g10/helptext.c:286
+msgid ""
+"If you like, you can enter a text describing why you issue this\n"
+"revocation certificate.  Please keep this text concise.\n"
+"An empty line ends the text.\n"
+msgstr ""
+"Wenn Sie möchten, können Sie hier einen Text eingeben, der darlegt, warum\n"
+"Sie diesen Widerruf herausgeben.  Der Text sollte möglichst knapp sein.\n"
+"Eine Leerzeile beendet die Eingabe.\n"
+
+#: g10/helptext.c:301
+msgid "No help available"
+msgstr "Keine Hilfe vorhanden."
+
+#: g10/helptext.c:309
+#, c-format
+msgid "No help available for `%s'"
+msgstr "Keine Hilfe für '%s' vorhanden."
+
+#: g10/keydb.c:182
+#, c-format
+msgid "error creating keyring `%s': %s\n"
+msgstr "Fehler beim Erzeugen des Schlüsselbundes `%s': %s\n"
+
+#: g10/keydb.c:189
+#, c-format
+msgid "keyring `%s' created\n"
+msgstr "Schlüsselbund `%s' erstellt\n"
+
+#: g10/keydb.c:608
+#, c-format
+msgid "failed to rebuild keyring cache: %s\n"
+msgstr "Schlüsselbund-Cache konnte nicht neu erzeugt werden: %s\n"
+
+#: g10/keyring.c:1231
+msgid "WARNING: 2 files with confidential information exists.\n"
+msgstr "Warnung: Zwei Dateien mit vertraulichem Inhalt vorhanden.\n"
+
+#: g10/keyring.c:1233
+#, c-format
+msgid "%s is the unchanged one\n"
+msgstr "%s ist der Unveränderte\n"
+
+#: g10/keyring.c:1234
+#, c-format
+msgid "%s is the new one\n"
+msgstr "%s ist der Neue\n"
+
+#: g10/keyring.c:1235
+msgid "Please fix this possible security flaw\n"
+msgstr "Bitte diesen potentiellen Sicherheitsmangel beseitigen\n"
+
+#: g10/keyring.c:1351
+#, c-format
+msgid "checking keyring `%s'\n"
+msgstr "Prüfen des Schlüsselbundes `%s'\n"
+
+#: g10/keyring.c:1382
+#, fuzzy, c-format
+msgid "%lu keys checked so far (%lu signatures)\n"
+msgstr "%lu Schlüssel geprüft (%lu Beglaubigungen)\n"
+
+#: g10/keyring.c:1393
+#, c-format
+msgid "%lu keys checked (%lu signatures)\n"
+msgstr "%lu Schlüssel geprüft (%lu Beglaubigungen)\n"
+
+#: g10/keyring.c:1458
+#, c-format
+msgid "%s: keyring created\n"
+msgstr "%s: Schlüsselbund erstellt\n"
+
+#~ msgid "preference %c%lu is not valid\n"
+#~ msgstr "Voreinstellung %c%lu ist nicht gültig\n"
+
+#, fuzzy
+#~ msgid " (default)"
+#~ msgstr "Daten entschlüsseln (Voreinstellung)"
+
+#~ msgid "requesting key %08lX from %s\n"
+#~ msgstr "Schlüssel %08lX wird von %s angefordert\n"
+
+#~ msgid "can't get key from keyserver: %s\n"
+#~ msgstr "Schlüssel ist beim Schlüsselserver nicht erhältlich: %s\n"
+
+#~ msgid "error sending to `%s': %s\n"
+#~ msgstr "Fehler beim Senden an `%s': %s\n"
+
+#~ msgid "success sending to `%s' (status=%u)\n"
+#~ msgstr "Senden an `%s' erfolgreich (status=%u)\n"
+
+#~ msgid "failed sending to `%s': status=%u\n"
+#~ msgstr "Senden an `%s' erfolglos (status=%u)\n"
+
+#~ msgid "this keyserver is not fully HKP compatible\n"
+#~ msgstr "Dieser Schlüsselserver ist nicht vollständig HKP kompatibel\n"
+
+#~ msgid "searching for \"%s\" from HKP server %s\n"
+#~ msgstr "suche nach \"%s\" auf HKP-Server %s\n"
+
+#~ msgid "can't search keyserver: %s\n"
+#~ msgstr "kann Schlüsselserver nicht durchsuchen: %s\n"
+
+#~ msgid "%lu keys so far checked (%lu signatures)\n"
+#~ msgstr "%lu Schlüssel bislang geprüft (%lu Beglaubigungen)\n"
+
+#~ msgid "no values for group \"%s\"\n"
+#~ msgstr "Keine Werte für Gruppe \"%s\"\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "you have to start GnuPG again, so it can read the new configuration file\n"
+#~ msgstr ""
+#~ "Sie müssen GnuPG noch einmal starten, damit es die neue "
+#~ "Konfigurationsdatei liest\n"
+
+#~ msgid "changing permission of  `%s' failed: %s\n"
+#~ msgstr "Ändern der Zugriffsrechte für `%s' ist fehlgeschlagen: %s\n"
+
+#~ msgid "Fingerprint:"
+#~ msgstr "Fingerabdruck:"
+
+#~ msgid "             Fingerprint:"
+#~ msgstr "           Fingerabdruck:"
+
+#~ msgid "|NAME=VALUE|use this notation data"
+#~ msgstr "|NAME=WERT|diese \"notation\"-Daten verwenden"
+
+#~ msgid ""
+#~ "the first character of a notation name must be a letter or an underscore\n"
+#~ msgstr ""
+#~ "Das erste Zeichen eines \"notation\"-Namens muß ein Buchstabe oder\n"
+#~ "ein Unterstrich sein\n"
+
+#~ msgid "dots in a notation name must be surrounded by other characters\n"
+#~ msgstr ""
+#~ "Punkte in einem \"notation\"-Namen müssen von anderen Zeichen umgeben "
+#~ "sein\n"
+
+#~ msgid ""
+#~ "WARNING: This key already has a photo ID.\n"
+#~ "         Adding another photo ID may confuse some versions of PGP.\n"
+#~ msgstr ""
+#~ "WARNUNG: Dieser Schlüssel besitzt bereits eine Foto-ID.\n"
+#~ "         Ein hinzugefügte Foto-ID könnte einige Versionen von PGP "
+#~ "verwirren.\n"
+
+#~ msgid "You may only have one photo ID on a key.\n"
+#~ msgstr "Sie können nur eine Foto-ID für diesen Schlüssel haben.\n"
+
+#~ msgid "Are you sure you still want to sign it?\n"
+#~ msgstr "Sind Sie sicher, daß Sie dies wiklich unterschreiben möchten?\n"
+
+#~ msgid "  Are you sure you still want to sign it?\n"
+#~ msgstr "  Sind Sie sicher, daß Sie dies immer noch unterschreiben wollen?\n"
+
+#~ msgid "Really sign? (y/N) "
+#~ msgstr "Wirklich unterschreiben? (j/N) "
+
+#~ msgid "key %08lX: our copy has no self-signature\n"
+#~ msgstr "Schlüssel %08lX: Unsere Kopie hat keine Eigenbeglaubigung\n"
+
+#~ msgid "Do you really need such a large keysize? "
+#~ msgstr "Brauchen Sie wirklich einen derartig langen Schlüssel? "
+
+#~ msgid "   signed by %08lX at %s\n"
+#~ msgstr "   beglaubigt durch %08lX um %s\n"
+
+#~ msgid "--delete-secret-key user-id"
+#~ msgstr "--delete-secret-key User-ID"
+
+#~ msgid "--delete-key user-id"
+#~ msgstr "--delete-key User-ID"
+
+#~ msgid "--delete-secret-and-public-key user-id"
+#~ msgstr "--delete-secret-and-public-key User-ID"
+
+#~ msgid "Enter the user ID: "
+#~ msgstr "Geben Sie die User-ID ein: "
+
+#~ msgid "skipped: public key already set with --encrypt-to\n"
+#~ msgstr ""
+#~ "übersprungen: öffentlicher Schlüssel bereits mittels --encrypt-to "
+#~ "gesetzt\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "WARNING: This is a PGP2-style key\n"
+#~ msgstr "WARNUNG: '%s' ist eine leere Datei.\n"
+
+# valid user replies (not including 1..4)
+#~ msgid "sSmMqQ"
+#~ msgstr "sSmMqQ"
+
+#~ msgid "no keyserver known (use option --keyserver)\n"
+#~ msgstr "Kein Schlüsselserver bekannt (Option --keyserver verwenden)\n"
+
+#~ msgid "%s: not a valid key ID\n"
+#~ msgstr "%s: Dies ist keine gültige Schlüssel-ID\n"
+
+#~ msgid "duplicate (short) key ID %08lX\n"
+#~ msgstr "Öffentlicher Schlüssel ist %08lX\n"
+
+#~ msgid "%lu key(s) to refresh\n"
+#~ msgstr "\t%lu Schlüssel mit Fehlern\n"
+
+#~ msgid "|[NAMES]|check the trust database"
+#~ msgstr "|[NAMEN]|Überprüfen der \"Trust\"-Datenbank"
+
+#~ 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 ""
+#~ "Für diesen Schlüssel konnte kein gültiger \"Trust Path\" gefunden "
+#~ "werden.\n"
+#~ "Mal sehen, ob wir sonst irgendwie ein paar fehlende \"Owner trust\" "
+#~ "Werte \n"
+#~ "ermitteln können.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "No path leading to one of our keys found.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Kein Pfad führt zu einem unserer Schlüsseln.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "No certificates with undefined trust found.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Keine Zertifikate mit undefiniertem Vertrauen gefunden.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "No trust values changed.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Keine \"trust\" Werte geändert.\n"
+#~ "\n"
+
+#~ msgid "%08lX: no info to calculate a trust probability\n"
+#~ msgstr ""
+#~ "%08lX: Keine Infos zur Berechnung der Vertrauenswahrscheinlichkeit "
+#~ "vorgefunden\n"
+
+#~ msgid "%s: error checking key: %s\n"
+#~ msgstr "%s: Fehler beim Prüfen des Schlüssels: %s\n"
+
+#~ msgid "too many entries in unk cache - disabled\n"
+#~ msgstr "zu viele Einträge im unk-Lager - abgeschaltet\n"
+
+#~ msgid "secret key %08lX not imported (use %s to allow for it)\n"
+#~ msgstr ""
+#~ "Geheimer Schlüssel %08lX nicht importiert (%s verwenden, um das zu "
+#~ "ermöglichen)\n"
+
+#~ msgid "update of trustdb failed: %s\n"
+#~ msgstr "Änderung der \"Trust-DB\" fehlgeschlagen: %s\n"
+
+#~ msgid "assuming bad MDC due to an unknown critical bit\n"
+#~ msgstr ""
+#~ "Vermutlich ist das Siegel (MDC) BESCHÄDIGT (wegen unbekanntem \"critical "
+#~ "bit\")\n"
+
+#~ msgid "error reading dir record for LID %lu: %s\n"
+#~ msgstr "Fehler beim Lesen des Dir-Satzes für LID %lu: %s\n"
+
+#~ msgid "lid %lu: expected dir record, got type %d\n"
+#~ msgstr "lid %lu: Dir-Satz erwartet, aber es kam Typ %d\n"
+
+#~ msgid "no primary key for LID %lu\n"
+#~ msgstr "Kein Hauptschlüssel für LID %lu\n"
+
+#~ msgid "error reading primary key for LID %lu: %s\n"
+#~ msgstr "Fehler beim Lesen den Hauptschlüssels der LID %lu: %s\n"
+
+#~ msgid "get_dir_record: search_record failed: %s\n"
+#~ msgstr "get_dir_record: search_record fehlgeschlagen: %s\n"
+
+#~ msgid "key %08lX: query record failed\n"
+#~ msgstr "Schlüssel %08lX: Satzabfrage fehlgeschlagen\n"
+
+#~ msgid "key %08lX: already in trusted key table\n"
+#~ msgstr "Schlüssel %08lX: Ist bereits in geheimer Schlüsseltabelle\n"
+
+#~ msgid "NOTE: secret key %08lX is NOT protected.\n"
+#~ msgstr "HINWEIS: Geheimer Schlüssel %08lX ist NICHT geschützt.\n"
+
+#~ msgid "key %08lX: secret and public key don't match\n"
+#~ msgstr ""
+#~ "Schlüssel %08lX: geheimer und öffentlicher Schlüssel passen nicht "
+#~ "zusammen.\n"
+
+#~ msgid "enumerate secret keys failed: %s\n"
+#~ msgstr "enum_secret_keys fehlgeschlagen: %s\n"
+
+#~ msgid "key %08lX.%lu: Good subkey binding\n"
+#~ msgstr "Schlüssel %08lX.%lu: Korrekte Unterschlüssel-Anbindung\n"
+
+#~ msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
+#~ msgstr "Schlüssel %08lX.%lu: Ungültige Unterschlüssel-Anbindung: %s\n"
+
+#~ msgid "key %08lX.%lu: Valid key revocation\n"
+#~ msgstr "Schlüssel %08lX.%lu: Gültiger Schlüsselwiderruf\n"
+
+#~ msgid "key %08lX.%lu: Invalid key revocation: %s\n"
+#~ msgstr "Schlüssel %08lX.%lu: Ungültiger Schlüsselwiderruf: %s\n"
+
+#~ msgid "Good self-signature"
+#~ msgstr "Korrekte Eigenbeglaubigung"
+
+#~ msgid "Invalid self-signature"
+#~ msgstr "Ungültige Eigenbeglaubigung"
+
+#~ msgid "Valid user ID revocation skipped due to a newer self signature"
+#~ msgstr ""
+#~ "Gültiger User-ID-Widerruf ignoriert, da eine neuere Eigenbeglaubigung "
+#~ "vorliegt"
+
+#~ msgid "Valid user ID revocation"
+#~ msgstr "Gültiger User-ID-Widerruf"
+
+#~ msgid "Invalid user ID revocation"
+#~ msgstr "Ungültiger User-ID-Widerruf"
+
+#~ msgid "Valid certificate revocation"
+#~ msgstr "Gültiger Zerifikat-Widerruf"
+
+#~ msgid "Good certificate"
+#~ msgstr "Korrektes Zertifikat"
+
+#~ msgid "Invalid certificate revocation"
+#~ msgstr "Ungültiger Zertifikatswiderruf"
+
+#~ msgid "Invalid certificate"
+#~ msgstr "Ungültiges Zertifikat"
+
+#~ msgid "sig record %lu[%d] points to wrong record.\n"
+#~ msgstr "Signatursatz %lu[%d] zeigt auf falschen Satz.\n"
+
+#~ msgid "duplicated certificate - deleted"
+#~ msgstr "Doppelte Zertifikate - entfernt"
+
+#~ msgid "tdbio_search_dir failed: %s\n"
+#~ msgstr "tdbio_search_dir fehlgeschlagen: %s\n"
+
+#~ msgid "lid ?: insert failed: %s\n"
+#~ msgstr "lid ?: Einfügen fehlgeschlagen: %s\n"
+
+#~ msgid "lid %lu: insert failed: %s\n"
+#~ msgstr "lid %lu: Einfügen fehlgeschlagen: %s\n"
+
+#~ msgid "lid %lu: inserted\n"
+#~ msgstr "lid %lu: eingefügt\n"
+
+#~ msgid "error reading dir record: %s\n"
+#~ msgstr "Fehler beim Lesen des Verz.Satzes: %s\n"
+
+#~ msgid "\t%lu keys inserted\n"
+#~ msgstr "\t%lu Schlüssel eingefügt\n"
+
+#~ msgid "enumerate keyblocks failed: %s\n"
+#~ msgstr "enumerate Schlüsselblock fehlgeschlagen: %s\n"
+
+#~ msgid "lid %lu: dir record w/o key - skipped\n"
+#~ msgstr "lid %lu: Dir-Satz ohne Schlüssel - übergangen\n"
+
+#~ msgid "\t%lu due to new pubkeys\n"
+#~ msgstr "\t%lu wegen neuer Schlüssel\n"
+
+#~ msgid "\t%lu keys skipped\n"
+#~ msgstr "\t%lu Schlüssel übersprungen\n"
+
+#~ msgid "\t%lu keys updated\n"
+#~ msgstr "\t%lu Schlüssel geändert\n"
+
+#~ msgid "Ooops, no keys\n"
+#~ msgstr "Huch, keine Schlüssel\n"
+
+#~ msgid "Ooops, no user IDs\n"
+#~ msgstr "Huch, keine User-IDs\n"
+
+#~ msgid "check_trust: search dir record failed: %s\n"
+#~ msgstr "check_trust: Suche nach Dir-Satz fehlgeschlagen: %s\n"
+
+#~ msgid "key %08lX: insert trust record failed: %s\n"
+#~ msgstr "Schlüssel %08lX: 'trust record' einfügen fehlgeschlagen: %s\n"
+
+#~ msgid "key %08lX.%lu: inserted into trustdb\n"
+#~ msgstr "Schlüssel %08lX.%lu: in \"trustdb\" eingefügt\n"
+
+#~ msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
+#~ msgstr ""
+#~ "Schlüssel %08lX.%lu: wurde in der Zukunft erzeugt (Zeitreise oder Uhren "
+#~ "stimmen nicht überein)\n"
+
+#~ msgid "key %08lX.%lu: expired at %s\n"
+#~ msgstr "Schlüssel %08lX.%lu: verfallen am %s\n"
+
+#~ msgid "key %08lX.%lu: trust check failed: %s\n"
+#~ msgstr "Schlüssel %08lX.%lu: Vertrauensprüfung fehlgeschlagen: %s\n"
+
+#~ msgid "user '%s' not found: %s\n"
+#~ msgstr "Benutzer '%s' nicht gefunden: %s\n"
+
+#~ msgid "problem finding '%s' in trustdb: %s\n"
+#~ msgstr "Problem, '%s' in der Trust-DB zu finden: %s\n"
+
+#~ msgid "user '%s' not in trustdb - inserting\n"
+#~ msgstr "User '%s' ist nicht in der 'Trust'-Datenbank - wird eingefügt\n"
+
+#~ msgid "failed to put '%s' into trustdb: %s\n"
+#~ msgstr "konnte '%s' nicht in die 'Trust'-Datenbank hineintun: %s\n"
+
+#~ msgid "too many random bits requested; the limit is %d\n"
+#~ msgstr "Zu viele Zufallswerte angefordert: Die Grenze liegt bei %d\n"
+
+#~ msgid "For info see http://www.gnupg.org"
+#~ msgstr "Weitere Infos: siehe http://www.gnupg.org"
+
+#~ msgid "Do you really want to create a sign and encrypt key? "
+#~ msgstr ""
+#~ "Möchten Sie wirklich einen Unterschriften-/Verschlüsselungschlüssel "
+#~ "erzeugen? "
+
+#~ msgid "%s: user not found: %s\n"
+#~ msgstr "%s: Benutzer nicht gefunden: %s\n"
+
+#~ msgid "certificate read problem: %s\n"
+#~ msgstr "Zertifikat Leseproblem: %s\n"
+
+#~ msgid "can't lock keyring `%s': %s\n"
+#~ msgstr "kann Schlüsselbund `%s' nicht sperren: %s\n"
+
+#~ msgid "%s: user not found\n"
+#~ msgstr "%s: Benutzer nicht gefunden\n"
+
+#~ msgid "WARNING: can't yet handle long pref records\n"
+#~ msgstr "WARNUNG: Lange 'Pref'-Records können noch nicht benutzt werden\n"
+
+#~ msgid "%s: can't create keyring: %s\n"
+#~ msgstr "%s: Schlüsselbund kann nicht erzeugt werden: %s\n"
+
+#~ msgid "invalid"
+#~ msgstr "ungültig"
+
+#~ msgid "RSA key cannot be used in this version\n"
+#~ msgstr "RSA-Schlüssel können in dieser Version nicht verwendet werden\n"
+
+#~ msgid "No key for user ID\n"
+#~ msgstr "Kein Schlüssel für User-ID\n"
+
+#~ msgid "No user ID for key\n"
+#~ msgstr "Keine User-ID für Schlüssel\n"
+
+#~ msgid "no secret key for decryption available\n"
+#~ msgstr "kein geheimer Schlüssel zur Entschlüsselung vorhanden\n"
+
+#~ msgid "   (%d) ElGamal in a v3 packet\n"
+#~ msgstr "   (%d) ElGamal in einem v3-Paket\n"
+
+#~ msgid "Key generation can only be used in interactive mode\n"
+#~ msgstr ""
+#~ "Die Schlüsselerzeugung kann nur im interaktiven Modus benutzt werden.\n"
diff --git a/scripts/config.guess b/scripts/config.guess
new file mode 100755 (executable)
index 0000000..27d87fa
--- /dev/null
@@ -0,0 +1,1366 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002 Free Software Foundation, Inc.
+
+timestamp='2002-11-08'
+
+# This file 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.
+#
+# This program 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.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Per Bothner <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub.  If it succeeds, it prints the system name on stdout, and
+# exits with 0.  Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit 0 ;;
+    --version | -v )
+       echo "$version" ; exit 0 ;;
+    --help | --h* | -h )
+       echo "$usage"; exit 0 ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )        # Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# This shell variable is my proudest work .. or something. --bje
+
+set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ;
+(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old)
+   || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ;
+dummy=$tmpdir/dummy ;
+files="$dummy.c $dummy.o $dummy.rel $dummy" ;
+trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+       for c in cc gcc c89 c99 ; do
+         if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+            CC_FOR_BUILD="$c"; break ;
+         fi ;
+       done ;
+       rm -f $files ;
+       if test x"$CC_FOR_BUILD" = x ; then
+         CC_FOR_BUILD=no_compiler_found ;
+       fi
+       ;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ;
+unset files'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+       PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+       # NetBSD (nbsd) targets should (where applicable) match one or
+       # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+       # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+       # switched to ELF, *-*-netbsd* would select the old
+       # object file format.  This provides both forward
+       # compatibility and a consistent mechanism for selecting the
+       # object file format.
+       #
+       # Note: NetBSD doesn't particularly care about the vendor
+       # portion of the name.  We always set it to "unknown".
+       sysctl="sysctl -n hw.machine_arch"
+       UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+           /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+       case "${UNAME_MACHINE_ARCH}" in
+           armeb) machine=armeb-unknown ;;
+           arm*) machine=arm-unknown ;;
+           sh3el) machine=shl-unknown ;;
+           sh3eb) machine=sh-unknown ;;
+           *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+       esac
+       # The Operating System including object format, if it has switched
+       # to ELF recently, or will in the future.
+       case "${UNAME_MACHINE_ARCH}" in
+           arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+               eval $set_cc_for_build
+               if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+                       | grep __ELF__ >/dev/null
+               then
+                   # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+                   # Return netbsd for either.  FIX?
+                   os=netbsd
+               else
+                   os=netbsdelf
+               fi
+               ;;
+           *)
+               os=netbsd
+               ;;
+       esac
+       # The OS release
+       release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+       # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+       # contains redundant information, the shorter form:
+       # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+       echo "${machine}-${os}${release}"
+       exit 0 ;;
+    amiga:OpenBSD:*:*)
+       echo m68k-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    arc:OpenBSD:*:*)
+       echo mipsel-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    hp300:OpenBSD:*:*)
+       echo m68k-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    mac68k:OpenBSD:*:*)
+       echo m68k-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    macppc:OpenBSD:*:*)
+       echo powerpc-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    mvme68k:OpenBSD:*:*)
+       echo m68k-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    mvme88k:OpenBSD:*:*)
+       echo m88k-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    mvmeppc:OpenBSD:*:*)
+       echo powerpc-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    pmax:OpenBSD:*:*)
+       echo mipsel-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    sgi:OpenBSD:*:*)
+       echo mipseb-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    sun3:OpenBSD:*:*)
+       echo m68k-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    wgrisc:OpenBSD:*:*)
+       echo mipsel-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    *:OpenBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
+       exit 0 ;;
+    alpha:OSF1:*:*)
+       if test $UNAME_RELEASE = "V4.0"; then
+               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+       fi
+       # A Vn.n version is a released version.
+       # A Tn.n version is a released field test version.
+       # A Xn.n version is an unreleased experimental baselevel.
+       # 1.2 uses "1.2" for uname -r.
+       eval $set_cc_for_build
+       cat <<EOF >$dummy.s
+       .data
+\$Lformat:
+       .byte 37,100,45,37,120,10,0     # "%d-%x\n"
+
+       .text
+       .globl main
+       .align 4
+       .ent main
+main:
+       .frame \$30,16,\$26,0
+       ldgp \$29,0(\$27)
+       .prologue 1
+       .long 0x47e03d80 # implver \$0
+       lda \$2,-1
+       .long 0x47e20c21 # amask \$2,\$1
+       lda \$16,\$Lformat
+       mov \$0,\$17
+       not \$1,\$18
+       jsr \$26,printf
+       ldgp \$29,0(\$26)
+       mov 0,\$16
+       jsr \$26,exit
+       .end main
+EOF
+       $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null
+       if test "$?" = 0 ; then
+               case `$dummy` in
+                       0-0)
+                               UNAME_MACHINE="alpha"
+                               ;;
+                       1-0)
+                               UNAME_MACHINE="alphaev5"
+                               ;;
+                       1-1)
+                               UNAME_MACHINE="alphaev56"
+                               ;;
+                       1-101)
+                               UNAME_MACHINE="alphapca56"
+                               ;;
+                       2-303)
+                               UNAME_MACHINE="alphaev6"
+                               ;;
+                       2-307)
+                               UNAME_MACHINE="alphaev67"
+                               ;;
+                       2-1307)
+                               UNAME_MACHINE="alphaev68"
+                               ;;
+                       3-1307)
+                               UNAME_MACHINE="alphaev7"
+                               ;;
+               esac
+       fi
+       rm -f $dummy.s $dummy && rmdir $tmpdir
+       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+       exit 0 ;;
+    Alpha\ *:Windows_NT*:*)
+       # How do we know it's Interix rather than the generic POSIX subsystem?
+       # Should we change UNAME_MACHINE based on the output of uname instead
+       # of the specific Alpha model?
+       echo alpha-pc-interix
+       exit 0 ;;
+    21064:Windows_NT:50:3)
+       echo alpha-dec-winnt3.5
+       exit 0 ;;
+    Amiga*:UNIX_System_V:4.0:*)
+       echo m68k-unknown-sysv4
+       exit 0;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+       echo ${UNAME_MACHINE}-unknown-amigaos
+       exit 0 ;;
+    *:[Mm]orph[Oo][Ss]:*:*)
+       echo ${UNAME_MACHINE}-unknown-morphos
+       exit 0 ;;
+    *:OS/390:*:*)
+       echo i370-ibm-openedition
+       exit 0 ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+       echo arm-acorn-riscix${UNAME_RELEASE}
+       exit 0;;
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+       echo hppa1.1-hitachi-hiuxmpp
+       exit 0;;
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+       # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+       if test "`(/bin/universe) 2>/dev/null`" = att ; then
+               echo pyramid-pyramid-sysv3
+       else
+               echo pyramid-pyramid-bsd
+       fi
+       exit 0 ;;
+    NILE*:*:*:dcosx)
+       echo pyramid-pyramid-svr4
+       exit 0 ;;
+    DRS?6000:UNIX_SV:4.2*:7*)
+       case `/usr/bin/uname -p` in
+           sparc) echo sparc-icl-nx7 && exit 0 ;;
+       esac ;;
+    sun4H:SunOS:5.*:*)
+       echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit 0 ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+       echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit 0 ;;
+    i86pc:SunOS:5.*:*)
+       echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit 0 ;;
+    sun4*:SunOS:6*:*)
+       # According to config.sub, this is the proper way to canonicalize
+       # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+       # it's likely to be more like Solaris than SunOS4.
+       echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit 0 ;;
+    sun4*:SunOS:*:*)
+       case "`/usr/bin/arch -k`" in
+           Series*|S4*)
+               UNAME_RELEASE=`uname -v`
+               ;;
+       esac
+       # Japanese Language versions have a version number like `4.1.3-JL'.
+       echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+       exit 0 ;;
+    sun3*:SunOS:*:*)
+       echo m68k-sun-sunos${UNAME_RELEASE}
+       exit 0 ;;
+    sun*:*:4.2BSD:*)
+       UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+       test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+       case "`/bin/arch`" in
+           sun3)
+               echo m68k-sun-sunos${UNAME_RELEASE}
+               ;;
+           sun4)
+               echo sparc-sun-sunos${UNAME_RELEASE}
+               ;;
+       esac
+       exit 0 ;;
+    aushp:SunOS:*:*)
+       echo sparc-auspex-sunos${UNAME_RELEASE}
+       exit 0 ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+       exit 0 ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+       echo m68k-atari-mint${UNAME_RELEASE}
+        exit 0 ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+       exit 0 ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+        echo m68k-milan-mint${UNAME_RELEASE}
+        exit 0 ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+        echo m68k-hades-mint${UNAME_RELEASE}
+        exit 0 ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+        echo m68k-unknown-mint${UNAME_RELEASE}
+        exit 0 ;;
+    powerpc:machten:*:*)
+       echo powerpc-apple-machten${UNAME_RELEASE}
+       exit 0 ;;
+    RISC*:Mach:*:*)
+       echo mips-dec-mach_bsd4.3
+       exit 0 ;;
+    RISC*:ULTRIX:*:*)
+       echo mips-dec-ultrix${UNAME_RELEASE}
+       exit 0 ;;
+    VAX*:ULTRIX*:*:*)
+       echo vax-dec-ultrix${UNAME_RELEASE}
+       exit 0 ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+       echo clipper-intergraph-clix${UNAME_RELEASE}
+       exit 0 ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+       int main (int argc, char *argv[]) {
+#else
+       int main (argc, argv) int argc; char *argv[]; {
+#endif
+       #if defined (host_mips) && defined (MIPSEB)
+       #if defined (SYSTYPE_SYSV)
+         printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+       #endif
+       #if defined (SYSTYPE_SVR4)
+         printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+       #endif
+       #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+         printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+       #endif
+       #endif
+         exit (-1);
+       }
+EOF
+       $CC_FOR_BUILD -o $dummy $dummy.c \
+         && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+         && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+       rm -f $dummy.c $dummy && rmdir $tmpdir
+       echo mips-mips-riscos${UNAME_RELEASE}
+       exit 0 ;;
+    Motorola:PowerMAX_OS:*:*)
+       echo powerpc-motorola-powermax
+       exit 0 ;;
+    Motorola:*:4.3:PL8-*)
+       echo powerpc-harris-powermax
+       exit 0 ;;
+    Night_Hawk:*:*:PowerMAX_OS)
+       echo powerpc-harris-powermax
+       exit 0 ;;
+    Night_Hawk:Power_UNIX:*:*)
+       echo powerpc-harris-powerunix
+       exit 0 ;;
+    m88k:CX/UX:7*:*)
+       echo m88k-harris-cxux7
+       exit 0 ;;
+    m88k:*:4*:R4*)
+       echo m88k-motorola-sysv4
+       exit 0 ;;
+    m88k:*:3*:R3*)
+       echo m88k-motorola-sysv3
+       exit 0 ;;
+    AViiON:dgux:*:*)
+        # DG/UX returns AViiON for all architectures
+        UNAME_PROCESSOR=`/usr/bin/uname -p`
+       if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+       then
+           if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+              [ ${TARGET_BINARY_INTERFACE}x = x ]
+           then
+               echo m88k-dg-dgux${UNAME_RELEASE}
+           else
+               echo m88k-dg-dguxbcs${UNAME_RELEASE}
+           fi
+       else
+           echo i586-dg-dgux${UNAME_RELEASE}
+       fi
+       exit 0 ;;
+    M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
+       echo m88k-dolphin-sysv3
+       exit 0 ;;
+    M88*:*:R3*:*)
+       # Delta 88k system running SVR3
+       echo m88k-motorola-sysv3
+       exit 0 ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+       echo m88k-tektronix-sysv3
+       exit 0 ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+       echo m68k-tektronix-bsd
+       exit 0 ;;
+    *:IRIX*:*:*)
+       echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+       exit 0 ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+       echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
+       exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
+    i*86:AIX:*:*)
+       echo i386-ibm-aix
+       exit 0 ;;
+    ia64:AIX:*:*)
+       if [ -x /usr/bin/oslevel ] ; then
+               IBM_REV=`/usr/bin/oslevel`
+       else
+               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+       fi
+       echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+       exit 0 ;;
+    *:AIX:2:3)
+       if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+               eval $set_cc_for_build
+               sed 's/^                //' << EOF >$dummy.c
+               #include <sys/systemcfg.h>
+
+               main()
+                       {
+                       if (!__power_pc())
+                               exit(1);
+                       puts("powerpc-ibm-aix3.2.5");
+                       exit(0);
+                       }
+EOF
+               $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+               rm -f $dummy.c $dummy && rmdir $tmpdir
+               echo rs6000-ibm-aix3.2.5
+       elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+               echo rs6000-ibm-aix3.2.4
+       else
+               echo rs6000-ibm-aix3.2
+       fi
+       exit 0 ;;
+    *:AIX:*:[45])
+       IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+       if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+               IBM_ARCH=rs6000
+       else
+               IBM_ARCH=powerpc
+       fi
+       if [ -x /usr/bin/oslevel ] ; then
+               IBM_REV=`/usr/bin/oslevel`
+       else
+               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+       fi
+       echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+       exit 0 ;;
+    *:AIX:*:*)
+       echo rs6000-ibm-aix
+       exit 0 ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+       echo romp-ibm-bsd4.4
+       exit 0 ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+       echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+       exit 0 ;;                           # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+       echo rs6000-bull-bosx
+       exit 0 ;;
+    DPX/2?00:B.O.S.:*:*)
+       echo m68k-bull-sysv3
+       exit 0 ;;
+    9000/[34]??:4.3bsd:1.*:*)
+       echo m68k-hp-bsd
+       exit 0 ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+       echo m68k-hp-bsd4.4
+       exit 0 ;;
+    9000/[34678]??:HP-UX:*:*)
+       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+       case "${UNAME_MACHINE}" in
+           9000/31? )            HP_ARCH=m68000 ;;
+           9000/[34]?? )         HP_ARCH=m68k ;;
+           9000/[678][0-9][0-9])
+               if [ -x /usr/bin/getconf ]; then
+                   sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                    case "${sc_cpu_version}" in
+                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                      532)                      # CPU_PA_RISC2_0
+                        case "${sc_kernel_bits}" in
+                          32) HP_ARCH="hppa2.0n" ;;
+                          64) HP_ARCH="hppa2.0w" ;;
+                         '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                        esac ;;
+                    esac
+               fi
+               if [ "${HP_ARCH}" = "" ]; then
+                   eval $set_cc_for_build
+                   sed 's/^              //' << EOF >$dummy.c
+
+              #define _HPUX_SOURCE
+              #include <stdlib.h>
+              #include <unistd.h>
+
+              int main ()
+              {
+              #if defined(_SC_KERNEL_BITS)
+                  long bits = sysconf(_SC_KERNEL_BITS);
+              #endif
+                  long cpu  = sysconf (_SC_CPU_VERSION);
+
+                  switch (cpu)
+               {
+               case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+               case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+               case CPU_PA_RISC2_0:
+              #if defined(_SC_KERNEL_BITS)
+                   switch (bits)
+                       {
+                       case 64: puts ("hppa2.0w"); break;
+                       case 32: puts ("hppa2.0n"); break;
+                       default: puts ("hppa2.0"); break;
+                       } break;
+              #else  /* !defined(_SC_KERNEL_BITS) */
+                   puts ("hppa2.0"); break;
+              #endif
+               default: puts ("hppa1.0"); break;
+               }
+                  exit (0);
+              }
+EOF
+                   (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+                   if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
+                   rm -f $dummy.c $dummy && rmdir $tmpdir
+               fi ;;
+       esac
+       echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+       exit 0 ;;
+    ia64:HP-UX:*:*)
+       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+       echo ia64-hp-hpux${HPUX_REV}
+       exit 0 ;;
+    3050*:HI-UX:*:*)
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #include <unistd.h>
+       int
+       main ()
+       {
+         long cpu = sysconf (_SC_CPU_VERSION);
+         /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+            true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+            results, however.  */
+         if (CPU_IS_PA_RISC (cpu))
+           {
+             switch (cpu)
+               {
+                 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+                 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+                 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+                 default: puts ("hppa-hitachi-hiuxwe2"); break;
+               }
+           }
+         else if (CPU_IS_HP_MC68K (cpu))
+           puts ("m68k-hitachi-hiuxwe2");
+         else puts ("unknown-hitachi-hiuxwe2");
+         exit (0);
+       }
+EOF
+       $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+       rm -f $dummy.c $dummy && rmdir $tmpdir
+       echo unknown-hitachi-hiuxwe2
+       exit 0 ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+       echo hppa1.1-hp-bsd
+       exit 0 ;;
+    9000/8??:4.3bsd:*:*)
+       echo hppa1.0-hp-bsd
+       exit 0 ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+       echo hppa1.0-hp-mpeix
+       exit 0 ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+       echo hppa1.1-hp-osf
+       exit 0 ;;
+    hp8??:OSF1:*:*)
+       echo hppa1.0-hp-osf
+       exit 0 ;;
+    i*86:OSF1:*:*)
+       if [ -x /usr/sbin/sysversion ] ; then
+           echo ${UNAME_MACHINE}-unknown-osf1mk
+       else
+           echo ${UNAME_MACHINE}-unknown-osf1
+       fi
+       exit 0 ;;
+    parisc*:Lites*:*:*)
+       echo hppa1.1-hp-lites
+       exit 0 ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+       echo c1-convex-bsd
+        exit 0 ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+       if getsysinfo -f scalar_acc
+       then echo c32-convex-bsd
+       else echo c2-convex-bsd
+       fi
+        exit 0 ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+       echo c34-convex-bsd
+        exit 0 ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+       echo c38-convex-bsd
+        exit 0 ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+       echo c4-convex-bsd
+        exit 0 ;;
+    CRAY*Y-MP:*:*:*)
+       echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
+    CRAY*[A-Z]90:*:*:*)
+       echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+       | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+             -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+             -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
+    CRAY*TS:*:*:*)
+       echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
+    CRAY*T3D:*:*:*)
+       echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
+    CRAY*T3E:*:*:*)
+       echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
+    CRAY*SV1:*:*:*)
+       echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+       FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        exit 0 ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+       echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+       exit 0 ;;
+    sparc*:BSD/OS:*:*)
+       echo sparc-unknown-bsdi${UNAME_RELEASE}
+       exit 0 ;;
+    *:BSD/OS:*:*)
+       echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+       exit 0 ;;
+    *:FreeBSD:*:*)
+       # Determine whether the default compiler uses glibc.
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #include <features.h>
+       #if __GLIBC__ >= 2
+       LIBC=gnu
+       #else
+       LIBC=
+       #endif
+EOF
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+       rm -f $dummy.c && rmdir $tmpdir
+       echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
+       exit 0 ;;
+    i*:CYGWIN*:*)
+       echo ${UNAME_MACHINE}-pc-cygwin
+       exit 0 ;;
+    i*:MINGW*:*)
+       echo ${UNAME_MACHINE}-pc-mingw32
+       exit 0 ;;
+    i*:PW*:*)
+       echo ${UNAME_MACHINE}-pc-pw32
+       exit 0 ;;
+    x86:Interix*:3*)
+       echo i386-pc-interix3
+       exit 0 ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+       # How do we know it's Interix rather than the generic POSIX subsystem?
+       # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+       # UNAME_MACHINE based on the output of uname instead of i386?
+       echo i386-pc-interix
+       exit 0 ;;
+    i*:UWIN*:*)
+       echo ${UNAME_MACHINE}-pc-uwin
+       exit 0 ;;
+    p*:CYGWIN*:*)
+       echo powerpcle-unknown-cygwin
+       exit 0 ;;
+    prep*:SunOS:5.*:*)
+       echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit 0 ;;
+    *:GNU:*:*)
+       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+       exit 0 ;;
+    i*86:Minix:*:*)
+       echo ${UNAME_MACHINE}-pc-minix
+       exit 0 ;;
+    arm*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+    ia64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+    m68*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+    mips:Linux:*:*)
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #undef CPU
+       #undef mips
+       #undef mipsel
+       #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+       CPU=mipsel
+       #else
+       #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+       CPU=mips
+       #else
+       CPU=
+       #endif
+       #endif
+EOF
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+       rm -f $dummy.c && rmdir $tmpdir
+       test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
+       ;;
+    ppc:Linux:*:*)
+       echo powerpc-unknown-linux-gnu
+       exit 0 ;;
+    ppc64:Linux:*:*)
+       echo powerpc64-unknown-linux-gnu
+       exit 0 ;;
+    alpha:Linux:*:*)
+       case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+         EV5)   UNAME_MACHINE=alphaev5 ;;
+         EV56)  UNAME_MACHINE=alphaev56 ;;
+         PCA56) UNAME_MACHINE=alphapca56 ;;
+         PCA57) UNAME_MACHINE=alphapca56 ;;
+         EV6)   UNAME_MACHINE=alphaev6 ;;
+         EV67)  UNAME_MACHINE=alphaev67 ;;
+         EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+       objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+       if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+       echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+       exit 0 ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+       # Look for CPU level
+       case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+         PA7*) echo hppa1.1-unknown-linux-gnu ;;
+         PA8*) echo hppa2.0-unknown-linux-gnu ;;
+         *)    echo hppa-unknown-linux-gnu ;;
+       esac
+       exit 0 ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+       echo hppa64-unknown-linux-gnu
+       exit 0 ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+       echo ${UNAME_MACHINE}-ibm-linux
+       exit 0 ;;
+    sh*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+    x86_64:Linux:*:*)
+       echo x86_64-unknown-linux-gnu
+       exit 0 ;;
+    i*86:Linux:*:*)
+       # The BFD linker knows what the default object file format is, so
+       # first see if it will tell us. cd to the root directory to prevent
+       # problems with other programs or directories called `ld' in the path.
+       # Set LC_ALL=C to ensure ld outputs messages in English.
+       ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+                        | sed -ne '/supported targets:/!d
+                                   s/[         ][      ]*/ /g
+                                   s/.*supported targets: *//
+                                   s/ .*//
+                                   p'`
+        case "$ld_supported_targets" in
+         elf32-i386)
+               TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+               ;;
+         a.out-i386-linux)
+               echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+               exit 0 ;;
+         coff-i386)
+               echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+               exit 0 ;;
+         "")
+               # Either a pre-BFD a.out linker (linux-gnuoldld) or
+               # one that does not give us useful --help.
+               echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+               exit 0 ;;
+       esac
+       # Determine whether the default compiler is a.out or elf
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #include <features.h>
+       #ifdef __ELF__
+       # ifdef __GLIBC__
+       #  if __GLIBC__ >= 2
+       LIBC=gnu
+       #  else
+       LIBC=gnulibc1
+       #  endif
+       # else
+       LIBC=gnulibc1
+       # endif
+       #else
+       #ifdef __INTEL_COMPILER
+       LIBC=gnu
+       #else
+       LIBC=gnuaout
+       #endif
+       #endif
+EOF
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+       rm -f $dummy.c && rmdir $tmpdir
+       test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
+       test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+       ;;
+    i*86:DYNIX/ptx:4*:*)
+       # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+       # earlier versions are messed up and put the nodename in both
+       # sysname and nodename.
+       echo i386-sequent-sysv4
+       exit 0 ;;
+    i*86:UNIX_SV:4.2MP:2.*)
+        # Unixware is an offshoot of SVR4, but it has its own version
+        # number series starting with 2...
+        # I am not positive that other SVR4 systems won't match this,
+       # I just have to hope.  -- rms.
+        # Use sysv4.2uw... so that sysv4* matches it.
+       echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+       exit 0 ;;
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+       UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+       if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+               echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+       else
+               echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+       fi
+       exit 0 ;;
+    i*86:*:5:[78]*)
+       case `/bin/uname -X | grep "^Machine"` in
+           *486*)           UNAME_MACHINE=i486 ;;
+           *Pentium)        UNAME_MACHINE=i586 ;;
+           *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+       esac
+       echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+       exit 0 ;;
+    i*86:*:3.2:*)
+       if test -f /usr/options/cb.name; then
+               UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+               echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+       elif /bin/uname -X 2>/dev/null >/dev/null ; then
+               UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+               (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+               (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+                       && UNAME_MACHINE=i586
+               (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+                       && UNAME_MACHINE=i686
+               (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+                       && UNAME_MACHINE=i686
+               echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+       else
+               echo ${UNAME_MACHINE}-pc-sysv32
+       fi
+       exit 0 ;;
+    i*86:*DOS:*:*)
+       echo ${UNAME_MACHINE}-pc-msdosdjgpp
+       exit 0 ;;
+    pc:*:*:*)
+       # Left here for compatibility:
+        # uname -m prints for DJGPP always 'pc', but it prints nothing about
+        # the processor, so we play safe by assuming i386.
+       echo i386-pc-msdosdjgpp
+        exit 0 ;;
+    Intel:Mach:3*:*)
+       echo i386-pc-mach3
+       exit 0 ;;
+    paragon:*:*:*)
+       echo i860-intel-osf1
+       exit 0 ;;
+    i860:*:4.*:*) # i860-SVR4
+       if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+         echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+       else # Add other i860-SVR4 vendors below as they are discovered.
+         echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+       fi
+       exit 0 ;;
+    mini*:CTIX:SYS*5:*)
+       # "miniframe"
+       echo m68010-convergent-sysv
+       exit 0 ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+       echo m68k-convergent-sysv
+       exit 0 ;;
+    M680?0:D-NIX:5.3:*)
+       echo m68k-diab-dnix
+       exit 0 ;;
+    M68*:*:R3V[567]*:*)
+       test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
+       OS_REL=''
+       test -r /etc/.relid \
+       && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+         && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+       /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+         && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+          && echo i486-ncr-sysv4 && exit 0 ;;
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+       echo m68k-unknown-lynxos${UNAME_RELEASE}
+       exit 0 ;;
+    mc68030:UNIX_System_V:4.*:*)
+       echo m68k-atari-sysv4
+       exit 0 ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+       echo i386-unknown-lynxos${UNAME_RELEASE}
+       exit 0 ;;
+    TSUNAMI:LynxOS:2.*:*)
+       echo sparc-unknown-lynxos${UNAME_RELEASE}
+       exit 0 ;;
+    rs6000:LynxOS:2.*:*)
+       echo rs6000-unknown-lynxos${UNAME_RELEASE}
+       exit 0 ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+       echo powerpc-unknown-lynxos${UNAME_RELEASE}
+       exit 0 ;;
+    SM[BE]S:UNIX_SV:*:*)
+       echo mips-dde-sysv${UNAME_RELEASE}
+       exit 0 ;;
+    RM*:ReliantUNIX-*:*:*)
+       echo mips-sni-sysv4
+       exit 0 ;;
+    RM*:SINIX-*:*:*)
+       echo mips-sni-sysv4
+       exit 0 ;;
+    *:SINIX-*:*:*)
+       if uname -p 2>/dev/null >/dev/null ; then
+               UNAME_MACHINE=`(uname -p) 2>/dev/null`
+               echo ${UNAME_MACHINE}-sni-sysv4
+       else
+               echo ns32k-sni-sysv
+       fi
+       exit 0 ;;
+    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                      # says <Richard.M.Bartel@ccMail.Census.GOV>
+        echo i586-unisys-sysv4
+        exit 0 ;;
+    *:UNIX_System_V:4*:FTX*)
+       # From Gerald Hewes <hewes@openmarket.com>.
+       # How about differentiating between stratus architectures? -djm
+       echo hppa1.1-stratus-sysv4
+       exit 0 ;;
+    *:*:*:FTX*)
+       # From seanf@swdc.stratus.com.
+       echo i860-stratus-sysv4
+       exit 0 ;;
+    *:VOS:*:*)
+       # From Paul.Green@stratus.com.
+       echo hppa1.1-stratus-vos
+       exit 0 ;;
+    mc68*:A/UX:*:*)
+       echo m68k-apple-aux${UNAME_RELEASE}
+       exit 0 ;;
+    news*:NEWS-OS:6*:*)
+       echo mips-sony-newsos6
+       exit 0 ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+       if [ -d /usr/nec ]; then
+               echo mips-nec-sysv${UNAME_RELEASE}
+       else
+               echo mips-unknown-sysv${UNAME_RELEASE}
+       fi
+        exit 0 ;;
+    BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
+       echo powerpc-be-beos
+       exit 0 ;;
+    BeMac:BeOS:*:*)    # BeOS running on Mac or Mac clone, PPC only.
+       echo powerpc-apple-beos
+       exit 0 ;;
+    BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
+       echo i586-pc-beos
+       exit 0 ;;
+    SX-4:SUPER-UX:*:*)
+       echo sx4-nec-superux${UNAME_RELEASE}
+       exit 0 ;;
+    SX-5:SUPER-UX:*:*)
+       echo sx5-nec-superux${UNAME_RELEASE}
+       exit 0 ;;
+    SX-6:SUPER-UX:*:*)
+       echo sx6-nec-superux${UNAME_RELEASE}
+       exit 0 ;;
+    Power*:Rhapsody:*:*)
+       echo powerpc-apple-rhapsody${UNAME_RELEASE}
+       exit 0 ;;
+    *:Rhapsody:*:*)
+       echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+       exit 0 ;;
+    *:Darwin:*:*)
+       echo `uname -p`-apple-darwin${UNAME_RELEASE}
+       exit 0 ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+       UNAME_PROCESSOR=`uname -p`
+       if test "$UNAME_PROCESSOR" = "x86"; then
+               UNAME_PROCESSOR=i386
+               UNAME_MACHINE=pc
+       fi
+       echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+       exit 0 ;;
+    *:QNX:*:4*)
+       echo i386-pc-qnx
+       exit 0 ;;
+    NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
+       echo nsr-tandem-nsk${UNAME_RELEASE}
+       exit 0 ;;
+    *:NonStop-UX:*:*)
+       echo mips-compaq-nonstopux
+       exit 0 ;;
+    BS2000:POSIX*:*:*)
+       echo bs2000-siemens-sysv
+       exit 0 ;;
+    DS/*:UNIX_System_V:*:*)
+       echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+       exit 0 ;;
+    *:Plan9:*:*)
+       # "uname -m" is not consistent, so use $cputype instead. 386
+       # is converted to i386 for consistency with other x86
+       # operating systems.
+       if test "$cputype" = "386"; then
+           UNAME_MACHINE=i386
+       else
+           UNAME_MACHINE="$cputype"
+       fi
+       echo ${UNAME_MACHINE}-unknown-plan9
+       exit 0 ;;
+    i*86:OS/2:*:*)
+       # If we were able to find `uname', then EMX Unix compatibility
+       # is probably installed.
+       echo ${UNAME_MACHINE}-pc-os2-emx
+       exit 0 ;;
+    *:TOPS-10:*:*)
+       echo pdp10-unknown-tops10
+       exit 0 ;;
+    *:TENEX:*:*)
+       echo pdp10-unknown-tenex
+       exit 0 ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+       echo pdp10-dec-tops20
+       exit 0 ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+       echo pdp10-xkl-tops20
+       exit 0 ;;
+    *:TOPS-20:*:*)
+       echo pdp10-unknown-tops20
+       exit 0 ;;
+    *:ITS:*:*)
+       echo pdp10-unknown-its
+       exit 0 ;;
+    i*86:XTS-300:*:STOP)
+       echo ${UNAME_MACHINE}-unknown-stop
+       exit 0 ;;
+    i*86:atheos:*:*)
+       echo ${UNAME_MACHINE}-unknown-atheos
+       exit 0 ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+          "4"
+#else
+         ""
+#endif
+         ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+  printf ("arm-acorn-riscix"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+  printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+    struct utsname un;
+
+    uname(&un);
+
+    if (strncmp(un.version, "V2", 2) == 0) {
+       printf ("i386-sequent-ptx2\n"); exit (0);
+    }
+    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+       printf ("i386-sequent-ptx1\n"); exit (0);
+    }
+    printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+#  include <sys/param.h>
+#  if defined (BSD)
+#   if BSD == 43
+      printf ("vax-dec-bsd4.3\n"); exit (0);
+#   else
+#    if BSD == 199006
+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#    else
+      printf ("vax-dec-bsd\n"); exit (0);
+#    endif
+#   endif
+#  else
+    printf ("vax-dec-bsd\n"); exit (0);
+#  endif
+# else
+    printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+rm -f $dummy.c $dummy && rmdir $tmpdir
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+    case `getsysinfo -f cpu_type` in
+    c1*)
+       echo c1-convex-bsd
+       exit 0 ;;
+    c2*)
+       if getsysinfo -f scalar_acc
+       then echo c32-convex-bsd
+       else echo c2-convex-bsd
+       fi
+       exit 0 ;;
+    c34*)
+       echo c34-convex-bsd
+       exit 0 ;;
+    c38*)
+       echo c38-convex-bsd
+       exit 0 ;;
+    c4*)
+       echo c4-convex-bsd
+       exit 0 ;;
+    esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+    ftp://ftp.gnu.org/pub/gnu/config/
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/scripts/config.sub b/scripts/config.sub
new file mode 100755 (executable)
index 0000000..c4f0b2f
--- /dev/null
@@ -0,0 +1,1471 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002 Free Software Foundation, Inc.
+
+timestamp='2002-11-08'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine.  It does not imply ALL GNU software can.
+#
+# This file 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.
+#
+# This program 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.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#      CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#      CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+       $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit 0 ;;
+    --version | -v )
+       echo "$version" ; exit 0 ;;
+    --help | --h* | -h )
+       echo "$usage"; exit 0 ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )        # Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit 0;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+       -sun*os*)
+               # Prevent following clause from handling this invalid input.
+               ;;
+       -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+       -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+       -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+       -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+       -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+       -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+       -apple | -axis)
+               os=
+               basic_machine=$1
+               ;;
+       -sim | -cisco | -oki | -wec | -winbond)
+               os=
+               basic_machine=$1
+               ;;
+       -scout)
+               ;;
+       -wrs)
+               os=-vxworks
+               basic_machine=$1
+               ;;
+       -chorusos*)
+               os=-chorusos
+               basic_machine=$1
+               ;;
+       -chorusrdb)
+               os=-chorusrdb
+               basic_machine=$1
+               ;;
+       -hiux*)
+               os=-hiuxwe2
+               ;;
+       -sco5)
+               os=-sco3.2v5
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco4)
+               os=-sco3.2v4
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco3.2.[4-9]*)
+               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco3.2v[4-9]*)
+               # Don't forget version if it is 3.2v4 or newer.
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco*)
+               os=-sco3.2v2
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -udk*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -isc)
+               os=-isc2.2
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -clix*)
+               basic_machine=clipper-intergraph
+               ;;
+       -isc*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -lynx*)
+               os=-lynxos
+               ;;
+       -ptx*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+               ;;
+       -windowsnt*)
+               os=`echo $os | sed -e 's/windowsnt/winnt/'`
+               ;;
+       -psos*)
+               os=-psos
+               ;;
+       -mint | -mint[0-9]*)
+               basic_machine=m68k-atari
+               os=-mint
+               ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+       # Recognize the basic CPU types without company name.
+       # Some are omitted here because they have special meanings below.
+       1750a | 580 \
+       | a29k \
+       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+       | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+       | clipper \
+       | d10v | d30v | dlx | dsp16xx \
+       | fr30 | frv \
+       | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+       | i370 | i860 | i960 | ia64 \
+       | ip2k \
+       | m32r | m68000 | m68k | m88k | mcore \
+       | mips | mipsbe | mipseb | mipsel | mipsle \
+       | mips16 \
+       | mips64 | mips64el \
+       | mips64vr | mips64vrel \
+       | mips64orion | mips64orionel \
+       | mips64vr4100 | mips64vr4100el \
+       | mips64vr4300 | mips64vr4300el \
+       | mips64vr5000 | mips64vr5000el \
+       | mipsisa32 | mipsisa32el \
+       | mipsisa64 | mipsisa64el \
+       | mipsisa64sb1 | mipsisa64sb1el \
+       | mipsisa64sr71k | mipsisa64sr71kel \
+       | mipstx39 | mipstx39el \
+       | mn10200 | mn10300 \
+       | ns16k | ns32k \
+       | openrisc | or32 \
+       | pdp10 | pdp11 | pj | pjl \
+       | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+       | pyramid \
+       | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+       | sh64 | sh64le \
+       | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
+       | strongarm \
+       | tahoe | thumb | tic80 | tron \
+       | v850 | v850e \
+       | we32k \
+       | x86 | xscale | xstormy16 | xtensa \
+       | z8k)
+               basic_machine=$basic_machine-unknown
+               ;;
+       m6811 | m68hc11 | m6812 | m68hc12)
+               # Motorola 68HC11/12.
+               basic_machine=$basic_machine-unknown
+               os=-none
+               ;;
+       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+               ;;
+
+       # We use `pc' rather than `unknown'
+       # because (1) that's what they normally are, and
+       # (2) the word "unknown" tends to confuse beginning users.
+       i*86 | x86_64)
+         basic_machine=$basic_machine-pc
+         ;;
+       # Object if more than one company name word.
+       *-*-*)
+               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+               exit 1
+               ;;
+       # Recognize the basic CPU types with company name.
+       580-* \
+       | a29k-* \
+       | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+       | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+       | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+       | avr-* \
+       | bs2000-* \
+       | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \
+       | clipper-* | cydra-* \
+       | d10v-* | d30v-* | dlx-* \
+       | elxsi-* \
+       | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+       | h8300-* | h8500-* \
+       | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+       | i*86-* | i860-* | i960-* | ia64-* \
+       | ip2k-* \
+       | m32r-* \
+       | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+       | m88110-* | m88k-* | mcore-* \
+       | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+       | mips16-* \
+       | mips64-* | mips64el-* \
+       | mips64vr-* | mips64vrel-* \
+       | mips64orion-* | mips64orionel-* \
+       | mips64vr4100-* | mips64vr4100el-* \
+       | mips64vr4300-* | mips64vr4300el-* \
+       | mips64vr5000-* | mips64vr5000el-* \
+       | mipsisa32-* | mipsisa32el-* \
+       | mipsisa64-* | mipsisa64el-* \
+       | mipsisa64sb1-* | mipsisa64sb1el-* \
+       | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+       | mipstx39 | mipstx39el \
+       | none-* | np1-* | ns16k-* | ns32k-* \
+       | orion-* \
+       | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+       | pyramid-* \
+       | romp-* | rs6000-* \
+       | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \
+       | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+       | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
+       | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+       | tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \
+       | v850-* | v850e-* | vax-* \
+       | we32k-* \
+       | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
+       | xtensa-* \
+       | ymp-* \
+       | z8k-*)
+               ;;
+       # Recognize the various machine names and aliases which stand
+       # for a CPU type and a company and sometimes even an OS.
+       386bsd)
+               basic_machine=i386-unknown
+               os=-bsd
+               ;;
+       3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+               basic_machine=m68000-att
+               ;;
+       3b*)
+               basic_machine=we32k-att
+               ;;
+       a29khif)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       adobe68k)
+               basic_machine=m68010-adobe
+               os=-scout
+               ;;
+       alliant | fx80)
+               basic_machine=fx80-alliant
+               ;;
+       altos | altos3068)
+               basic_machine=m68k-altos
+               ;;
+       am29k)
+               basic_machine=a29k-none
+               os=-bsd
+               ;;
+       amdahl)
+               basic_machine=580-amdahl
+               os=-sysv
+               ;;
+       amiga | amiga-*)
+               basic_machine=m68k-unknown
+               ;;
+       amigaos | amigados)
+               basic_machine=m68k-unknown
+               os=-amigaos
+               ;;
+       amigaunix | amix)
+               basic_machine=m68k-unknown
+               os=-sysv4
+               ;;
+       apollo68)
+               basic_machine=m68k-apollo
+               os=-sysv
+               ;;
+       apollo68bsd)
+               basic_machine=m68k-apollo
+               os=-bsd
+               ;;
+       aux)
+               basic_machine=m68k-apple
+               os=-aux
+               ;;
+       balance)
+               basic_machine=ns32k-sequent
+               os=-dynix
+               ;;
+       c90)
+               basic_machine=c90-cray
+               os=-unicos
+               ;;
+       convex-c1)
+               basic_machine=c1-convex
+               os=-bsd
+               ;;
+       convex-c2)
+               basic_machine=c2-convex
+               os=-bsd
+               ;;
+       convex-c32)
+               basic_machine=c32-convex
+               os=-bsd
+               ;;
+       convex-c34)
+               basic_machine=c34-convex
+               os=-bsd
+               ;;
+       convex-c38)
+               basic_machine=c38-convex
+               os=-bsd
+               ;;
+       cray | j90)
+               basic_machine=j90-cray
+               os=-unicos
+               ;;
+       crds | unos)
+               basic_machine=m68k-crds
+               ;;
+       cris | cris-* | etrax*)
+               basic_machine=cris-axis
+               ;;
+       da30 | da30-*)
+               basic_machine=m68k-da30
+               ;;
+       decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+               basic_machine=mips-dec
+               ;;
+       decsystem10* | dec10*)
+               basic_machine=pdp10-dec
+               os=-tops10
+               ;;
+       decsystem20* | dec20*)
+               basic_machine=pdp10-dec
+               os=-tops20
+               ;;
+       delta | 3300 | motorola-3300 | motorola-delta \
+             | 3300-motorola | delta-motorola)
+               basic_machine=m68k-motorola
+               ;;
+       delta88)
+               basic_machine=m88k-motorola
+               os=-sysv3
+               ;;
+       dpx20 | dpx20-*)
+               basic_machine=rs6000-bull
+               os=-bosx
+               ;;
+       dpx2* | dpx2*-bull)
+               basic_machine=m68k-bull
+               os=-sysv3
+               ;;
+       ebmon29k)
+               basic_machine=a29k-amd
+               os=-ebmon
+               ;;
+       elxsi)
+               basic_machine=elxsi-elxsi
+               os=-bsd
+               ;;
+       encore | umax | mmax)
+               basic_machine=ns32k-encore
+               ;;
+       es1800 | OSE68k | ose68k | ose | OSE)
+               basic_machine=m68k-ericsson
+               os=-ose
+               ;;
+       fx2800)
+               basic_machine=i860-alliant
+               ;;
+       genix)
+               basic_machine=ns32k-ns
+               ;;
+       gmicro)
+               basic_machine=tron-gmicro
+               os=-sysv
+               ;;
+       go32)
+               basic_machine=i386-pc
+               os=-go32
+               ;;
+       h3050r* | hiux*)
+               basic_machine=hppa1.1-hitachi
+               os=-hiuxwe2
+               ;;
+       h8300hms)
+               basic_machine=h8300-hitachi
+               os=-hms
+               ;;
+       h8300xray)
+               basic_machine=h8300-hitachi
+               os=-xray
+               ;;
+       h8500hms)
+               basic_machine=h8500-hitachi
+               os=-hms
+               ;;
+       harris)
+               basic_machine=m88k-harris
+               os=-sysv3
+               ;;
+       hp300-*)
+               basic_machine=m68k-hp
+               ;;
+       hp300bsd)
+               basic_machine=m68k-hp
+               os=-bsd
+               ;;
+       hp300hpux)
+               basic_machine=m68k-hp
+               os=-hpux
+               ;;
+       hp3k9[0-9][0-9] | hp9[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       hp9k2[0-9][0-9] | hp9k31[0-9])
+               basic_machine=m68000-hp
+               ;;
+       hp9k3[2-9][0-9])
+               basic_machine=m68k-hp
+               ;;
+       hp9k6[0-9][0-9] | hp6[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       hp9k7[0-79][0-9] | hp7[0-79][0-9])
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k78[0-9] | hp78[0-9])
+               # FIXME: really hppa2.0-hp
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+               # FIXME: really hppa2.0-hp
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[0-9][13679] | hp8[0-9][13679])
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[0-9][0-9] | hp8[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       hppa-next)
+               os=-nextstep3
+               ;;
+       hppaosf)
+               basic_machine=hppa1.1-hp
+               os=-osf
+               ;;
+       hppro)
+               basic_machine=hppa1.1-hp
+               os=-proelf
+               ;;
+       i370-ibm* | ibm*)
+               basic_machine=i370-ibm
+               ;;
+# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+       i*86v32)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv32
+               ;;
+       i*86v4*)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv4
+               ;;
+       i*86v)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv
+               ;;
+       i*86sol2)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-solaris2
+               ;;
+       i386mach)
+               basic_machine=i386-mach
+               os=-mach
+               ;;
+       i386-vsta | vsta)
+               basic_machine=i386-unknown
+               os=-vsta
+               ;;
+       iris | iris4d)
+               basic_machine=mips-sgi
+               case $os in
+                   -irix*)
+                       ;;
+                   *)
+                       os=-irix4
+                       ;;
+               esac
+               ;;
+       isi68 | isi)
+               basic_machine=m68k-isi
+               os=-sysv
+               ;;
+       m88k-omron*)
+               basic_machine=m88k-omron
+               ;;
+       magnum | m3230)
+               basic_machine=mips-mips
+               os=-sysv
+               ;;
+       merlin)
+               basic_machine=ns32k-utek
+               os=-sysv
+               ;;
+       mingw32)
+               basic_machine=i386-pc
+               os=-mingw32
+               ;;
+       miniframe)
+               basic_machine=m68000-convergent
+               ;;
+       *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+               basic_machine=m68k-atari
+               os=-mint
+               ;;
+       mips3*-*)
+               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+               ;;
+       mips3*)
+               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+               ;;
+       mmix*)
+               basic_machine=mmix-knuth
+               os=-mmixware
+               ;;
+       monitor)
+               basic_machine=m68k-rom68k
+               os=-coff
+               ;;
+       morphos)
+               basic_machine=powerpc-unknown
+               os=-morphos
+               ;;
+       msdos)
+               basic_machine=i386-pc
+               os=-msdos
+               ;;
+       mvs)
+               basic_machine=i370-ibm
+               os=-mvs
+               ;;
+       ncr3000)
+               basic_machine=i486-ncr
+               os=-sysv4
+               ;;
+       netbsd386)
+               basic_machine=i386-unknown
+               os=-netbsd
+               ;;
+       netwinder)
+               basic_machine=armv4l-rebel
+               os=-linux
+               ;;
+       news | news700 | news800 | news900)
+               basic_machine=m68k-sony
+               os=-newsos
+               ;;
+       news1000)
+               basic_machine=m68030-sony
+               os=-newsos
+               ;;
+       news-3600 | risc-news)
+               basic_machine=mips-sony
+               os=-newsos
+               ;;
+       necv70)
+               basic_machine=v70-nec
+               os=-sysv
+               ;;
+       next | m*-next )
+               basic_machine=m68k-next
+               case $os in
+                   -nextstep* )
+                       ;;
+                   -ns2*)
+                     os=-nextstep2
+                       ;;
+                   *)
+                     os=-nextstep3
+                       ;;
+               esac
+               ;;
+       nh3000)
+               basic_machine=m68k-harris
+               os=-cxux
+               ;;
+       nh[45]000)
+               basic_machine=m88k-harris
+               os=-cxux
+               ;;
+       nindy960)
+               basic_machine=i960-intel
+               os=-nindy
+               ;;
+       mon960)
+               basic_machine=i960-intel
+               os=-mon960
+               ;;
+       nonstopux)
+               basic_machine=mips-compaq
+               os=-nonstopux
+               ;;
+       np1)
+               basic_machine=np1-gould
+               ;;
+       nsr-tandem)
+               basic_machine=nsr-tandem
+               ;;
+       op50n-* | op60c-*)
+               basic_machine=hppa1.1-oki
+               os=-proelf
+               ;;
+       or32 | or32-*)
+               basic_machine=or32-unknown
+               os=-coff
+               ;;
+       OSE68000 | ose68000)
+               basic_machine=m68000-ericsson
+               os=-ose
+               ;;
+       os68k)
+               basic_machine=m68k-none
+               os=-os68k
+               ;;
+       pa-hitachi)
+               basic_machine=hppa1.1-hitachi
+               os=-hiuxwe2
+               ;;
+       paragon)
+               basic_machine=i860-intel
+               os=-osf
+               ;;
+       pbd)
+               basic_machine=sparc-tti
+               ;;
+       pbb)
+               basic_machine=m68k-tti
+               ;;
+       pc532 | pc532-*)
+               basic_machine=ns32k-pc532
+               ;;
+       pentium | p5 | k5 | k6 | nexgen | viac3)
+               basic_machine=i586-pc
+               ;;
+       pentiumpro | p6 | 6x86 | athlon | athlon_*)
+               basic_machine=i686-pc
+               ;;
+       pentiumii | pentium2)
+               basic_machine=i686-pc
+               ;;
+       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+               basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentiumpro-* | p6-* | 6x86-* | athlon-*)
+               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentiumii-* | pentium2-*)
+               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pn)
+               basic_machine=pn-gould
+               ;;
+       power)  basic_machine=power-ibm
+               ;;
+       ppc)    basic_machine=powerpc-unknown
+               ;;
+       ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppcle | powerpclittle | ppc-le | powerpc-little)
+               basic_machine=powerpcle-unknown
+               ;;
+       ppcle-* | powerpclittle-*)
+               basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppc64)  basic_machine=powerpc64-unknown
+               ;;
+       ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+               basic_machine=powerpc64le-unknown
+               ;;
+       ppc64le-* | powerpc64little-*)
+               basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ps2)
+               basic_machine=i386-ibm
+               ;;
+       pw32)
+               basic_machine=i586-unknown
+               os=-pw32
+               ;;
+       rom68k)
+               basic_machine=m68k-rom68k
+               os=-coff
+               ;;
+       rm[46]00)
+               basic_machine=mips-siemens
+               ;;
+       rtpc | rtpc-*)
+               basic_machine=romp-ibm
+               ;;
+       s390 | s390-*)
+               basic_machine=s390-ibm
+               ;;
+       s390x | s390x-*)
+               basic_machine=s390x-ibm
+               ;;
+       sa29200)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       sb1)
+               basic_machine=mipsisa64sb1-unknown
+               ;;
+       sb1el)
+               basic_machine=mipsisa64sb1el-unknown
+               ;;
+       sequent)
+               basic_machine=i386-sequent
+               ;;
+       sh)
+               basic_machine=sh-hitachi
+               os=-hms
+               ;;
+       sparclite-wrs | simso-wrs)
+               basic_machine=sparclite-wrs
+               os=-vxworks
+               ;;
+       sps7)
+               basic_machine=m68k-bull
+               os=-sysv2
+               ;;
+       spur)
+               basic_machine=spur-unknown
+               ;;
+       st2000)
+               basic_machine=m68k-tandem
+               ;;
+       stratus)
+               basic_machine=i860-stratus
+               os=-sysv4
+               ;;
+       sun2)
+               basic_machine=m68000-sun
+               ;;
+       sun2os3)
+               basic_machine=m68000-sun
+               os=-sunos3
+               ;;
+       sun2os4)
+               basic_machine=m68000-sun
+               os=-sunos4
+               ;;
+       sun3os3)
+               basic_machine=m68k-sun
+               os=-sunos3
+               ;;
+       sun3os4)
+               basic_machine=m68k-sun
+               os=-sunos4
+               ;;
+       sun4os3)
+               basic_machine=sparc-sun
+               os=-sunos3
+               ;;
+       sun4os4)
+               basic_machine=sparc-sun
+               os=-sunos4
+               ;;
+       sun4sol2)
+               basic_machine=sparc-sun
+               os=-solaris2
+               ;;
+       sun3 | sun3-*)
+               basic_machine=m68k-sun
+               ;;
+       sun4)
+               basic_machine=sparc-sun
+               ;;
+       sun386 | sun386i | roadrunner)
+               basic_machine=i386-sun
+               ;;
+       sv1)
+               basic_machine=sv1-cray
+               os=-unicos
+               ;;
+       symmetry)
+               basic_machine=i386-sequent
+               os=-dynix
+               ;;
+       t3d)
+               basic_machine=alpha-cray
+               os=-unicos
+               ;;
+       t3e)
+               basic_machine=alphaev5-cray
+               os=-unicos
+               ;;
+       t90)
+               basic_machine=t90-cray
+               os=-unicos
+               ;;
+        tic4x | c4x*)
+               basic_machine=tic4x-unknown
+               os=-coff
+               ;;
+       tic54x | c54x*)
+               basic_machine=tic54x-unknown
+               os=-coff
+               ;;
+       tx39)
+               basic_machine=mipstx39-unknown
+               ;;
+       tx39el)
+               basic_machine=mipstx39el-unknown
+               ;;
+       toad1)
+               basic_machine=pdp10-xkl
+               os=-tops20
+               ;;
+       tower | tower-32)
+               basic_machine=m68k-ncr
+               ;;
+       udi29k)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       ultra3)
+               basic_machine=a29k-nyu
+               os=-sym1
+               ;;
+       v810 | necv810)
+               basic_machine=v810-nec
+               os=-none
+               ;;
+       vaxv)
+               basic_machine=vax-dec
+               os=-sysv
+               ;;
+       vms)
+               basic_machine=vax-dec
+               os=-vms
+               ;;
+       vpp*|vx|vx-*)
+               basic_machine=f301-fujitsu
+               ;;
+       vxworks960)
+               basic_machine=i960-wrs
+               os=-vxworks
+               ;;
+       vxworks68)
+               basic_machine=m68k-wrs
+               os=-vxworks
+               ;;
+       vxworks29k)
+               basic_machine=a29k-wrs
+               os=-vxworks
+               ;;
+       w65*)
+               basic_machine=w65-wdc
+               os=-none
+               ;;
+       w89k-*)
+               basic_machine=hppa1.1-winbond
+               os=-proelf
+               ;;
+       windows32)
+               basic_machine=i386-pc
+               os=-windows32-msvcrt
+               ;;
+       xps | xps100)
+               basic_machine=xps100-honeywell
+               ;;
+       ymp)
+               basic_machine=ymp-cray
+               os=-unicos
+               ;;
+       z8k-*-coff)
+               basic_machine=z8k-unknown
+               os=-sim
+               ;;
+       none)
+               basic_machine=none-none
+               os=-none
+               ;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+       w89k)
+               basic_machine=hppa1.1-winbond
+               ;;
+       op50n)
+               basic_machine=hppa1.1-oki
+               ;;
+       op60c)
+               basic_machine=hppa1.1-oki
+               ;;
+       romp)
+               basic_machine=romp-ibm
+               ;;
+       rs6000)
+               basic_machine=rs6000-ibm
+               ;;
+       vax)
+               basic_machine=vax-dec
+               ;;
+       pdp10)
+               # there are many clones, so DEC is not a safe bet
+               basic_machine=pdp10-unknown
+               ;;
+       pdp11)
+               basic_machine=pdp11-dec
+               ;;
+       we32k)
+               basic_machine=we32k-att
+               ;;
+       sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele)
+               basic_machine=sh-unknown
+               ;;
+       sh64)
+               basic_machine=sh64-unknown
+               ;;
+       sparc | sparcv9 | sparcv9b)
+               basic_machine=sparc-sun
+               ;;
+       cydra)
+               basic_machine=cydra-cydrome
+               ;;
+       orion)
+               basic_machine=orion-highlevel
+               ;;
+       orion105)
+               basic_machine=clipper-highlevel
+               ;;
+       mac | mpw | mac-mpw)
+               basic_machine=m68k-apple
+               ;;
+       pmac | pmac-mpw)
+               basic_machine=powerpc-apple
+               ;;
+       *-unknown)
+               # Make sure to match an already-canonicalized machine name.
+               ;;
+       *)
+               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+               exit 1
+               ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+       *-digital*)
+               basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+               ;;
+       *-commodore*)
+               basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+               ;;
+       *)
+               ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+        # First match some system type aliases
+        # that might get confused with valid system types.
+       # -solaris* is a basic system type, with this one exception.
+       -solaris1 | -solaris1.*)
+               os=`echo $os | sed -e 's|solaris1|sunos4|'`
+               ;;
+       -solaris)
+               os=-solaris2
+               ;;
+       -svr4*)
+               os=-sysv4
+               ;;
+       -unixware*)
+               os=-sysv4.2uw
+               ;;
+       -gnu/linux*)
+               os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+               ;;
+       # First accept the basic system types.
+       # The portable systems comes first.
+       # Each alternative MUST END IN A *, to match a version number.
+       # -sysv* is not here because it comes later, after sysvr4.
+       -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+             | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+             | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+             | -aos* \
+             | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+             | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+             | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
+             | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+             | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+             | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+             | -chorusos* | -chorusrdb* \
+             | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+             | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
+             | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
+             | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+             | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+             | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+             | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+             | -powermax* | -dnix*)
+       # Remember, each alternative MUST END IN *, to match a version number.
+               ;;
+       -qnx*)
+               case $basic_machine in
+                   x86-* | i*86-*)
+                       ;;
+                   *)
+                       os=-nto$os
+                       ;;
+               esac
+               ;;
+       -nto*)
+               os=-nto-qnx
+               ;;
+       -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+             | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+             | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+               ;;
+       -mac*)
+               os=`echo $os | sed -e 's|mac|macos|'`
+               ;;
+       -linux*)
+               os=`echo $os | sed -e 's|linux|linux-gnu|'`
+               ;;
+       -sunos5*)
+               os=`echo $os | sed -e 's|sunos5|solaris2|'`
+               ;;
+       -sunos6*)
+               os=`echo $os | sed -e 's|sunos6|solaris3|'`
+               ;;
+       -opened*)
+               os=-openedition
+               ;;
+       -wince*)
+               os=-wince
+               ;;
+       -osfrose*)
+               os=-osfrose
+               ;;
+       -osf*)
+               os=-osf
+               ;;
+       -utek*)
+               os=-bsd
+               ;;
+       -dynix*)
+               os=-bsd
+               ;;
+       -acis*)
+               os=-aos
+               ;;
+       -atheos*)
+               os=-atheos
+               ;;
+       -386bsd)
+               os=-bsd
+               ;;
+       -ctix* | -uts*)
+               os=-sysv
+               ;;
+       -nova*)
+               os=-rtmk-nova
+               ;;
+       -ns2 )
+               os=-nextstep2
+               ;;
+       -nsk*)
+               os=-nsk
+               ;;
+       # Preserve the version number of sinix5.
+       -sinix5.*)
+               os=`echo $os | sed -e 's|sinix|sysv|'`
+               ;;
+       -sinix*)
+               os=-sysv4
+               ;;
+       -triton*)
+               os=-sysv3
+               ;;
+       -oss*)
+               os=-sysv3
+               ;;
+       -svr4)
+               os=-sysv4
+               ;;
+       -svr3)
+               os=-sysv3
+               ;;
+       -sysvr4)
+               os=-sysv4
+               ;;
+       # This must come after -sysvr4.
+       -sysv*)
+               ;;
+       -ose*)
+               os=-ose
+               ;;
+       -es1800*)
+               os=-ose
+               ;;
+       -xenix)
+               os=-xenix
+               ;;
+       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+               os=-mint
+               ;;
+       -none)
+               ;;
+       *)
+               # Get rid of the `-' at the beginning of $os.
+               os=`echo $os | sed 's/[^-]*-//'`
+               echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+               exit 1
+               ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+       *-acorn)
+               os=-riscix1.2
+               ;;
+       arm*-rebel)
+               os=-linux
+               ;;
+       arm*-semi)
+               os=-aout
+               ;;
+       # This must come before the *-dec entry.
+       pdp10-*)
+               os=-tops20
+               ;;
+       pdp11-*)
+               os=-none
+               ;;
+       *-dec | vax-*)
+               os=-ultrix4.2
+               ;;
+       m68*-apollo)
+               os=-domain
+               ;;
+       i386-sun)
+               os=-sunos4.0.2
+               ;;
+       m68000-sun)
+               os=-sunos3
+               # This also exists in the configure program, but was not the
+               # default.
+               # os=-sunos4
+               ;;
+       m68*-cisco)
+               os=-aout
+               ;;
+       mips*-cisco)
+               os=-elf
+               ;;
+       mips*-*)
+               os=-elf
+               ;;
+       or32-*)
+               os=-coff
+               ;;
+       *-tti)  # must be before sparc entry or we get the wrong os.
+               os=-sysv3
+               ;;
+       sparc-* | *-sun)
+               os=-sunos4.1.1
+               ;;
+       *-be)
+               os=-beos
+               ;;
+       *-ibm)
+               os=-aix
+               ;;
+       *-wec)
+               os=-proelf
+               ;;
+       *-winbond)
+               os=-proelf
+               ;;
+       *-oki)
+               os=-proelf
+               ;;
+       *-hp)
+               os=-hpux
+               ;;
+       *-hitachi)
+               os=-hiux
+               ;;
+       i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+               os=-sysv
+               ;;
+       *-cbm)
+               os=-amigaos
+               ;;
+       *-dg)
+               os=-dgux
+               ;;
+       *-dolphin)
+               os=-sysv3
+               ;;
+       m68k-ccur)
+               os=-rtu
+               ;;
+       m88k-omron*)
+               os=-luna
+               ;;
+       *-next )
+               os=-nextstep
+               ;;
+       *-sequent)
+               os=-ptx
+               ;;
+       *-crds)
+               os=-unos
+               ;;
+       *-ns)
+               os=-genix
+               ;;
+       i370-*)
+               os=-mvs
+               ;;
+       *-next)
+               os=-nextstep3
+               ;;
+       *-gould)
+               os=-sysv
+               ;;
+       *-highlevel)
+               os=-bsd
+               ;;
+       *-encore)
+               os=-bsd
+               ;;
+       *-sgi)
+               os=-irix
+               ;;
+       *-siemens)
+               os=-sysv4
+               ;;
+       *-masscomp)
+               os=-rtu
+               ;;
+       f30[01]-fujitsu | f700-fujitsu)
+               os=-uxpv
+               ;;
+       *-rom68k)
+               os=-coff
+               ;;
+       *-*bug)
+               os=-coff
+               ;;
+       *-apple)
+               os=-macos
+               ;;
+       *-atari*)
+               os=-mint
+               ;;
+       *)
+               os=-none
+               ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+       *-unknown)
+               case $os in
+                       -riscix*)
+                               vendor=acorn
+                               ;;
+                       -sunos*)
+                               vendor=sun
+                               ;;
+                       -aix*)
+                               vendor=ibm
+                               ;;
+                       -beos*)
+                               vendor=be
+                               ;;
+                       -hpux*)
+                               vendor=hp
+                               ;;
+                       -mpeix*)
+                               vendor=hp
+                               ;;
+                       -hiux*)
+                               vendor=hitachi
+                               ;;
+                       -unos*)
+                               vendor=crds
+                               ;;
+                       -dgux*)
+                               vendor=dg
+                               ;;
+                       -luna*)
+                               vendor=omron
+                               ;;
+                       -genix*)
+                               vendor=ns
+                               ;;
+                       -mvs* | -opened*)
+                               vendor=ibm
+                               ;;
+                       -ptx*)
+                               vendor=sequent
+                               ;;
+                       -vxsim* | -vxworks* | -windiss*)
+                               vendor=wrs
+                               ;;
+                       -aux*)
+                               vendor=apple
+                               ;;
+                       -hms*)
+                               vendor=hitachi
+                               ;;
+                       -mpw* | -macos*)
+                               vendor=apple
+                               ;;
+                       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+                               vendor=atari
+                               ;;
+                       -vos*)
+                               vendor=stratus
+                               ;;
+               esac
+               basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+               ;;
+esac
+
+echo $basic_machine$os
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/tests/ChangeLog b/tests/ChangeLog
new file mode 100644 (file)
index 0000000..c6b3b9a
--- /dev/null
@@ -0,0 +1,68 @@
+2002-12-04  Werner Koch  <wk@gnupg.org>
+
+       * inittests (gpgsm.conf): Fake system time.