diff -r 000000000000 -r c8830336c852 accesssec_plat/eap_type_api/inc/EapSettings.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/accesssec_plat/eap_type_api/inc/EapSettings.h Thu Dec 17 08:47:43 2009 +0200 @@ -0,0 +1,175 @@ +/* +* Copyright (c) 2001-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: EAP and WLAN authentication protocols. +* +*/ + + +// Refer the document S60_3_1_EAP_Symbian_Adaptation_Design_C.doc for more +// details of using EAPSettings. Refer section 9.2 for code samples. + +#ifndef EAP_SETTINGS_H +#define EAP_SETTINGS_H + +const TUint KGeneralStringMaxLength = 255; +const TUint KKeyIdentifierLength = 255; +const TUint KThumbprintMaxLength = 64; + +class CertificateEntry +{ +public: + + CertificateEntry(); + + enum TCertType { + EUser, + ECA + }; + + // Specifies whether this entry describes user or CA certificate (mandatory) + TCertType iCertType; + + // Subject name in distinguished name ASCII form. This is optional. + // For example "/C=US/O=Some organization/CN=Some common name". + TBool iSubjectNamePresent; + TBuf iSubjectName; + + // Issuer name in distinguished name ASCII form. This is optional. + // For example "/C=US/O=Some organization/CN=Some common name". + TBool iIssuerNamePresent; + TBuf iIssuerName; + + // Serial number in ASCII form. This is optional. + TBool iSerialNumberPresent; + TBuf iSerialNumber; + + // Subject key in binary form. This is mandatory. + TBool iSubjectKeyIDPresent; + TBuf8 iSubjectKeyID; + + // Thumbprint in binary form. This is optional. + TBool iThumbprintPresent; + TBuf iThumbprint; +}; + +class EAPSettings : public CBase +{ +public: + + EAPSettings(); + + enum TEapType + { + EEapNone = 0, + EEapGtc = 6, + EEapTls = 13, + EEapLeap = 17, + EEapSim = 18, + EEapTtls = 21, + EEapAka = 23, + EEapPeap = 25, + EEapMschapv2 = 26, + EEapSecurid = 32, + EEapFast = 43, + ETtlsPlainPap = 98, + EPlainMschapv2 = 99 + }; + + // Specifies the EAP type these settings are for. + // Is not really needed but is here so just some sanity checks can be made + TEapType iEAPType; + + // Username in ASCII format + TBool iUsernamePresent; + TBuf iUsername; + + // Password in ASCII format + TBool iPasswordPresent; + TBuf iPassword; + + // Realm in ASCII format + TBool iRealmPresent; + TBuf 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; + RArray 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. + // Subject key ID and Certificate type are the only mandatory certificate + // details needed at the moment. + TBool iCertificatesPresent; + CArrayFixFlat iCertificates; + + // Array listing the encapsulated EAP types (in priority order). + // Use EAP type values from TEapType. + TBool iEncapsulatedEAPTypesPresent; + RArray iEncapsulatedEAPTypes; + + // Whether Authenticated provisioning mode allowed or not in EAP-FAST. + TBool iAuthProvModeAllowedPresent; + TBool iAuthProvModeAllowed; + + // Whether Unauthenticated provisioning mode allowed or not in EAP-FAST. + TBool iUnauthProvModeAllowedPresent; + TBool iUnauthProvModeAllowed; + + // PAC group reference in ASCII format for EAP-FAST. + TBool iPACGroupReferencePresent; + TBuf iPACGroupReference; + + // Whether to Warn (or Prompt) for ADHP (Authenticated Diffie-Hellman Protocol) + // auto-provisioning when there is no PAC at all. EAP-FAST specific. + TBool iWarnADHPNoPACPresent; + TBool iWarnADHPNoPAC; + + // Whether to Warn (or Prompt) for ADHP auto-provisioning when + // there is no PAC that matches the A-ID sent by server. EAP-FAST specific. + TBool iWarnADHPNoMatchingPACPresent; + TBool iWarnADHPNoMatchingPAC; + + // Whether to Warn (or Prompt) when client encouters a server that has provisioned + // the client with a PAC before but is not currently selected as the default server. + // EAP-FAST specific. + TBool iWarnNotDefaultServerPresent; + TBool iWarnNotDefaultServer; +}; + +#include "EapSettings.inl" + +#endif +// End of file