201033_01
authorhgs
Fri, 20 Aug 2010 11:27:50 +0300
changeset 48 6ed68423b759
parent 44 eb08ec9af6e4
child 53 25dd1e8b2663
201033_01
cpsecplugins/devicelockplugin/src/cpdevicelockpluginview.cpp
gba/gbaserver/inc/dataretriever.h
gba/gbaserver/src/dataretriever.cpp
gba/sis/gba.pkg
gba/sis/gba_stub.pkg
gba/sis/gba_stub.sis
pkiutilities/group/bld.inf
pkiutilities/securitydialognotifier/data/20031DB3.rss
pkiutilities/securitydialognotifier/group/bld.inf
pkiutilities/securitydialognotifier/group/securitydialognotifier.mmp
pkiutilities/securitydialognotifier/inc/securitydialognotifier.h
pkiutilities/securitydialognotifier/inc/securitydialognotifiersrv.h
pkiutilities/securitydialognotifier/inc/securitydialogs.h
pkiutilities/securitydialognotifier/inc/securitydialogstrace.h
pkiutilities/securitydialognotifier/rom/securitydialognotifier.iby
pkiutilities/securitydialognotifier/src/securitydialogmain.cpp
pkiutilities/securitydialognotifier/src/securitydialognotifier.cpp
pkiutilities/securitydialognotifier/src/securitydialognotifiersrv.cpp
pkiutilities/securitydialognotifier/src/securitydialogs.cpp
pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/srvauthfaildlglauncher.cpp
pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/srvauthfaildlglauncher.h
pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/srvauthfaildlglauncher.iby
pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/srvauthfaildlglauncher.pkg
pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/srvauthfaildlglauncher.pro
pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/srvauthfaildlglaunchermain.cpp
pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/IntermediateCert.cer
pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/RootCert.cer
pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert1.cer
pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert2_noCN.cer
pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert3_exp.cer
pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert4_exp2.cer
pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert5_alg.cer
pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert6_key.cer
pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert8_aia.cer
pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert9_san.cer
pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/SevverCert7_ocsp.cer
pkiutilities/securitydialognotifiersrv/group/bld.inf
pkiutilities/securitydialognotifiersrv/group/securitydialognotifiersrv.mmp
pkiutilities/securitydialognotifiersrv/inc/securitydialognotifierserver.h
pkiutilities/securitydialognotifiersrv/inc/securitydialognotifierservername.h
pkiutilities/securitydialognotifiersrv/inc/securitydialognotifiersession.h
pkiutilities/securitydialognotifiersrv/inc/securitydialogoperation.h
pkiutilities/securitydialognotifiersrv/inc/securitydialogoperationobserver.h
pkiutilities/securitydialognotifiersrv/inc/securitydialogoperserverauthfail.h
pkiutilities/securitydialognotifiersrv/inc/securitydialogstrace.h
pkiutilities/securitydialognotifiersrv/inc/untrustedcertquery.h
pkiutilities/securitydialognotifiersrv/rom/securitydialognotifiersrv.iby
pkiutilities/securitydialognotifiersrv/src/securitydialognotifierserver.cpp
pkiutilities/securitydialognotifiersrv/src/securitydialognotifierservermain.cpp
pkiutilities/securitydialognotifiersrv/src/securitydialognotifiersession.cpp
pkiutilities/securitydialognotifiersrv/src/securitydialogoperation.cpp
pkiutilities/securitydialognotifiersrv/src/securitydialogoperserverauthfail.cpp
pkiutilities/securitydialognotifiersrv/src/untrustedcertquery.cpp
pkiutilities/untrustedcertificatedialog/src/untrustedcertificatewidget.cpp
securitydialogs/Autolock/Autolock.pro
securitydialogs/Autolock/bld.inf
securitydialogs/Autolock/conf/lock.confml
securitydialogs/Autolock/conf/lock_10283322.crml
securitydialogs/Autolock/rom/Autolock.iby
securitydialogs/SecUi/Src/SecUiSecurityHandler.cpp
securitydialogs/SecUi/Src/SecUiSecuritySettings.cpp
securitydialogs/secuinotifications/secuinotificationdialogplugin/src/secuinotificationdialogplugin.cpp
--- a/cpsecplugins/devicelockplugin/src/cpdevicelockpluginview.cpp	Wed Aug 11 12:39:55 2010 +0300
+++ b/cpsecplugins/devicelockplugin/src/cpdevicelockpluginview.cpp	Fri Aug 20 11:27:50 2010 +0300
@@ -380,7 +380,7 @@
         {
 				RDEBUG("mHack", mHack);
         //The following If-Else condition should be removed once orbit team fix the issue with datachanged() signal
-        /****************************************************************************************************************/
+        /****************************************************************************************************************
         if ((mHack % 2) == 0) //need to capture second datachanged() signal , not first one.
             {
             mHack++;
--- a/gba/gbaserver/inc/dataretriever.h	Wed Aug 11 12:39:55 2010 +0300
+++ b/gba/gbaserver/inc/dataretriever.h	Fri Aug 20 11:27:50 2010 +0300
@@ -26,7 +26,7 @@
 #include <http.h>
 #include <es_sock.h> 
 #include <commdbconnpref.h>
-#include <cmmanagerext.h>
+#include <cmmanager.h>
 #include <hash.h>
 #include "M3GPPAuthenticationCallback.h"
 
@@ -147,7 +147,7 @@
           RSocketServ               iSockServ;
           C3GPPBootstrapHttpHandler* iHttpHandler;          // we own this    
           MBootstrapCallBack*       iBootstrapCallBack;     // don't own this
-          RCmManagerExt             iCmManagerExt;
+          RCmManager             	iCmManager;
     };
 
 
--- a/gba/gbaserver/src/dataretriever.cpp	Wed Aug 11 12:39:55 2010 +0300
+++ b/gba/gbaserver/src/dataretriever.cpp	Fri Aug 20 11:27:50 2010 +0300
@@ -21,10 +21,9 @@
 #include <commdb.h>
 #include <es_enum.h>
 #include <centralrepository.h>
-#include <cmconnectionmethodext.h>
 #include <cmconnectionmethoddef.h>
 #include <cmpluginpacketdatadef.h>
-#include <cmdestinationext.h>
+#include <cmdestination.h>
 #include <http/thttpevent.h>
 #include "dataretriever.h"
 #include "GbaCommon.h"
@@ -103,7 +102,7 @@
     {
     iHttpHandler = C3GPPBootstrapHttpHandler::NewL( this, iBootstrapCallBack );
     iInternalState = EReadyForRequest;
-    iCmManagerExt.OpenL();
+    iCmManager.OpenL();
     }
 
 
@@ -120,7 +119,7 @@
     iHTTPSession.Close();
     iConnection.Close();
     iSockServ.Close();
-    iCmManagerExt.Close();
+    iCmManager.Close();
     
     if ( iInternalState == EMakeRequestCalled )
         {
@@ -356,11 +355,11 @@
         RArray<TUint32> destIdArray;
         CleanupClosePushL( destIdArray );
         CleanupCounter++;
-        iCmManagerExt.AllDestinationsL( destIdArray );
+        iCmManager.AllDestinationsL( destIdArray );
 
         for ( TInt i = 0; i< destIdArray.Count(); i++ )
            {
-           RCmDestinationExt dest = iCmManagerExt.DestinationL( destIdArray[i] );
+           RCmDestination dest = iCmManager.DestinationL( destIdArray[i] );
            CleanupClosePushL( dest );
            CleanupCounter++;
          
@@ -409,11 +408,11 @@
     RArray<TUint32> destIdArray;
     CleanupClosePushL( destIdArray );
     CleanupCounter++;
-    iCmManagerExt.AllDestinationsL( destIdArray );
+    iCmManager.AllDestinationsL( destIdArray );
 
     for ( TInt i = 0; i< destIdArray.Count(); i++ )
          {
-         RCmDestinationExt dest = iCmManagerExt.DestinationL( destIdArray[i] );
+         RCmDestination dest = iCmManager.DestinationL( destIdArray[i] );
          CleanupClosePushL( dest );
          CleanupCounter++;
          
--- a/gba/sis/gba.pkg	Wed Aug 11 12:39:55 2010 +0300
+++ b/gba/sis/gba.pkg	Fri Aug 20 11:27:50 2010 +0300
@@ -17,7 +17,7 @@
 &EN
 
 ; Header
-#{"GBA"},(0x20029F08), 1, 0, 0, TYPE=SA,RU
+#{"GBA"},(0x20029F08), 1, 1, 0, TYPE=SA,RU
 
 ; Localised Vendor name
 %{"Nokia"}
@@ -27,8 +27,8 @@
 
 "..\data\gba_license.txt"-"", FT, TA
 
-; Product dependency for Series 60 v5.1
-  [0x10283160], 0, 0, 0, {"Series60ProductID"}   
+; Product dependency for Symbian^4
+  [0x20032DE7], 0, 0, 0, {"Series60ProductID"}   
 
 ; Files to install
 
--- a/gba/sis/gba_stub.pkg	Wed Aug 11 12:39:55 2010 +0300
+++ b/gba/sis/gba_stub.pkg	Fri Aug 20 11:27:50 2010 +0300
@@ -17,7 +17,7 @@
 &EN
 
 ; Header
-#{"GBA"}, (0x20029F08), 1, 0, 0, TYPE=SA
+#{"GBA"}, (0x20029F08), 1, 1, 0, TYPE=SA
 
 ; Localised Vendor name
 %{"Nokia"}
Binary file gba/sis/gba_stub.sis has changed
--- a/pkiutilities/group/bld.inf	Wed Aug 11 12:39:55 2010 +0300
+++ b/pkiutilities/group/bld.inf	Fri Aug 20 11:27:50 2010 +0300
@@ -18,9 +18,10 @@
 
 #include "../x509certnameparser/group/bld.inf"
 #include "../PKCS12/group/bld.inf"
-#include "../CTSecurityDialogs/Group/bld.inf"
 #include "../CertSaver/group/bld.inf"
 #include "../DeviceToken/Group/bld.inf"
+#include "../securitydialognotifier/group/bld.inf"
+#include "../securitydialognotifiersrv/group/bld.inf"
 
 //Stub SIS
 PRJ_EXPORTS
@@ -30,8 +31,6 @@
 // export iby files
 ../rom/x509certnameparser.iby   CORE_MW_LAYER_IBY_EXPORT_PATH( x509certnameparser.iby )
 ../rom/pkcs12.iby               CORE_MW_LAYER_IBY_EXPORT_PATH( pkcs12.iby )
-../rom/CTSecurityDialogs.iby    CORE_MW_LAYER_IBY_EXPORT_PATH( CTSecurityDialogs.iby )
-../rom/CTSecurityDialogs_resources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH( CTSecurityDialogs_resources.iby )
 ../rom/certmanui_resources.iby  LANGUAGE_MW_LAYER_IBY_EXPORT_PATH( certmanui_resources.iby )    // needed by CTSecurityDialogs
 ../rom/CertSaver.iby            CORE_MW_LAYER_IBY_EXPORT_PATH( CertSaver.iby )
 ../rom/CertSaver_resources.iby  LANGUAGE_MW_LAYER_IBY_EXPORT_PATH( CertSaver_resources.iby )
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifier/data/20031DB3.rss	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Security dialog notifier plug-in resource file.
+*
+*/
+
+
+#include <ecom/registryinfov2.rh>
+#include <uikon.hrh>
+
+RESOURCE REGISTRY_INFO r_registry
+	{
+	resource_format_version = RESOURCE_FORMAT_VERSION_2;
+	dll_uid = 0x20031DB3;
+	interfaces =
+		{
+		INTERFACE_INFO
+			{
+			interface_uid = KUikonUidPluginInterfaceNotifiers;
+			implementations =
+				{
+				IMPLEMENTATION_INFO
+					{
+					implementation_uid = 0x101F883C;
+					version_no = 1;
+					display_name = "SecurityDialogs Plugin";
+					default_data = "SecurityDialogs";    
+					opaque_data = "0";
+					rom_only = 1;
+					}
+				};
+			}
+		};
+	} 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifier/group/bld.inf	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Security dialog notifier
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+../rom/securitydialognotifier.iby   CORE_MW_LAYER_IBY_EXPORT_PATH( securitydialognotifier.iby )
+
+PRJ_MMPFILES
+securitydialognotifier.mmp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifier/group/securitydialognotifier.mmp	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Security dialog notifier
+*
+*/
+
+#include <platform_paths.hrh>
+
+TARGET          securitydialognotifier.dll
+CAPABILITY      CAP_ECOM_PLUGIN
+TARGETTYPE      PLUGIN 
+UID             0x10009D8D 0x20031DB3
+VENDORID        VID_DEFAULT
+
+SOURCEPATH      ../data
+START RESOURCE  20031DB3.rss
+TARGET          securitydialognotifier.rsc
+END
+
+MW_LAYER_SYSTEMINCLUDE /epoc32/include/mw/hb/hbcore /epoc32/include/mw/hb/hbwidgets
+USERINCLUDE     ../inc
+
+SOURCEPATH      ../src
+SOURCE          securitydialogmain.cpp
+SOURCE          securitydialognotifier.cpp
+SOURCE          securitydialognotifiersrv.cpp
+SOURCE          securitydialogs.cpp
+
+LIBRARY         euser.lib
+LIBRARY         eiksrv.lib
+LIBRARY         ctframework.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifier/inc/securitydialognotifier.h	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,57 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Security dialog notifier
+*
+*/
+
+#ifndef SECURITYDIALOGNOTIFIER_H
+#define SECURITYDIALOGNOTIFIER_H
+
+#include <eiknotapi.h>                  // MEikSrvNotifierManager
+
+class CSecurityDialogs;
+
+
+/**
+ * Security Dialog Notifier
+ * CSecurityDialogNotifier is a RNotifier that implements security dialogs
+ * defined in secdlgimpldefs.h (see TSecurityDialogOperation operations).
+ */
+NONSHARABLE_CLASS( CSecurityDialogNotifier ) : public CBase, public MEikSrvNotifierBase2
+    {
+    public:     // constructors and destructor
+        static CSecurityDialogNotifier* NewL();
+        ~CSecurityDialogNotifier();
+
+    private:    // from MEikSrvNotifierBase2
+        void Release();
+        TNotifierInfo RegisterL();
+        TNotifierInfo Info() const;
+        void StartL( const TDesC8& aBuffer, TInt aReplySlot, const RMessagePtr2& aMessage );
+        TPtrC8 StartL( const TDesC8& aBuffer );
+        void Cancel();
+        TPtrC8 UpdateL( const TDesC8& aBuffer );
+
+    private:    // new functions
+        CSecurityDialogNotifier();
+        void ConstructL();
+        void DoStartL( const TDesC8& aBuffer, TInt aReplySlot, const RMessagePtr2& aMessage );
+
+    private:    // data
+        CSecurityDialogs* iSecurityDialogs;
+        TBool iIsSecurityDialogsDeleted;
+    };
+
+#endif // SECURITYDIALOGNOTIFIER_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifier/inc/securitydialognotifiersrv.h	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Security dialog notifier server, client-side API.
+*
+*/
+
+#ifndef SECURITYDIALOGNOTIFIERSRV_H
+#define SECURITYDIALOGNOTIFIERSRV_H
+
+#include <e32std.h>             // RSessionBase
+#include <secdlgimpldefs.h>     // TSecurityDialogOperation
+
+
+/**
+ * Security Dialog Notifier Server API
+ * Security dialogs provide TSecurityDialogOperation functionality defined in secdlgimpldefs.h.
+ * Implementation consist of two components: a notifier DLL (CSecurityDialogNotifier, ECom DLL)
+ * and a server executable (CSecurityDialogNotifierSrv). CSecurityDialogNotifier runs in UIKON
+ * server that has limited capabilities. It passes the requests to the server component
+ * (CSecurityDialogNotifierSrv) that provides the actual functionality.
+ */
+NONSHARABLE_CLASS( RSecurityDialogNotifierSrv ) : public RSessionBase
+    {
+    public:     // constructors and destructor
+        RSecurityDialogNotifierSrv();
+        ~RSecurityDialogNotifierSrv();
+
+    public:     // new functions
+        TInt Connect();
+        TVersion Version() const;
+        void SecurityDialogOperation( TSecurityDialogOperation aOperation,
+                const TDesC8& aInputBuffer, TDes8& aOutputBuffer,
+                TRequestStatus& aStatus );
+        void CancelOperation();
+
+    private:    // new functions
+        TInt StartServer();
+
+    private:    // data
+        TIpcArgs iArgs;
+    };
+
+#endif // SECURITYDIALOGNOTIFIERSRV_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifier/inc/securitydialogs.h	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,72 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  CSecurityDialogs active object
+*
+*/
+
+#ifndef SECURITYDIALOGS_H
+#define SECURITYDIALOGS_H
+
+#include <e32base.h>                    // CActive
+#include <secdlgimpldefs.h>             // TSecurityDialogOperation
+#include "securitydialognotifiersrv.h"  // RSecurityDialogNotifierSrv
+
+
+/**
+ * Security Dialogs
+ * CSecurityDialogs class provides implementation for the security dialog
+ * operations (TSecurityDialogOperation) defined in secdlgimpldefs.h.
+ * When RNotifier class is used to open security dialogs, CSecurityDialogNotifier
+ * class calls CSecurityDialogs to show the requested dialogs. CSecurityDialogs
+ * uses RSecurityDialogNotifierSrv server to do the actual work.
+ */
+NONSHARABLE_CLASS( CSecurityDialogs ) : public CActive
+    {
+    public:     // constructors and destructor
+        static CSecurityDialogs* NewL( TBool& aIsDeleted );
+        ~CSecurityDialogs();
+
+    public:     // new functions
+        /**
+        * Starts handling the requested operation.
+        * @param aBuffer - Data passed from client RNotifier::StartNotifierAndGetResponse() call
+        * @param aReplySlot - Identifies which message argument to use for the reply
+        * @param aMessage - Encapsulates the client request
+        */
+        void StartLD( const TDesC8& aBuffer, TInt aReplySlot, const RMessagePtr2& aMessage );
+
+    protected:  // from CActive
+        void RunL();
+        void DoCancel();
+        TInt RunError( TInt aError );
+
+    private:    // new functions
+        CSecurityDialogs( TBool& aIsDeleted );
+
+    private:    // data
+        TBool& iIsDeleted;
+
+        TInt iRetry;
+        TInt iReplySlot;
+        RMessagePtr2 iMessagePtr;
+        TSecurityDialogOperation iOperation;
+
+        RSecurityDialogNotifierSrv iServer;
+        HBufC8* iInputBuffer;
+        TAny* iOutputBuffer;
+        TPtr8 iOutputPtr;
+    };
+
+#endif  // SECURITYDIALOGS_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifier/inc/securitydialogstrace.h	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,50 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  TRACE macros for security dialogs
+*
+*/
+
+#ifndef SECURITYDIALOGSTRACE_H
+#define SECURITYDIALOGSTRACE_H
+
+#include <e32debug.h>                   // RDebug
+
+
+// TODO: replace with OST tracing
+#ifdef _DEBUG
+#define TRACE( a, ARGS... ) DebugPrint( _L( a ), ##ARGS )
+#else
+#define TRACE( a, ARGS... )
+#endif
+
+
+// ---------------------------------------------------------------------------
+// DebugPrint()
+// ---------------------------------------------------------------------------
+//
+#ifdef _DEBUG
+const TInt KMaxPrintSize = 256;
+inline void DebugPrint( TRefByValue<const TDesC> aFmt, ... )
+    {
+    VA_LIST list;
+    VA_START( list, aFmt );
+    TBuf<KMaxPrintSize> buf;
+    buf.AppendFormatList( aFmt, list );
+    RDebug::Print( buf );
+    }
+#endif
+
+
+#endif  // SECURITYDIALOGSTRACE_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifier/rom/securitydialognotifier.iby	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Security dialog notifier
+*
+*/
+
+#ifndef SECURITYDIALOGNOTIFIER_IBY
+#define SECURITYDIALOGNOTIFIER_IBY
+#include <bldvariant.hrh>
+
+ECOM_PLUGIN( securitydialognotifier.dll, securitydialognotifier.rsc )
+
+#endif // SECURITYDIALOGNOTIFIER_IBY
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifier/src/securitydialogmain.cpp	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,80 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Security Dialog notifier entry point
+*
+*/
+
+#include "securitydialognotifier.h"         // CSecurityDialogNotifier
+#include <ecom/implementationproxy.h>       // TImplementationProxy definition
+
+const TInt KNumberOfImplementations = 1;
+
+
+// ----------------------------------------------------------------------------
+// CreateNotifiersL()
+// ----------------------------------------------------------------------------
+//
+void CreateNotifiersL( CArrayPtr<MEikSrvNotifierBase2>& aNotifierArray )
+    {
+    CSecurityDialogNotifier* notifier = CSecurityDialogNotifier::NewL();
+    CleanupStack::PushL( notifier );
+    aNotifierArray.AppendL( notifier );
+    CleanupStack::Pop( notifier );
+    }
+
+// ----------------------------------------------------------------------------
+// NotifierArray()
+// ----------------------------------------------------------------------------
+//
+CArrayPtr<MEikSrvNotifierBase2>* NotifierArray()
+    {
+    CArrayPtr<MEikSrvNotifierBase2>* notifierArray =
+        new CArrayPtrFlat<MEikSrvNotifierBase2>( KNumberOfImplementations );
+    if( notifierArray )
+        {
+        TRAPD( err, CreateNotifiersL( *notifierArray ) );
+        if( err )
+            {
+            TInt count = notifierArray->Count();
+            while( count-- )
+                {
+                (*notifierArray)[ count ]->Release();
+                }
+            delete notifierArray;
+            notifierArray = NULL;
+            }
+        }
+    return notifierArray;
+    }
+
+// ----------------------------------------------------------------------------
+// Provides a key value pair table, that ECOM uses to identify
+// the correct construction function for the requested interface.
+// ----------------------------------------------------------------------------
+//
+const TImplementationProxy ImplementationTable[] =
+    {
+    // UID is the implementation uid defined in .rss file
+    IMPLEMENTATION_PROXY_ENTRY( 0x101F883C, NotifierArray )
+    };
+
+// ----------------------------------------------------------------------------
+// Main entry function used to return an instance of the proxy table.
+// ----------------------------------------------------------------------------
+//
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
+    {
+    aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
+    return ImplementationTable;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifier/src/securitydialognotifier.cpp	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,169 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Security dialog notifier
+*
+*/
+
+#include "securitydialognotifier.h"     // CSecurityDialogNotifier
+#include "securitydialogs.h"            // CSecurityDialogs
+#include "securitydialogstrace.h"       // TRACE macro
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifier::~CSecurityDialogNotifier()
+// ---------------------------------------------------------------------------
+//
+CSecurityDialogNotifier::~CSecurityDialogNotifier()
+    {
+    TRACE( "CSecurityDialogNotifier::~CSecurityDialogNotifier" );
+    Cancel();
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifier::NewL()
+// ---------------------------------------------------------------------------
+//
+CSecurityDialogNotifier* CSecurityDialogNotifier::NewL()
+    {
+    CSecurityDialogNotifier* self = new( ELeave ) CSecurityDialogNotifier;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifier::Release()
+// ---------------------------------------------------------------------------
+//
+void CSecurityDialogNotifier::Release()
+    {
+    TRACE( "CSecurityDialogNotifier::Release" );
+    delete this;
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifier::RegisterL()
+// ---------------------------------------------------------------------------
+//
+CSecurityDialogNotifier::TNotifierInfo CSecurityDialogNotifier::RegisterL()
+    {
+    return Info();
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifier::Info()
+// ---------------------------------------------------------------------------
+//
+CSecurityDialogNotifier::TNotifierInfo CSecurityDialogNotifier::Info() const
+    {
+    TNotifierInfo info;
+    info.iUid = KUidSecurityDialogNotifier;
+    info.iChannel = KUidSecurityDialogNotifier;
+    info.iPriority = ENotifierPriorityAbsolute;
+    return info;
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifier::StartL()
+// ---------------------------------------------------------------------------
+//
+void CSecurityDialogNotifier::StartL( const TDesC8& aBuffer, TInt aReplySlot,
+        const RMessagePtr2& aMessage )
+    {
+    TRACE( "CSecurityDialogNotifier::StartL, begin" );
+
+    TRAPD( err, DoStartL( aBuffer, aReplySlot, aMessage ) );
+    TRACE( "CSecurityDialogNotifier::StartL, DoStartL err=%d", err );
+    if( err )
+        {
+        if( iSecurityDialogs && !iIsSecurityDialogsDeleted )
+            {
+            TRACE( "CSecurityDialogNotifier::StartL, deleting iSecurityDialogs" );
+            delete iSecurityDialogs;
+            iSecurityDialogs = NULL;
+            }
+        if( !aMessage.IsNull() )
+            {
+            TRACE( "CSecurityDialogNotifier::StartL, completing message" );
+            aMessage.Complete( err );
+            }
+        }
+
+    TRACE( "CSecurityDialogNotifier::StartL, end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifier::StartL()
+// ---------------------------------------------------------------------------
+//
+TPtrC8 CSecurityDialogNotifier::StartL( const TDesC8& /*aBuffer*/ )
+    {
+    return KNullDesC8();
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifier::Cancel()
+// ---------------------------------------------------------------------------
+//
+void CSecurityDialogNotifier::Cancel()
+    {
+    TRACE( "CSecurityDialogNotifier::Cancel" );
+    if( iSecurityDialogs && !iIsSecurityDialogsDeleted )
+        {
+        TRACE( "CSecurityDialogNotifier::Cancel, deleting iSecurityDialogs" );
+        delete iSecurityDialogs;
+        iSecurityDialogs = NULL;
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifier::UpdateL()
+// ---------------------------------------------------------------------------
+//
+TPtrC8 CSecurityDialogNotifier::UpdateL( const TDesC8& /*aBuffer*/ )
+    {
+    return KNullDesC8();
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifier::CSecurityDialogNotifier()
+// ---------------------------------------------------------------------------
+//
+CSecurityDialogNotifier::CSecurityDialogNotifier()
+    {
+    TRACE( "CSecurityDialogNotifier::CSecurityDialogNotifier" );
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifier::ConstructL()
+// ---------------------------------------------------------------------------
+//
+void CSecurityDialogNotifier::ConstructL()
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifier::DoStartL()
+// ---------------------------------------------------------------------------
+//
+void CSecurityDialogNotifier::DoStartL( const TDesC8& aBuffer, TInt aReplySlot,
+        const RMessagePtr2& aMessage )
+    {
+    iSecurityDialogs = CSecurityDialogs::NewL( iIsSecurityDialogsDeleted );
+    iSecurityDialogs->StartLD( aBuffer, aReplySlot, aMessage );
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifier/src/securitydialognotifiersrv.cpp	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,148 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Security dialog notifier server, client-side API.
+*
+*/
+
+#include "securitydialognotifiersrv.h"      // RSecurityDialogNotifierSrv
+#include "../../securitydialognotifiersrv/inc/securitydialognotifierservername.h"
+#include "securitydialogstrace.h"           // TRACE macro
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// RSecurityDialogNotifierSrv::RSecurityDialogNotifierSrv()
+// ---------------------------------------------------------------------------
+//
+RSecurityDialogNotifierSrv::RSecurityDialogNotifierSrv()
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// RSecurityDialogNotifierSrv::~RSecurityDialogNotifierSrv()
+// ---------------------------------------------------------------------------
+//
+RSecurityDialogNotifierSrv::~RSecurityDialogNotifierSrv()
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// RSecurityDialogNotifierSrv::Connect()
+// ---------------------------------------------------------------------------
+//
+TInt RSecurityDialogNotifierSrv::Connect()
+    {
+    TRACE( "RSecurityDialogNotifierSrv::Connect" );
+    const TInt KMaxCreateSessionAttepmts = 2;
+    TInt retry = KMaxCreateSessionAttepmts;
+    FOREVER
+        {
+        TInt err = CreateSession( KSecurityDialogNotifierServerName, Version() );
+        TRACE( "RSecurityDialogNotifierSrv::Connect, create session err=%d", err );
+        if( err != KErrNotFound && err != KErrServerTerminated )
+            {
+            return err;
+            }
+
+        if( --retry == 0 )
+            {
+            return err;
+            }
+
+        err = StartServer();
+        if( err != KErrNone && err != KErrAlreadyExists )
+            {
+            return err;
+            }
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// RSecurityDialogNotifierSrv::Version()
+// ---------------------------------------------------------------------------
+//
+TVersion RSecurityDialogNotifierSrv::Version() const
+    {
+    return TVersion( KSecurityDialogNotifierServerMajorVersionNumber,
+            KSecurityDialogNotifierServerMinorVersionNumber,
+            KSecurityDialogNotifierServerBuildVersionNumber );
+    }
+
+// ---------------------------------------------------------------------------
+// RSecurityDialogNotifierSrv::SecurityDialogOperationL()
+// ---------------------------------------------------------------------------
+//
+void RSecurityDialogNotifierSrv::SecurityDialogOperation(
+        TSecurityDialogOperation aOperation,
+        const TDesC8& aInputBuffer, TDes8& aOutputBuffer,
+        TRequestStatus& aStatus )
+    {
+    TRACE( "RSecurityDialogNotifierSrv::SecurityDialogOperation" );
+    iArgs = TIpcArgs( &aInputBuffer, &aOutputBuffer );
+    SendReceive( aOperation, iArgs, aStatus );
+    }
+
+// ---------------------------------------------------------------------------
+// RSecurityDialogNotifierSrv::CancelOperation()
+// ---------------------------------------------------------------------------
+//
+void RSecurityDialogNotifierSrv::CancelOperation()
+    {
+    TRACE( "RSecurityDialogNotifierSrv::CancelOperation" );
+    SendReceive( KSecurityDialogCancelOperation );
+    }
+
+// ---------------------------------------------------------------------------
+// RSecurityDialogNotifierSrv::StartServer()
+// ---------------------------------------------------------------------------
+//
+TInt RSecurityDialogNotifierSrv::StartServer()
+{
+    TRACE( "RSecurityDialogNotifierSrv::StartServer, begin" );
+    RProcess server;
+    TInt err = server.Create( KSecurityDialogNotifierServerName, KNullDesC );
+    if( err )
+        {
+        TRACE( "RSecurityDialogNotifierSrv::StartServer, create failed, err=%d", err );
+        return err;
+        }
+
+    TRequestStatus status;
+    server.Rendezvous( status );
+    if( status == KRequestPending )
+        {
+        server.Resume();
+        }
+    else
+        {
+        server.Kill( KErrNone );
+        }
+
+    TRACE( "RSecurityDialogNotifierSrv::StartServer, waiting rendezvous" );
+    User::WaitForRequest( status );
+    if( server.ExitType() == EExitPanic )
+        {
+        err = KErrGeneral;
+        }
+    else
+        {
+        err = status.Int();
+        }
+    server.Close();
+
+    TRACE( "RSecurityDialogNotifierSrv::StartServer, end err=%d", err );
+    return err;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifier/src/securitydialogs.cpp	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,187 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  CSecurityDialogs active object
+*
+*/
+
+#include "securitydialogs.h"            // CSecurityDialogs
+#include "securitydialogstrace.h"       // TRACE macro
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogs::NewL()
+// ---------------------------------------------------------------------------
+//
+CSecurityDialogs* CSecurityDialogs::NewL(  TBool& aIsDeleted )
+    {
+    return new( ELeave ) CSecurityDialogs( aIsDeleted );
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogs::~CSecurityDialogs()
+// ---------------------------------------------------------------------------
+//
+CSecurityDialogs::~CSecurityDialogs()
+    {
+    TRACE( "CSecurityDialogs::~CSecurityDialogs, begin" );
+    Cancel();
+    iServer.Close();
+    delete iInputBuffer;
+    iInputBuffer = NULL;
+    delete iOutputBuffer;
+    iOutputBuffer = NULL;
+    iIsDeleted = ETrue;
+    TRACE( "CSecurityDialogs::~CSecurityDialogs, end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogs::StartLD()
+// ---------------------------------------------------------------------------
+//
+void CSecurityDialogs::StartLD( const TDesC8& aBuffer, TInt aReplySlot,
+        const RMessagePtr2& aMessage )
+    {
+    TRACE( "CSecurityDialogs::StartLD, begin" );
+    User::LeaveIfError( iServer.Connect() );
+
+    const TInt* ptr = reinterpret_cast< const TInt* >( aBuffer.Ptr() );
+    iOperation = static_cast< TSecurityDialogOperation >( *ptr & KSecurityDialogOperationMask );
+    iReplySlot = aReplySlot;
+
+    TRACE( "CSecurityDialogs::StartLD, message 0x%08x", iMessagePtr.Handle() );
+    iMessagePtr = aMessage;
+
+    TRACE( "CSecurityDialogs::StartLD, iOperation=%d", iOperation );
+    __ASSERT_DEBUG( iOutputBuffer == NULL, User::Invariant() );
+    TInt outputBufLen = 0;
+    switch( iOperation )
+        {
+        case ESecureConnection:
+        case ESignText:
+            iOutputBuffer = new( ELeave ) TCTTokenObjectHandleBuf;
+            outputBufLen = sizeof( TCTTokenObjectHandleBuf );
+            break;
+        case EEnterPIN:
+        case EEnablePIN:
+        case EDisablePIN:
+            iOutputBuffer = new( ELeave ) TPINValueBuf;
+            outputBufLen = sizeof( TPINValueBuf );
+            break;
+        case EChangePIN:
+        case EUnblockPIN:
+            iOutputBuffer = new( ELeave ) TTwoPINOutputBuf;
+            outputBufLen = sizeof( TTwoPINOutputBuf );
+            break;
+        case EPINBlocked:
+        case ETotalBlocked:
+            break;
+        case EUnblockPINInClear:
+            iOutputBuffer = new( ELeave ) TUnblockPINInClearOutputBuf;
+            outputBufLen = sizeof( TUnblockPINInClearOutputBuf );
+            break;
+        case EServerAuthenticationFailure:
+            iOutputBuffer = new( ELeave ) TServerAuthenticationFailureOutputBuf;
+            outputBufLen = sizeof( TServerAuthenticationFailureOutputBuf );
+            break;
+        default:
+            User::Leave( KErrNotSupported );
+            break;
+        }
+
+    __ASSERT_DEBUG( iInputBuffer == NULL, User::Invariant() );
+    iInputBuffer = aBuffer.AllocL();
+
+    if( iOutputBuffer )
+        {
+        iOutputPtr.Set( static_cast< TUint8* >( iOutputBuffer ), outputBufLen, outputBufLen );
+        iServer.SecurityDialogOperation( iOperation, *iInputBuffer, iOutputPtr, iStatus );
+        }
+    else
+        {
+        User::Leave( KErrNotSupported );
+        }
+    SetActive();
+    TRACE( "CSecurityDialogs::StartLD, end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogs::RunL()
+// ---------------------------------------------------------------------------
+//
+void CSecurityDialogs::RunL()
+    {
+    TRACE( "CSecurityDialogs::RunL, iStatus.Int()=%d", iStatus.Int() );
+    TInt error = iStatus.Int();
+    User::LeaveIfError( error );
+    __ASSERT_DEBUG( iOutputPtr.Ptr(), User::Invariant() );
+    iMessagePtr.WriteL( iReplySlot, iOutputPtr );
+
+    TRACE( "CSecurityDialogs::RunL, completing message 0x%08x", iMessagePtr.Handle() );
+    iMessagePtr.Complete( error );
+
+    TRACE( "CSecurityDialogs::RunL, deleting this" );
+    delete this;
+    TRACE( "CSecurityDialogs::RunL, end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogs::DoCancel()
+// ---------------------------------------------------------------------------
+//
+void CSecurityDialogs::DoCancel()
+    {
+    TRACE( "CSecurityDialogs::DoCancel, begin" );
+    iServer.CancelOperation();
+    if( !iMessagePtr.IsNull() )
+        {
+        TRACE( "CSecurityDialogs::DoCancel, completing message 0x%08x", iMessagePtr.Handle() );
+        iMessagePtr.Complete( KErrCancel );
+        }
+    TRACE( "CSecurityDialogs::DoCancel(), end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogs::RunError()
+// ---------------------------------------------------------------------------
+//
+TInt CSecurityDialogs::RunError( TInt aError )
+    {
+    TRACE( "CSecurityDialogs::RunError, aError=%d", aError );
+    if( !iMessagePtr.IsNull() )
+        {
+        TRACE( "CSecurityDialogs::RunError, completing message 0x%08x", iMessagePtr.Handle() );
+        iMessagePtr.Complete( aError );
+        }
+
+    TRACE( "CSecurityDialogs::RunError, deleting this" );
+    delete this;
+
+    TRACE( "CSecurityDialogs::RunError, end" );
+    return KErrNone;
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogs::CSecurityDialogs()
+// ---------------------------------------------------------------------------
+//
+CSecurityDialogs::CSecurityDialogs( TBool& aIsDeleted ) : CActive( CActive::EPriorityLow ),
+        iIsDeleted( aIsDeleted ), iOutputPtr( NULL, 0, 0 )
+    {
+    TRACE( "CSecurityDialogs::CSecurityDialogs" );
+    CActiveScheduler::Add( this );
+    iIsDeleted = EFalse;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/srvauthfaildlglauncher.cpp	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,218 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Test application for untrusted certificate dialog.
+*
+*/
+
+#include "srvauthfaildlglauncher.h"
+#include <HbMainWindow>
+#include <HbView>
+#include <HbLabel>
+#include <HbComboBox>
+#include <HbTextEdit>
+#include <HbCheckBox>
+#include <HbPushButton>
+#include <HbDeviceDialog>
+#include <HbMessageBox>
+#include <QDir>
+#include <QBuffer>
+#include <QGraphicsLinearLayout>
+
+
+#ifdef Q_OS_SYMBIAN
+#include <securitydefs.h>       // TValidationError
+#include <secdlgimpldefs.h>     // TServerAuthenticationFailureInput, KUidSecurityDialogNotifier
+
+HBufC8* GetInputBufferL( const QString& server, const QByteArray& certificate, int reason )
+    {
+    const TPtrC16 serverNameUnicode(reinterpret_cast<const TText*>(server.constData()),
+        server.length());
+    const TPtrC8 encodedCert(reinterpret_cast<const TText8*>(certificate.constData()),
+        certificate.length());
+
+    const TInt KServerNameMaxLength = 512;
+    TBuf8<KServerNameMaxLength> serverName;
+    serverName.Copy(serverNameUnicode);
+
+    TServerAuthenticationFailureInput serverAuthenticationInput;
+    serverAuthenticationInput.iOperation = EServerAuthenticationFailure;
+    serverAuthenticationInput.iFailureReason = static_cast<TValidationError>(reason);
+    serverAuthenticationInput.iServerNameLength = serverName.Length();
+    serverAuthenticationInput.iEncodedCertLength = encodedCert.Length();
+
+    TServerAuthenticationFailureInputBuf inputBuf( serverAuthenticationInput );
+
+    TInt bufferSize = sizeof( inputBuf ) + serverName.Length() + encodedCert.Length();
+    HBufC8* packedBuffer = HBufC8::NewL( bufferSize );
+    TPtr8 packedBufferPtr( packedBuffer->Des() );
+
+    packedBufferPtr.Append( inputBuf );
+    packedBufferPtr.Append( serverName );
+    packedBufferPtr.Append( encodedCert );
+
+    return packedBuffer;
+    }
+
+bool ShowDialogL( const QString& server, const QByteArray& certificate, int reason, bool cancel )
+    {
+    RNotifier notifier;
+    User::LeaveIfError( notifier.Connect() );
+    CleanupClosePushL( notifier );
+
+    HBufC8* buffer = GetInputBufferL( server, certificate, reason );
+    CleanupStack::PushL( buffer );
+
+    TRequestStatus status;
+    TPckgBuf<TServerAuthenticationFailureDialogResult> resultPckg;
+    notifier.StartNotifierAndGetResponse( status, KUidSecurityDialogNotifier,
+        *buffer, resultPckg );
+    if( cancel )
+        {
+        const TInt KTenSecDelay = 10000000;
+        User::After( KTenSecDelay );
+        notifier.CancelNotifier( KUidSecurityDialogNotifier );
+        }
+    User::WaitForRequest( status );
+    User::LeaveIfError( status.Int() );
+
+    CleanupStack::PopAndDestroy( buffer );
+    CleanupStack::PopAndDestroy( &notifier );
+    return( resultPckg() == EContinue );
+    }
+
+#endif  // Q_OS_SYMBIAN
+
+
+const QString KTestCertDir = "c:/data/testCerts";
+
+SrvAuthFailDlgLauncher::SrvAuthFailDlgLauncher(int& argc, char* argv[])
+    : HbApplication(argc, argv), mMainWindow(0), mMainView(0)
+{
+    mMainWindow = new HbMainWindow();
+    mMainView = new HbView();
+    mMainView->setTitle(tr("SrvAuthFailDlgLauncher"));
+
+    QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical);
+
+    layout->addItem(new HbLabel(tr("Server host name:")));
+    mHostName = new HbTextEdit(tr("some.host.com"));
+    layout->addItem(mHostName);
+    layout->addStretch();
+
+    layout->addItem(new HbLabel(tr("Certificate file:")));
+    mFilesList = new HbComboBox;
+    mFilesList->setEditable(false);
+    QDir dir(KTestCertDir);
+    if (dir.exists()) {
+        QFileInfoList list = dir.entryInfoList(QDir::Files);
+        QListIterator<QFileInfo> iter(list);
+        while (iter.hasNext()) {
+            const QFileInfo &info(iter.next());
+            mFilesList->addItem(info.fileName());
+        }
+    }
+    layout->addItem(mFilesList);
+    layout->addStretch();
+
+    layout->addItem(new HbLabel(tr("Validation result:")));
+    mValidationResult = new HbComboBox;
+    QStringList validationResults;
+    validationResults
+	    << "EValidatedOK"
+	    << "EChainHasNoRoot"
+	    << "ESignatureInvalid"
+	    << "EDateOutOfRange"
+	    << "ENameIsExcluded"
+	    << "ENameNotPermitted"
+	    << "ENotCACert"
+	    << "ECertificateRevoked"
+	    << "EUnrecognizedCriticalExtension"
+	    << "ENoBasicConstraintInCACert"
+	    << "ENoAcceptablePolicy"
+	    << "EPathTooLong"
+	    << "ENegativePathLengthSpecified"
+	    << "ENamesDontChain"
+	    << "ERequiredPolicyNotFound"
+	    << "EBadKeyUsage"
+	    << "ERootCertNotSelfSigned"
+	    << "ECriticalExtendedKeyUsage"
+	    << "ECriticalCertPoliciesWithQualifiers"
+	    << "ECriticalPolicyMapping"
+	    << "ECriticalDeviceId"
+	    << "ECriticalSid"
+	    << "ECriticalVid"
+	    << "ECriticalCapabilities";
+    mValidationResult->addItems(validationResults);
+    mValidationResult->setCurrentIndex(1);      // EChainHasNoRoot
+    layout->addItem(mValidationResult);
+    layout->addStretch();
+
+    mCancelShortly = new HbCheckBox("Cancel after 10 seconds");
+    layout->addItem(mCancelShortly);
+
+    HbPushButton *button = 0;
+    button = new HbPushButton("Launch dialog");
+    connect(button, SIGNAL(clicked()), this, SLOT(activateDialog()));
+    layout->addItem(button);
+
+    button = new HbPushButton("Exit");
+    connect(button, SIGNAL(clicked()), qApp, SLOT(quit()));
+    layout->addItem(button);
+
+    mMainView->setLayout(layout);
+    mMainWindow->addView(mMainView);
+    mMainWindow->show();
+}
+
+SrvAuthFailDlgLauncher::~SrvAuthFailDlgLauncher()
+{
+    delete mMainView;
+    delete mMainWindow;
+}
+
+void SrvAuthFailDlgLauncher::activateDialog()
+{
+    QString server = mHostName->toPlainText();
+
+    QString fileName = mFilesList->currentText();
+    QFile file;
+    QDir::setCurrent(KTestCertDir);
+    file.setFileName(fileName);
+    file.open(QIODevice::ReadOnly);
+    QByteArray fileContent = file.readAll();
+    file.close();
+
+    int reason = mValidationResult->currentIndex();
+    bool cancel = mCancelShortly->isChecked();
+
+    int error = 0;
+    bool accepted = false;
+#ifdef Q_OS_SYMBIAN
+    TRAP( error, accepted = ShowDialogL(server, fileContent, reason, cancel) );
+#endif // Q_OS_SYMBIAN
+    if (!error) {
+        if (accepted) {
+            HbMessageBox::information(QString("Accepted"));
+        } else {
+            HbMessageBox::information(QString("Declined"));
+        }
+    } else {
+        if (error == KErrCancel) {
+            HbMessageBox::information(QString("Cancelled"));
+        } else {
+            HbMessageBox::information(QString("Failed, error %1").arg(error));
+        }
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/srvauthfaildlglauncher.h	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Test application for untrusted certificate dialog.
+*
+*/
+
+#ifndef SRVAUTHFAILDLGLAUNCHER_H
+#define SRVAUTHFAILDLGLAUNCHER_H
+
+#include <hbapplication.h>
+
+class HbMainWindow;
+class HbView;
+class HbComboBox;
+class HbTextEdit;
+class HbCheckBox;
+
+
+class SrvAuthFailDlgLauncher : public HbApplication
+{
+    Q_OBJECT
+
+public:     // constructor and destructor
+    SrvAuthFailDlgLauncher(int& argc, char* argv[]);
+    ~SrvAuthFailDlgLauncher();
+
+private slots:  // new functions
+    void activateDialog();
+
+private:    // data
+    HbMainWindow *mMainWindow;
+    HbView       *mMainView;
+    HbComboBox   *mFilesList;
+    HbTextEdit   *mHostName;
+    HbComboBox   *mValidationResult;
+    HbCheckBox   *mCancelShortly;
+};
+
+#endif  // SRVAUTHFAILDLGLAUNCHER_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/srvauthfaildlglauncher.iby	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Test application for untrusted certificate dialog.
+*
+*/
+
+
+#ifndef __SRVAUTHFAILDLGLAUNCHER_IBY__
+#define __SRVAUTHFAILDLGLAUNCHER_IBY__
+
+file=ABI_DIR/BUILD_DIR/srvauthfaildlglauncher.exe SHARED_LIB_DIR/srvauthfaildlglauncher.exe
+HB_UPGRADABLE_APP_REG_RSC( srvauthfaildlglauncher )
+S60_APP_RESOURCE( srvauthfaildlglauncher )
+
+#endif  // __SRVAUTHFAILDLGLAUNCHER_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/srvauthfaildlglauncher.pkg	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,43 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+; 
+; Description:  Test application for untrusted certificate dialog.
+;
+
+; Language
+&EN
+
+; SIS header: name, uid, version
+#{"srvauthfaildlglauncher"},(0xE9bbd80d),1,0,0
+
+; Localised Vendor name
+%{"Nokia"}
+
+; Unique Vendor name
+:"Nokia"
+
+; Manual PKG pre-rules from PRO files
+; Default dependency to Qt libraries
+(0x2001E61C), 4, 6, 3, {"Qt"}
+
+; Default HW/platform dependencies
+[0x101F7961],0,0,0,{"S60ProductID"}
+[0x102032BE],0,0,0,{"S60ProductID"}
+[0x102752AE],0,0,0,{"S60ProductID"}
+[0x1028315F],0,0,0,{"S60ProductID"}
+
+; Executable and default resource files
+"/epoc32/release/armv5/urel/srvauthfaildlglauncher.exe" - "!:\sys\bin\srvauthfaildlglauncher.exe"
+"/epoc32/data/z/resource/apps/srvauthfaildlglauncher.rsc" - "!:\resource\apps\srvauthfaildlglauncher.rsc"
+"/epoc32/data/z/private/10003a3f/import/apps/srvauthfaildlglauncher_reg.rsc" - "!:\private\10003a3f\import\apps\srvauthfaildlglauncher_reg.rsc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/srvauthfaildlglauncher.pro	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,43 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+# 
+# Description:  Test application for untrusted certificate dialog.
+#
+
+TEMPLATE = app
+TARGET = srvauthfaildlglauncher
+CONFIG += hb
+DEPENDPATH += .
+INCLUDEPATH += .
+
+HEADERS += srvauthfaildlglauncher.h
+SOURCES += srvauthfaildlglaunchermain.cpp srvauthfaildlglauncher.cpp
+
+symbian {
+    TARGET.CAPABILITY = CAP_APPLICATION
+}
+
+BLD_INF_RULES.prj_exports += \
+    "$${LITERAL_HASH}include <platform_paths.hrh>" \
+    "srvauthfaildlglauncher.iby CORE_APP_LAYER_IBY_EXPORT_PATH(srvauthfaildlglauncher.iby)" \
+    "testCerts/RootCert.cer /epoc32/winscw/c/data/testCerts/RootCert.cer" \
+    "testCerts/IntermediateCert.cer /epoc32/winscw/c/data/testCerts/IntermediateCert.cer" \
+    "testCerts/ServerCert1.cer /epoc32/winscw/c/data/testCerts/ServerCert1.cer" \
+    "testCerts/ServerCert2_noCN.cer /epoc32/winscw/c/data/testCerts/ServerCert2_noCN.cer" \
+    "testCerts/ServerCert3_exp.cer /epoc32/winscw/c/data/testCerts/ServerCert3_exp.cer" \
+    "testCerts/ServerCert4_exp2.cer /epoc32/winscw/c/data/testCerts/ServerCert4_exp2.cer" \
+    "testCerts/ServerCert5_alg.cer /epoc32/winscw/c/data/testCerts/ServerCert5_alg.cer" \
+    "testCerts/ServerCert6_key.cer /epoc32/winscw/c/data/testCerts/ServerCert6_key.cer" \
+    "testCerts/SevverCert7_ocsp.cer /epoc32/winscw/c/data/testCerts/ServerCert7_ocsp.cer" \
+    "testCerts/ServerCert8_aia.cer /epoc32/winscw/c/data/testCerts/ServerCert8_aia.cer" \
+    "testCerts/ServerCert9_san.cer /epoc32/winscw/c/data/testCerts/ServerCert9_san.cer"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/srvauthfaildlglaunchermain.cpp	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Test application for untrusted certificate dialog.
+*
+*/
+
+#include "srvauthfaildlglauncher.h"
+
+int main(int argc, char *argv[])
+{
+    SrvAuthFailDlgLauncher app(argc, argv);
+    return app.exec();
+}
+
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/IntermediateCert.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/RootCert.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert1.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert2_noCN.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert3_exp.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert4_exp2.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert5_alg.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert6_key.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert8_aia.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/ServerCert9_san.cer has changed
Binary file pkiutilities/securitydialognotifier/tsrc/srvauthfaildlglauncher/testCerts/SevverCert7_ocsp.cer has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifiersrv/group/bld.inf	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Security dialog notifier server
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+../rom/securitydialognotifiersrv.iby   CORE_MW_LAYER_IBY_EXPORT_PATH( securitydialognotifiersrv.iby )
+
+PRJ_MMPFILES
+securitydialognotifiersrv.mmp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifiersrv/group/securitydialognotifiersrv.mmp	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Security dialog notifier server
+*
+*/
+
+#include <platform_paths.hrh>
+
+TARGET          securitydialognotifiersrv.exe
+CAPABILITY      CAP_SERVER
+TARGETTYPE      EXE
+UID             0x0 0x20031DCE
+VENDORID        VID_DEFAULT
+
+MW_LAYER_SYSTEMINCLUDE /epoc32/include/mw/hb/hbcore /epoc32/include/mw/hb/hbwidgets
+USERINCLUDE     ../inc
+
+SOURCEPATH      ../src
+SOURCE          securitydialognotifierservermain.cpp
+SOURCE          securitydialognotifierserver.cpp
+SOURCE          securitydialognotifiersession.cpp
+SOURCE          securitydialogoperation.cpp
+SOURCE          securitydialogoperserverauthfail.cpp
+SOURCE          untrustedcertquery.cpp
+
+LIBRARY         euser.lib           // Base classes
+LIBRARY         efsrv.lib           // RFs
+LIBRARY         ctframework.lib     // CServerAuthenticationFailureInput
+LIBRARY         x509.lib            // CX509Certificate
+LIBRARY         x500.lib            // CX500DistinguishedName
+LIBRARY         crypto.lib          // CSignedObject
+LIBRARY         certstore.lib       // CUnifiedCertStore
+LIBRARY         DevTokenClient.lib  // CTrustSitesStore 
+LIBRARY         HbCore.lib          // CHbDeviceDialog
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifiersrv/inc/securitydialognotifierserver.h	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Security dialog notifier server
+*
+*/
+
+#ifndef SECURITYDIALOGNOTIFIERSERVER_H
+#define SECURITYDIALOGNOTIFIERSERVER_H
+
+#include <e32base.h>                    // CPolicyServer
+
+
+/**
+ * CSecurityDialogNotifierServer is the work-horse for TSecurityDialogOperation
+ * operations  defined for security dialogs in secdlgimpldefs.h. It's client
+ * is CSecurityDialogs class in securitydialognotifier component.
+ */
+NONSHARABLE_CLASS( CSecurityDialogNotifierServer ) : public CPolicyServer
+    {
+    public:     // constructor and destructor
+        static CSecurityDialogNotifierServer* NewLC();
+        ~CSecurityDialogNotifierServer();
+
+    public:     // new functions
+        void AddSession();
+        void RemoveSession();
+
+    private:    // from CServer2 (via CPolicyServer)
+        CSession2* NewSessionL(const TVersion &aVersion, const RMessage2& aMessage) const;
+
+    private:    // new functions
+        CSecurityDialogNotifierServer();
+        void ConstructL();
+
+    private:    // data
+        TInt iSessionCount;
+    };
+
+#endif  // SECURITYDIALOGNOTIFIERSERVER_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifiersrv/inc/securitydialognotifierservername.h	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Security dialog notifier server name
+*
+*/
+
+#ifndef SECURITYDIALOGNOTIFIERSERVERNAME_H
+#define SECURITYDIALOGNOTIFIERSERVERNAME_H
+
+_LIT( KSecurityDialogNotifierServerName, "securitydialognotifiersrv" );
+const TInt KSecurityDialogNotifierServerMajorVersionNumber = 1;
+const TInt KSecurityDialogNotifierServerMinorVersionNumber = 0;
+const TInt KSecurityDialogNotifierServerBuildVersionNumber = 0;
+
+// See TSecurityDialogOperation in secdlgimpldefs.h for other function codes.
+const TInt KSecurityDialogCancelOperation = 0;
+
+#endif // SECURITYDIALOGNOTIFIERSERVERNAME_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifiersrv/inc/securitydialognotifiersession.h	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,61 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Security dialog notifier server session
+*
+*/
+
+#ifndef SECURITYDIALOGNOTIFIERSESSION_H
+#define SECURITYDIALOGNOTIFIERSESSION_H
+
+#include <e32base.h>                            // CSession2
+#include "securitydialogoperationobserver.h"    // MSecurityDialogOperationObserver
+
+class CSecurityDialogNotifierServer;
+class CSecurityDialogOperation;
+
+
+/**
+ * CSecurityDialogNotifierSession is the session object in security
+ * dialog notifier server (CSecurityDialogNotifierServer).
+ */
+NONSHARABLE_CLASS( CSecurityDialogNotifierSession ) : public CSession2,
+        public MSecurityDialogOperationObserver
+    {
+    public:     // constructor and destructor
+        static CSecurityDialogNotifierSession* NewL();
+        ~CSecurityDialogNotifierSession();
+
+    public:     // from CSession2
+        void CreateL();
+        void ServiceL( const RMessage2& aMessage );
+
+    public:     // from MSecurityDialogOperationObserver
+        void OperationComplete();
+
+    private:    // new functions
+        CSecurityDialogNotifierSession();
+        void ConstructL();
+        CSecurityDialogNotifierServer& Server();
+        void DispatchMessageL( const RMessage2& aMessage );
+        TBool IsOperationCancelled( const RMessage2& aMessage );
+        void ServerAuthenticationFailureL( const RMessage2& aMessage );
+        void GetInputBufferL( const RMessage2& aMessage );
+
+    private:    // data
+        HBufC8* iInputBuffer;
+        CSecurityDialogOperation* iOperationHandler;
+    };
+
+#endif  // SECURITYDIALOGNOTIFIERSESSION_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifiersrv/inc/securitydialogoperation.h	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,56 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Base class for CSecurityDialog operations
+*
+*/
+
+#ifndef SECURITYDIALOGOPERATION_H
+#define SECURITYDIALOGOPERATION_H
+
+#include <e32base.h>                    // CActive
+
+class MSecurityDialogOperationObserver;
+
+
+/**
+ * CSecurityDialogOperation is a base class for different kinds of operations
+ * defined for security dialogs in /epoc32/include/platform/secdlgimpldefs.h.
+ * TSecurityDialogOperation lists the possible operations. A derived class
+ * implements each operation separately. This base class works as common API
+ * between different operation classes and the main CSecurityDialog class.
+ */
+NONSHARABLE_CLASS( CSecurityDialogOperation ) : public CActive
+    {
+    protected:  // constructor
+        CSecurityDialogOperation( MSecurityDialogOperationObserver& aObserver,
+                const RMessage2& aMessage, TInt aReplySlot );
+
+    public:     // destructor
+        ~CSecurityDialogOperation();
+
+    public:     // new function
+        virtual void StartL( const TDesC8& aBuffer ) = 0;
+        virtual void CancelOperation() = 0;
+
+    protected:  // from CActive
+        TInt RunError( TInt aError );
+
+    protected:  // data
+        MSecurityDialogOperationObserver& iObserver;
+        RMessage2 iMessage;
+        const TInt iReplySlot;
+    };
+
+#endif  // SECURITYDIALOGOPERATION_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifiersrv/inc/securitydialogoperationobserver.h	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,34 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Observer definition for CSecurityDialog operations
+*
+*/
+
+#ifndef SECURITYDIALOGOPERATIONOBSERVER_H
+#define SECURITYDIALOGOPERATIONOBSERVER_H
+
+
+/**
+ * CSecurityDialogOperations inform observer when they are complete.
+ * Completed operations can be deleted safely. Deleting an incomplete
+ * operation cancels the ongoing request.
+ */
+class MSecurityDialogOperationObserver
+    {
+    public:
+        virtual void OperationComplete() = 0;
+    };
+
+#endif  // SECURITYDIALOGOPERATIONOBSERVER_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifiersrv/inc/securitydialogoperserverauthfail.h	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,99 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Server authentication failure operation in security dialog
+*
+*/
+
+#ifndef SECURITYDIALOGOPERSERVERAUTHFAIL_H
+#define SECURITYDIALOGOPERSERVERAUTHFAIL_H
+
+#include "securitydialogoperation.h"    // CSecurityDialogOperation
+#include <securitydefs.h>               // TValidationError
+#include <ct/rmpointerarray.h>          // RMPointerArray
+#include <f32file.h>                    // RFs
+#include <secdlgimpldefs.h>             // TServerAuthenticationFailureDialogResult
+
+class MSecurityDialogOperationObserver;
+class CServerAuthenticationFailureInput;
+class CUnifiedCertStore;
+class MCTWritableCertStore;
+class CCertAttributeFilter;
+class CCTCertInfo;
+class CUntrustedCertQuery;
+
+
+/**
+ * CServerAuthFailOperation is a CSecurityDialogOperation that handles
+ * the EServerAuthenticationFailure operation.
+ */
+NONSHARABLE_CLASS( CServerAuthFailOperation ) : public CSecurityDialogOperation
+    {
+    public:     // constructors and destructor
+        static CServerAuthFailOperation* NewL( MSecurityDialogOperationObserver& aObserver,
+                const RMessage2& aMessage, TInt aReplySlot );
+        ~CServerAuthFailOperation();
+
+    public:     // from CSecurityDialogOperation
+        void StartL( const TDesC8& aBuffer );
+        void CancelOperation();
+
+    protected:  // from CActive (via CSecurityDialogOperation)
+        void RunL();
+        void DoCancel();
+
+    private:    // new functions
+        CServerAuthFailOperation( MSecurityDialogOperationObserver& aObserver,
+                const RMessage2& aMessage, TInt aReplySlot );
+        void InitializeUnifiedCertStoreL();
+        void ProcessServerAuthorizationFailureL();
+        void OpenTrustedSiteCertificateStoreL();
+        TBool IsAlreadyTrustedSiteL();
+        void StartFetchingTrustedSiteCertsL();
+        void ShowUntrustedCertificateDialogL();
+        void SaveServerCertToTrustedSiteCertStoreL();
+        void SaveServerNameToTrustedSitesStoreL();
+        void ReturnResultL( TServerAuthenticationFailureDialogResult aResult );
+        void RetrieveFirstTrustedSiteCertL();
+        void RetrieveNextTrustedSiteCertL();
+        TBool IsRetrievedCertSameAsServerCertL();
+
+    private:    // data
+        CServerAuthenticationFailureInput* iInput;
+
+        TValidationError iAuthFailReason;
+        TPtrC8 iEncodedServerCert;
+        HBufC8* iServerCertFingerprint;
+        HBufC* iServerName;
+        HBufC* iCertLabel;
+
+        CUntrustedCertQuery* iUntrustedCertQuery;
+
+        RFs iFs;
+        CUnifiedCertStore* iCertStore;
+        MCTWritableCertStore* iTrustedSiteCertStore;
+        CCertAttributeFilter* iCertAttributeFilter;
+        RMPointerArray<CCTCertInfo> iCertInfos;
+        TInt iRetrieveCertIndex;
+        HBufC8* iRetrievedCertBuffer;
+
+        enum {
+            EInitialiseCertStore,
+            EListTrustedSiteCerts,
+            ERetrieveTrustedSiteCert,
+            ESavingServerCert
+        } iMode;
+    };
+
+#endif  // SECURITYDIALOGOPERSERVERAUTHFAIL_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifiersrv/inc/securitydialogstrace.h	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,50 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  TRACE macros for security dialogs
+*
+*/
+
+#ifndef SECURITYDIALOGSTRACE_H
+#define SECURITYDIALOGSTRACE_H
+
+#include <e32debug.h>                   // RDebug
+
+
+// TODO: replace with OST tracing
+#ifdef _DEBUG
+#define TRACE( a, ARGS... ) DebugPrint( _L( a ), ##ARGS )
+#else
+#define TRACE( a, ARGS... )
+#endif
+
+
+// ---------------------------------------------------------------------------
+// DebugPrint()
+// ---------------------------------------------------------------------------
+//
+#ifdef _DEBUG
+const TInt KMaxPrintSize = 256;
+inline void DebugPrint( TRefByValue<const TDesC> aFmt, ... )
+    {
+    VA_LIST list;
+    VA_START( list, aFmt );
+    TBuf<KMaxPrintSize> buf;
+    buf.AppendFormatList( aFmt, list );
+    RDebug::Print( buf );
+    }
+#endif
+
+
+#endif  // SECURITYDIALOGSTRACE_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifiersrv/inc/untrustedcertquery.h	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,78 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Displays untrusted certificate dialog
+*
+*/
+
+#ifndef C_UNTRUSTEDCERTQUERY_H
+#define C_UNTRUSTEDCERTQUERY_H
+
+#include <e32base.h>                            // CActive
+#include <hb/hbcore/hbdevicedialogsymbian.h>    // MHbDeviceDialogObserver
+#include <securitydefs.h>                       // TValidationError
+
+class CHbDeviceDialogSymbian;
+class CHbSymbianVariantMap;
+
+
+/**
+* Displays untrusted certificate query.
+* Untrusted certificate query dialog is displayed for secure connection
+* (SSL/TLS) server authentication failure errors. CCTUntrustedCertQuery
+* class uses UntrustedCertificateDialog device dialog to show the query.
+*/
+NONSHARABLE_CLASS( CUntrustedCertQuery ) : public CActive, public MHbDeviceDialogObserver
+    {
+    public:     // constructors and destructor
+        static CUntrustedCertQuery* NewL( TValidationError aValidationError,
+                const TDesC8& aCertificate, const TDesC& aServerName,
+                TBool aCanHandlePermanentAccept );
+        ~CUntrustedCertQuery();
+
+    public:     // new functions
+        enum TResponse {
+            EQueryRejected,
+            EQueryAccepted,
+            EQueryAcceptedPermanently
+        };
+        void ShowQueryAndWaitForResponseL( TResponse& aResponse );
+
+    protected:  // from CActive
+        void DoCancel();
+        void RunL();
+
+    private:    // from MHbDeviceDialogObserver
+        void DataReceived( CHbSymbianVariantMap& aData );
+        void DeviceDialogClosed( TInt aCompletionCode );
+
+    private:    // new functions
+        CUntrustedCertQuery( TValidationError aValidationError,
+                const TDesC8& aCertificate, const TDesC& aServerName,
+                TBool aCanHandlePermanentAccept );
+        void ConstructL();
+
+    private:    // data
+        TValidationError iValidationError;
+        const TDesC8& iCertificate;
+        const TDesC& iServerName;
+        TBool iCanHandlePermanentAccept;
+        CActiveSchedulerWait *iWait;
+        TInt iWaitCompletionCode;
+        CHbDeviceDialogSymbian* iDeviceDialog;
+        CHbSymbianVariantMap* iVariantMap;
+        TResponse iResponse;
+    };
+
+#endif  // C_UNTRUSTEDCERTQUERY_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifiersrv/rom/securitydialognotifiersrv.iby	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Security dialog notifier server
+*
+*/
+
+#ifndef SECURITYDIALOGNOTIFIERSRV_IBY
+#define SECURITYDIALOGNOTIFIERSRV_IBY
+#include <bldvariant.hrh>
+
+file=ABI_DIR\BUILD_DIR\securitydialognotifiersrv.exe    sys\bin\securitydialognotifiersrv.exe
+
+#endif // SECURITYDIALOGNOTIFIERSRV_IBY
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifiersrv/src/securitydialognotifierserver.cpp	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,138 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Security dialog notifier server
+*
+*/
+
+#include "securitydialognotifierserver.h"   // CSecurityDialogNotifierServer
+#include "securitydialognotifiersession.h"  // CSecurityDialogNotifierSession
+#include "securitydialognotifierservername.h" // KSecurityDialogNotifierServerName
+#include "securitydialogstrace.h"           // TRACE macro
+
+
+const TUint KRangeCount = 1;
+
+const TInt KRanges[ KRangeCount ] =
+    {
+    0
+    };
+
+const TUint8 KElementsIndex[ KRangeCount ] =
+    {
+    0
+    };
+
+const TInt KUikonServerId = 0x10003a4a;
+const CPolicyServer::TPolicyElement KPolicyElements[] =
+    {
+    { _INIT_SECURITY_POLICY_S0( KUikonServerId ), CPolicyServer::EFailClient }
+    };
+
+const CPolicyServer::TPolicy KSecurityDialogNotifierServerPolicy =
+    {
+    CPolicyServer::EAlwaysPass,
+    KRangeCount,
+    KRanges,
+    KElementsIndex,
+    KPolicyElements
+    };
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifierServer::NewLC()
+// ---------------------------------------------------------------------------
+//
+CSecurityDialogNotifierServer* CSecurityDialogNotifierServer::NewLC()
+    {
+    CSecurityDialogNotifierServer* self = new( ELeave ) CSecurityDialogNotifierServer;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifierServer::~CSecurityDialogNotifierServer()
+// ---------------------------------------------------------------------------
+//
+CSecurityDialogNotifierServer::~CSecurityDialogNotifierServer()
+    {
+    TRACE( "CSecurityDialogNotifierServer::~CSecurityDialogNotifierServer" );
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifierServer::AddSession()
+// ---------------------------------------------------------------------------
+//
+void CSecurityDialogNotifierServer::AddSession()
+    {
+    TRACE( "CSecurityDialogNotifierServer::AddSession" );
+    ++iSessionCount;
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifierServer::RemoveSession()
+// ---------------------------------------------------------------------------
+//
+void CSecurityDialogNotifierServer::RemoveSession()
+    {
+    TRACE( "CSecurityDialogNotifierServer::RemoveSession" );
+    --iSessionCount;
+    if( iSessionCount == 0 )
+        {
+        TRACE( "CSecurityDialogNotifierServer::RemoveSession, shutting down" );
+        CActiveScheduler::Stop();
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifierServer::NewSessionL()
+// ---------------------------------------------------------------------------
+//
+CSession2* CSecurityDialogNotifierServer::NewSessionL( const TVersion &aVersion,
+        const RMessage2& /*aMessage*/ ) const
+    {
+    TRACE( "CSecurityDialogNotifierServer::NewSessionL" );
+    TVersion version( KSecurityDialogNotifierServerMajorVersionNumber,
+            KSecurityDialogNotifierServerMinorVersionNumber,
+            KSecurityDialogNotifierServerBuildVersionNumber );
+    if( !User::QueryVersionSupported( version, aVersion ) )
+        {
+        TRACE( "CSecurityDialogNotifierServer::NewSessionL, version not supported" );
+        User::Leave( KErrNotSupported );
+        }
+
+    return CSecurityDialogNotifierSession::NewL();
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifierServer::CSecurityDialogNotifierServer()
+// ---------------------------------------------------------------------------
+//
+CSecurityDialogNotifierServer::CSecurityDialogNotifierServer() :
+        CPolicyServer( CActive::EPriorityStandard, KSecurityDialogNotifierServerPolicy )
+    {
+    TRACE( "CSecurityDialogNotifierServer::CSecurityDialogNotifierServer" );
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifierServer::ConstructL()
+// ---------------------------------------------------------------------------
+//
+void CSecurityDialogNotifierServer::ConstructL()
+    {
+    StartL( KSecurityDialogNotifierServerName );
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifiersrv/src/securitydialognotifierservermain.cpp	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,61 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Security dialog notifier server
+*
+*/
+
+#include "securitydialognotifierserver.h"   // CSecurityDialogNotifierServer
+#include "securitydialognotifierservername.h" // KSecurityDialogNotifierServerName
+#include "securitydialogstrace.h"           // TRACE macro
+
+
+// ---------------------------------------------------------------------------
+// MainL()
+// ---------------------------------------------------------------------------
+//
+LOCAL_C void MainL()
+    {
+    TRACE( "SecurityDialogNotifierServer: MainL" );
+    CActiveScheduler* scheduler = new( ELeave ) CActiveScheduler;
+    CleanupStack::PushL( scheduler );
+    CActiveScheduler::Install( scheduler );
+
+    CSecurityDialogNotifierServer* server = CSecurityDialogNotifierServer::NewLC();
+    User::LeaveIfError( User::RenameThread( KSecurityDialogNotifierServerName ) );
+    TRACE( "SecurityDialogNotifierServer: MainL, rendezvous" );
+
+    RProcess::Rendezvous( KErrNone );
+    TRACE( "SecurityDialogNotifierServer: MainL, activescheduler start" );
+    CActiveScheduler::Start();
+
+    TRACE( "SecurityDialogNotifierServer: MainL, cleanup" );
+    CleanupStack::PopAndDestroy( server );
+    CleanupStack::PopAndDestroy( scheduler );
+    }
+
+// ---------------------------------------------------------------------------
+// E32Main()
+// ---------------------------------------------------------------------------
+//
+GLDEF_C TInt E32Main()
+    {
+    CTrapCleanup* cleanup = CTrapCleanup::New();
+
+    TRAPD( err, MainL() );
+    __ASSERT_ALWAYS( !err, User::Panic( KSecurityDialogNotifierServerName, err ) );
+
+    delete cleanup;
+    return err;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifiersrv/src/securitydialognotifiersession.cpp	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,220 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Security dialog notifier server session
+*
+*/
+
+#include "securitydialognotifiersession.h"  // CSecurityDialogNotifierSession
+#include "securitydialognotifierserver.h"   // CSecurityDialogNotifierServer
+#include "securitydialognotifierservername.h" // KSecurityDialogsCancelOperation
+#include "securitydialogoperserverauthfail.h" // CServerAuthFailOperation
+#include "securitydialogstrace.h"           // TRACE macro
+#include <secdlgimpldefs.h>                 // TSecurityDialogOperation
+
+const TInt KInputParam = 0;
+const TInt KOutputParam = 1;
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifierSession::NewL()
+// ---------------------------------------------------------------------------
+//
+CSecurityDialogNotifierSession* CSecurityDialogNotifierSession::NewL()
+    {
+    CSecurityDialogNotifierSession* self = new( ELeave ) CSecurityDialogNotifierSession;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifierSession::~CSecurityDialogNotifierSession()
+// ---------------------------------------------------------------------------
+//
+CSecurityDialogNotifierSession::~CSecurityDialogNotifierSession()
+    {
+    TRACE( "CSecurityDialogNotifierSession::~CSecurityDialogNotifierSession, begin" );
+    Server().RemoveSession();
+    delete iOperationHandler;
+    iOperationHandler = NULL;
+    delete iInputBuffer;
+    iInputBuffer = NULL;
+    TRACE( "CSecurityDialogNotifierSession::~CSecurityDialogNotifierSession, end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifierSession::CreateL()
+// ---------------------------------------------------------------------------
+//
+void CSecurityDialogNotifierSession::CreateL()
+    {
+    TRACE( "CSecurityDialogNotifierSession::~CSecurityDialogNotifierSession" );
+    Server().AddSession();
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifierSession::ServiceL()
+// ---------------------------------------------------------------------------
+//
+void CSecurityDialogNotifierSession::ServiceL( const RMessage2& aMessage )
+    {
+    TRACE( "CSecurityDialogNotifierSession::ServiceL, message 0x%08x", aMessage.Handle() );
+    TRAPD( error, DispatchMessageL( aMessage ) );
+    TRACE( "CSecurityDialogNotifierSession::ServiceL, dispatched, error %d", error );
+    if( error && !aMessage.IsNull() )
+        {
+        TRACE( "CSecurityDialogNotifierSession::ServiceL, completing msg 0x%08x",
+                aMessage.Handle() );
+        aMessage.Complete( error );
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifierSession::OperationComplete()
+// ---------------------------------------------------------------------------
+//
+void CSecurityDialogNotifierSession::OperationComplete()
+    {
+    TRACE( "CSecurityDialogNotifierSession::OperationComplete, begin" );
+    delete iOperationHandler;
+    iOperationHandler = NULL;
+    TRACE( "CSecurityDialogNotifierSession::OperationComplete, end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifierSession::CSecurityDialogNotifierSession()
+// ---------------------------------------------------------------------------
+//
+CSecurityDialogNotifierSession::CSecurityDialogNotifierSession()
+    {
+    TRACE( "CSecurityDialogNotifierSession::CSecurityDialogNotifierSession" );
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifierSession::ConstructL()
+// ---------------------------------------------------------------------------
+//
+void CSecurityDialogNotifierSession::ConstructL()
+    {
+    TRACE( "CSecurityDialogNotifierSession::ConstructL" );
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifierSession::Server()
+// ---------------------------------------------------------------------------
+//
+CSecurityDialogNotifierServer& CSecurityDialogNotifierSession::Server()
+    {
+    return *static_cast< CSecurityDialogNotifierServer* >(
+            const_cast< CServer2* >( CSession2::Server() ) );
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifierSession::DispatchMessageL()
+// ---------------------------------------------------------------------------
+//
+void CSecurityDialogNotifierSession::DispatchMessageL( const RMessage2& aMessage )
+    {
+    TRACE( "CSecurityDialogNotifierSession::DispatchMessageL, begin" );
+    if( !IsOperationCancelled( aMessage ) )
+        {
+        TSecurityDialogOperation operation =
+                static_cast< TSecurityDialogOperation >( aMessage.Function() );
+        TRACE( "CSecurityDialogNotifierSession::DispatchMessageL, operation=%d", operation );
+        switch( operation )
+            {
+            case ESecureConnection:
+            case ESignText:
+            case EEnterPIN:
+            case EEnablePIN:
+            case EDisablePIN:
+            case EChangePIN:
+            case EUnblockPIN:
+            case EPINBlocked:
+            case ETotalBlocked:
+            case EUnblockPINInClear:
+                User::Leave( KErrNotSupported );
+                break;
+            case EServerAuthenticationFailure:
+                ServerAuthenticationFailureL( aMessage );
+                break;
+            default:
+                User::Leave( KErrNotSupported );
+                break;
+            }
+        }
+    TRACE( "CSecurityDialogNotifierSession::DispatchMessageL, end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifierSession::IsOperationCancelled()
+// ---------------------------------------------------------------------------
+//
+TBool CSecurityDialogNotifierSession::IsOperationCancelled( const RMessage2& aMessage )
+    {
+    TBool isCancelled = EFalse;
+    if( aMessage.Function() == KSecurityDialogCancelOperation )
+        {
+        if( iOperationHandler )
+            {
+            TRACE( "CSecurityDialogNotifierSession::CheckIfOperationCancelledL, cancelling" );
+            iOperationHandler->CancelOperation();
+            }
+        TRACE( "CSecurityDialogNotifierSession::CheckIfOperationCancelledL, completing msg 0x%08x",
+                aMessage.Handle() );
+        aMessage.Complete( KErrNone );
+        isCancelled = ETrue;
+        }
+    return isCancelled;
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifierSession::ServerAuthenticationFailureL()
+// ---------------------------------------------------------------------------
+//
+void CSecurityDialogNotifierSession::ServerAuthenticationFailureL( const RMessage2& aMessage )
+    {
+    TRACE( "CSecurityDialogNotifierSession::ServerAuthenticationFailureL, begin" );
+    GetInputBufferL( aMessage );
+
+    __ASSERT_DEBUG( iOperationHandler == NULL, User::Invariant() );
+    iOperationHandler = CServerAuthFailOperation::NewL( *this, aMessage, KOutputParam );
+    iOperationHandler->StartL( *iInputBuffer );
+
+    TRACE( "CSecurityDialogNotifierSession::ServerAuthenticationFailureL, end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogNotifierSession::GetInputBufferL()
+// ---------------------------------------------------------------------------
+//
+void CSecurityDialogNotifierSession::GetInputBufferL( const RMessage2& aMessage )
+    {
+    TInt inputLength = aMessage.GetDesLength( KInputParam );
+    TRACE( "CSecurityDialogNotifierSession::GetInputBufferL, inputLength=%d", inputLength );
+    __ASSERT_ALWAYS( inputLength > 0, User::Leave( KErrCorrupt ) );
+    if( iInputBuffer )
+        {
+        delete iInputBuffer;
+        iInputBuffer = NULL;
+        }
+    iInputBuffer = HBufC8::NewL( inputLength );
+    TPtr8 inputBufferPtr( iInputBuffer->Des() );
+    aMessage.ReadL( KInputParam, inputBufferPtr );
+    TRACE( "CSecurityDialogNotifierSession::GetInputBufferL, read complete" );
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifiersrv/src/securitydialogoperation.cpp	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,65 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Base class for CSecurityDialog operations
+*
+*/
+
+#include "securitydialogoperation.h"    // CSecurityDialogOperation
+#include "securitydialogoperationobserver.h" // MSecurityDialogOperationObserver
+#include "securitydialogstrace.h"       // TRACE macro
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogOperation::CSecurityDialogOperation()
+// ---------------------------------------------------------------------------
+//
+CSecurityDialogOperation::CSecurityDialogOperation(
+        MSecurityDialogOperationObserver& aObserver, const RMessage2& aMessage,
+        TInt aReplySlot ) : CActive( CActive::EPriorityStandard ), iObserver( aObserver ),
+        iMessage( aMessage ), iReplySlot( aReplySlot )
+    {
+    TRACE( "CSecurityDialogOperation::CSecurityDialogOperation, iMessage 0x%08x",
+            iMessage.Handle() );
+    CActiveScheduler::Add( this );
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogOperation::~CSecurityDialogOperation()
+// ---------------------------------------------------------------------------
+//
+CSecurityDialogOperation::~CSecurityDialogOperation()
+    {
+    TRACE( "CSecurityDialogOperation::~CSecurityDialogOperation, begin" );
+    Cancel();
+    TRACE( "CSecurityDialogOperation::~CSecurityDialogOperation, end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CSecurityDialogOperation::RunError()
+// ---------------------------------------------------------------------------
+//
+TInt CSecurityDialogOperation::RunError( TInt aError )
+    {
+    TRACE( "CSecurityDialogOperation::RunError, aError=%d", aError );
+    if( !iMessage.IsNull() )
+        {
+        TRACE( "CSecurityDialogOperation::RunError, completing message 0x%08x",
+                iMessage.Handle() );
+        iMessage.Complete( aError );
+        }
+    return KErrNone;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifiersrv/src/securitydialogoperserverauthfail.cpp	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,498 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Server authentication failure operation in security dialog
+*
+*/
+
+#include "securitydialogoperserverauthfail.h" // CServerAuthFailOperation
+#include "securitydialogoperationobserver.h" // MSecurityDialogOperationObserver
+#include "untrustedcertquery.h"         // CUntrustedCertQuery
+#include "../../DeviceToken/Inc/TrustedSitesStore.h" // CTrustSitesStore
+#include <mctwritablecertstore.h>       // MCTWritableCertStore
+#include <unifiedcertstore.h>           // CUnifiedCertStore
+#include <cctcertinfo.h>                // CCTCertInfo
+#include <x509cert.h>                   // CX509Certificate
+#include "securitydialogstrace.h"       // TRACE macro
+
+const TUid KTrustedSiteCertificatesTokenTypeUid = { 0x101FB66F };
+const TInt KMaxCommonNameLength = 64;   // from RFC3280
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CServerAuthFailOperation::NewL()
+// ---------------------------------------------------------------------------
+//
+CServerAuthFailOperation* CServerAuthFailOperation::NewL(
+        MSecurityDialogOperationObserver& aObserver, const RMessage2& aMessage,
+        TInt aReplySlot )
+    {
+    TRACE( "CServerAuthFailOperation::NewL, aMessage 0x%08x", aMessage.Handle() );
+    return new( ELeave ) CServerAuthFailOperation( aObserver, aMessage, aReplySlot );
+    }
+
+// ---------------------------------------------------------------------------
+// CServerAuthFailOperation::~CServerAuthFailOperation()
+// ---------------------------------------------------------------------------
+//
+CServerAuthFailOperation::~CServerAuthFailOperation()
+    {
+    TRACE( "CServerAuthFailOperation::~CServerAuthFailOperation, begin" );
+    Cancel();
+
+    delete iUntrustedCertQuery;
+    iUntrustedCertQuery = NULL;
+
+    delete iInput;
+    iInput = NULL;
+    delete iCertLabel;
+    iCertLabel = NULL;
+    delete iServerName;
+    iServerName = NULL;
+
+    delete iCertStore;
+    iCertStore = NULL;
+    iTrustedSiteCertStore = NULL;   // not owned
+
+    delete iCertAttributeFilter;
+    iCertAttributeFilter = NULL;
+    delete iRetrievedCertBuffer;
+    iRetrievedCertBuffer = NULL;
+
+    iCertInfos.Close();
+    iFs.Close();
+    TRACE( "CServerAuthFailOperation::~CServerAuthFailOperation, end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CServerAuthFailOperation::StartL()
+// ---------------------------------------------------------------------------
+//
+void CServerAuthFailOperation::StartL( const TDesC8& aBuffer )
+    {
+    TRACE( "CServerAuthFailOperation::StartL, begin" );
+    __ASSERT_DEBUG( iInput == NULL, User::Invariant() );
+    iInput = CServerAuthenticationFailureInput::NewL( aBuffer );
+
+    iInput->GetEncodedCert( iEncodedServerCert );
+
+    TPtrC8 serverName;
+    iInput->GetServerName( serverName );
+    __ASSERT_DEBUG( iServerName == NULL, User::Invariant() );
+    iServerName = HBufC::NewL( serverName.Length() );
+    iServerName->Des().Copy( serverName );
+    TRACE( "CServerAuthFailOperation::StartL, iServerName=%S", iServerName );
+
+    iAuthFailReason = iInput->FailureReason();
+    TRACE( "CServerAuthFailOperation::StartL, iAuthFailReason=%d", iAuthFailReason );
+
+    InitializeUnifiedCertStoreL();
+    // This is async function, processing continues in RunL().
+    // Basically trusted site certificates are fetched and the
+    // server certificate is compared to them. If the server
+    // certificate is already in trusted site cert store, then
+    // connection is accepted silently. If it is not, then
+    // untrusted certificate dialog is displayed.
+    }
+
+// ---------------------------------------------------------------------------
+// CServerAuthFailOperation::CancelOperation()
+// ---------------------------------------------------------------------------
+//
+void CServerAuthFailOperation::CancelOperation()
+    {
+    TRACE( "CServerAuthFailOperation::CancelOperation, begin" );
+    Cancel();
+    if( iUntrustedCertQuery )
+        {
+        TRACE( "CServerAuthFailOperation::CancelOperation, cancelling untrusted query" );
+        iUntrustedCertQuery->Cancel();
+        }
+    if( !iMessage.IsNull() )
+        {
+        TRACE( "CServerAuthFailOperation::CancelOperation, completing message 0x%08x",
+                iMessage.Handle() );
+        iMessage.Complete( KErrCancel );
+        }
+    TRACE( "CServerAuthFailOperation::CancelOperation, end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CServerAuthFailOperation::RunL()
+// ---------------------------------------------------------------------------
+//
+void CServerAuthFailOperation::RunL()
+    {
+    TRACE( "CServerAuthFailOperation::RunL, iStatus.Int()=%d, iMode=%d",
+            iStatus.Int(), iMode );
+    User::LeaveIfError( iStatus.Int() );
+    switch( iMode )
+        {
+        case EInitialiseCertStore:
+            ProcessServerAuthorizationFailureL();
+            break;
+        case EListTrustedSiteCerts:
+            RetrieveFirstTrustedSiteCertL();
+            break;
+        case ERetrieveTrustedSiteCert:
+            if( IsRetrievedCertSameAsServerCertL() )
+                {
+                ReturnResultL( EContinue );
+                }
+            else
+                {
+                RetrieveNextTrustedSiteCertL();
+                }
+            break;
+        case ESavingServerCert:
+            SaveServerNameToTrustedSitesStoreL();
+            ReturnResultL( EContinue );
+            break;
+        default:
+            User::Leave( KErrGeneral );
+            break;
+        }
+    TRACE( "CServerAuthFailOperation::RunL(), end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CServerAuthFailOperation::DoCancel()
+// ---------------------------------------------------------------------------
+//
+void CServerAuthFailOperation::DoCancel()
+    {
+    TRACE( "CServerAuthFailOperation::DoCancel, iMode=%d", iMode );
+    switch( iMode )
+        {
+        case EInitialiseCertStore:
+            if( iCertStore )
+                {
+                iCertStore->CancelInitialize();
+                }
+            break;
+        case EListTrustedSiteCerts:
+            if( iTrustedSiteCertStore )
+                {
+                iTrustedSiteCertStore->CancelList();
+                }
+            break;
+        case ERetrieveTrustedSiteCert:
+            if( iTrustedSiteCertStore )
+                {
+                iTrustedSiteCertStore->CancelRetrieve();
+                }
+            break;
+        case ESavingServerCert:
+            if( iTrustedSiteCertStore )
+                {
+                iTrustedSiteCertStore->CancelAdd();
+                }
+            break;
+        default:
+            break;
+        }
+    TRACE( "CServerAuthFailOperation::DoCancel, end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CServerAuthFailOperation::CServerAuthFailOperation()
+// ---------------------------------------------------------------------------
+//
+CServerAuthFailOperation::CServerAuthFailOperation(
+        MSecurityDialogOperationObserver& aObserver, const RMessage2& aMessage,
+        TInt aReplySlot ) : CSecurityDialogOperation( aObserver, aMessage, aReplySlot )
+    {
+    TRACE( "CServerAuthFailOperation::CServerAuthFailOperation" );
+    }
+
+// ---------------------------------------------------------------------------
+// CServerAuthFailOperation::InitializeUnifiedCertStoreL()
+// ---------------------------------------------------------------------------
+//
+void CServerAuthFailOperation::InitializeUnifiedCertStoreL()
+    {
+    TRACE( "CServerAuthFailOperation::InitializeUnifiedCertStoreL" );
+    User::LeaveIfError( iFs.Connect() );
+    iCertStore = CUnifiedCertStore::NewL( iFs, ETrue );
+
+    iCertStore->Initialize( iStatus );
+    iMode = EInitialiseCertStore;
+    SetActive();
+    }
+
+// ---------------------------------------------------------------------------
+// CServerAuthFailOperation::ProcessServerAuthorizationFailureL()
+// ---------------------------------------------------------------------------
+//
+void CServerAuthFailOperation::ProcessServerAuthorizationFailureL()
+    {
+    TRACE( "CServerAuthFailOperation::ProcessServerAuthorizationFailureL" );
+    OpenTrustedSiteCertificateStoreL();
+    if( IsAlreadyTrustedSiteL() )
+        {
+        StartFetchingTrustedSiteCertsL();
+        }
+    else
+        {
+        ShowUntrustedCertificateDialogL();
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CServerAuthFailOperation::OpenTrustedSiteCertificateStoreL()
+// ---------------------------------------------------------------------------
+//
+void CServerAuthFailOperation::OpenTrustedSiteCertificateStoreL()
+    {
+    TRACE( "CServerAuthFailOperation::OpenTrustedSiteCertificateStoreL, begin" );
+    TInt count = iCertStore->WritableCertStoreCount();
+    for( TInt index = 0; ( index < count ) && !iTrustedSiteCertStore; index++ )
+        {
+        MCTWritableCertStore* certstore = &( iCertStore->WritableCertStore( index ) );
+        TUid tokenTypeUid = certstore->Token().Handle().iTokenTypeUid;
+        if( tokenTypeUid == KTrustedSiteCertificatesTokenTypeUid )
+            {
+            iTrustedSiteCertStore = certstore;
+            }
+        }
+    TRACE( "CServerAuthFailOperation::OpenTrustedSiteCertificateStoreL, store 0x%08x",
+            iTrustedSiteCertStore );
+    }
+
+// ---------------------------------------------------------------------------
+// CServerAuthFailOperation::IsAlreadyTrustedSiteL()
+// ---------------------------------------------------------------------------
+//
+TBool CServerAuthFailOperation::IsAlreadyTrustedSiteL()
+    {
+    TRACE( "CServerAuthFailOperation::IsAlreadyTrustedSiteL, begin" );
+    TBool isTrustedSite = EFalse;
+    if( iTrustedSiteCertStore )
+        {
+        CTrustSitesStore* trustedSitesStore = CTrustSitesStore::NewL();
+        CleanupStack::PushL( trustedSitesStore );
+
+        isTrustedSite = trustedSitesStore->IsTrustedSiteL( iEncodedServerCert, *iServerName );
+        if( isTrustedSite )
+            {
+            TBool isExpiredAccepted = trustedSitesStore->IsOutOfDateAllowedL(
+                    iEncodedServerCert, *iServerName );
+            TRACE( "CServerAuthFailOperation::IsAlreadyTrustedSiteL, isExpiredAccepted=%d",
+                    isExpiredAccepted );
+            if( !isExpiredAccepted && iAuthFailReason == EDateOutOfRange )
+                {
+                TRACE( "CServerAuthFailOperation::IsAlreadyTrustedSiteL, not accepted" );
+                isTrustedSite = EFalse;
+                }
+            }
+
+        CleanupStack::PopAndDestroy( trustedSitesStore );
+        }
+    TRACE( "CServerAuthFailOperation::IsAlreadyTrustedSiteL, isTrustedSite=%d", isTrustedSite );
+    return isTrustedSite;
+    }
+
+// ---------------------------------------------------------------------------
+// CServerAuthFailOperation::StartFetchingTrustedSiteCertsL()
+// ---------------------------------------------------------------------------
+//
+void CServerAuthFailOperation::StartFetchingTrustedSiteCertsL()
+    {
+    TRACE( "CServerAuthFailOperation::StartFetchingTrustedSiteCertsL" );
+    __ASSERT_DEBUG( iCertAttributeFilter == NULL, User::Invariant() );
+    iCertAttributeFilter = CCertAttributeFilter::NewL();
+    iCertAttributeFilter->SetOwnerType( EPeerCertificate );
+    __ASSERT_DEBUG( iTrustedSiteCertStore != NULL, User::Invariant() );
+    iTrustedSiteCertStore->List( iCertInfos, *iCertAttributeFilter, iStatus );
+    iMode = EListTrustedSiteCerts;
+    SetActive();
+    }
+
+// ---------------------------------------------------------------------------
+// CServerAuthFailOperation::ShowUntrustedCertificateDialogL()
+// ---------------------------------------------------------------------------
+//
+void CServerAuthFailOperation::ShowUntrustedCertificateDialogL()
+    {
+    TRACE( "CServerAuthFailOperation::ShowUntrustedCertificateDialogL, begin" );
+
+    // 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 );
+    __ASSERT_DEBUG( iUntrustedCertQuery == NULL, User::Invariant() );
+    iUntrustedCertQuery = CUntrustedCertQuery::NewL( iAuthFailReason, iEncodedServerCert,
+            *iServerName, isTrustedSiteCertStoreOpened );
+
+    CUntrustedCertQuery::TResponse response = CUntrustedCertQuery::EQueryRejected;
+    iUntrustedCertQuery->ShowQueryAndWaitForResponseL( response );
+    switch( response )
+        {
+        case CUntrustedCertQuery::EQueryAccepted:
+            ReturnResultL( EContinue );
+            break;
+        case CUntrustedCertQuery::EQueryAcceptedPermanently:
+            SaveServerCertToTrustedSiteCertStoreL();
+            break;
+        case CUntrustedCertQuery::EQueryRejected:
+        default:
+            ReturnResultL( EStop );
+            break;
+        }
+
+    TRACE( "CServerAuthFailOperation::ShowUntrustedCertificateDialogL, end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CServerAuthFailOperation::SaveServerCertToTrustedSiteCertStoreL()
+// ---------------------------------------------------------------------------
+//
+void CServerAuthFailOperation::SaveServerCertToTrustedSiteCertStoreL()
+    {
+    TRACE( "CServerAuthFailOperation::SaveServerCertToTrustedSiteCertStoreL" );
+
+    __ASSERT_DEBUG( iCertLabel == NULL, User::Invariant() );
+    CX509Certificate* serverCert = CX509Certificate::NewLC( iEncodedServerCert );
+    const CX500DistinguishedName& dName = serverCert->SubjectName();
+    HBufC* commonName = dName.ExtractFieldL( KX520CommonName );
+    if( commonName )
+        {
+        CleanupStack::PushL( commonName );
+        TInt commonNameLen = commonName->Length();
+        if( commonNameLen > 0 && commonNameLen <= KMaxCommonNameLength )
+            {
+            iCertLabel = commonName->AllocL();
+            }
+        CleanupStack::PopAndDestroy( commonName );
+        }
+    CleanupStack::PopAndDestroy( serverCert );
+
+    if( !iCertLabel )
+        {
+        iCertLabel = iServerName->AllocL();
+        }
+
+    iTrustedSiteCertStore->Add( *iCertLabel, EX509Certificate, EPeerCertificate,
+            NULL, NULL, iEncodedServerCert, iStatus );
+    iMode = ESavingServerCert;
+    SetActive();
+    }
+
+// ---------------------------------------------------------------------------
+// CServerAuthFailOperation::SaveServerNameToTrustedSitesStoreL()
+// ---------------------------------------------------------------------------
+//
+void CServerAuthFailOperation::SaveServerNameToTrustedSitesStoreL()
+    {
+    TRACE( "CServerAuthFailOperation::SaveServerNameToTrustedSitesStoreL, begin" );
+    CTrustSitesStore* trustedSitesStore = CTrustSitesStore::NewL();
+    CleanupStack::PushL( trustedSitesStore );
+
+    // CTrustSitesStore::AddL() may leave or it may return an error code.
+    // It leaves if parameters are incorrect, and it returns error code if
+    // saving fails. Both kinds of errors are handled here in the same way.
+    TInt err = trustedSitesStore->AddL( iEncodedServerCert, *iServerName );
+    TRACE( "CServerAuthFailOperation::SaveServerNameToTrustedSitesStoreL, err=%d", err );
+    User::LeaveIfError( err );
+
+    CleanupStack::PopAndDestroy( trustedSitesStore );
+    }
+
+// ---------------------------------------------------------------------------
+// CServerAuthFailOperation::ReturnResultL()
+// ---------------------------------------------------------------------------
+//
+void CServerAuthFailOperation::ReturnResultL( TServerAuthenticationFailureDialogResult aResult )
+    {
+    TRACE( "CServerAuthFailOperation::ReturnResultL, aResult=%d", aResult );
+    TServerAuthenticationFailureOutputBuf output( aResult );
+    iMessage.WriteL( iReplySlot, output );
+    TRACE( "CServerAuthFailOperation::ReturnResultL, completing msg 0x%08x", iMessage.Handle() );
+    iMessage.Complete( KErrNone );
+    TRACE( "CServerAuthFailOperation::ReturnResultL, informing observer" );
+    iObserver.OperationComplete();
+    TRACE( "CServerAuthFailOperation::ReturnResultL, end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CServerAuthFailOperation::RetrieveFirstTrustedSiteCertL()
+// ---------------------------------------------------------------------------
+//
+void CServerAuthFailOperation::RetrieveFirstTrustedSiteCertL()
+    {
+    TRACE( "CServerAuthFailOperation::RetrieveFirstTrustedSiteCertL" );
+    __ASSERT_DEBUG( iRetrievedCertBuffer == NULL, User::Invariant() );
+    iRetrieveCertIndex = 0;
+
+    RetrieveNextTrustedSiteCertL();
+    }
+
+// ---------------------------------------------------------------------------
+// CServerAuthFailOperation::RetrieveNextTrustedSiteCertL()
+// ---------------------------------------------------------------------------
+//
+void CServerAuthFailOperation::RetrieveNextTrustedSiteCertL()
+    {
+    TRACE( "CServerAuthFailOperation::RetrieveNextTrustedSiteCertL" );
+    if( iRetrieveCertIndex < iCertInfos.Count() )
+        {
+        CCTCertInfo& cert = *( iCertInfos[ iRetrieveCertIndex ] );
+
+        if( iRetrievedCertBuffer )
+            {
+            delete iRetrievedCertBuffer;
+            iRetrievedCertBuffer = NULL;
+            }
+        iRetrievedCertBuffer = HBufC8::NewL( cert.Size() );
+        TPtr8 buffer = iRetrievedCertBuffer->Des();
+
+        iTrustedSiteCertStore->Retrieve( cert, buffer, iStatus );
+        iMode = ERetrieveTrustedSiteCert;
+        SetActive();
+        }
+    else
+        {
+        ShowUntrustedCertificateDialogL();
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CServerAuthFailOperation::IsRetrievedCertSameAsServerCertL()
+// ---------------------------------------------------------------------------
+//
+TBool CServerAuthFailOperation::IsRetrievedCertSameAsServerCertL()
+    {
+    TRACE( "CServerAuthFailOperation::IsRetrievedCertSameAsServerCertL, begin" );
+    TBool isSame = EFalse;
+    CX509Certificate* cert = CX509Certificate::NewLC( *iRetrievedCertBuffer );
+
+    if( !iServerCertFingerprint )
+        {
+        CX509Certificate* serverCert = CX509Certificate::NewLC( iEncodedServerCert );
+        iServerCertFingerprint = serverCert->Fingerprint().AllocL();
+        CleanupStack::PopAndDestroy( serverCert );
+        }
+
+    if( cert->Fingerprint() == *iServerCertFingerprint )
+        {
+        isSame = ETrue;
+        }
+
+    CleanupStack::PopAndDestroy( cert );
+    TRACE( "CServerAuthFailOperation::IsRetrievedCertSameAsServerCertL, isSame=%d", isSame );
+    return isSame;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkiutilities/securitydialognotifiersrv/src/untrustedcertquery.cpp	Fri Aug 20 11:27:50 2010 +0300
@@ -0,0 +1,250 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Displays untrusted certificate dialog
+*
+*/
+
+#include "untrustedcertquery.h"             // CUntrustedCertQuery
+#include <hb/hbcore/hbsymbianvariant.h>     // CHbSymbianVariantMap
+#include "securitydialogstrace.h"           // TRACE macro
+
+// Note that the dialog type string, the parameters name strings, and the return code
+// name string and values must match to those defined in Qt-side untrusted certificate
+// dialog (in untrustedcertificatedefinitions.h file).
+
+// Device dialog type for untrusted certificate dialog
+_LIT( KUntrustedCertificateDialog, "com.nokia.untrustedcert/1.0" );
+
+// Variant map parameter names for untrusted certificate dialog
+_LIT( KUntrustedCertEncodedCertificate, "cert" );   // bytearray, mandatory
+_LIT( KUntrustedCertServerName, "host" );           // string, mandatory
+_LIT( KUntrustedCertValidationError, "err" );       // int (TValidationError), mandatory
+_LIT( KUntrustedCertTrustedSiteStoreFail, "tss" );  // any, prevents permanent acceptance
+
+// Dialog return code name and values
+_LIT( KUntrustedCertDialogResult, "result" );       // int
+const TInt KUntrustedCertDialogRejected = 0;
+const TInt KUntrustedCertDialogAccepted = 1;
+const TInt KUntrustedCertDialogAcceptedPermanently = 2;
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CUntrustedCertQuery::NewL()
+// ---------------------------------------------------------------------------
+//
+CUntrustedCertQuery* CUntrustedCertQuery::NewL(
+        TValidationError aValidationError, const TDesC8& aCertificate,
+        const TDesC& aServerName, TBool aCanHandlePermanentAccept )
+    {
+    TRACE( "CUntrustedCertQuery::NewL" );
+    CUntrustedCertQuery* self = new ( ELeave ) CUntrustedCertQuery(
+            aValidationError, aCertificate, aServerName,
+            aCanHandlePermanentAccept );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CUntrustedCertQuery::~CUntrustedCertQuery()
+// ---------------------------------------------------------------------------
+//
+CUntrustedCertQuery::~CUntrustedCertQuery()
+    {
+    TRACE( "CUntrustedCertQuery::~CUntrustedCertQuery, begin" );
+    Cancel();
+    delete iWait;
+    iWait = NULL;
+    delete iDeviceDialog;
+    iDeviceDialog = NULL;
+    delete iVariantMap;
+    iVariantMap = NULL;
+    TRACE( "CUntrustedCertQuery::~CUntrustedCertQuery, end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CUntrustedCertQuery::ShowQueryAndWaitForResponseL()
+// ---------------------------------------------------------------------------
+//
+void CUntrustedCertQuery::ShowQueryAndWaitForResponseL( TResponse& aResponse )
+    {
+    TRACE( "CUntrustedCertQuery::ShowQueryAndWaitForResponseL, begin" );
+    if( !iDeviceDialog )
+        {
+        iDeviceDialog = CHbDeviceDialogSymbian::NewL();
+        }
+    if( !iVariantMap )
+        {
+        iVariantMap = CHbSymbianVariantMap::NewL();
+        }
+
+    CHbSymbianVariant *variant = NULL;
+    variant = CHbSymbianVariant::NewL( &iCertificate, CHbSymbianVariant::EBinary );
+    User::LeaveIfError( iVariantMap->Add( KUntrustedCertEncodedCertificate, variant ) );
+    variant = CHbSymbianVariant::NewL( &iValidationError, CHbSymbianVariant::EInt );
+    User::LeaveIfError( iVariantMap->Add( KUntrustedCertValidationError, variant ) );
+    variant = CHbSymbianVariant::NewL( &iServerName, CHbSymbianVariant::EDes );
+    User::LeaveIfError( iVariantMap->Add( KUntrustedCertServerName, variant ) );
+    if( !iCanHandlePermanentAccept )
+        {
+        variant = CHbSymbianVariant::NewL( &iCanHandlePermanentAccept, CHbSymbianVariant::EBool );
+        User::LeaveIfError( iVariantMap->Add( KUntrustedCertTrustedSiteStoreFail, variant ) );
+        }
+
+    User::LeaveIfError( iDeviceDialog->Show( KUntrustedCertificateDialog, *iVariantMap, this ) );
+    iStatus = KRequestPending;
+    SetActive();
+
+    TRACE( "CUntrustedCertQuery::ShowQueryAndWaitForResponseL, iWait start" );
+    iWait->Start();
+    TRACE( "CUntrustedCertQuery::ShowQueryAndWaitForResponseL, iWaitCompletionCode=%d",
+            iWaitCompletionCode );
+    User::LeaveIfError( iWaitCompletionCode );
+    TRACE( "CUntrustedCertQuery::ShowQueryAndWaitForResponseL, iResponse=%d", iResponse );
+    aResponse = iResponse;
+    }
+
+// ---------------------------------------------------------------------------
+// CUntrustedCertQuery::DoCancel()
+// ---------------------------------------------------------------------------
+//
+void CUntrustedCertQuery::DoCancel()
+    {
+    TRACE( "CUntrustedCertQuery::DoCancel, begin" );
+    if( iDeviceDialog )
+        {
+        TRACE( "CUntrustedCertQuery::DoCancel, cancelling device dialog" );
+        iDeviceDialog->Cancel();
+        }
+
+    // Have to complete the request here, because cancelled device dialog does not
+    // call DeviceDialogClosed() that normally completes it. The request needs to
+    // be completed since CActive::Cancel() waits until the request is completed.
+    TRACE( "CUntrustedCertQuery::DoCancel, completing self with KErrCancel" );
+    TRequestStatus* status( &iStatus );
+    User::RequestComplete( status, KErrCancel );
+
+    // Normally the above request complete would trigger running RunL(). Now RunL()
+    // is not run since the active object is already cancelled. Hence, have to stop
+    // the waiting here so that iWait->Start() returns.
+    iWaitCompletionCode = KErrCancel;
+    if( iWait && iWait->IsStarted() )
+        {
+        TRACE( "CUntrustedCertQuery::DoCancel, stopping iWait" );
+        iWait->AsyncStop();
+        }
+    TRACE( "CUntrustedCertQuery::DoCancel, end" );
+    }
+
+// ---------------------------------------------------------------------------
+// CUntrustedCertQuery::RunL()
+// ---------------------------------------------------------------------------
+//
+void CUntrustedCertQuery::RunL()
+    {
+    TRACE( "CUntrustedCertQuery::RunL, iStatus.Int()=%d", iStatus.Int() );
+    iWaitCompletionCode = iStatus.Int();
+    if( iWait && iWait->IsStarted() )
+        {
+        TRACE( "CUntrustedCertQuery::RunL, stopping iWait" );
+        iWait->AsyncStop();
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CUntrustedCertQuery::DataReceived()
+// ---------------------------------------------------------------------------
+//
+void CUntrustedCertQuery::DataReceived( CHbSymbianVariantMap& aData )
+    {
+    TRACE( "CUntrustedCertQuery::DataReceived" );
+    const CHbSymbianVariant* variant = aData.Get( KUntrustedCertDialogResult );
+    if( variant )
+        {
+        TInt* value = variant->Value<TInt>();
+        if( value )
+            {
+            switch( *value )
+                {
+                case KUntrustedCertDialogRejected:
+                    TRACE( "CUntrustedCertQuery::DataReceived, rejected" );
+                    iResponse = EQueryRejected;
+                    break;
+                case KUntrustedCertDialogAccepted:
+                    TRACE( "CUntrustedCertQuery::DataReceived, accepted" );
+                    iResponse = EQueryAccepted;
+                    break;
+                case KUntrustedCertDialogAcceptedPermanently:
+                    TRACE( "CUntrustedCertQuery::DataReceived, accepted permanently" );
+                    iResponse = EQueryAcceptedPermanently;
+                    break;
+                default:
+                    __ASSERT_DEBUG( EFalse, User::Invariant() );
+                    break;
+                }
+            }
+        else
+            {
+            __ASSERT_DEBUG( EFalse, User::Invariant() );
+            }
+        }
+    else
+        {
+        __ASSERT_DEBUG( EFalse, User::Invariant() );
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CUntrustedCertQuery::DeviceDialogClosed()
+// ---------------------------------------------------------------------------
+//
+void CUntrustedCertQuery::DeviceDialogClosed( TInt aCompletionCode )
+    {
+    TRACE( "CUntrustedCertQuery::DeviceDialogClosed, aCompletionCode=%d", aCompletionCode );
+    if( IsActive() )
+        {
+        TRACE( "CUntrustedCertQuery::DeviceDialogClosed, request complete" );
+        TRequestStatus* status( &iStatus );
+        User::RequestComplete( status, aCompletionCode );
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CUntrustedCertQuery::CUntrustedCertQuery()
+// ---------------------------------------------------------------------------
+//
+CUntrustedCertQuery::CUntrustedCertQuery(
+        TValidationError aValidationError, const TDesC8& aCertificate,
+        const TDesC& aServerName, TBool aCanHandlePermanentAccept ) :
+        CActive( CActive::EPriorityStandard ), iValidationError( aValidationError ),
+        iCertificate( aCertificate ), iServerName( aServerName ),
+        iCanHandlePermanentAccept( aCanHandlePermanentAccept ),
+        iResponse( EQueryRejected )
+    {
+    CActiveScheduler::Add( this );
+    }
+
+// ---------------------------------------------------------------------------
+// CUntrustedCertQuery::ConstructL()
+// ---------------------------------------------------------------------------
+//
+void CUntrustedCertQuery::ConstructL()
+    {
+    TRACE( "CUntrustedCertQuery::ConstructL" );
+    iWait = new( ELeave ) CActiveSchedulerWait;
+    }
+
--- a/pkiutilities/untrustedcertificatedialog/src/untrustedcertificatewidget.cpp	Wed Aug 11 12:39:55 2010 +0300
+++ b/pkiutilities/untrustedcertificatedialog/src/untrustedcertificatewidget.cpp	Fri Aug 20 11:27:50 2010 +0300
@@ -24,7 +24,6 @@
 #include <hbgroupbox.h>
 #include <hbtextedit.h>
 #include <QGraphicsLinearLayout>
-#include <QDebug>
 
 const int KUnknownError = -5;           // KErrNotSupported
 
@@ -85,8 +84,7 @@
 
     Q_ASSERT(mCertificateDetailsText == 0);
     mCertificateDetailsText = new HbTextEdit;
-    qDebug() << "fixing Certificatedialog.length() to 63";
-    QString certificateDetails = mCertificateInfo->certificateDetails(mServerName).left(63);
+    QString certificateDetails = mCertificateInfo->certificateDetails(mServerName);
     mCertificateDetailsText->setPlainText(certificateDetails);
     mCertificateDetailsText->setReadOnly(true);
 
--- a/securitydialogs/Autolock/Autolock.pro	Wed Aug 11 12:39:55 2010 +0300
+++ b/securitydialogs/Autolock/Autolock.pro	Fri Aug 20 11:27:50 2010 +0300
@@ -27,8 +27,10 @@
 CONFIG += mobility
 MOBILITY = publishsubscribe
 
+#TRANSLATIONS = autolock.ts
+
 XQSERVICE_ROOT=../..
-include(../../xqservicebase.pri)
+#include(../../xqservicebase.pri)
 include(src/Autolock.pri)
 
 LIBS+=-lxqservice -lxqserviceutil -lflogger
@@ -36,13 +38,15 @@
 LIBS += -lsecui -letelmm -letel -lcustomapi -lcentralrepository
 LIBS += -lcone -lws32 -lkeylockpolicyapi
 LIBS += -lpower_save_display_mode
+LIBS += -ltstaskmonitorclient		# for TsTaskSettings
+LIBS += -lavkon									# for KeySounds
 
 SERVICE.FILE = service_conf.xml
 SERVICE.OPTIONS = embeddable
 SERVICE.OPTIONS += hidden
 
 libFiles.sources = Autolock.exe 
-libFiles.path = "!:\sys\bin"
+#libFiles.path = "!:\sys\bin"
 DEPLOYMENT += libFiles
 
 RESOURCES += Autolock.qrc
@@ -57,7 +61,10 @@
 
 BLD_INF_RULES.prj_exports += "./rom/Autolock.iby            CORE_APP_LAYER_IBY_EXPORT_PATH(Autolock.iby)"
 BLD_INF_RULES.prj_exports += "./conf/Autolock.confml        MW_LAYER_CONFML(Autolock.confml)"
+BLD_INF_RULES.prj_exports += "./conf/lock.confml        MW_LAYER_CONFML(lock.confml)"
 # remove CI_autolock.confml because CI already exports it
 # BLD_INF_RULES.prj_exports += "./conf/CI_Autolock.confml     MW_LAYER_CONFML(CI_Autolock.confml)"
 BLD_INF_RULES.prj_exports += "./rom/AutolockSrv.iby         CORE_APP_LAYER_IBY_EXPORT_PATH(AutolockSrv.iby)"
 BLD_INF_RULES.prj_exports += "./PubSub/SecurityUIsPrivatePSKeys.h |../../inc/securityuisprivatepskeys.h"
+
+BLD_INF_RULES.prj_exports += "./conf/lock_10283322.crml 	     MW_LAYER_CRML(lock_10283322.crml)"
\ No newline at end of file
--- a/securitydialogs/Autolock/bld.inf	Wed Aug 11 12:39:55 2010 +0300
+++ b/securitydialogs/Autolock/bld.inf	Fri Aug 20 11:27:50 2010 +0300
@@ -1,13 +1,13 @@
 // ============================================================================
 // * Makefile for building: Autolock
-// * Generated by qmake (2.01a) (Qt 4.6.3) on: 2010-05-24T09:03:29
+// * Generated by qmake (2.01a) (Qt 4.7.0) on: 2010-08-07T17:22:57
 // * This file is generated by qmake and should not be modified by the
 // * user.
 // * Project:  Autolock.pro
 // * Template: app
 // ============================================================================
 
-#define BLD_INF_AUTOLOCK_04D5822F
+#define BLD_INF_AUTOLOCK_04D793A7
 
 
 prj_platforms
@@ -22,37 +22,773 @@
 prj_extensions
 
 START EXTENSION qt/qmake_extra_pre_targetdep.export
-OPTION PREDEP_TARGET E:/sf/mw/securitysrv/securitydialogs/Autolock/moc_Autolock.cpp
-OPTION DEPS E:/sf/mw/securitysrv/securitydialogs/SecUi/Inc/SecQueryUi.h E:/sf/mw/securitysrv/securitydialogs/Autolock/src/Autolock.h 
-OPTION COMMAND /epoc32/tools/moc  -DSYMBIAN  -DUNICODE -DQT_KEYPAD_NAVIGATION -DQT_SOFTKEYS_ENABLED -DQT_USE_MATH_H_FLOATS -DHB_GESTURE_FW -DHB_EFFECTS -DHB_TEXT_MEASUREMENT_UTILITY -DQT_SVG_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I"E:/epoc32/include/mw/QtCore"  -I"E:/epoc32/include/mw/QtNetwork"  -I"E:/epoc32/include/mw/QtGui"  -I"E:/epoc32/include/mw/QtSvg"  -I"E:/epoc32/include/mw"  -I"E:/epoc32/include/mw/QtPublishSubscribe"  -I"E:/sf/mw/qt/mkspecs/common/symbian"  -I"E:/epoc32/include"  -I"E:/epoc32/include/stdapis"  -I"E:/epoc32/include/stdapis/sys"  -I"E:/sf/mw/securitysrv/securitydialogs/Autolock"  -I"E:/sf/mw/securitysrv/securitydialogs/Autolock/inc"  -I"E:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice"  -I"E:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/inc"  -I"E:/epoc32/include/platform/mw"  -I"E:/epoc32/include/platform"  -I"E:/epoc32/include/platform/loc"  -I"E:/epoc32/include/platform/mw/loc"  -I"E:/epoc32/include/platform/loc/sc"  -I"E:/epoc32/include/platform/mw/loc/sc"  -I"E:/epoc32/include/mw/hb/hbcore"  -I"E:/epoc32/include/mw/hb/hbwidgets"  -I"E:/epoc32/include/mw/hb/hbutils"  -I"E:/epoc32/include/stdapis/stlportv5"  -I"E:/epoc32/include/app"  -I"E:/epoc32/include/platform/app"  -I"E:/epoc32/include/platform/app/loc"  -I"E:/epoc32/include/platform/app/loc/sc"  -I"E:/sf/mw/securitysrv/securitydialogs/Autolock/src" -DSYMBIAN e:/sf/mw/securitysrv/securitydialogs/Autolock/src/Autolock.h -o e:/sf/mw/securitysrv/securitydialogs/Autolock/moc_Autolock.cpp
+OPTION PREDEP_TARGET A:/sf/mw/securitysrv/securitydialogs/Autolock/moc_Autolock.cpp
+OPTION DEPS A:/sf/mw/securitysrv/securitydialogs/SecUi/Inc/SecQueryUi.h A:/sf/mw/securitysrv/securitydialogs/Autolock/src/Autolock.h 
+OPTION COMMAND /epoc32/tools/moc.exe  -DSYMBIAN  -DUNICODE -DQT_KEYPAD_NAVIGATION -DQT_SOFTKEYS_ENABLED -DQT_USE_MATH_H_FLOATS -DHB_HAVE_QT_MOBILITY -DHB_HAVE_PROTECTED_CHUNK -DHB_TOUCHFEEDBACK_TYPE_IS_LONGPRESS -DHB_GESTURE_FW -DHB_EFFECTS -DHB_TEXT_MEASUREMENT_UTILITY -DHB_HAVE_QT_MOBILITY -DHB_HAVE_PROTECTED_CHUNK -DHB_TOUCHFEEDBACK_TYPE_IS_LONGPRESS -DHB_GESTURE_FW -DHB_EFFECTS -DHB_TEXT_MEASUREMENT_UTILITY -DQT_SVG_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB  -I"A:/epoc32/include/mw/QtCore"  -I"A:/epoc32/include/mw/QtNetwork"  -I"A:/epoc32/include/mw/QtGui"  -I"A:/epoc32/include/mw/QtSvg"  -I"A:/epoc32/include/mw"  -I"A:/epoc32/include/mw/QtPublishSubscribe"  -I"A:/sf/mw/qt/mkspecs/common/symbian"  -I"A:/epoc32/include"  -I"A:/epoc32/include/stdapis"  -I"A:/epoc32/include/stdapis/sys"  -I"A:/epoc32/include/platform/mw"  -I"A:/epoc32/include/platform"  -I"A:/epoc32/include/platform/loc"  -I"A:/epoc32/include/platform/mw/loc"  -I"A:/epoc32/include/platform/loc/sc"  -I"A:/epoc32/include/platform/mw/loc/sc"  -I"A:/sf/mw/securitysrv/securitydialogs/Autolock"  -I"A:/sf/mw/securitysrv/securitydialogs/Autolock/inc"  -I"A:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice"  -I"A:/sf/mw/securitysrv/securitydialogs/Autolock/autolockuseractivityservice/inc"  -I"A:/QtPublishSubscribe"  -I"A:/epoc32/include/mw/hb/hbcore"  -I"A:/epoc32/include/mw/hb/hbwidgets"  -I"A:/epoc32/include/mw/hb/hbutils"  -I"A:/epoc32/include/stdapis/stlportv5"  -I"A:/sf/mw/securitysrv/securitydialogs/Autolock/src" -DSYMBIAN a:/sf/mw/securitysrv/securitydialogs/Autolock/src/Autolock.h -o a:/sf/mw/securitysrv/securitydialogs/Autolock/moc_Autolock.cpp
 END
 START EXTENSION qt/qmake_extra_pre_targetdep.export
-OPTION PREDEP_TARGET E:/sf/mw/securitysrv/securitydialogs/Autolock/qrc_Autolock.cpp
-OPTION DEPS E:/sf/mw/securitysrv/securitydialogs/Autolock/Autolock.qrc 
-OPTION COMMAND /epoc32/tools/rcc -name Autolock e:/sf/mw/securitysrv/securitydialogs/Autolock/Autolock.qrc -o e:/sf/mw/securitysrv/securitydialogs/Autolock/qrc_Autolock.cpp
+OPTION PREDEP_TARGET A:/sf/mw/securitysrv/securitydialogs/Autolock/qrc_Autolock.cpp
+OPTION DEPS A:/sf/mw/securitysrv/securitydialogs/Autolock/Autolock.qrc A:/sf/mw/securitysrv/securitydialogs/Autolock/iconnotifier.svg A:/sf/mw/securitysrv/securitydialogs/Autolock/qtg_large_device_lock.svg 
+OPTION COMMAND /epoc32/tools/rcc.exe -name Autolock a:/sf/mw/securitysrv/securitydialogs/Autolock/Autolock.qrc -o a:/sf/mw/securitysrv/securitydialogs/Autolock/qrc_Autolock.cpp
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ar.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_ar.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ar.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_ar.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ar.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_ar.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_eu.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_eu.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_eu.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_eu.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_eu.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_eu.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_bg.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_bg.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_bg.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_bg.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_bg.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_bg.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ca.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_ca.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ca.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_ca.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ca.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_ca.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_hr.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_hr.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_hr.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_hr.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_hr.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_hr.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_cs.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_cs.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_cs.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_cs.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_cs.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_cs.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_da.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_da.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_da.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_da.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_da.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_da.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_nl.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_nl.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_nl.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_nl.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_nl.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_nl.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_en.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_en.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_en.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_en.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_en.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_en.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_en_US.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_en_US.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_en_US.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_en_US.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_en_US.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_en_US.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_et.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_et.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_et.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_et.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_et.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_et.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_fi.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_fi.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_fi.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_fi.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_fi.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_fi.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_fr.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_fr.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_fr.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_fr.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_fr.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_fr.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_fr_CA.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_fr_CA.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_fr_CA.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_fr_CA.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_fr_CA.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_fr_CA.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_gl.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_gl.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_gl.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_gl.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_gl.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_gl.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_de.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_de.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_de.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_de.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_de.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_de.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_el.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_el.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_el.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_el.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_el.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_el.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_he.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_he.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_he.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_he.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_he.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_he.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_hi.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_hi.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_hi.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_hi.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_hi.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_hi.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_zh_HK.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_zh_HK.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_zh_HK.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_zh_HK.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_zh_HK.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_zh_HK.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_hu.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_hu.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_hu.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_hu.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_hu.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_hu.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_is.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_is.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_is.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_is.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_is.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_is.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_id.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_id.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_id.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_id.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_id.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_id.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_it.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_it.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_it.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_it.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_it.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_it.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ja.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_ja.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ja.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_ja.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ja.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_ja.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ko.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_ko.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ko.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_ko.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ko.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_ko.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_lv.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_lv.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_lv.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_lv.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_lv.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_lv.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_lt.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_lt.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_lt.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_lt.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_lt.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_lt.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ms.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_ms.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ms.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_ms.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ms.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_ms.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_no.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_no.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_no.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_no.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_no.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_no.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_pl.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_pl.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_pl.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_pl.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_pl.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_pl.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_pt.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_pt.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_pt.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_pt.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_pt.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_pt.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_pt_BR.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_pt_BR.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_pt_BR.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_pt_BR.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_pt_BR.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_pt_BR.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_zh.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_zh.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_zh.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_zh.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_zh.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_zh.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ro.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_ro.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ro.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_ro.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ro.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_ro.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ru.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_ru.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ru.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_ru.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ru.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_ru.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sr.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_sr.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sr.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_sr.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sr.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_sr.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sk.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_sk.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sk.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_sk.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sk.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_sk.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sl.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_sl.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sl.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_sl.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sl.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_sl.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_es.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_es.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_es.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_es.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_es.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_es.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_es_419.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_es_419.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_es_419.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_es_419.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_es_419.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_es_419.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sv.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_sv.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sv.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_sv.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_sv.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_sv.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_tl.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_tl.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_tl.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_tl.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_tl.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_tl.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_zh_TW.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_zh_TW.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_zh_TW.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_zh_TW.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_zh_TW.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_zh_TW.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_th.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_th.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_th.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_th.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_th.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_th.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_tr.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_tr.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_tr.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_tr.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_tr.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_tr.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_uk.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_uk.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_uk.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_uk.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_uk.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_uk.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ur.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_ur.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ur.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_ur.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_ur.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_ur.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_vi.ts
+OPTION QMFILE /epoc32/data/z/resource/qt/translations/calwidget_vi.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_vi.ts
+OPTION QMFILE /epoc32/release/winscw/udeb/z/resource/qt/translations/calwidget_vi.qm
+END
+
+START EXTENSION qt/ts2qm
+OPTION TSFILE /epoc32/include/platform/qt/translations/calwidget_vi.ts
+OPTION QMFILE /epoc32/release/winscw/urel/z/resource/qt/translations/calwidget_vi.qm
 END
 
 #if defined(WINSCW)
 START EXTENSION qt/qmake_emulator_deployment
-OPTION DEPLOY_SOURCE e:/sf/mw/securitysrv/securitydialogs/Autolock/autolock.qcrml
-OPTION DEPLOY_TARGET E:/epoc32/winscw/c/resource/qt/crml/autolock.qcrml
+OPTION DEPLOY_SOURCE a:/sf/mw/securitysrv/securitydialogs/Autolock/autolock.qcrml
+OPTION DEPLOY_TARGET A:/epoc32/winscw/c/resource/qt/crml/autolock.qcrml
 END
 #endif
 START EXTENSION qt/qmake_emulator_deployment
-OPTION DEPLOY_SOURCE e:/sf/mw/securitysrv/securitydialogs/Autolock/autolock.qcrml
-OPTION DEPLOY_TARGET E:/epoc32/data/z/resource/qt/crml/autolock.qcrml
+OPTION DEPLOY_SOURCE a:/sf/mw/securitysrv/securitydialogs/Autolock/autolock.qcrml
+OPTION DEPLOY_TARGET A:/epoc32/data/z/resource/qt/crml/autolock.qcrml
 END
 
 START EXTENSION qt/qmake_store_build
 END
 
 
-START EXTENSION qt/qtextensions_pre_targetdep.export
-OPTION PREDEP_TARGET Autolock_reg.rss
-OPTION COMMAND xqsreg.exe Autolock 0x100059B5 service_conf.xml Autolock_reg.rss embeddable hidden
-END
 
 
 prj_exports
 
 ./rom/Autolock.iby CORE_APP_LAYER_IBY_EXPORT_PATH(Autolock.iby)
+./conf/Autolock.confml MW_LAYER_CONFML(Autolock.confml)
+./conf/lock.confml MW_LAYER_CONFML(lock.confml)
+./rom/AutolockSrv.iby CORE_APP_LAYER_IBY_EXPORT_PATH(AutolockSrv.iby)
+./PubSub/SecurityUIsPrivatePSKeys.h |../../inc/securityuisprivatepskeys.h
+./conf/lock_10283322.crml MW_LAYER_CRML(lock_10283322.crml)
Binary file securitydialogs/Autolock/conf/lock.confml has changed
Binary file securitydialogs/Autolock/conf/lock_10283322.crml has changed
--- a/securitydialogs/Autolock/rom/Autolock.iby	Wed Aug 11 12:39:55 2010 +0300
+++ b/securitydialogs/Autolock/rom/Autolock.iby	Fri Aug 20 11:27:50 2010 +0300
@@ -21,7 +21,7 @@
 
 S60_APP_EXE(Autolock)
 S60_APP_BITMAP(Autolock)
-S60_APP_AIF_RSC(Autolock)
+//S60_APP_AIF_RSC(Autolock)
 S60_APP_RESOURCE(Autolock)
 
 file=ABI_DIR\BUILD_DIR\autolockuseractivityservice.dll             SHARED_LIB_DIR\autolockuseractivityservice.dll
@@ -31,8 +31,8 @@
 // file=ABI_DIR\BUILD_DIR\IndicatorAutolockPlugin.dll             SHARED_LIB_DIR\IndicatorAutolockPlugin.dll
 
 // Autolock_reg.rsc needs to be also in  import\apps  because this is where QtHighway searches for it.
-data=ZPRIVATE\10003a3f\import\apps\Autolock_reg.rsc          private\10003a3f\import\apps\Autolock_reg.rsc
-
+data=ZSYSTEM\..\PRIVATE\10003a3f\import\apps\Autolock_reg.rsc               private\10003a3f\import\apps\Autolock_reg.rsc  
+      
 // this is already done in IndicatorAutolockPlugin.iby
 // data=\epoc32\data\z\resource\plugins\indicators\indicatorautolockplugin.qtplugin \resource\plugins\indicators\indicatorautolockplugin.qtplugin
 
--- a/securitydialogs/SecUi/Src/SecUiSecurityHandler.cpp	Wed Aug 11 12:39:55 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecUiSecurityHandler.cpp	Fri Aug 20 11:27:50 2010 +0300
@@ -261,7 +261,7 @@
         lCancelSupported = ESecUiCancelSupported;
         TBuf<0x100> title;
         title.Zero();
-        HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("AskSecCodeL"));
+        HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_sec_code"));
         title.Append(stringHolder->Des());
         CleanupStack::PopAndDestroy(stringHolder);
         title.Append(_L("$"));
@@ -706,7 +706,7 @@
     RDEBUG("lType", lType);
     TBuf<0x100> title;
     title.Zero();
-    HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("PassPhraseRequiredL"));
+    HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_sec_code"));
     title.Append(stringHolder->Des());
     CleanupStack::PopAndDestroy(stringHolder);
     queryAccepted = iSecQueryUi->SecQueryDialog(title, iSecUi_password, SEC_C_SECURITY_CODE_MIN_LENGTH, SEC_C_SECURITY_CODE_MAX_LENGTH, lType);
@@ -1541,7 +1541,7 @@
 
     TBuf<0x100> title;
     title.Zero();
-    HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("Puk2RequiredL"));
+    HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_puk2_code"));
     title.Append(stringHolder->Des());
     CleanupStack::PopAndDestroy(stringHolder);
     title.Append(_L("$"));
@@ -1606,9 +1606,13 @@
         iQueryCanceled = EFalse;
         TBuf<0x100> title;
         title.Zero();
-        HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("PIN2-New|PIN2-Verif"));
+        HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_pin2_code"));
         title.Append(stringHolder->Des());
         CleanupStack::PopAndDestroy(stringHolder);
+        title.Append(_L("|"));
+        HBufC* stringHolder2 = HbTextResolverSymbian::LoadLC(_L("Verify"));
+        title.Append(stringHolder2->Des());
+        CleanupStack::PopAndDestroy(stringHolder2);
         // ESecUiCodeEtelReqest/ESecUiNone might be useful
         queryAccepted = iSecQueryUi->SecQueryDialog(title, aNewPassword, SEC_C_PIN2_CODE_MIN_LENGTH, SEC_C_PIN2_CODE_MAX_LENGTH, ESecUiAlphaNotSupported | ESecUiCancelSupported
                 | secCodeType);
@@ -1842,7 +1846,7 @@
 
             TBuf<0x100> title;
             title.Zero();
-            HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("UPuk1RequiredL"));
+            HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_puk_code"));
             title.Append(stringHolder->Des());
             CleanupStack::PopAndDestroy(stringHolder);
             title.Append(_L("$"));
--- a/securitydialogs/SecUi/Src/SecUiSecuritySettings.cpp	Wed Aug 11 12:39:55 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecUiSecuritySettings.cpp	Fri Aug 20 11:27:50 2010 +0300
@@ -1726,7 +1726,7 @@
             // this queries both, and verifies itself
             TBuf<0x100> title;
             title.Zero();
-            HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_pin_code|PIN1-Ver"));
+            HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_pin_code"));
             title.Append(stringHolder->Des());
             CleanupStack::PopAndDestroy(stringHolder);
             title.Append(_L("|"));
@@ -2122,7 +2122,7 @@
         // this queries both, and verifies itself
         TBuf<0x100> title;
         title.Zero();
-        HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_pin2_code PIN2-Ver"));
+        HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_pin2_code"));
         title.Append(stringHolder->Des());
         CleanupStack::PopAndDestroy(stringHolder);
         title.Append(_L("|"));
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/src/secuinotificationdialogplugin.cpp	Wed Aug 11 12:39:55 2010 +0300
+++ b/securitydialogs/secuinotifications/secuinotificationdialogplugin/src/secuinotificationdialogplugin.cpp	Fri Aug 20 11:27:50 2010 +0300
@@ -122,6 +122,14 @@
 					#endif
 					info->group = CriticalGroup;
 					}
+				// The unlock-query must have lower priority, to get over change PIN code request.					
+				else if( iqueryType == 0xB000000 )
+					{
+					#ifdef _DEBUG
+					RDebug::Printf( "SecUiNotificationDialogPlugin::deviceDialogInfo GenericDeviceDialogGroup=%x", GenericDeviceDialogGroup );
+					#endif						
+				  info->group = GenericDeviceDialogGroup;
+					}					
 				}
     // Return device dialog flags