--- 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;