summaryrefslogtreecommitdiff
path: root/security/gnupg-devel/patches/patch-ae
diff options
context:
space:
mode:
Diffstat (limited to 'security/gnupg-devel/patches/patch-ae')
-rw-r--r--security/gnupg-devel/patches/patch-ae59
1 files changed, 0 insertions, 59 deletions
diff --git a/security/gnupg-devel/patches/patch-ae b/security/gnupg-devel/patches/patch-ae
deleted file mode 100644
index c0f8ad36ff2..00000000000
--- a/security/gnupg-devel/patches/patch-ae
+++ /dev/null
@@ -1,59 +0,0 @@
-$NetBSD: patch-ae,v 1.1 2006/10/20 15:23:58 shannonjr Exp $
-
---- agent/findkey.c.orig 2006-10-20 05:29:57.000000000 -0600
-+++ agent/findkey.c
-@@ -30,6 +30,7 @@
- #include <unistd.h>
- #include <sys/stat.h>
- #include <assert.h>
-+#include <pth.h> /* (we use pth_sleep) */
-
- #include "agent.h"
-
-@@ -41,7 +42,7 @@ struct try_unprotect_arg_s {
-
-
- /* Write an S-expression formatted key to our key storage. With FORCE
-- pased as true an existsing key with the given GRIP will get
-+ pased as true an existing key with the given GRIP will get
- overwritten. */
- int
- agent_write_private_key (const unsigned char *grip,
-@@ -253,6 +254,7 @@ unprotect (ctrl_t ctrl, const char *desc
- void *cache_marker;
- const char *pw;
-
-+ retry:
- pw = agent_get_cache (hexgrip, cache_mode, &cache_marker);
- if (pw)
- {
-@@ -266,6 +268,29 @@ unprotect (ctrl_t ctrl, const char *desc
- }
- rc = 0;
- }
-+
-+ /* If the pinentry is currently in use, we wait up to 60 seconds
-+ for it close and check the cache again. This solves a common
-+ situation where several requests for unprotecting a key have
-+ been made but the user is still entering the passphrase for
-+ the first request. Because all requests to agent_askpin are
-+ serialized they would then pop up one after the other to
-+ request the passphrase - despite that the user has already
-+ entered it and is then available in the cache. This
-+ implementation is not race free but in the worst case the
-+ user has to enter the passphrase only once more. */
-+ if (pinentry_active_p (ctrl, 0))
-+ {
-+ /* Active - wait */
-+ if (!pinentry_active_p (ctrl, 60))
-+ {
-+ /* We need to give the other thread a chance to actually put
-+ it into the cache. */
-+ pth_sleep (1);
-+ goto retry;
-+ }
-+ /* Timeout - better call pinentry now the plain way. */
-+ }
- }
-
- pi = gcry_calloc_secure (1, sizeof (*pi) + 100);