diff -r 63339781d179 -r 09b1ac925e3f pkiutilities/CertSaver/src/certparser.cpp --- 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 #include #include -#include #include #include #include -#include // Note dialogs #include +#include // CEikonEnv #include "certparser.h" +#include "SecQueryUi.h" // needed for password dialog + +#include // 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 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& CCertParser::CACertificates() const { + __ASSERT_ALWAYS( iPKCS12, User::Panic( KCertSaverPanic, KPanicNullPointer ) ); return iPKCS12->CACertificates(); } @@ -312,6 +315,7 @@ // const CArrayPtr& CCertParser::UserCertificates() const { + __ASSERT_ALWAYS( iPKCS12, User::Panic( KCertSaverPanic, KPanicNullPointer ) ); return iPKCS12->UserCertificates(); } @@ -322,6 +326,7 @@ // const CArrayPtr& 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