On Wed, 26 May 1999, Wu Zhigang wrote:

> Hi,
> 
> Besides his question, I want to know anyone has an
> experience to build a Win32 dialog based password
> call back function?
> If Yes, can you share your code out?

Looking for something like this?

char passph[128];

BOOL CALLBACK
pass_proc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
  switch (uMsg) {
  case WM_INITDIALOG:
    SetForegroundWindow (hwnd);
    return TRUE;
  case WM_COMMAND:
    switch (LOWORD (wParam)) {
    case IDOK:
      GetDlgItemText (hwnd, IDC_PASSPH, passph, sizeof (passph));
    case IDCANCEL:
      EndDialog (hwnd, LOWORD (wParam));
      break;
    default:
      break;
    }
    break;
  default:
    break;
  }
  return FALSE;
}

int
get_passph (char *buf, int buf_len, int unused)
{
  if (DialogBox (myInst, MAKEINTRESOURCE (IDD_PASSPH), 
                 hwndMain, pass_proc) == IDOK) {
    strncpy (buf, passph, buf_len);
    return strlen (passph);
  }
  return 0;
}

int WINAPI
WinMain(HINSTANCE, HINSTANCE, LPCSTR, int)
{
   ...
   SSL_CTX_set_default_passwd_cb (ssl, get_passph);
   ...
}


IDD_PASSPH DIALOG 50, 5, 130, 80
STYLE DS_MODALFRAME | DS_3DLOOK | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE |
WS_CA
PTION | WS_SYSMENU
CAPTION "YourApp - Passphrase"
FONT 8, "MS Sans Serif"
{
 CONTROL "Please enter the passphrase to unlock your private key", -1,
"static",
 SS_LEFT | WS_CHILD | WS_VISIBLE, 10, 10, 110, 24
 CONTROL "", IDC_PASSPH, "edit", ES_LEFT | ES_AUTOHSCROLL | ES_PASSWORD |
WS_CHI
LD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 10, 40, 110, 12
 CONTROL "OK", IDOK, "BUTTON", BS_PUSHBUTTON | BS_CENTER | WS_CHILD |
WS_VISIBLE
 | WS_TABSTOP, 10, 60, 50, 14
 CONTROL "Cancel", IDCANCEL, "BUTTON", BS_PUSHBUTTON | BS_CENTER |
WS_CHILD | WS
_VISIBLE | WS_TABSTOP, 70, 60, 50, 14
}


Enjoy, Franco


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to