pkiutilities/CTSecurityDialogs/NotifSrc/CTSecurityDialogsAO.cpp
branchRCL_3
changeset 21 09b1ac925e3f
parent 20 63339781d179
child 22 03674e5abf46
--- a/pkiutilities/CTSecurityDialogs/NotifSrc/CTSecurityDialogsAO.cpp	Thu Aug 19 10:45:23 2010 +0300
+++ b/pkiutilities/CTSecurityDialogs/NotifSrc/CTSecurityDialogsAO.cpp	Tue Aug 31 16:04:40 2010 +0300
@@ -19,17 +19,17 @@
 // INCLUDE FILES
 #include "CTSecurityDialogsAO.h"
 #include "CTSecurityDialogNotifier.h"
-#include "CTPinQueryDialog.h"
-#include "CTSignTextDialog.h"
-#include "CTSelectCertificateDialog.h"
-#include "CTQueryDialog.h"
-#include "CTPinPinQueryDialog.h"
-#include "CTNoTrustQuery.h"
-#include "CTInvalidCertNote.h"
+//#include "CTPinQueryDialog.h"
+//#include "CTSignTextDialog.h"
+//#include "CTSelectCertificateDialog.h"
+//#include "CTQueryDialog.h"
+//#include "CTPinPinQueryDialog.h"
+#include "CTUntrustedCertQuery.h"
+//#include "CTInvalidCertNote.h"
 #include <PKIDlg.h>
 #include <badesca.h>
 #include <StringLoader.h>
-#include <aknnotewrappers.h>
+//#include <aknnotewrappers.h>
 #include <unifiedcertstore.h>
 #include <unifiedkeystore.h>
 #include <mctkeystore.h>
@@ -37,7 +37,7 @@
 #include <DocumentHandler.h>
 #include <apmstd.h>
 #include <DigSigningNote.h>
-#include <certmanui.rsg>
+//#include <certmanui.rsg>
 #include <X509CertNameParser.h>
 #include <x509cert.h>
 #include <x500dn.h>
@@ -45,7 +45,13 @@
 #include <x509certext.h>
 #include <TrustedSitesStore.h>
 #include <mctwritablecertstore.h>
-#include <coreapplicationuisdomainpskeys.h>			// KCoreAppUIsAutolockStatus
+#include <eikenv.h>                         // CEikonEnv
+#include <AknUtils.h>                       // AknTextUtils
+
+#include "SecQueryUi.h"                   // needed for password dialog
+
+#include <hbdevicemessageboxsymbian.h>    // needed for Note dialogs    
+#include <hbdevicenotificationdialogsymbian.h>
 
 // LOCAL CONSTANTS AND MACROS
 const TInt KCertArrayGranularity = 3;
@@ -54,8 +60,6 @@
 const TInt KMaxLengthTextCertLabelVisible = 200;
 // "dd/mm/yyyy0"
 const TInt KMaxLengthTextDateString = 20;
-// HH0
-const TInt KMaxLengthTextSerialNumberFormatting = 3;
 // Maximum length of a certificate
 const TInt KMaxCertificateLength = 5000;
 
@@ -64,12 +68,8 @@
 
 const TInt KMinImportKeyPwLen = 1;
 
-const TInt KMaxCNLength = 64;
+const TInt KMaxCommonNameLength = 64;
 
-_LIT(KCertManUIDetailsViewHexFormat, "%02X");
-
-const TInt KFileCertStoreUid( 0x101F501A );
-const TInt KWIMCertStoreUid ( 0x101F79D9 );
 const TUid KTrustedServerTokenUid = { 0x101FB66F };
 const TUid KDeviceCertStoreTokenUid = { 0x101FB668 };
 
@@ -83,43 +83,15 @@
 _LIT( KPKCS12TokenLabel, "PKCS12");
 
 
-// ============================ LOCAL FUNCTIONS ===============================
-
-TInt AlgorithmNameResourceId( TAlgorithmId aAlgorithmId )
-    {
-    TInt resourceId = 0;
-    switch( aAlgorithmId )
-        {
-        case ERSA:
-            resourceId = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_RSA;
-            break;
-        case EDSA:
-            resourceId = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_DSA;
-            break;
-        case EDH:
-            resourceId = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_DH;
-            break;
-        case EMD2:
-            resourceId = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_MD2;
-            break;
-        case EMD5:
-            resourceId = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_MD5;
-            break;
-        case ESHA1:
-            resourceId = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_SHA1;
-            break;
-        case ESHA224:
-        case ESHA256:
-        case ESHA384:
-        case ESHA512:
-            resourceId = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_SHA2;
-            break;
-        default:
-            resourceId = R_TEXT_RESOURCE_DETAILS_VIEW_UNKNOWN;
-            break;
-        }
-    return resourceId;
-    }
+// TODO: replace with OST tracing
+#ifdef _DEBUG
+#include <e32debug.h>
+#define TRACE(x)        RDebug::Printf(x)
+#define TRACE1(x,y)     RDebug::Printf(x,y)
+#else
+#define TRACE(x)
+#define TRACE1(x,y)
+#endif
 
 
 // ============================ MEMBER FUNCTIONS ===============================
@@ -147,9 +119,6 @@
 void CCTSecurityDialogsAO::ConstructL()
     {
     iDeleted = EFalse;
-
-    iQueryDialog = NULL;
-    iQueryDialogDeleted = ETrue;
     }
 
 // -----------------------------------------------------------------------------
@@ -225,6 +194,7 @@
     iMessagePtr = aMessage;
 
     WIMSECURITYDIALOGS_WRITE_FORMAT( "CCTSecurityDialogsAO::StartLD iOperation=%d", iOperation );
+    TRACE1( "CCTSecurityDialogsAO::StartLD iOperation=%d", iOperation );
 
     MapTlsProviderOperation( iOperation );
 
@@ -305,7 +275,10 @@
             pinLabel.Copy( pinLabelPtr );
             HBufC* text = iNotifier->LoadResourceStringLC( iOperation, pinLabel );
 
-            CCTSignTextDialog::RunDlgLD( R_WIM_UNBLOCK_INFO_DIALOG, *text, iStatus, iRetValue );
+            // TODO
+            //CCTSignTextDialog::RunDlgLD( R_WIM_UNBLOCK_INFO_DIALOG, *text, iStatus, iRetValue );
+            User::Leave( KErrGeneral );
+
             CleanupStack::PopAndDestroy( text );
             iStatus = KRequestPending;
             SetActive();
