diff -r 75a71fdb4c92 -r 7d11f9a6646f omadm/omadmextensions/adapters/nsmldinternet/inc/NSmlWLanAdapter.h --- a/omadm/omadmextensions/adapters/nsmldinternet/inc/NSmlWLanAdapter.h Tue Feb 02 00:03:17 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,365 +0,0 @@ -/* -* Copyright (c) 2002 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: Wlan adapter -* -*/ - - - -#ifndef __NSMLWLANADAPTER_H__ -#define __NSMLWLANADAPTER_H__ - - -// ----------------------------------------------------------------------------------------------- -// Includes -// ----------------------------------------------------------------------------------------------- -#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS -#include -#endif -#include -#include -#include -#include "smldmadapter.h" -#include "nsmlconstants.h" -#include "NSmlWlanSettings.h" - - -// ----------------------------------------------------------------------------------------------- -// Constants -// ----------------------------------------------------------------------------------------------- -const TInt KNSmlWepKeyGranularity = 4; -const TInt KNSmlMaxURISegLen = 32; -const TInt KExpandedEAPIdLength = 8; -const TInt KNsmlSubjectKeyIdLength = 255; - -_LIT8( KNSmlWLanAdapterDDFversion, "1.0" ); -_LIT16( KNSmlWLanServiceTable, "WLANServiceTable" ); -_LIT8( KNSmlWLanId, "Id" ); -_LIT8( KNSmlWLanName, "Name" ); -_LIT8( KNSmlWLanHidden, "Hidden" ); -_LIT8( KNSmlWLanReadOnly, "ReadOnly" ); -_LIT8( KNSmlWLanServiceId, "ServiceID" ); -_LIT8( KNSmlWLanNetworkMode, "NetworkMode" ); -_LIT8( KNSmlWLanConnectionMode, "WlanConnectionMode" ); -_LIT8( KNSmlWLanSsid, "SSID" ); -_LIT8( KNSmlWLanUsedSsid, "UsedSSID" ); -_LIT8( KNSmlWLanSsidHidden, "SSIDHidden" ); -_LIT8( KNSmlWLanUseWPAPSK, "UseWPAPSK" ); -_LIT8( KNSmlWLanEnablePSK, "EnablePSK" ); -_LIT8( KNSmlWLanWepKey1, "WEPKey1InHex" ); -_LIT8( KNSmlWLanWepKey2, "WEPKey2InHex" ); -_LIT8( KNSmlWLanWepKey3, "WEPKey3InHex" ); -_LIT8( KNSmlWLanWepKey4, "WEPKey4InHex" ); -_LIT8( KNSmlWLanWepIndex, "WEPKeyIndex" ); -_LIT8( KNSmlWLanWepKey, "WEPKey" ); -_LIT8( KNSmlWLanSecurityMode, "SecurityMode" ); -_LIT8( KNSmlWLanWpaAuthMode, "WPAAuthMode" ); -_LIT8( KNSmlWLanWpaPreSharedKey, "WPAPreSharedKey" ); -_LIT8( KNSmlWLanEapList, "WLANEAPList" ); -_LIT8( KNSmlWLanAuthMode, "WEPAuthMode" ); -_LIT8( KNSmlWLanWepKeyId, "WEPKeyID" ); -_LIT8( KNSmlWLanWepKeyData, "Data" ); -_LIT8( KNSmlWLanNodeName, "WLAN" ); - -_LIT8( KNSmlEmpty, "" ); -#define KNSmlWLanDefaultSSID _S("Net1") - -_LIT8( KNSmlWLan, "/WLAN" ); -_LIT8( KNSmlNAPDefWlanNode,"Name/NAPID/Bearer/IPAddrFromServer/IfNetworks/NAPAddr/NAPAddrTy/IPDNSAddrFromServer/DNSAddr/DefGW/NetworkMask/Networks/IAPService"); - -_LIT8( KNSmlWLanListOfLeafs, "SSID/UsedSSID/SSIDHidden/NetworkMode/SecurityMode/WPAPreSharedKey/UseWPAPSK/WEPKey/WEPKeyIndex/WLANEAPList/WEPAuthMode/EAP/SecondarySSID" ); - -_LIT8( KNSmlWLanListOfSecondaryLeafs, "SSID/UsedSSID" ); -_LIT8( KNSmlWLanListOfWepKeys, "1/2/3/4" ); -_LIT8( KNSmlWLanListOfWepKeyLeafs, "WEPKeyID/Data" ); -_LIT8( KNSmlWLanAllowUnsecure8, "allow unsecure" ); -_LIT8( KNSmlWLanWep8, "WEP" ); -_LIT8( KNSmlWLan8021x8, "802.1X" ); -_LIT8( KNSmlWLanWpa8, "WPA" ); -_LIT8( KNSmlWLanWpa28, "WPA2" ); -_LIT8( KNSmlWLanWpaPreSharedKey8, "WPA pre-shared key" ); -_LIT8( KNSmlWLanAdHoc8, "ADHOC" ); -_LIT8( KNSmlWLanInfrastructure8, "Infrastructure" ); -_LIT8( KNSmlMimeType, "text/plain" ); - - -#ifdef FF_WLAN_EXTENSIONS -_LIT8( KNSmlWLanListOfEAPLeafs, "EAPType/Username/Password/Realm/UsePseudonym/VerifyCertRealm/RequireClientAuthentication/SessionValidityTime/CipherSuite/AllowPEAPv0/AllowPEAPv1/AllowPEAPv2/Certificate/AuthProvMode/UnauthProvMode/PACGroupRef/WarnADHPNoPAC/WarnADHPNoMatchPAC/WarnNotDefaultSrv" ); -#else -_LIT8( KNSmlWLanListOfEAPLeafs, "EAPType/Username/Password/Realm/UsePseudonym/VerifyCertRealm/RequireClientAuthentication/SessionValidityTime/CipherSuite/AllowPEAPv0/AllowPEAPv1/AllowPEAPv2/Certificate" ); -#endif - -_LIT8( KNSmlWLanListOfCertificateLeafs, "IssuerName/SubjectName/CertType/SerialNumber/SubjectKeyId/Fingerprint" ); - -_LIT8( KNSmlWLanSecSsid, "SecondarySSID" ); -_LIT8( KNSmlWLanEap, "EAP" ); -_LIT8( KNSmlWLanEapType, "EAPType" ); -_LIT8( KNSmlWLanUsername, "Username" ); -_LIT8( KNSmlWLanPassword, "Password" ); -_LIT8( KNSmlWLanRealm, "Realm" ); -_LIT8( KNSmlWLanUsePseudonym, "UsePseudonym" ); -_LIT8( KNSmlWLanEncapsulation, "Encapsulation" ); -_LIT8( KNSmlWLanVerifyCertRealm, "VerifyCertRealm" ); -_LIT8( KNSmlWLanRequireClientAuthentication, "RequireClientAuthentication" ); -_LIT8( KNSmlWLanSessionValidityTime, "SessionValidityTime" ); -_LIT8( KNSmlWLanCipherSuite, "CipherSuite" ); -_LIT8( KNSmlWLanAllowPEAPv0, "AllowPEAPv0" ); -_LIT8( KNSmlWLanAllowPEAPv1, "AllowPEAPv1" ); -_LIT8( KNSmlWLanAllowPEAPv2, "AllowPEAPv2" ); -#ifdef FF_WLAN_EXTENSIONS -_LIT8( KNSmlWLanAuthProvMode, "AuthProvMode" ); -_LIT8( KNSmlWLanUnauthProvMode, "UnauthProvMode" ); -_LIT8( KNSmlWLanPACGroupRef, "PACGroupRef" ); -_LIT8( KNSmlWLanWarnADHPNoPAC, "WarnADHPNoPAC" ); -_LIT8( KNSmlWLanWarnADHPNoMatchPAC, "WarnADHPNoMatchPAC" ); -_LIT8( KNSmlWLanWarnNotDefaultSrv, "WarnNotDefaultSrv" ); -#endif -_LIT8( KNSmlWLanCertificate, "Certificate" ); -_LIT8( KNSmlWLanIssuerName, "IssuerName" ); -_LIT8( KNSmlWLanSubjectName, "SubjectName" ); -_LIT8( KNSmlWLanCertType, "CertType" ); -_LIT8( KNSmlWLanSerialNumber, "SerialNumber" ); -_LIT8( KNSmlWLanSubjectKeyId, "SubjectKeyId" ); -_LIT8( KNSmlWLanFingerprint, "Fingerprint" ); - -_LIT8(KTrue, "True"); -_LIT8(KFalse, "False"); -_LIT8(KTtrue, "true"); -_LIT8(KFfalse, "false"); -_LIT8(KSlash, "/"); -_LIT8(KDash, "-"); -_LIT8(KNSmlWLanEapId, "EAPId" ); - -_LIT8(KSuitesDefault, "-010,-022,-019,-047,-050,-051,-004,-005"); - -const TUint RSA_3DES_SHA = 10; -const TUint DHE_RSA_3DES_SHA = 22; -const TUint DHE_DSS_3DES_SHA = 19; -const TUint RSA_AES_SHA = 47; // ? -const TUint DHE_RSA_AES_SHA = 50; // ? -const TUint DHE_DSS_AES_SHA = 51; // ? -const TUint RSA_RC4_MD5 = 4; -const TUint RSA_RC4_SHA = 5; -const TUint NUMBER_OF_CIPHERSUITES = 8; - -_LIT8(KEAPSIM, "EAP-SIM"); -_LIT8(KEAPAKA, "EAP-AKA"); -_LIT8(KEAPTLS, "EAP-TLS"); -_LIT8(KEAPPEAP, "EAP-PEAP"); -_LIT8(KEAPTTLS, "EAP-TTLS"); -_LIT8(KEAPLEAP, "EAP-LEAP"); -_LIT8(KEAPMSCHAPV2, "EAP-MSCHAPV2"); -_LIT8(KMSCHAPV2, "MSCHAPV2"); -_LIT8(KEAPGTC, "EAP-GTC"); -_LIT8(KEAPFAST, "EAP-FAST"); -_LIT8(KEAPTTLSPAP, "EAP-TTLSPAP"); - - -const TUint8 KEapNoneId[] = {0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; -const TUint8 KEapTlsTypeId[] = {0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d}; -const TUint8 KEapGtcTypeId[] = {0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06}; -const TUint8 KEapLeapTypeId[] = {0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11}; -const TUint8 KEapSimTypeId[] = {0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12}; -const TUint8 KEapTtlsTypeId[] = {0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15}; -const TUint8 KEapAkaTypeId[] = {0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17}; -const TUint8 KEapPeapTypeId[] = {0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19}; -const TUint8 KEapMschapv2TypeId[] = {0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A}; -const TUint8 KEapSecuridTypeId[] = {0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20}; -const TUint8 KEapFastTypeId[] = {0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B}; -const TUint8 KMschapv2TypeId[] = {0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x63}; -const TUint8 KTtlspapTypeId[] = {0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x62}; - - - - -// ----------------------------------------------------------------------------------------------- -// Structures -// ----------------------------------------------------------------------------------------------- -struct TNSmlWepKeyBufferElement - { - HBufC8* iUri; - HBufC8* iData; - TInt iWepKeyId; - TInt iIdStatusRef; - //TInt iUseWPAPSK; - TInt iDataStatusRef; - TInt iNodeStatusRef; - TInt iLengthStatusRef; - TBool iExecuted; - TBool iDataSet; - TInt iLuid; - }; - - struct TNSmlSecondarySSIDBufferElement - { - HBufC8* iUri; - TBuf ScannedId; - TBuf UsedId; - TInt wlanLuid; - TBool iExecuted; - }; - -struct TNSmlEAPBufferElement - { - EAPSettings* iEAPSettings; - EAPSettings::TEapType iEncapsulatingEAPId; - RArray iStatusRefArray; - TInt iWLANServiceId; - }; - -// ----------------------------------------------------------------------------------------------- -// Enumerations -// ----------------------------------------------------------------------------------------------- -enum TConnectionMode - { - EAdhoc = 0, - EInfrastructure = 1 - }; - -enum TWLanSecurityMode - { - EAllowUnsecure = 1, - EWep = 2, - EWlan8021x = 4, - EWpa = 8, - EWpa2 = 16 - }; - -enum TWepAuthenticationMode - { - EOpen = 0, - EShared = 1 - }; - -// ------------------------------------------------------------------------------------------------ -// CNSmlWLanAdapter -// ------------------------------------------------------------------------------------------------ -class CNSmlWLanAdapter : public CSmlDmAdapter - { -public: - static CNSmlWLanAdapter* NewL( MSmlDmCallback* aDmCallback, CCommsDatabase& aDatabase ); - static CNSmlWLanAdapter* NewLC( MSmlDmCallback* aDmCallback, CCommsDatabase& aDatabase ); - void ConstructL( CCommsDatabase& aDatabase ); - virtual ~CNSmlWLanAdapter(); - -// Adapter interface - void DDFVersionL( CBufBase& aDDFVersion ); - void DDFStructureL( MSmlDmDDFObject& aDDF ); - void AddLeafObjectL( const TDesC8& aURI, - const TDesC8& aParentLUID, - const TDesC8& aObject, - const TDesC8& aType, - const TInt aStatusRef ); - void UpdateLeafObjectL( const TDesC8& aURI, - const TDesC8& aLUID, - const TDesC8& aObject, - const TDesC8& aType, - const TInt aStatusRef ); - void UpdateLeafObjectL( const TDesC8& aURI, - const TDesC8& aLUID, - RWriteStream*& aStream, - const TDesC8& aType, - TInt aStatusRef ); - void DeleteObjectL( const TDesC8& aURI, - const TDesC8& aLUID, - const TInt aStatusRef ); - void FetchLeafObjectL( const TDesC8& aURI, - const TDesC8& aLUID, - const TDesC8& aType, - const TInt aResultsRef, - const TInt aStatusRef ); - void FetchLeafObjectSizeL( const TDesC8& aURI, - const TDesC8& aLUID, - const TDesC8& aType, - TInt aResultsRef, - TInt aStatusRef ); - - void ChildURIListL( const TDesC8& aURI, - const TDesC8& aLUID, - const CArrayFix& aPreviousURISegmentList, - const TInt aResultsRef, - const TInt aStatusRef ); - void AddNodeObjectL( const TDesC8& aURI, - const TDesC8& aParentLUID, - const TInt aStatusRef ); - void ExecuteCommandL( const TDesC8& aURI, - const TDesC8& aLUID, - const TDesC8& aArgument, - const TDesC8& aType, - TInt aStatusRef ); - void ExecuteCommandL( const TDesC8& aURI, - const TDesC8& aLUID, - RWriteStream*& aStream, - const TDesC8& aType, - TInt aStatusRef ); - void CopyCommandL( const TDesC8& aTargetURI, - const TDesC8& aTargetLUID, - const TDesC8& aSourceURI, - const TDesC8& aSourceLUID, - const TDesC8& aType, - TInt aStatusRef ); - void StartAtomicL(); - void CommitAtomicL(); - void RollbackAtomicL(); - TBool StreamingSupport( TInt& aItemSize ); - void StreamCommittedL(); - void CompleteOutstandingCmdsL(); - CSmlDmAdapter::TError FetchLeafObjectL( const TDesC8& aURI, - const TDesC8& aLUID, - const TDesC8& aType, - CBufBase& aObject ); - -private: - CNSmlWLanAdapter(TAny* aEcomArguments); - void FillNodeInfoL( MSmlDmDDFObject& aNode, - TSmlDmAccessTypes aAccTypes, - MSmlDmDDFObject::TOccurence aOccurrence, - MSmlDmDDFObject::TScope aScope, - MSmlDmDDFObject::TDFFormat aFormat, - const TDesC8& aDescription ); - HBufC* IntToDesLC(const TInt aLuid); - HBufC8* IntToDes8LC(const TInt aLuid); - TInt DesToInt(const TDesC8& aLuid); - TInt GetIdFromLuid( const TDesC8& aLuid ); - TUint32 GetSecSSIDFromUriL(const TDesC8& aUri ); - TInt GetEAPIdFromUri( const TDesC8& aUri ); - TInt GetCertificateIdFromUri( const TDesC8& aUri ); - TInt GetWepKeyIdFromLuid( const TDesC8& aLuid ); - TInt GetWepKeyIdFromUri( const TDesC8& aUri ); - TInt NumOfUriSegs( const TDesC8& aUri ); - TPtrC8 GetLastUriSeg(const TDesC8& aURI); - TPtrC8 RemoveLastUriSeg(const TDesC8& aURI); - void ExecuteBufferL( TBool aFinal = EFalse ); - TDesC8& ConvertTo8LC( const TDesC& aSource ); - TDesC16& ConvertTo16LC( const TDesC8& aSource ); - void DesToBufferL(CBufBase& aTo, const TDesC& aFrom); - void FillCipherSuiteBufferL(CBufBase& aBuffer); - void FillCipherSuitesL(const TDesC8& aObject, const TInt aLuid); - void ConvertEAPStringToIds( const TDesC8& aEAPString, TDes8& aExpandedId, EAPSettings::TEapType& aId); - TInt GetServiceIdFromUriL( const TDesC8& aURI); - TInt GetEncapsEAPIdFromUri( const TDesC8& aUri ); - void ResetEAPStructL(); - void DeleteEAPStructL(); - - MSmlDmCallback* iCallBack; - CWlanSettings* iWlanSettings; - CArrayFixFlat *iBuffer; - TWlanSettings *iSettings; - EAPSettings* iEAPSettings; - RPointerArray iSecondaryBuffer; - RPointerArray iEAPBuffer; - - }; - -#endif __NSMLWLANADAPTER_H__