BOOL CALLBACK ChangePassphraseDialogFunc (HWND hwndDlg, UINT msg, WPARAM wParam, UNUSED LPARAM lParam) { HICON hIcon; char keyfile[MAX_PATH]; int keyfile_format; BOOL Translated; TCHAR buf[1000]; switch (msg) { case WM_INITDIALOG: hIcon = (HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(APP_ICON), IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR); if (hIcon) { SendMessage(hwndDlg, WM_SETICON, (WPARAM) (ICON_SMALL), (LPARAM) (hIcon)); SendMessage(hwndDlg, WM_SETICON, (WPARAM) (ICON_BIG), (LPARAM) (hIcon)); } return FALSE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: /* Check if the type new passwords match. */ if (!ConfirmNewPassword (hwndDlg)) { /* passwords don't match */ ShowLocalizedMsg(GUI_NAME, ERR_PWD_DONT_MATCH, ""); break; } /* Check minimum length of password */ if (NewPasswordLengh(hwndDlg) < MIN_PASSWORD_LEN) { ShowLocalizedMsg(GUI_NAME, ERR_PWD_TO_SHORT, MIN_PASSWORD_LEN); break; } /* Check if the new password is empty. */ if (NewPasswordLengh(hwndDlg) == 0) { myLoadString(INFO_EMPTY_PWD); if (MessageBox(NULL, buf, GUI_NAME, MB_YESNO) != IDYES) break; } GetDlgItemText(hwndDlg, TEXT_KEYFILE, keyfile, sizeof(keyfile) - 1); keyfile_format=GetDlgItemInt(hwndDlg, TEXT_KEYFORMAT, &Translated, FALSE); if (keyfile_format == KEYFILE_FORMAT_PEM) { /* Change password of a PEM file */ if (ChangePasswordPEM(hwndDlg) == -1) /* Wrong password */ break; } else if (keyfile_format == KEYFILE_FORMAT_PKCS12) { /* Change password of a .P12 file */ if (ChangePasswordPKCS12(hwndDlg) == -1) /* Wrong password */ break; } else { /* Unknown key format */ ShowLocalizedMsg (GUI_NAME, ERR_UNKNOWN_KEYFILE_FORMAT, ""); } DestroyWindow(hwndDlg); break; case IDCANCEL: DestroyWindow(hwndDlg); break; } break; case WM_DESTROY: PostQuitMessage(0); break; case WM_CLOSE: DestroyWindow(hwndDlg); return FALSE; } return FALSE; }
INT_PTR CALLBACK ChangePassphraseDialogFunc(HWND hwndDlg, UINT msg, WPARAM wParam, UNUSED LPARAM lParam) { HICON hIcon; TCHAR keyfile[MAX_PATH]; int keyfile_format; BOOL Translated; switch (msg) { case WM_INITDIALOG: hIcon = LoadLocalizedIcon(ID_ICO_APP); if (hIcon) { SendMessage(hwndDlg, WM_SETICON, (WPARAM) (ICON_SMALL), (LPARAM) (hIcon)); SendMessage(hwndDlg, WM_SETICON, (WPARAM) (ICON_BIG), (LPARAM) (hIcon)); } return FALSE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: /* Check if the type new passwords match. */ if (!ConfirmNewPassword (hwndDlg)) { /* passwords don't match */ ShowLocalizedMsg(IDS_ERR_PWD_DONT_MATCH); break; } /* Check minimum length of password */ if (NewPasswordLengh(hwndDlg) < MIN_PASSWORD_LEN) { ShowLocalizedMsg(IDS_ERR_PWD_TO_SHORT, MIN_PASSWORD_LEN); break; } /* Confirm if the new password is empty. */ if (NewPasswordLengh(hwndDlg) == 0 && ShowLocalizedMsgEx(MB_YESNO, _T(PACKAGE_NAME), IDS_NFO_EMPTY_PWD) == IDNO) break; GetDlgItemText(hwndDlg, ID_TXT_KEYFILE, keyfile, _countof(keyfile) - 1); keyfile_format=GetDlgItemInt(hwndDlg, ID_TXT_KEYFORMAT, &Translated, FALSE); if (keyfile_format == KEYFILE_FORMAT_PEM) { /* Change password of a PEM file */ if (ChangePasswordPEM(hwndDlg) == -1) /* Wrong password */ break; } else if (keyfile_format == KEYFILE_FORMAT_PKCS12) { /* Change password of a .P12 file */ if (ChangePasswordPKCS12(hwndDlg) == -1) /* Wrong password */ break; } else { /* Unknown key format */ ShowLocalizedMsg(IDS_ERR_UNKNOWN_KEYFILE_FORMAT); } DestroyWindow(hwndDlg); break; case IDCANCEL: DestroyWindow(hwndDlg); break; } break; case WM_DESTROY: PostQuitMessage(0); break; case WM_CLOSE: DestroyWindow(hwndDlg); return FALSE; } return FALSE; }