@@ -379,6 +352,8 @@
 //
 void CCTSecurityDialogsAO::DoHandleServerAuthFailL( const TDesC8& aBuffer )
     {
+    TRACE( "CCTSecurityDialogsAO::DoHandleServerAuthFailL" );
+
     CServerAuthenticationFailureInput* srvAuthFail =
         CServerAuthenticationFailureInput::NewLC( aBuffer );
     TPtrC8 cert;
@@ -391,33 +366,31 @@
 
     iServerName = HBufC::NewL( serverName.Length() );
     iServerName->Des().Copy( serverName );
+    iCertLabel = NULL;
 
-    HBufC* cn = NULL;
-    iCertLabel = NULL;
     // Site will be checked later. For now it is not trusted
     iTrustedSite = EFalse;
 
-
     CX509Certificate* serverCert = CX509Certificate::NewLC( cert );
-    // Retrieve subject name
     const CX500DistinguishedName& dName = serverCert->SubjectName();
-    // Retrieve CN
-    cn = dName.ExtractFieldL( KX520CommonName );
-    if ( cn != NULL )
+
+    HBufC* commonName = dName.ExtractFieldL( KX520CommonName );
+    CleanupStack::PushL( commonName );
+    if( commonName != NULL )
         {
-        // commonName exist in the certificate.
         // Check the length of CN. RFC 3280 states
         // that max length of CN is 64.
-        if ( cn->Length() <= KMaxCNLength )
+        if( commonName->Length() <= KMaxCommonNameLength )
             {
-            iCertLabel = HBufC::NewL( cn->Length() );
-            iCertLabel->Des().Append( cn->Des() );
+            iCertLabel = HBufC::NewL( commonName->Length() );
+            iCertLabel->Des().Append( commonName->Des() );
             }
         }
+    CleanupStack::PopAndDestroy( commonName );
 
-    if ( iCertLabel == NULL )
+    if( iCertLabel == NULL )
         {
-        // No or invalid commonName. Use domain name as label
+        // No or invalid commonName. Use domain name as label.
         iCertLabel = HBufC::NewL( iServerName->Length() );
         iCertLabel->Des().Append( iServerName->Des() );
         }
@@ -536,17 +509,22 @@
         {
         case EUserAuthenticationText:
             {
-            CCTSignTextDialog::RunDlgLD( R_WIM_USERAUTHTEXT_DIALOG,
-                *textToSign, iStatus, iRetValue );
+            // TODO
+            //CCTSignTextDialog::RunDlgLD( R_WIM_USERAUTHTEXT_DIALOG,
+            //    *textToSign, iStatus, iRetValue );
+            User::Leave( KErrGeneral );
             break;
             }
         case EUserAuthentication:
             {
+            DoHandleMessageL( EUserAuthentication, KNullDesC, KNullDesC, 1, KMaxTInt );
             break;
             }
         case ESignText:
             {
-            CCTSignTextDialog::RunDlgLD( R_WIM_SIGNTEXT_DIALOG,*textToSign, iStatus, iRetValue );
+            // TODO
+            //CCTSignTextDialog::RunDlgLD( R_WIM_SIGNTEXT_DIALOG,*textToSign, iStatus, iRetValue );
+            User::Leave( KErrGeneral );
             break;
             }
         default:
@@ -598,6 +576,7 @@
     if ( iRetry ) // Is this new try?
       {
         // Previous attempt was failed
+        // incorrect pin code
         DoHandleMessageL( EErrorPinCodeIncorrect, KNullDesC, KNullDesC, 0, 0 );
       }
     // Ask the PIN code or PUK code
@@ -605,11 +584,13 @@
         {
         HBufC* header = StringLoader::LoadLC(
             R_QTN_CM_HEADING_PHONE_KEYSTORE, CEikonEnv::Static() );
-        iPIN.iMinLength = KMaxKeystorePwLength;
+		iPIN.iMinLength = KMaxKeystorePwLength;
         DoHandleMessageL( EEnterKeyStorePw, KNullDesC, *header,
             iPIN.iMinLength, iPIN.iMaxLength );
         iMultiLineDlgType = EEnterNewKeyStorePw;
         CleanupStack::PopAndDestroy( header );
+        RunL();
+
         }
     else if ( iPIN.iPINLabel == KKeyStoreImportKeyLabel )
         {
@@ -626,7 +607,7 @@
     else if ( iPIN.iPINLabel == KKeyStoreCreatePwLabel )
         {
         iPIN.iMinLength = KMaxKeystorePwLength;
-        DoHandleMessageL( EInfoPwCreating, KNullDesC, KNullDesC, 0, 0 );
+        ShowInformationNoteL(R_QTN_CM_CREATING_KEYSTORE);
         DoHandleMultilinePinQueryL( EEnterNewKeyStorePw );
         iNextStep = EVerifyPINs;
         }
@@ -651,8 +632,10 @@
 // CCTSecurityDialogsAO::DoHandleMultilinePinQueryL()
 // -----------------------------------------------------------------------------
 //
-void CCTSecurityDialogsAO::DoHandleMultilinePinQueryL( const TInt& aDlgType )
+void CCTSecurityDialogsAO::DoHandleMultilinePinQueryL( const TInt& /*aDlgType*/ )
     {
+    // TODO
+#if 0
     iMultiLineDlgType = aDlgType;
     HBufC* dlgText1 = NULL;
     HBufC* dlgText2 = NULL;
@@ -660,12 +643,37 @@
     TDialogType dlgType = ( TDialogType )aDlgType;
     if ( EEnterNewKeyStorePw == dlgType )
         {
+/*
         dlgText1 = iNotifier->LoadResourceStringLC( dlgType, KNullDesC );
         dlgText2 = iNotifier->LoadResourceStringLC( EVerifyKeyStorePw, KNullDesC );
         dlg = CCTPinPinQueryDialog::NewL( *dlgText1, *dlgText2, iPINValue2,
-            iPINValueVerify, iPIN.iMinLength, iPIN.iMaxLength, iRetValue );
+            iPINValueVerify, iPIN.iMinLength, iPIN.iMaxLength, iRetValue );16:19:13.812 xti1:MCU_ASCII_PRINTF; channel:0xE0; msg:*PlatSec* ERROR - Capability check failed - Process #tlstest[e8dc94b1]0001 was checked by Thread c32exe.exe[101f7989]0001::ESock_IP and was found to be missing the capabilities: NetworkControl .
+
         dlg->RunDlgLD( iStatus, R_WIM_PWPW_QUERY_DIALOG );
         CleanupStack::PopAndDestroy( 2, dlgText1 ); // dlgText1, dlgText2
+*/
+        dlgText1 =  StringLoader::LoadLC( R_QTN_SN_NEW_PHONE_KEYSTORE );
+        dlgText2 = StringLoader::LoadLC( R_QTN_WIM_VERIFY_PIN );
+        HBufC* message = HBufC::NewLC( KMaxLengthTextCertLabelVisible );
+        message->Des().Append(dlgText1->Des());
+        message->Des().Append(_L("|"));
+        message->Des().Append(dlgText2->Des());
+        CSecQueryUi* SecQueryUi = CSecQueryUi::NewL();
+        TInt queryAccepted = SecQueryUi->SecQueryDialog(message->Des(), iPINValueVerify,
+                                                    iPIN.iMinLength,iPIN.iMaxLength,
+                                                    ESecUiAlphaSupported |
+                                                    ESecUiCancelSupported |
+                                                    ESecUiSecretSupported |
+                                                    ESecUiEmergencyNotSupported);
+        iRetValue=(queryAccepted==KErrNone);
+        if(iRetValue)
+            iPINValue2.Copy(iPINValueVerify); // dialog already does not OK with different pin codes
+        delete SecQueryUi;
+        SecQueryUi=NULL;
+        CleanupStack::PopAndDestroy( message );
+        CleanupStack::PopAndDestroy( dlgText2 );
+        CleanupStack::PopAndDestroy( dlgText1 );
+        RunL(); // had to call it this way
         }
     else if ( EExportKeyPw == dlgType )
         {
@@ -685,6 +693,8 @@
         dlg->RunDlgLD( iStatus, R_WIM_PINPIN_QUERY_DIALOG );
         CleanupStack::PopAndDestroy( 2, dlgText1 ); // dlgText1, dlgText2
         }
+#endif
+    User::Leave( KErrGeneral );
     }
 
 // -----------------------------------------------------------------------------
@@ -704,7 +714,7 @@
 
   TDialogTypeItem item = iNotifier->GetDialogTypeItem( dlgType );
 
-  CAknResourceNoteDialog* dlg = NULL;
+  //CAknResourceNoteDialog* dlg = NULL;
 
   TInt resource = 0;
 
@@ -712,44 +722,62 @@
         {
         case EInfoNote:
             {
-            dlg = new ( ELeave ) CAknInformationNote( ETrue );
+            // TODO
+            //dlg = new ( ELeave ) CAknInformationNote( ETrue );
+            User::Leave( KErrGeneral );
             break;
             }
 
         case EErrorNote:
             {
-            dlg = new ( ELeave ) CAknErrorNote( ETrue );
+            // TODO
+            //dlg = new ( ELeave ) CAknErrorNote( ETrue );
+            User::Leave( KErrGeneral );
             break;
             }
         case EConfirmationNote:
             {
-            dlg = new ( ELeave ) CAknConfirmationNote( ETrue );
+            // TODO
+            //dlg = new ( ELeave ) CAknConfirmationNote( ETrue );
+            User::Leave( KErrGeneral );
             break;
             }
         case EInfoDialog:
             {
+            // TODO
+            /*
             CCTQueryDialog::RunDlgLD( iStatus,
                                         iRetValue,
                                         *dlgText, item.iSoftKeyResource,
                                         ECTInfoDialog );
             iStatus = KRequestPending;
             SetActive();
+            */
+            User::Leave( KErrGeneral );
             break;
             }
         case EEnterPwPwDialog:
             {
+            // TODO
+            /*
             CCTPinPinQueryDialog* dialog =
                 CCTPinPinQueryDialog::NewL( *dlgText, *dlgText,
                 iPINValue2, iPINValueVerify, aMinLength, aMaxLength, iRetValue );
             dialog->RunDlgLD( iStatus, R_WIM_PWPW_QUERY_DIALOG );
+            */
+            User::Leave( KErrGeneral );
             break;
             }
         case EEnterPinPinCodeDialog:
             {
+            // TODO
+            /*
             CCTPinPinQueryDialog* dialog =
                 CCTPinPinQueryDialog::NewL( *dlgText, *dlgText,
                 iPINValue2, iPINValueVerify, aMinLength, aMaxLength, iRetValue );
             dialog->RunDlgLD( iStatus, R_WIM_PINPIN_QUERY_DIALOG );
+            */
+            User::Leave( KErrGeneral );
             break;
             }
         case EEnterPwDialog:
@@ -793,17 +821,41 @@
                     User::Panic(_L("CSecDlgNotifier"), 0);
                     }
                 }
-               iPinQueryDialogDeleted = EFalse;
-                CCTPinQueryDialog::RunDlgLD( iStatus,
-                                        *dlgText,
-                                        *pinValue,
-                                        aMinLength,
-                                        aMaxLength,
-                                        iRetValue,
-                                        resource,
-                                        iPinQueryDialog,
-                                        iPinQueryDialogDeleted );
+               //iPinQueryDialogDeleted = EFalse;
+               if(aDlgType!=EEnterKeyStorePw) {
+                   // TODO
+                   /*
+                   CCTPinQueryDialog::RunDlgLD( iStatus,
+                                            *dlgText,
+                                            *pinValue,
+                                            aMinLength,
+                                            aMaxLength,
+                                            iRetValue,
+                                            resource,
+                                            iPinQueryDialog,
+                                            iPinQueryDialogDeleted );
+                    */
+                   User::Leave( KErrGeneral );
+                   resource = resource;     // avoids compiler warning
+                   break;
+               }
+               else
+               {
+                iPIN.iMinLength = KMaxKeystorePwLength;
+                CSecQueryUi* SecQueryUi = CSecQueryUi::NewL();
+                HBufC* header =StringLoader::LoadLC( R_QTN_SN_ENTER_PHONE_KEYSTORE);
+                TInt queryAccepted = SecQueryUi->SecQueryDialog(header->Des(), *pinValue,
+                                                        aMinLength,aMaxLength,
+                                                        ESecUiAlphaSupported |
+                                                        ESecUiCancelSupported |
+                                                        ESecUiSecretSupported |
+                                                        ESecUiEmergencyNotSupported);
+                delete SecQueryUi;
+                SecQueryUi=NULL;
+                iRetValue=(queryAccepted==KErrNone);
+                CleanupStack::PopAndDestroy( header );
                 break;
+               }
             }
     default:
             {
@@ -811,12 +863,16 @@
             }
 
       }
