summaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2008-06-04 16:45:05 +0000
committerDr. Stephen Henson <steve@openssl.org>2008-06-04 16:45:05 +0000
commit1381bf90f425079fad0938aceafbaa9a8cbe9145 (patch)
tree071378085ed1a4a5f483ffc016333c8d1adb8b1f /engines
parente0f7b87227c046458ba3d1449eb65f2c71fed683 (diff)
downloadopenssl-new-1381bf90f425079fad0938aceafbaa9a8cbe9145.tar.gz
Use an appropriate Window for selection dialog.
Diffstat (limited to 'engines')
-rw-r--r--engines/e_capi.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/engines/e_capi.c b/engines/e_capi.c
index 76b05b76ab..ec8dab0f07 100644
--- a/engines/e_capi.c
+++ b/engines/e_capi.c
@@ -1618,6 +1618,9 @@ static int client_cert_select(ENGINE *e, SSL *ssl, STACK_OF(X509) *certs)
#include <cryptuiapi.h>
+#define dlg_title L"OpenSSL Application SSL Client Certificate Selection"
+#define dlg_prompt L"Select a certificate to use for authentication"
+
static int client_cert_select(ENGINE *e, SSL *ssl, STACK_OF(X509) *certs)
{
X509 *x;
@@ -1625,6 +1628,7 @@ static int client_cert_select(ENGINE *e, SSL *ssl, STACK_OF(X509) *certs)
PCCERT_CONTEXT cert;
CAPI_CTX *ctx;
CAPI_KEY *key;
+ HWND hwnd;
int i, idx = -1;
ctx = ENGINE_get_ex_data(e, capi_idx);
/* Create an in memory store of certificates */
@@ -1651,8 +1655,12 @@ static int client_cert_select(ENGINE *e, SSL *ssl, STACK_OF(X509) *certs)
}
}
+ hwnd = GetActiveWindow();
+ if (!hwnd)
+ hwnd = GetConsoleWindow();
/* Call dialog to select one */
- cert = CryptUIDlgSelectCertificateFromStore(dstore, NULL,NULL, NULL,
+ cert = CryptUIDlgSelectCertificateFromStore(dstore, hwnd,
+ dlg_title, dlg_prompt,
0, 0, NULL);
/* Find matching cert from list */