networksecurity/tlsprovider/source/tlsprovider/tlsprovinterface.cpp
branchRCL_3
changeset 58 8d540f55e491
parent 57 abbed5a4b42a
child 67 bb2423252ea3
--- a/networksecurity/tlsprovider/source/tlsprovider/tlsprovinterface.cpp	Tue Aug 31 16:45:15 2010 +0300
+++ b/networksecurity/tlsprovider/source/tlsprovider/tlsprovinterface.cpp	Wed Sep 01 12:33:58 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-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"
@@ -16,6 +16,8 @@
 #include "Tlsprovinterface.h"
 #include "tlsprovider.h"
 #include <badesca.h>
+#include <featdiscovery.h>
+#include <featureuids.h>
 
 //
 //                                   CTlsProvider
@@ -282,6 +284,9 @@
       ((TlsSessionPtr()->Attributes())->iMasterSecretInput).iClientRandom = (Attributes()->iMasterSecretInput).iClientRandom;
    	}
 
+	TBool allowUntrustedCertificates = EFalse;
+	allowUntrustedCertificates = CFeatureDiscovery::IsFeatureSupportedL(NFeature::KFeatureIdFfHttpAllowUntrustedCertificates);
+
 	// Save old implementation object
 	CTlsProviderImpl *oldTlsProviderImpl = iTlsProviderImpl;
 	iTlsProviderImpl = NULL;	
@@ -299,7 +304,16 @@
 
 		Attributes()->iProposedProtocol = oldAttr->iProposedProtocol;
 		Attributes()->iProposedCiphers = oldAttr->iProposedCiphers;
-		Attributes()->iDialogNonAttendedMode = oldAttr->iDialogNonAttendedMode;
+		
+		if( allowUntrustedCertificates )
+			{
+			Attributes()->iDialogMode = oldAttr->iDialogMode;
+			}
+		else
+			{
+			Attributes()->iDialogNonAttendedMode = oldAttr->iDialogNonAttendedMode;
+			}
+
 		Attributes()->idomainName = oldAttr->idomainName;
 
 		// Copy NULL ciphersuite setting
@@ -338,7 +352,15 @@
 		(Attributes()->iMasterSecretInput).iClientRandom = ((TlsSessionPtr()->Attributes())->iMasterSecretInput).iClientRandom;
 		Attributes()->iProposedProtocol = (TlsSessionPtr()->Attributes())->iProposedProtocol;
 		Attributes()->iNegotiatedProtocol = (TlsSessionPtr()->Attributes())->iNegotiatedProtocol;
-		Attributes()->iDialogNonAttendedMode = (TlsSessionPtr()->Attributes())->iDialogNonAttendedMode;
+		if( allowUntrustedCertificates )
+			{
+			Attributes()->iDialogMode = (TlsSessionPtr()->Attributes())->iDialogMode;
+			}
+		else
+			{
+			Attributes()->iDialogNonAttendedMode = (TlsSessionPtr()->Attributes())->iDialogNonAttendedMode;
+			}
+
       	Attributes()->iSessionNameAndID.iServerName = (TlsSessionPtr()->Attributes())->iSessionNameAndID.iServerName;
       	Attributes()->iSessionNameAndID.iSessionId = (TlsSessionPtr()->Attributes())->iSessionNameAndID.iSessionId;