+  // TODO
+  /*
+  if ( dlg && aDlgType!=EEnterKeyStorePw)
+      {
 
-  if ( dlg )
-      {
       dlg->ExecuteLD( *dlgText );
       dlg = NULL;
       }
+      */
+  User::Leave( KErrGeneral );
 
     CleanupStack::PopAndDestroy( dlgText ); // dlgText
     }
@@ -841,6 +897,8 @@
 //
 void CCTSecurityDialogsAO::InitCertStoreL()
     {
+    TRACE( "CCTSecurityDialogsAO::InitCertStoreL" );
+
     switch(iOperation)
         {
         case ESignText:
@@ -976,13 +1034,15 @@
     {
     WIMSECURITYDIALOGS_WRITE_FORMAT( "CCTSecurityDialogsAO::RunL, iStatus %d", iStatus.Int() );
     WIMSECURITYDIALOGS_WRITE_FORMAT( "  iNextStep %d", iNextStep );
+    TRACE1( "CCTSecurityDialogsAO::RunL, iStatus.Int()=%d", iStatus.Int() );
 
-    if ( iStatus != KErrNone )
+    if( iStatus != KErrNone )
         {
         User::Leave( iStatus.Int() );
-        } // if
+        }
 
-    switch ( iNextStep )
+    TRACE1( "CCTSecurityDialogsAO::RunL, iNextStep=%d", iNextStep );
+    switch( iNextStep )
       {
       case EOperationCompleted:
         {
@@ -990,35 +1050,34 @@
         HandleResponseAndCompleteL();
         break;
         }
+
       case ECheckServerCerts:
         {
         WIMSECURITYDIALOGS_WRITE( "ECheckServerCerts" );
 
         TBool foundCert( EFalse );
 
-        if ( iServerCerts.Count() )
+        if( iServerCerts.Count() )
             {
             // Found certificates in the trusted site certificate storage.
             // Compare them with the one received from TlsProvider
             iCertPtr.Set( iCertBuf->Des() );
             CX509Certificate* serverCert = CX509Certificate::NewLC( iCertPtr );
 
-            for (TInt i=0; i<iServerCerts.Count(); i++ )
+            for( TInt i = 0; i < iServerCerts.Count(); i++ )
                 {
                 TPtr8 certPtr( iServerCerts[i]->Des() );
-
                 CX509Certificate* cert = CX509Certificate::NewLC( certPtr );
-
-                // Compare fingerprints
-                if ( cert->Fingerprint() == serverCert->Fingerprint() )
+                if( cert->Fingerprint() == serverCert->Fingerprint() )
                     {
-                    // Fingerprints match
                     foundCert = ETrue;
                     }
                 CleanupStack::PopAndDestroy( cert );
                 }
+
              CleanupStack::PopAndDestroy( serverCert );
-             if ( foundCert )
+
+             if( foundCert )
                 {
                 // Found matching certificate. Complete the operation
                 iRetValue = EServerCertAcceptedPermanently;
@@ -1027,24 +1086,26 @@
                 }
             }
 
-            if ( !foundCert )
-                {
-                // Couldn't find matching certificate. Prompt user
-                ShowNoTrustDialogL();
-                }
-
+        if ( !foundCert )
+            {
+            // Couldn't find matching certificate. Prompt user
+            ShowNoTrustDialogL();
+            }
         break;
         }
+
       case EProcessTrustedSite:
         {
         WIMSECURITYDIALOGS_WRITE( "EProcessTrustedSite" );
+        TRACE( "CCTSecurityDialogsAO::RunL, EProcessTrustedSite" );
+
         TInt count = iCertStore->WritableCertStoreCount();
-        for ( TInt i = 0; i < count; i++ )
+        for( TInt i = 0; i < count; i++ )
             {
             MCTWritableCertStore *certstore = &iCertStore->WritableCertStore( i );
             MCTToken& token = certstore->Token();
             TUid tokenuid = token.Handle().iTokenTypeUid;
-            if ( tokenuid == KTrustedServerTokenUid )
+            if( tokenuid == KTrustedServerTokenUid )
                 {
                 iTrustedSiteCertStore = certstore;
                 }
@@ -1056,11 +1117,11 @@
         // Find out whether or not site associated with certificate is trusted
         iTrustedSite = trustedSitesStore->IsTrustedSiteL( *iCertBuf, *iServerName );
 
-        if ( iTrustedSite )
+        if( iTrustedSite )
             {
             TBool allowOutOfDate = trustedSitesStore->IsOutOfDateAllowedL(*iCertBuf, *iServerName);
 
-            if (!allowOutOfDate)
+            if( !allowOutOfDate )
                 {
                 CX509Certificate* cert = CX509Certificate::NewLC( iCertBuf->Des() );
 
@@ -1081,7 +1142,7 @@
             }
         CleanupStack::PopAndDestroy( trustedSitesStore );
 
-        if ( iTrustedSite )
+        if( iTrustedSite )
             {
             // Site is trusted. Next step is to check that server
             // certificate is in the trusted site certificate storage
@@ -1148,9 +1209,11 @@
             }
         break;
         }
+
       case EAddTrustedSite:
           {
-          if ( iStatus.Int() == KErrNone )
+          TRACE( "CCTSecurityDialogsAO::RunL, EAddTrustedSite" );
+          if( iStatus.Int() == KErrNone )
               {
               //Added server certificate succesfully
               CTrustSitesStore* trustedSitesStore = CTrustSitesStore::NewL();
@@ -1159,7 +1222,7 @@
               TInt status = trustedSitesStore->AddL( *iCertBuf, *iServerName );
 
               CleanupStack::PopAndDestroy( trustedSitesStore );
-              if ( status  == KErrNone )
+              if( status  == KErrNone )
                   {
                   iRetValue = EServerCertAcceptedPermanently;
                   }
@@ -1174,23 +1237,27 @@
           else
               {
               //Adding server certificate failed
+              // TODO: unreached code?
               iNextStep = EOperationCompleted;
               iRetValue = EServerCertNotAccepted;
               HandleResponseAndCompleteL();
               }
-              break;
+          break;
           }
 
       case ESaveServerCert:
           {
           WIMSECURITYDIALOGS_WRITE( "ESaveServerCert" );
+          TRACE( "CCTSecurityDialogsAO::RunL, ESaveServerCert" );
           DoHandleSaveServerCertL();
           break;
           }
+
       case EServerCertCheckUserResp:
           {
           WIMSECURITYDIALOGS_WRITE( "EServerCertCheckUserResp" );
-          if ( iRetValue == EServerCertAcceptedPermanently )
+          TRACE( "CCTSecurityDialogsAO::RunL, EServerCertCheckUserResp" );
+          if( iRetValue == EServerCertAcceptedPermanently )
               {
               // User accepted to select certificate permanently.
               // First add server certificate
@@ -1207,6 +1274,7 @@
               }
           break;
           }
+
       case EOperationSignTextShown:
           {
           if ( iRetValue || iOperation == EUserAuthentication )
@@ -1223,6 +1291,7 @@
           User::RequestComplete( status, KErrNone );
           break;
           }
+
       case EOperationInitCertStore:
           {
           TInt err = KErrNone;
@@ -1240,6 +1309,7 @@
           iNextStep = EOperationRetrieveCertInfos;
           break;
           }
+
       case EOperationRetrieveCertInfos:
           {
           if ( iCertInfo )
@@ -1275,11 +1345,13 @@
               }
           break;
           }
+
       case EOperationSelectCert:
           {
           DoHandleSelectCertificateL();
           break;
           }
+
       case EGetCertInfo:
           {
           iStatus = KRequestPending;
@@ -1289,6 +1361,7 @@
           SetActive();
           break;
           }
+
       case EGetCertificate:
           {
           iStatus = KRequestPending;
@@ -1308,36 +1381,42 @@
           iNextStep = EInitKeyStore;
           break;
           }
+
       case EInitKeyStore:
           {
           InitKeyStoreL();
           iNextStep = EGetKeyInfos;
           break;
           }
+
       case EGetKeyInfos:
           {
           GetKeyInfosL();
           iNextStep = EShowCertDialog;
           break;
           }
+
       case EGetKeyInfoByHandle:
           {
           GetKeyInfoByHandleL();
           iNextStep = EShowCSRDialog;
           break;
           }
+
       case EShowCSRDialog:
           {
           ShowCSRDialogL();
           iNextStep = EOperationCompleted;
           break;
           }
+
       case EShowCertDialog:
           {
           ShowCertDialogL();
           iNextStep = EOperationCompleted;
           break;
           }
+
       /////////////
       // PIN steps
       /////////////
@@ -1380,11 +1459,13 @@
               }
           break;
           }
+
       case EVerifyPINs:
           {
           VerifyPinsL();
           break;
           }
+
       default:
           {
           User::Panic( _L("CTestSecDlgNotifier"), 0 );
@@ -1458,6 +1539,7 @@
         {
         // No certificate from Device Certificate Store. Prompt user
         // for certificate selection
+    /*
         CCTSelectCertificateDialog::RunDlgLD(
             iCertArray, iCertHandleList, iTokenHandle,
             iStatus, iRetValue ); // Takes ownerhip of array
@@ -1465,6 +1547,8 @@
         iNextStep = EOperationCompleted;
         iStatus = KRequestPending;
         SetActive();
+    */
+        User::Leave( KErrGeneral );     // TODO: to be implemented
         }
     }
 
@@ -1474,117 +1558,40 @@
 //
 void CCTSecurityDialogsAO::ShowNoTrustDialogL()
     {
-    // Cannot display untrusted certificate dialog if device is locked. Untrusted
-    // certificate dialog would be displayed on top of possible lock code query.
-    TInt value = 0;
-    TInt err = RProperty::Get( KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, value );
-    if( !err && value != EAutolockOff )
-        {
-        iRetValue = EServerCertNotAccepted;
-        iStatus = KRequestPending;
-        TRequestStatus* status( &iStatus );
-        User::RequestComplete( status, KErrNone );
-        }
-    else
-        {
-        CX509Certificate* cert = CX509Certificate::NewLC( iCertBuf->Des() );
-        TInt dialogResourceId = R_WIM_NO_TRUST_QUERY_UNTRUSTED;
-        TInt promptResourceId = R_QTN_ICS_SSL_CONF_Q_ACCEPT_UNTRUSTED;
-        TBool showPermAccept = ETrue;
+    TRACE( "CCTSecurityDialogsAO::ShowNoTrustDialogL, begin" );
 
-        if( iAuthFailReason == ESignatureInvalid || iAuthFailReason == ECertificateRevoked )
-            {
-            // Invalid or revoked certificate
-            CCTInvalidCertificateNote* note =
-                new( ELeave ) CCTInvalidCertificateNote( *this, iStatus );
-            note->ExecuteLD( R_WIM_INVALID_CERTIFICATE_INFORMATION_NOTE );
-            iRetValue = EServerCertNotAccepted;
-
-            // CCTNoTrustQuery below self-completes this active object. It is necessary to
-            // complete it here too, in order to run the next step EServerCertCheckUserResp.
-            iStatus = KRequestPending;
-            TRequestStatus* status( &iStatus );
-            User::RequestComplete( status, KErrNone );
-            }
-        else
-            {
-            if( iAuthFailReason == EValidatedOK || iAuthFailReason == EDateOutOfRange )
-                {
-                // Trusted certificate, but problems with CN or date
-
-                // Retrieve subject name
-                const CX500DistinguishedName& dName = cert->SubjectName();
-
-                // Retrieve common name
-                HBufC* cn = dName.ExtractFieldL( KX520CommonName );
+    // If trusted site certstore open has failed, then it is not possible to save
+    // the host name for permanent use. Hence, choice for permanent accept is not
+    // displayed if trusted site certstore open has failed. Other restrictions for
+    // permanent accept are defined in device dialog (UntrustedCertificateWidget).
+    TBool isTrustedSiteCertStoreOpened = ( iTrustedSiteCertStore != NULL );
+    CCTUntrustedCertQuery *untrustedCertDlg = CCTUntrustedCertQuery::NewLC(
+            iAuthFailReason, *iCertBuf, *iServerName, isTrustedSiteCertStoreOpened );
 
-                // Check common name first and then date
-                if( !cn )
-                    {
-                    // Couldn't retrieve CN from certificate
-                    dialogResourceId = R_WIM_NO_TRUST_QUERY_UNTRUSTED;
-                    promptResourceId = R_QTN_ICS_SSL_CONF_Q_ACCEPT_UNTRUSTED;
-                    }
-                else if( iServerName->Des() != cn->Des() )
-                    {
-                    // Domain name doesn't match with CN
-                    dialogResourceId = R_WIM_NO_TRUST_QUERY_SITE;
-                    promptResourceId = R_QTN_ICS_SSL_CONF_Q_ACCEPT_SITE;
-                    }
-                else if( iAuthFailReason == EDateOutOfRange )
-                    {
-                    // Certificate is out of date
-                    dialogResourceId = R_WIM_NO_TRUST_QUERY_OOD;
-                    promptResourceId = R_QTN_ICS_SSL_CONF_Q_ACCEPT_OOD;
-                    showPermAccept = EFalse;
-                    }
-                else
-                    {
-                    // Otherwise show general untrusted note
-                    dialogResourceId = R_WIM_NO_TRUST_QUERY_UNTRUSTED;
-                    promptResourceId = R_QTN_ICS_SSL_CONF_Q_ACCEPT_UNTRUSTED;
-                    }
-                }
-            else
-                {
-                // Untrusted certificate
-                dialogResourceId = R_WIM_NO_TRUST_QUERY_UNTRUSTED;
-                promptResourceId = R_QTN_ICS_SSL_CONF_Q_ACCEPT_UNTRUSTED;
-                }
-
-            // No "Accept Permanently" option if certificate is out of date, or
-            // if domain name is not defined, or if trusted site store failed to
-            // open (and it's not possible to save the server certificate).
-            const CValidityPeriod& validityPeriod = cert->ValidityPeriod();
-            const TTime& startValue = validityPeriod.Start();
-            const TTime& finishValue = validityPeriod.Finish();
-            TTime current;
-            current.UniversalTime();
-
-            if( (( startValue > current ) || ( finishValue < current )) ||
-                    ( iServerName->Des().Length() == 0 ) ||
-                    ( !iTrustedSiteCertStore ) )
-                {
-                showPermAccept = EFalse;
-                }
-
-            // CCTNoTrustQuery completes iStatus asynchronously when ready. Note that
-            // it happens after ExecuteLD() and also this function have returned.
-            iStatus = KRequestPending;
-
-            iQueryDialog = new( ELeave ) CCTNoTrustQuery( *this, iRetValue, iStatus,
-                    iServerName, showPermAccept, iQueryDialogDeleted );
-            HBufC* prompt = StringLoader::LoadLC( promptResourceId, *iServerName );
-
-            iQueryDialog->ExecuteLD( dialogResourceId, *prompt );
-
-            CleanupStack::PopAndDestroy( prompt );
-            }
-
-        CleanupStack::PopAndDestroy( cert );
+    CCTUntrustedCertQuery::TResponse response = CCTUntrustedCertQuery::EQueryRejected;
+    untrustedCertDlg->ShowQueryAndWaitForResponseL( response );
+    switch( response )
+        {
+        case CCTUntrustedCertQuery::EQueryAccepted:
+            iRetValue = EServerCertAcceptedTemporarily;
+            break;
+        case CCTUntrustedCertQuery::EQueryAcceptedPermanently:
+            // TODO: show confirmation note, qtn_httpsec_query_perm_accept_text
+            // "Connection to site %U will be made in future without any warnings. Continue?""
+            iRetValue = EServerCertAcceptedPermanently;
+            break;
+        case CCTUntrustedCertQuery::EQueryRejected:
+        default:
+            iRetValue = EServerCertNotAccepted;
+            break;
         }
+    CleanupStack::PopAndDestroy( untrustedCertDlg );
+    TRACE1( "CCTSecurityDialogsAO::ShowNoTrustDialogL, iRetValue=%d", iRetValue );
 
     iNextStep = EServerCertCheckUserResp;
+    iStatus = KRequestPending;
+    TRequestStatus* status = &iStatus;
+    User::RequestComplete( status, KErrNone );
     SetActive();
     }
 
@@ -1601,16 +1608,18 @@
 
     messagePtr.Append( KEnter );
 
-    DetailsFieldDynamicL( messagePtr, *iText,
-        R_TEXT_RESOURCE_DETAILS_VIEW_SUBJECT,
-        R_TEXT_RESOURCE_VIEW_NO_SUBJECT_DETAILS );
+    //DetailsFieldDynamicL( messagePtr, *iText,
+    //    R_TEXT_RESOURCE_DETAILS_VIEW_SUBJECT,
+    //    R_TEXT_RESOURCE_VIEW_NO_SUBJECT_DETAILS );
 
     AddKeyUsageL( messagePtr, iKeyInfo );
     AddKeyAlgorithmL( messagePtr, iKeyInfo );
     AddKeySizeL( messagePtr, iKeyInfo );
     AddKeyLocationL( messagePtr, iKeyInfo );
 
-    CCTSignTextDialog::RunDlgLD( R_WIM_CSR_DIALOG, *message, iStatus, iRetValue );
+    // TODO
+    //CCTSignTextDialog::RunDlgLD( R_WIM_CSR_DIALOG, *message, iStatus, iRetValue );
+    User::Leave( KErrGeneral );
     CleanupStack::PopAndDestroy( message );
 
     iStatus = KRequestPending;
@@ -1671,7 +1680,10 @@
             User::Panic(_L("CTestSecDlgNotifier"), 0);
             }
         }
-    CCTSignTextDialog::RunDlgLD( resource, *message, iStatus, iRetValue );
+    // TODO
+    //CCTSignTextDialog::RunDlgLD( resource, *message, iStatus, iRetValue );
+    User::Leave( KErrGeneral );
+    resource = resource;     // avoids compiler warning
     CleanupStack::PopAndDestroy( message );
 
     iStatus = KRequestPending;
@@ -1686,13 +1698,14 @@
 // ---------------------------------------------------------
 //
 HBufC* CCTSecurityDialogsAO::MessageQueryCertDetailsL(
-    const TDesC8& aCert,
-    const CCTCertInfo* aCertInfo,
-    TCertificateFormat aCertFormat,
-    const CCTKeyInfo* aKeyInfo)
+    const TDesC8& /*aCert*/,
+    const CCTCertInfo* /*aCertInfo*/,
+    TCertificateFormat /*aCertFormat*/,
+    const CCTKeyInfo* /*aKeyInfo*/)
     {
     // Create message buffer
     HBufC* message = HBufC::NewLC( KMaxLengthTextDetailsBody );
+/*
     TPtr messagePtr = message->Des();
     // Label
     if ( aCertInfo )
@@ -1754,7 +1767,7 @@
             User::Leave( KErrNotSupported );
             }
         }
-
+*/
     CleanupStack::Pop( message );
     return message;
     }
@@ -1763,22 +1776,25 @@
 // CCTSecurityDialogsAO::AddIssuerAndSubjectL(...)
 // -----------------------------------------------------------------------------
 //
-void CCTSecurityDialogsAO::AddSiteL( TDes& aMessage )
+void CCTSecurityDialogsAO::AddSiteL( TDes& /*aMessage*/ )
     {
+/*
     if ( iServerName )
         {
         DetailsFieldDynamicL( aMessage, iServerName->Des(),
             R_QTN_CM_SITE,
             R_TEXT_RESOURCE_DETAILS_VIEW_NOT_DEFINED );
         }
+*/
     }
 
 // -----------------------------------------------------------------------------
 // CCTSecurityDialogsAO::AddIssuerAndSubjectL(...)
 // -----------------------------------------------------------------------------
 //
-void CCTSecurityDialogsAO::AddIssuerAndSubjectL( TDes& aMessage, const CX509Certificate& aCert )
+void CCTSecurityDialogsAO::AddIssuerAndSubjectL( TDes& /*aMessage*/, const CX509Certificate& /*aCert*/ )
     {
+/*
     HBufC* issuer = NULL;
     HBufC* owner = NULL;
     X509CertNameParser::SubjectFullNameL( aCert, owner );
@@ -1796,14 +1812,16 @@
         R_TEXT_RESOURCE_DETAILS_VIEW_SUBJECT,
         R_TEXT_RESOURCE_VIEW_NO_SUBJECT_DETAILS );
     CleanupStack::PopAndDestroy( owner );   //owner
+*/
     }
 
 // -----------------------------------------------------------------------------
 // CCTSecurityDialogsAO::AddKeySizeL(...)
 // -----------------------------------------------------------------------------
 //
-void CCTSecurityDialogsAO::AddKeySizeL( TDes& aMessage, const CCTKeyInfo* aKeyInfo )
+void CCTSecurityDialogsAO::AddKeySizeL( TDes& /*aMessage*/, const CCTKeyInfo* /*aKeyInfo*/ )
     {
+/*
     TUint keySize = aKeyInfo->Size();
 
     TBuf<KMaxLengthTextDateString> sizeBuf;
@@ -1817,14 +1835,16 @@
         R_TEXT_RESOURCE_DETAILS_VIEW_NOT_DEFINED );
 
     aMessage.Append( KEnterEnter );
+*/
     }
 
 // -----------------------------------------------------------------------------
 // CCTSecurityDialogsAO::AddKeyUsageL(...)
 // -----------------------------------------------------------------------------
 //
-void CCTSecurityDialogsAO::AddKeyUsageL( TDes& aMessage, const CCTKeyInfo* aKeyInfo )
+void CCTSecurityDialogsAO::AddKeyUsageL( TDes& /*aMessage*/, const CCTKeyInfo* /*aKeyInfo*/ )
     {
+/*
     if ( aKeyInfo != NULL )
         {
         TKeyUsagePKCS15 keyUsage = aKeyInfo->Usage();
@@ -1847,14 +1867,16 @@
         DetailsFieldResourceL( aMessage,
             R_TEXT_RESOURCE_DETAILS_VIEW_KEY_USAGE, usage);
         }
+*/
     }
 
 // -----------------------------------------------------------------------------
 // CCTSecurityDialogsAO::AddKeyUsageL(...)
 // -----------------------------------------------------------------------------
 //
-void CCTSecurityDialogsAO::AddKeyUsageL( TDes& aMessage, const CX509Certificate& aCert )
+void CCTSecurityDialogsAO::AddKeyUsageL( TDes& /*aMessage*/, const CX509Certificate& /*aCert*/ )
     {
+/*
   TKeyUsageX509 x509Usage = EX509UsageNone;
   TKeyUsagePKCS15 pkcs15KeyUsage = EPKCS15UsageNone;
   const CX509CertExtension* ext = aCert.Extension(KKeyUsage);
@@ -1927,14 +1949,16 @@
       }
    DetailsFieldResourceL( aMessage,
           R_TEXT_RESOURCE_DETAILS_VIEW_KEY_USAGE, usage );
+*/
    }
 
 // -----------------------------------------------------------------------------
 // CCTSecurityDialogsAO::AddKeyAlgorithmL(...)
 // -----------------------------------------------------------------------------
 //
-void CCTSecurityDialogsAO::AddKeyAlgorithmL( TDes& aMessage, const CCTKeyInfo* aKeyInfo )
+void CCTSecurityDialogsAO::AddKeyAlgorithmL( TDes& /*aMessage*/, const CCTKeyInfo* /*aKeyInfo*/ )
     {
+/*
     TInt algRes = 0;
     switch( aKeyInfo->Algorithm())
         {
@@ -1965,6 +1989,7 @@
         }
     DetailsFieldResourceL( aMessage,
             R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM, algRes);
+*/
     }
 
 // -----------------------------------------------------------------------------
@@ -1999,8 +2024,9 @@
 // ---------------------------------------------------------
 //
 void CCTSecurityDialogsAO::AddLocationInfoL(
-    TDes& aMessage, TUid aUid, TBool aCertificate )
+    TDes& /*aMessage*/, TUid /*aUid*/, TBool /*aCertificate*/ )
     {
+/*
     TInt location = 0;
     TInt locationRes =0;
 
@@ -2041,6 +2067,7 @@
         }
 
     DetailsFieldResourceL( aMessage, locationRes, location );
+*/
     }
 
 // -----------------------------------------------------------------------------
