diff -r 000000000000 -r 56b72877c1cb hotspotfw/hsserver/inc/hssscaninfoie.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspotfw/hsserver/inc/hssscaninfoie.h Thu Dec 17 09:20:28 2009 +0200 @@ -0,0 +1,110 @@ +/* +* Copyright (c) 2002-2006 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: Declaration of the ScanInfoIe class. +* +*/ + + + +#ifndef HSSSCANINFOIE_H +#define HSSSCANINFOIE_H + +#include "hssscaninfo.h" + +/** Defines the possible types of security information elements. */ +enum HssScanInfoIeType + { + HssScanInfoIeTypeRsn, + HssScanInfoIeTypeWpa + }; + +/** Defines the possible types of key management suites. */ +enum HssScanInfoIeKeyManagement + { + HssScanInfoIeKeyManagementEap, + HssScanInfoIeKeyManagementPsk + }; + +/** +* Class determining the security mode of an access point. +*/ +class HssScanInfoIe + { + public: // Methods + + // Constructors and destructor + + /** + * C++ default constructor. + */ + HssScanInfoIe(); + + /** + * Destructor. + */ + virtual ~HssScanInfoIe(); + + // New methods + + /** + * Parses the given scan information and returns the security + * mode of the access point. + * @param info Scan information to be parsed. + * @return Security mode of the access point. + */ + HssSecurityMode SecurityMode( + HssScanInfo& info ); + + private: // Methods + + /** + * Checks whether the given memory buffers are equal. + * + */ + int Compare( + const unsigned char* pl, + int ll, + const unsigned char* pr, + int rl ); + + /** + * Checks whether the given information element defines + * the expected key management suite. + */ + TBool IsKeyManagement( + HssScanInfoIeType ie_type, + HssScanInfoIeKeyManagement key_type, + TUint8 ie_length, + const TUint8* ie_data + ); + + /** + * Checks whether the given information element defines + * valid ciphers suites for WPA2. + */ + TBool IsWpa2Ciphers( + HssScanInfoIeType ie_type, + TUint8 ie_length, + const TUint8* ie_data + ); + + // Prohibit copy constructor if not deriving from CBase. + HssScanInfoIe( + const HssScanInfoIe& ); + // Prohibit assigment operator if not deriving from CBase. + HssScanInfoIe& operator= ( + const HssScanInfoIe& ); + }; + +#endif // HssSCANINFOIE_H