/*
* Copyright (c) 2008 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: WAPI authentication protocols.
*
*/
/*
* %version: 14 %
*/
#ifndef _WAPICERTIFICATES_H_
#define _WAPICERTIFICATES_H_
#include <e32base.h>
#include <e32std.h>
const TInt KMaxLabelLength = 255;
const TInt KMaxIdentityLength = 310;
class CCertificateStoreDatabase;
class abs_eap_am_tools_c;
class dummy_wapi_core_c;
class wapi_am_core_symbian_c;
class ec_certificate_store_c;
/**
* This is a wrapper class which can be used to handle WAPI related certificates
*/
class CWapiCertificates : /*public CBase,*/ public CActive
{
public:
IMPORT_C CWapiCertificates();
IMPORT_C ~CWapiCertificates();
/**
* Function for creating the CWapiCertificates object
*
*/
IMPORT_C static CWapiCertificates* NewL();
/**
* Function for reserving memory for the internal data types
*
*/
void ConstructL();
/**
* Gets a list of the available WAPI user and CA certificates
*
* NOTE that the caller is responsible for freeing the memory of the arrays
*
* @param aUserCerts Array of available WAPI User certificate labels
* @param aUserCertData Array of available WAPI User certificate identities
* @param aCACerts Array of available WAPI CA certificate labels
* @param aCACertData Array of available WAPI CA certificate identities
*/
IMPORT_C void GetAllCertificateLabelsL( RArray<TBuf<KMaxLabelLength> > **aUserCerts, RArray<TBuf8<KMaxIdentityLength> > **aUserCertData,
RArray<TBuf<KMaxLabelLength> > **aCACerts, RArray<TBuf8<KMaxIdentityLength> >**aCACertData );
/**
* Resets the WAPI Certificate store
*
*/
IMPORT_C void ResetCertificateStoreL( );
/**
* Gets the WAPI certificate configuration of a specific AP
*
* @param aId Service table id
* @param aUserCert Id matching the selected WAPI User certificate
* @param aCACert Id matching the selected WAPI CA certificate
*/
IMPORT_C void GetConfigurationL( const TInt aId, TDes& aCACert, TDes& aUserCert );
/**
* Sets the WAPI certificate configuration of a specific AP
*
* @param aId Service table id
* @param aCACertData Selected WAPI CA certificate identity
*/
IMPORT_C void SetCACertL( const TInt aId, const TBuf8<KMaxIdentityLength> aCACertData );
/**
* Sets the WAPI certificate configuration of a specific AP
*
* @param aId Service table id
* @param aUserCertData Selected WAPI User certificate identity
*/
IMPORT_C void SetUserCertL( const TInt aId, const TBuf8<KMaxIdentityLength> aUserCertData );
/**
* Delete AP related data from certificate database tables
*
* @param aId Service table id
*/
IMPORT_C void DeleteAPSpecificDataL( const TInt aId );
protected: // from CActive
/**
* RunL from CActive
*/
void RunL();
/**
* DoCancel from CActive
*/
void DoCancel();
private:
// Pointer to the used certificate store object
CCertificateStoreDatabase* iCertDB;
// amTools is needed for the certificate store object creation
abs_eap_am_tools_c* iAmTools;
dummy_wapi_core_c* iDummyCore;
// The pointer to the ec_certificate_store_c needed to create the wapi_am_core_symbian
ec_certificate_store_c* iEcCertStore;
// The pointer to the object needed to start the certificate import and reading of labels
wapi_am_core_symbian_c* iWapiCore;
// For wrapping asynchronous calls.
CActiveSchedulerWait iWait;
};
#endif // _WAPICERTIFICATES_H_
// End of file