--- a/pkiutilities/CertSaver/src/certparser.cpp Thu Aug 19 10:45:23 2010 +0300
+++ b/pkiutilities/CertSaver/src/certparser.cpp Tue Aug 31 16:04:40 2010 +0300
@@ -25,14 +25,17 @@
#include <X509CertNameParser.h>
#include <featmgr.h>
#include <data_caging_path_literals.hrh>
-#include <AknQueryDialog.h>
#include <CertSaver.rsg>
#include <StringLoader.h>
#include <securityerr.h>
-#include <aknnotewrappers.h> // Note dialogs
#include <apmrec.h>
+#include <eikenv.h> // CEikonEnv
#include "certparser.h"
+#include "SecQueryUi.h" // needed for password dialog
+
+#include <hbdevicemessageboxsymbian.h> // needed for Note dialogs
+
// CONSTANTS
_LIT( KPKCS12DllName, "crpkcs12.dll" ); // PKCS12 DLL name
const TInt KX509Version3 = 3;
@@ -94,6 +97,7 @@
//
void CCertParser::SetContentL( RFile& aFile )
{
+
delete iCert;
iCert = NULL;
TInt fileSize = 0;
@@ -126,7 +130,8 @@
//
void CCertParser::CreatePKCS12L()
{
- // Load PKCS#12 dll
+
+ // Load PKCS#12 dll
#ifdef __WINS__
User::LeaveIfError ( iLibrary.Load( KPKCS12DllName ) );
#else
@@ -151,6 +156,7 @@
const TDesC8& aPKCS12,
const TDesC& aFileName )
{
+
CreatePKCS12L();
if ( !iPKCS12->IsPKCS12Data( aPKCS12 ) )
@@ -161,21 +167,12 @@
TBool done = EFalse;
TBuf<KPwMaxLength> password;
- HBufC* buffer = NULL;
-
- if ( !iEikEnv )
- {
- iEikEnv = CEikonEnv::Static();
- }
while ( !done )
{
if ( !GetPasswordL( password, aFileName ) )
{
- buffer = iEikEnv->AllocReadResourceLC( R_CERTSAVER_PKCS12_DISCARDED );
- CAknInformationNote* note = new (ELeave) CAknInformationNote( ETrue );
- note->ExecuteLD(buffer->Des());
- CleanupStack::PopAndDestroy( buffer );
+ ShowErrorNoteL(R_CERTSAVER_PKCS12_DISCARDED);
User::Leave( KErrExitApp );
}
TRAPD( err, iPKCS12->ParseL( aPKCS12, password ) );
@@ -226,15 +223,19 @@
//
TInt CCertParser::GetPasswordL( TDes& aPassword, const TDesC& aFileName )
{
- CAknTextQueryDialog* query = CAknTextQueryDialog::NewL( aPassword );
- CleanupStack::PushL( query );
- HBufC* prompt =
- StringLoader::LoadLC( R_QTN_CM_TITLE_P12_PASSWORD, aFileName );
- query->SetPromptL( *prompt );
- CleanupStack::PopAndDestroy( prompt );
- CleanupStack::Pop( query );
- return query->ExecuteLD( R_PKCS12_PW_QUERY_DIALOG );
- }
+ CSecQueryUi* SecQueryUi = CSecQueryUi::NewL();
+ HBufC* prompt =StringLoader::LoadLC( R_QTN_CM_TITLE_P12_PASSWORD, aFileName );
+ TInt queryAccepted = SecQueryUi->SecQueryDialog(prompt->Des(), aPassword,
+ 1,KPwMaxLength,
+ ESecUiAlphaSupported |
+ ESecUiCancelSupported |
+ ESecUiSecretSupported |
+ ESecUiEmergencyNotSupported);
+ CleanupStack::PopAndDestroy( prompt );
+ delete SecQueryUi;
+ SecQueryUi=NULL;
+ return (queryAccepted==KErrNone);
+ }
// ----------------------------------------------------------
// CCertParser::CheckIfX509CertificateL()
@@ -243,6 +244,7 @@
//
TBool CCertParser::CheckIfX509CertificateL(const TDesC8& aCert)
{
+
TRAPD( err,
iCert = CX509Certificate::NewL(aCert);
);
@@ -302,6 +304,7 @@
//
const CArrayPtr<CX509Certificate>& CCertParser::CACertificates() const
{
+
__ASSERT_ALWAYS( iPKCS12, User::Panic( KCertSaverPanic, KPanicNullPointer ) );
return iPKCS12->CACertificates();
}
@@ -312,6 +315,7 @@
//
const CArrayPtr<CX509Certificate>& CCertParser::UserCertificates() const
{
+
__ASSERT_ALWAYS( iPKCS12, User::Panic( KCertSaverPanic, KPanicNullPointer ) );
return iPKCS12->UserCertificates();
}
@@ -322,6 +326,7 @@
//
const CArrayPtr<HBufC8>& CCertParser::Keys() const
{
+
__ASSERT_ALWAYS( iPKCS12, User::Panic( KCertSaverPanic, KPanicNullPointer ) );
return iPKCS12->PrivateKeys();
}
@@ -332,6 +337,7 @@
//
CCertParser::TCertType CCertParser::CertType() const
{
+
return iCertType;
}
@@ -342,6 +348,7 @@
//
const TPtrC8 CCertParser::CertificateBuf() const
{
+
__ASSERT_ALWAYS( iCert, User::Panic( KCertSaverPanic, KPanicNullPointer ) );
return iCert->Encoding();
}
@@ -353,6 +360,7 @@
//
const CX509Certificate& CCertParser::Certificate() const
{
+
__ASSERT_ALWAYS( iCert, User::Panic( KCertSaverPanic, KPanicNullPointer ) );
return *((CX509Certificate*)iCert);
}
@@ -369,9 +377,13 @@
iEikEnv = CEikonEnv::Static();
}
HBufC* buffer = iEikEnv->AllocReadResourceLC( aResourceID );
- CAknErrorNote* note = new (ELeave) CAknErrorNote( ETrue );
- note->ExecuteLD(buffer->Des());
- CleanupStack::PopAndDestroy( buffer );
+ CHbDeviceMessageBoxSymbian* iMessageBox = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EWarning);
+ CleanupStack::PushL(iMessageBox);
+ iMessageBox->SetTextL(buffer->Des());
+ iMessageBox->SetTimeout(6000);
+ iMessageBox->ExecL();
+ CleanupStack::PopAndDestroy(iMessageBox);
+ CleanupStack::PopAndDestroy( buffer );
}
// End of File