diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2008-06-04 16:45:05 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2008-06-04 16:45:05 +0000 |
commit | 1381bf90f425079fad0938aceafbaa9a8cbe9145 (patch) | |
tree | 071378085ed1a4a5f483ffc016333c8d1adb8b1f /engines | |
parent | e0f7b87227c046458ba3d1449eb65f2c71fed683 (diff) | |
download | openssl-1381bf90f425079fad0938aceafbaa9a8cbe9145.tar.gz |
Use an appropriate Window for selection dialog.
Diffstat (limited to 'engines')
-rw-r--r-- | engines/e_capi.c | 10 |
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 */ |