@@ -2052,7 +2079,7 @@
     {
     TLocale locale;
     TTimeIntervalSeconds offSet = locale.UniversalTimeOffset();
-    DetailsResourceL( aMessage, R_TEXT_RESOURCE_DETAILS_VIEW_VALID_FROM );
+    //DetailsResourceL( aMessage, R_TEXT_RESOURCE_DETAILS_VIEW_VALID_FROM );
     const CValidityPeriod& validityPeriod = aCert.ValidityPeriod();
     TTime startValue = validityPeriod.Start();
     startValue += offSet;
@@ -2067,7 +2094,7 @@
     aMessage.Append( startString );
     aMessage.Append( KEnterEnter );
 
-    DetailsResourceL( aMessage, R_TEXT_RESOURCE_DETAILS_VIEW_VALID_UNTIL );
+    //DetailsResourceL( aMessage, R_TEXT_RESOURCE_DETAILS_VIEW_VALID_UNTIL );
     TTime finishValue = validityPeriod.Finish();
     finishValue += offSet;
     TBuf<KMaxLengthTextDateString> finishString;
@@ -2086,46 +2113,91 @@
 // CCTSecurityDialogsAO::AddCertFormatL(...)
 // -----------------------------------------------------------------------------
 //
-void CCTSecurityDialogsAO::AddCertFormatL( TDes& aMessage, TCertificateFormat aCertFormat)
+void CCTSecurityDialogsAO::AddCertFormatL( TDes& /*aMessage*/, TCertificateFormat aCertFormat)
     {
-    TInt fieldType = 0;
+    //TInt fieldType = 0;
     switch ( aCertFormat )
         {
         case EX509CertificateUrl:
         case EX509Certificate:
             {
-            fieldType = R_TEXT_RESOURCE_DETAILS_VIEW_CERT_FORMAT_X509;
+            //fieldType = R_TEXT_RESOURCE_DETAILS_VIEW_CERT_FORMAT_X509;
             break;
             }
         default:
             {
-            fieldType = R_TEXT_RESOURCE_DETAILS_VIEW_NOT_DEFINED;
+            //fieldType = R_TEXT_RESOURCE_DETAILS_VIEW_NOT_DEFINED;
             break;
             }
         }
-    DetailsFieldResourceL( aMessage,
-        R_TEXT_RESOURCE_DETAILS_VIEW_CERT_FORMAT, fieldType );
+    //DetailsFieldResourceL( aMessage,
+    //    R_TEXT_RESOURCE_DETAILS_VIEW_CERT_FORMAT, fieldType );
     }
 
 // -----------------------------------------------------------------------------
 // CCTSecurityDialogsAO::AddCertAlgorithmsL(...)
 // -----------------------------------------------------------------------------
 //
-void CCTSecurityDialogsAO::AddCertAlgorithmsL( TDes& aMessage, const CX509Certificate& aCert )
+void CCTSecurityDialogsAO::AddCertAlgorithmsL( TDes& /*aMessage*/, const CX509Certificate& /*aCert*/ )
     {
+/*
     TInt fieldType = 0;
     TInt fieldType2 = 0;
-
     // digest algorithm
-    TAlgorithmId algorithmId = aCert.SigningAlgorithm().DigestAlgorithm().Algorithm();
-    fieldType = AlgorithmNameResourceId( algorithmId );
+    TAlgorithmId algorithmId =
+        aCert.SigningAlgorithm().DigestAlgorithm().Algorithm();
+    switch ( algorithmId )
+        {
+        case EMD2:
+            {
+            fieldType = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_MD2;
+            break;
+            }
+        case EMD5:
+            {
+            fieldType = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_MD5;
+            break;
+            }
+        case ESHA1:
+            {
+            fieldType = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_SHA1;
+            break;
+            }
+        default:
+            {
+            fieldType = R_TEXT_RESOURCE_DETAILS_VIEW_UNKNOWN;
+            break;
+            }
+        }
 
     // public-key algorithm
-    algorithmId = aCert.SigningAlgorithm().AsymmetricAlgorithm().Algorithm();
-    fieldType2 = AlgorithmNameResourceId( algorithmId );
+    algorithmId =
+        aCert.SigningAlgorithm().AsymmetricAlgorithm().Algorithm();
+    switch ( algorithmId )
+        {
+        case ERSA:
+            {
+            fieldType2 = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_RSA;
+            break;
+            }
+        case EDSA:
+            {
+            fieldType2 = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_DSA;
+            break;
+            }
+        case EDH:
+            {
+            fieldType2 = R_TEXT_RESOURCE_DETAILS_VIEW_ALGORITHM_DH;
+            break;
+            }
+        default:
+            {
+            fieldType2 = R_TEXT_RESOURCE_DETAILS_VIEW_UNKNOWN;
+            }
+        }
 
     // If other algorithm is unknown
-    if( fieldType == R_TEXT_RESOURCE_DETAILS_VIEW_UNKNOWN ||
+    if ( fieldType == R_TEXT_RESOURCE_DETAILS_VIEW_UNKNOWN ||
         fieldType2 == R_TEXT_RESOURCE_DETAILS_VIEW_UNKNOWN )
         {
         DetailsFieldResourceL( aMessage,
@@ -2142,14 +2214,16 @@
         CleanupStack::PopAndDestroy();  // stringHolder
         aMessage.Append( KEnterEnter );
         }
+*/
     }
 
 // -----------------------------------------------------------------------------
 // CCTSecurityDialogsAO::AddCertSerialNumberL(...)
 // -----------------------------------------------------------------------------
 //
-void CCTSecurityDialogsAO::AddCertSerialNumberL( TDes& aMessage, const CX509Certificate& aCert )
+void CCTSecurityDialogsAO::AddCertSerialNumberL( TDes& /*aMessage*/, const CX509Certificate& /*aCert*/ )
     {
+/*
     // certificate serial number
     DetailsResourceL( aMessage, R_TEXT_RESOURCE_DETAILS_VIEW_SERIAL_NUMBER );
     TPtrC8 serialNumber = aCert.SerialNumber();
@@ -2162,14 +2236,16 @@
        }
 
     aMessage.Append( KEnterEnter );
+*/
     }
 
 // -----------------------------------------------------------------------------
 // CCTSecurityDialogsAO::AddCertFingerprintsL(...)
 // -----------------------------------------------------------------------------
 //
-void CCTSecurityDialogsAO::AddCertFingerprintsL( TDes& aMessage, const CX509Certificate& aCert )
+void CCTSecurityDialogsAO::AddCertFingerprintsL( TDes& /*aMessage*/, const CX509Certificate& /*aCert*/ )
     {
+/*
      // certificate fingerprint SHA-1
     DetailsResourceL( aMessage, R_TEXT_RESOURCE_DETAILS_VIEW_FINGERPRINT );
 
@@ -2187,6 +2263,7 @@
     CleanupStack::PopAndDestroy( md5 );
 
     DevideToBlocks( fingerprint, aMessage );
+*/
     }
 
 // ---------------------------------------------------------
@@ -2320,6 +2397,7 @@
             iMessagePtr.WriteL( iReplySlot, pinValueBufPtr );
             break;
             }
