hsfw_plat/hotspot_framework_client_api/inc/hssiapsettings.h
branchRCL_3
changeset 24 63be7eb3fc78
parent 0 56b72877c1cb
child 25 f28ada11abbf
equal deleted inserted replaced
23:b852595f5cbe 24:63be7eb3fc78
    28 //  CONSTANTS
    28 //  CONSTANTS
    29 const TInt KHssWlanWpaPskLength = 64;
    29 const TInt KHssWlanWpaPskLength = 64;
    30 const TInt KHssMaxMedTextLength	= 255;
    30 const TInt KHssMaxMedTextLength	= 255;
    31 const TUint8 KHssMaxSSIDLength = 32;
    31 const TUint8 KHssMaxSSIDLength = 32;
    32 const TUint32 KHssMaxWEPKeyLength = 29;
    32 const TUint32 KHssMaxWEPKeyLength = 29;
    33 const TUint KHssGeneralStringMaxLength = 255;
       
    34 const TUint KHssKeyIdentifierLength = 20;
       
    35 const TUint KHssThumbprintMaxLength = 64;
       
    36 const TInt KHssMaxNumberOfKeys = 4;
    33 const TInt KHssMaxNumberOfKeys = 4;
    37 
    34 
    38 //  DATA TYPES
    35 //  DATA TYPES
    39 
    36 
    40 enum EHssWepAuthenticationMode
    37 enum EHssWepAuthenticationMode
    74     /** The length of KeyMaterial in bytes. Range: 0-29 */
    71     /** The length of KeyMaterial in bytes. Range: 0-29 */
    75     TUint32 KeyLength;
    72     TUint32 KeyLength;
    76     /** Array that stores the WEP key. */
    73     /** Array that stores the WEP key. */
    77     TUint8 KeyMaterial[KHssMaxWEPKeyLength];
    74     TUint8 KeyMaterial[KHssMaxWEPKeyLength];
    78     };
    75     };
    79 
       
    80 
       
    81 
       
    82 	
       
    83 /**
       
    84 * class containing Certificate info for EAP settings
       
    85 */
       
    86 class THssCertificateEntry 
       
    87 {
       
    88 public:
       
    89 
       
    90     enum THssCertType 
       
    91 	{
       
    92 		EUser,
       
    93 		ECA
       
    94 	};
       
    95 	
       
    96 	THssCertificateEntry();
       
    97 
       
    98 	// Specifies whether this entry describes user or CA certificate (mandatory)
       
    99 	THssCertType iCertType;
       
   100 	
       
   101 	// Subject name in distinguished name ASCII form.
       
   102 	// For example "/C=US/O=Some organization/CN=Some common name".	
       
   103 	TBool iSubjectNamePresent;
       
   104 	TBuf<KHssGeneralStringMaxLength> iSubjectName;
       
   105 		
       
   106 	// Issuer name in distinguished name ASCII form.
       
   107 	// For example "/C=US/O=Some organization/CN=Some common name".
       
   108 	TBool iIssuerNamePresent;
       
   109 	TBuf<KHssGeneralStringMaxLength> iIssuerName;
       
   110 	
       
   111 	// Serial number in ASCII form.
       
   112 	TBool iSerialNumberPresent;
       
   113 	TBuf<KHssGeneralStringMaxLength> iSerialNumber;
       
   114 	
       
   115 	// Subject key in binary form
       
   116 	TBool iSubjectKeyIDPresent;
       
   117 	TBuf8<KHssKeyIdentifierLength> iSubjectKeyID;
       
   118 	
       
   119 	// Thumbprint in binary form
       
   120 	TBool iThumbprintPresent;
       
   121 	TBuf<KHssThumbprintMaxLength> iThumbprint;
       
   122 };
       
   123 
       
   124 
       
   125 /**
       
   126 * class containing EAP settings
       
   127 */
       
   128 class THssEapSettings 
       
   129 {
       
   130 public:	
       
   131 
       
   132     enum THssEapType
       
   133 	{
       
   134 		EEapNone		= 0,
       
   135 		EEapGtc			= 6,
       
   136 		EEapTls			= 13,
       
   137 		EEapLeap		= 17,
       
   138 		EEapSim			= 18,
       
   139 		EEapTtls		= 21,
       
   140 		EEapAka			= 23,
       
   141 		EEapPeap		= 25,
       
   142 		EEapMschapv2	= 26,
       
   143 		EEapSecurid		    = 32,
       
   144 		EEapPlainMschapv2   = 99
       
   145 	};
       
   146 	
       
   147 	THssEapSettings();
       
   148 		
       
   149     void ExternalizeL( RWriteStream& aStream ) const;
       
   150     
       
   151     void InternalizeL( RReadStream& aStream );
       
   152 
       
   153 	// Specifies the EAP type these settings are for. 
       
   154 	// Is not really needed but is here so just some sanity checks can be made
       
   155 	THssEapType iEAPType; 
       
   156 	
       
   157 	// Username in ASCII format
       
   158 	TBool iUsernamePresent;
       
   159 	TBuf<KHssGeneralStringMaxLength> iUsername; 
       
   160 		
       
   161 	// Password in ASCII format
       
   162 	TBool iPasswordPresent;
       
   163 	TBuf<KHssGeneralStringMaxLength> iPassword;
       
   164 		
       
   165 	// Realm in ASCII format
       
   166 	TBool iRealmPresent;
       
   167 	TBuf<KHssGeneralStringMaxLength> iRealm; 
       
   168 	
       
   169 	// Use pseudonym identities in EAP-SIM/AKA
       
   170 	TBool iUsePseudonymsPresent;
       
   171 	TBool iUsePseudonyms;		
       
   172 	
       
   173 	// Whether EAP-TLS/TTLS/PEAP should verify server realm
       
   174 	TBool iVerifyServerRealmPresent;
       
   175 	TBool iVerifyServerRealm;
       
   176 	
       
   177 	// Whether EAP-TLS/TTLS/PEAP should require client authentication
       
   178 	TBool iRequireClientAuthenticationPresent;
       
   179 	TBool iRequireClientAuthentication;
       
   180 	
       
   181 	// General session validity time (in minutes)
       
   182 	TBool iSessionValidityTimePresent;
       
   183 	TUint iSessionValidityTime;
       
   184 	
       
   185 	// An array of allowed cipher suites for EAP-TLS/TTLS/PEAP. 
       
   186 	// Refer to RFC2246 chapter A.5 for the values.
       
   187 	TBool iCipherSuitesPresent;
       
   188 	TUint iCipherSuitesCount;
       
   189 	RArray<TUint> iCipherSuites;
       
   190 
       
   191 	// In EAP-PEAP is version 0 allowed
       
   192 	TBool iPEAPVersionsPresent;
       
   193 	TBool iPEAPv0Allowed;
       
   194 	TBool iPEAPv1Allowed;
       
   195 	TBool iPEAPv2Allowed;
       
   196   	  
       
   197   	// Array listing the allowed certificates for EAP-TLS/TTLS/PEAP
       
   198   	TBool iCertificatesPresent;
       
   199   	TUint iCertificatesCount;
       
   200 	RPointerArray<THssCertificateEntry> iCertificates;
       
   201 	
       
   202 	// Array listing the encapsulated EAP types (in priority order)
       
   203 	TBool iEncapsulatedEAPTypesPresent;
       
   204 	TUint iEncapsulatedEAPTypesCount;
       
   205 	RArray<TUint> iEncapsulatedEAPTypes;
       
   206 	
       
   207 	// EAP type that this THssEapSettings type is encapsulated to
       
   208 	// Example: For EEapMschapv2 type this value could be EEapPeap
       
   209 	THssEapType iEncapsulatedInside;
       
   210 };
       
   211     
    76     
   212 /**
    77 /**
   213 * struct containing all wlan settings data
    78 * struct containing all wlan settings data
   214 */
    79 */
   215 class THssIapSettings 
    80 class THssIapSettings 
   216 
    81 
   217     {
    82     {
   218     public:
    83     public:
   219     THssIapSettings();
    84     
   220     TBuf<KHssMaxMedTextLength>      Name;
    85     TBuf<KHssMaxMedTextLength>      Name;
   221     
    86     
   222     EHssConnectionMode              iConnectionMode;        
    87     EHssConnectionMode              iConnectionMode;        
   223     TBuf<KHssMaxSSIDLength>         iSSID;                
    88     TBuf<KHssMaxSSIDLength>         iSSID;                
   224 
    89 
   235     EHssWepAuthenticationMode       iAuthenticationMode; 
   100     EHssWepAuthenticationMode       iAuthenticationMode; 
   236     
   101     
   237     TBuf8<KHssWlanWpaPskLength>     iWPAPreSharedKey;
   102     TBuf8<KHssWlanWpaPskLength>     iWPAPreSharedKey;
   238     TUint32                         iWPAKeyLength;
   103     TUint32                         iWPAKeyLength;
   239     TBool                           iEnableWpaPsk;
   104     TBool                           iEnableWpaPsk;
   240         
       
   241     RPointerArray<THssEapSettings>  iEapDataArray;
       
   242     };
   105     };
   243 
       
   244 
       
   245 #include "hssiapsettings.inl"
       
   246 
   106 
   247 #endif // HSSIAPSETTINGS_H
   107 #endif // HSSIAPSETTINGS_H
   248 
   108 
   249 // end of file
   109 // end of file
   250 
   110