// KeyPasswordPage.cpp : implementation file // #include "stdafx.h" #include "CertWiz.h" #include "KeyPasswordPage.h" #include "Certificat.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CKeyPasswordPage property page IMPLEMENT_DYNCREATE(CKeyPasswordPage, CIISWizardPage) CKeyPasswordPage::CKeyPasswordPage(CCertificate * pCert) : CIISWizardPage(CKeyPasswordPage::IDD, IDS_CERTWIZ, TRUE), m_pCert(pCert) { //{{AFX_DATA_INIT(CKeyPasswordPage) m_Password = _T(""); //}}AFX_DATA_INIT } CKeyPasswordPage::~CKeyPasswordPage() { } void CKeyPasswordPage::DoDataExchange(CDataExchange* pDX) { CIISWizardPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CKeyPasswordPage) DDX_Text(pDX, IDC_KEYPASSWORD, m_Password); DDV_MaxChars(pDX, m_Password, 64); //}}AFX_DATA_MAP } LRESULT CKeyPasswordPage::OnWizardBack() /*++ Routine Description: Prev button handler Arguments: None Return Value: 0 to automatically advance to the prev page; 1 to prevent the page from changing. To jump to a page other than the prev one, return the identifier of the dialog to be displayed. --*/ { return IDD_PAGE_PREV; } LRESULT CKeyPasswordPage::OnWizardNext() { UpdateData(TRUE); if (0 != m_Password.Compare(m_pCert->m_KeyPassword)) { m_pCert->DeleteKeyRingCert(); m_pCert->m_KeyPassword = m_Password; } if (NULL == m_pCert->GetKeyRingCert()) { // probably password was wrong CString txt; txt.LoadString(IDS_FAILED_IMPORT_KEY_FILE); ASSERT(GetDlgItem(IDC_ERROR_TEXT) != NULL); SetDlgItemText(IDC_ERROR_TEXT, txt); GetDlgItem(IDC_KEYPASSWORD)->SetFocus(); GetDlgItem(IDC_KEYPASSWORD)->SendMessage(EM_SETSEL, 0, -1); SetWizardButtons(PSWIZB_BACK); return 1; } return IDD_PAGE_NEXT; } BOOL CKeyPasswordPage::OnSetActive() { ASSERT(m_pCert != NULL); m_Password = m_pCert->m_KeyPassword; UpdateData(FALSE); SetWizardButtons(m_Password.IsEmpty() || m_pCert->GetKeyRingCert() == NULL ? PSWIZB_BACK : PSWIZB_BACK | PSWIZB_NEXT); return CIISWizardPage::OnSetActive(); } BOOL CKeyPasswordPage::OnKillActive() { UpdateData(); m_pCert->m_KeyPassword = m_Password; return CIISWizardPage::OnKillActive(); } BEGIN_MESSAGE_MAP(CKeyPasswordPage, CIISWizardPage) //{{AFX_MSG_MAP(CKeyPasswordPage) ON_EN_CHANGE(IDC_KEYPASSWORD, OnEditchangePassword) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CSiteNamePage message handlers void CKeyPasswordPage::OnEditchangePassword() { UpdateData(TRUE); SetWizardButtons(m_Password.IsEmpty() ? PSWIZB_BACK : PSWIZB_BACK | PSWIZB_NEXT); CString str; SetDlgItemText(IDC_ERROR_TEXT, str); } ///////////////////////////////////////////////////////////////////////////// // CKeyPasswordPage property page IMPLEMENT_DYNCREATE(CImportPFXPasswordPage, CIISWizardPage) CImportPFXPasswordPage::CImportPFXPasswordPage(CCertificate * pCert) : CIISWizardPage(CImportPFXPasswordPage::IDD, IDS_CERTWIZ, TRUE), m_pCert(pCert) { //{{AFX_DATA_INIT(CImportPFXPasswordPage) m_Password = _T(""); //}}AFX_DATA_INIT } CImportPFXPasswordPage::~CImportPFXPasswordPage() { } void CImportPFXPasswordPage::DoDataExchange(CDataExchange* pDX) { CIISWizardPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CImportPFXPasswordPage) DDX_Text(pDX, IDC_KEYPASSWORD, m_Password); DDV_MaxChars(pDX, m_Password, 64); //}}AFX_DATA_MAP } LRESULT CImportPFXPasswordPage::OnWizardBack() /*++ Routine Description: Prev button handler Arguments: None Return Value: 0 to automatically advance to the prev page; 1 to prevent the page from changing. To jump to a page other than the prev one, return the identifier of the dialog to be displayed. --*/ { return IDD_PAGE_PREV; } LRESULT CImportPFXPasswordPage::OnWizardNext() { UpdateData(TRUE); if (0 != m_Password.Compare(m_pCert->m_KeyPassword)) { m_pCert->DeleteKeyRingCert(); m_pCert->m_KeyPassword = m_Password; } if (NULL == m_pCert->GetPFXFileCert()) { // probably password was wrong CString txt; txt.LoadString(IDS_FAILED_IMPORT_PFX_FILE); ASSERT(GetDlgItem(IDC_ERROR_TEXT) != NULL); SetDlgItemText(IDC_ERROR_TEXT, txt); GetDlgItem(IDC_KEYPASSWORD)->SetFocus(); GetDlgItem(IDC_KEYPASSWORD)->SendMessage(EM_SETSEL, 0, -1); SetWizardButtons(PSWIZB_BACK); return 1; } return IDD_PAGE_NEXT; } BOOL CImportPFXPasswordPage::OnSetActive() { ASSERT(m_pCert != NULL); m_Password = m_pCert->m_KeyPassword; UpdateData(FALSE); SetWizardButtons(m_Password.IsEmpty() || m_pCert->GetKeyRingCert() == NULL ? PSWIZB_BACK : PSWIZB_BACK | PSWIZB_NEXT); return CIISWizardPage::OnSetActive(); } BOOL CImportPFXPasswordPage::OnKillActive() { UpdateData(); m_pCert->m_KeyPassword = m_Password; return CIISWizardPage::OnKillActive(); } BEGIN_MESSAGE_MAP(CImportPFXPasswordPage, CIISWizardPage) //{{AFX_MSG_MAP(CImportPFXPasswordPage) ON_EN_CHANGE(IDC_KEYPASSWORD, OnEditchangePassword) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CSiteNamePage message handlers void CImportPFXPasswordPage::OnEditchangePassword() { UpdateData(TRUE); SetWizardButtons(m_Password.IsEmpty() ? PSWIZB_BACK : PSWIZB_BACK | PSWIZB_NEXT); CString str; SetDlgItemText(IDC_ERROR_TEXT, str); } ///////////////////////////////////////////////////////////////////////////// // CExportPFXPasswordPage property page IMPLEMENT_DYNCREATE(CExportPFXPasswordPage, CIISWizardPage) CExportPFXPasswordPage::CExportPFXPasswordPage(CCertificate * pCert) : CIISWizardPage(CExportPFXPasswordPage::IDD, IDS_CERTWIZ, TRUE), m_pCert(pCert) { //{{AFX_DATA_INIT(CExportPFXPasswordPage) m_Password = _T(""); m_Export_Private_key = FALSE; //}}AFX_DATA_INIT } CExportPFXPasswordPage::~CExportPFXPasswordPage() { } void CExportPFXPasswordPage::DoDataExchange(CDataExchange* pDX) { CIISWizardPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CExportPFXPasswordPage) DDX_Text(pDX, IDC_KEYPASSWORD, m_Password); DDV_MaxChars(pDX, m_Password, 64); DDX_Check(pDX, IDC_CHK_EXPORT_PRIVATE, m_Export_Private_key); //}}AFX_DATA_MAP } LRESULT CExportPFXPasswordPage::OnWizardBack() /*++ Routine Description: Prev button handler Arguments: None Return Value: 0 to automatically advance to the prev page; 1 to prevent the page from changing. To jump to a page other than the prev one, return the identifier of the dialog to be displayed. --*/ { return IDD_PAGE_PREV; } LRESULT CExportPFXPasswordPage::OnWizardNext() { UpdateData(TRUE); if (0 != m_Password.Compare(m_pCert->m_KeyPassword)) { m_pCert->DeleteKeyRingCert(); m_pCert->m_KeyPassword = m_Password; m_pCert->m_ExportPFXPrivateKey = m_Export_Private_key; m_pCert->m_ExportPFXPrivateKey = TRUE; } /* if (NULL == m_pCert->GetKeyRingCert()) { // probably password was wrong CString txt; txt.LoadString(IDS_FAILED_IMPORT_KEY_FILE); ASSERT(GetDlgItem(IDC_ERROR_TEXT) != NULL); SetDlgItemText(IDC_ERROR_TEXT, txt); GetDlgItem(IDC_KEYPASSWORD)->SetFocus(); GetDlgItem(IDC_KEYPASSWORD)->SendMessage(EM_SETSEL, 0, -1); SetWizardButtons(PSWIZB_BACK); return 1; } */ return IDD_PAGE_NEXT; } BOOL CExportPFXPasswordPage::OnSetActive() { ASSERT(m_pCert != NULL); m_Password = m_pCert->m_KeyPassword; UpdateData(FALSE); SetWizardButtons(m_Password.IsEmpty() || m_pCert->GetKeyRingCert() == NULL ? PSWIZB_BACK : PSWIZB_BACK | PSWIZB_NEXT); return CIISWizardPage::OnSetActive(); } BOOL CExportPFXPasswordPage::OnKillActive() { UpdateData(); m_pCert->m_KeyPassword = m_Password; return CIISWizardPage::OnKillActive(); } BEGIN_MESSAGE_MAP(CExportPFXPasswordPage, CIISWizardPage) //{{AFX_MSG_MAP(CExportPFXPasswordPage) ON_EN_CHANGE(IDC_KEYPASSWORD, OnEditchangePassword) //}}AFX_MSG_MAP END_MESSAGE_MAP() void CExportPFXPasswordPage::OnEditchangePassword() { UpdateData(TRUE); SetWizardButtons(m_Password.IsEmpty() ? PSWIZB_BACK : PSWIZB_BACK | PSWIZB_NEXT); CString str; SetDlgItemText(IDC_ERROR_TEXT, str); }