+
         case EChangePIN:
         case EUnblockPIN:
             {
@@ -2330,6 +2408,7 @@
             iMessagePtr.WriteL( iReplySlot, twoPINOutputBuf );
             break;
             }
+
         case ESignText: // flow thru
         case EUserAuthenticationText: // flow thru
         case EUserAuthentication:
@@ -2338,13 +2417,14 @@
             iMessagePtr.WriteL( iReplySlot, tokenObjectHandleBuf );
             break;
             }
+
         case EServerAuthenticationFailure:
             {
             TServerAuthenticationFailureDialogResult result = EStop;
 
-            if ( iRetValue != EServerCertAcceptedPermanently )
+            if( iRetValue != EServerCertAcceptedPermanently )
                 {
-                if ( iRetValue == EServerCertAcceptedTemporarily )
+                if( iRetValue == EServerCertAcceptedTemporarily )
                     {
                     result = EContinue;
                     }
@@ -2365,12 +2445,14 @@
 
             break;
             }
+
         case EPINBlocked:
         case EUnblockPINInClear:
             {
             User::Leave( KErrNotSupported );
             break;
             }
+
         case ECreateCSR:
         case ECertDetails:
         case ESaveCert:
@@ -2386,6 +2468,7 @@
             {
             break; // Complete is enough
             }
+
         default:
             User::Panic( _L("CTestSecDlgNotifier"), 0 );
         }
