hsfw_plat/hotspot_framework_client_api/inc/hssiapsettings.h
branchRCL_3
changeset 55 f28ada11abbf
parent 54 63be7eb3fc78
--- a/hsfw_plat/hotspot_framework_client_api/inc/hssiapsettings.h	Tue Aug 31 16:18:40 2010 +0300
+++ b/hsfw_plat/hotspot_framework_client_api/inc/hssiapsettings.h	Wed Sep 01 12:20:32 2010 +0100
@@ -30,6 +30,9 @@
 const TInt KHssMaxMedTextLength	= 255;
 const TUint8 KHssMaxSSIDLength = 32;
 const TUint32 KHssMaxWEPKeyLength = 29;
+const TUint KHssGeneralStringMaxLength = 255;
+const TUint KHssKeyIdentifierLength = 20;
+const TUint KHssThumbprintMaxLength = 64;
 const TInt KHssMaxNumberOfKeys = 4;
 
 //  DATA TYPES
@@ -73,6 +76,138 @@
     /** Array that stores the WEP key. */
     TUint8 KeyMaterial[KHssMaxWEPKeyLength];
     };
+
+
+
+	
+/**
+* class containing Certificate info for EAP settings
+*/
+class THssCertificateEntry 
+{
+public:
+
+    enum THssCertType 
+	{
+		EUser,
+		ECA
+	};
+	
+	THssCertificateEntry();
+
+	// Specifies whether this entry describes user or CA certificate (mandatory)
+	THssCertType iCertType;
+	
+	// Subject name in distinguished name ASCII form.
+	// For example "/C=US/O=Some organization/CN=Some common name".	
+	TBool iSubjectNamePresent;
+	TBuf<KHssGeneralStringMaxLength> iSubjectName;
+		
+	// Issuer name in distinguished name ASCII form.
+	// For example "/C=US/O=Some organization/CN=Some common name".
+	TBool iIssuerNamePresent;
+	TBuf<KHssGeneralStringMaxLength> iIssuerName;
+	
+	// Serial number in ASCII form.
+	TBool iSerialNumberPresent;
+	TBuf<KHssGeneralStringMaxLength> iSerialNumber;
+	
+	// Subject key in binary form
+	TBool iSubjectKeyIDPresent;
+	TBuf8<KHssKeyIdentifierLength> iSubjectKeyID;
+	
+	// Thumbprint in binary form
+	TBool iThumbprintPresent;
+	TBuf<KHssThumbprintMaxLength> iThumbprint;
+};
+
+
+/**
+* class containing EAP settings
+*/
+class THssEapSettings 
+{
+public:	
+
+    enum THssEapType
+	{
+		EEapNone		= 0,
+		EEapGtc			= 6,
+		EEapTls			= 13,
+		EEapLeap		= 17,
+		EEapSim			= 18,
+		EEapTtls		= 21,
+		EEapAka			= 23,
+		EEapPeap		= 25,
+		EEapMschapv2	= 26,
+		EEapSecurid		    = 32,
+		EEapPlainMschapv2   = 99
+	};
+	
+	THssEapSettings();
+		
+    void ExternalizeL( RWriteStream& aStream ) const;
+    
+    void InternalizeL( RReadStream& aStream );
+
+	// Specifies the EAP type these settings are for. 
+	// Is not really needed but is here so just some sanity checks can be made
+	THssEapType iEAPType; 
+	
+	// Username in ASCII format
+	TBool iUsernamePresent;
+	TBuf<KHssGeneralStringMaxLength> iUsername; 
+		
+	// Password in ASCII format
+	TBool iPasswordPresent;
+	TBuf<KHssGeneralStringMaxLength> iPassword;
+		
+	// Realm in ASCII format
+	TBool iRealmPresent;
+	TBuf<KHssGeneralStringMaxLength> iRealm; 
+	
+	// Use pseudonym identities in EAP-SIM/AKA
+	TBool iUsePseudonymsPresent;
+	TBool iUsePseudonyms;		
+	
+	// Whether EAP-TLS/TTLS/PEAP should verify server realm
+	TBool iVerifyServerRealmPresent;
+	TBool iVerifyServerRealm;
+	
+	// Whether EAP-TLS/TTLS/PEAP should require client authentication
+	TBool iRequireClientAuthenticationPresent;
+	TBool iRequireClientAuthentication;
+	
+	// General session validity time (in minutes)
+	TBool iSessionValidityTimePresent;
+	TUint iSessionValidityTime;
+	
+	// An array of allowed cipher suites for EAP-TLS/TTLS/PEAP. 
+	// Refer to RFC2246 chapter A.5 for the values.
+	TBool iCipherSuitesPresent;
+	TUint iCipherSuitesCount;
+	RArray<TUint> iCipherSuites;
+
+	// In EAP-PEAP is version 0 allowed
+	TBool iPEAPVersionsPresent;
+	TBool iPEAPv0Allowed;
+	TBool iPEAPv1Allowed;
+	TBool iPEAPv2Allowed;
+  	  
+  	// Array listing the allowed certificates for EAP-TLS/TTLS/PEAP
+  	TBool iCertificatesPresent;
+  	TUint iCertificatesCount;
+	RPointerArray<THssCertificateEntry> iCertificates;
+	
+	// Array listing the encapsulated EAP types (in priority order)
+	TBool iEncapsulatedEAPTypesPresent;
+	TUint iEncapsulatedEAPTypesCount;
+	RArray<TUint> iEncapsulatedEAPTypes;
+	
+	// EAP type that this THssEapSettings type is encapsulated to
+	// Example: For EEapMschapv2 type this value could be EEapPeap
+	THssEapType iEncapsulatedInside;
+};
     
 /**
 * struct containing all wlan settings data
@@ -81,7 +216,7 @@
 
     {
     public:
-    
+    THssIapSettings();
     TBuf<KHssMaxMedTextLength>      Name;
     
     EHssConnectionMode              iConnectionMode;        
@@ -102,8 +237,13 @@
     TBuf8<KHssWlanWpaPskLength>     iWPAPreSharedKey;
     TUint32                         iWPAKeyLength;
     TBool                           iEnableWpaPsk;
+        
+    RPointerArray<THssEapSettings>  iEapDataArray;
     };
 
+
+#include "hssiapsettings.inl"
+
 #endif // HSSIAPSETTINGS_H
 
 // end of file