348 lines
8 KiB
C++
348 lines
8 KiB
C++
// 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);
|
|
}
|