@@ -2433,23 +2516,14 @@
 void CCTSecurityDialogsAO::DoCancel()
     {
     WIMSECURITYDIALOGS_WRITE( "CCTSecurityDialogsAO::DoCancel" );
-
-    // Note that iQueryDialog may point to already deleted memory.
-    // Dialogs need to set and reset iQueryDialogDeleted flag to
-    // allow deleting the dialog from CCTSecurityDialogsAO.
-    if( !iQueryDialogDeleted )
-        {
-        delete iQueryDialog;
-        iQueryDialogDeleted = ETrue;
-        }
-    iQueryDialog = NULL;
-
-    if ( !iPinQueryDialogDeleted )
+    /*
+    if( !iPinQueryDialogDeleted )
         {
         delete iPinQueryDialog;
         iPinQueryDialogDeleted = ETrue;
         }
     iPinQueryDialog = NULL;
+    */
 
     // Complete message if it has not been completed earlier.
     if( !iMessagePtr.IsNull() )
@@ -2477,10 +2551,12 @@
 //
 void CCTSecurityDialogsAO::DoHandleSaveServerCertL()
     {
+    TRACE( "CCTSecurityDialogsAO::DoHandleSaveServerCertL" );
+
     if ( iTrustedSiteCertStore )
         {
         iTrustedSiteCertStore->Add( *iCertLabel, EX509Certificate,
-                                EPeerCertificate, NULL, NULL, *iCertBuf, iStatus );
+            EPeerCertificate, NULL, NULL, *iCertBuf, iStatus );
 
         // Next step is to update trust site db
         iNextStep = EAddTrustedSite;
@@ -2511,3 +2587,14 @@
         }
     }
 
+void CCTSecurityDialogsAO::ShowInformationNoteL( TInt aResourceID ) const
+    {
+    HBufC* buffer = CEikonEnv::Static()->AllocReadResourceLC( aResourceID );
+    CHbDeviceMessageBoxSymbian* iMessageBox = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EInformation);
+    CleanupStack::PushL(iMessageBox);
+    iMessageBox->SetTextL(buffer->Des());
+    iMessageBox->SetTimeout(6000);
+    iMessageBox->ExecL();
+    CleanupStack::PopAndDestroy(iMessageBox);
+    CleanupStack::PopAndDestroy( buffer );
+    }