diff -r f18401adf8e1 -r 641f389e9157 authenticationservices/authenticationserver/test/tAuthSvr/src/tPinAuthPlugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/authenticationservices/authenticationserver/test/tAuthSvr/src/tPinAuthPlugin.h Tue Aug 31 17:00:08 2010 +0300 @@ -0,0 +1,178 @@ +/* +* Copyright (c) 2006-2009 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: +* CTPinAuthPlugin is an interface implementation for CAuthPluginInterface +* +*/ + + + +#ifndef TPINAUTHPLUGIN_H +#define TPINAUTHPLUGIN_H + +#include "authserver_client.h" +#include + + + +//An implementation of the CAuthPluginInterface definition + +using namespace AuthServer; + +//implementation_uid = 0x10204F10 +class CTPinAuthPlugin : public CAuthPluginInterface + { +public: + // Two phase constructor + static CTPinAuthPlugin* NewL(); + // Destructor + virtual ~CTPinAuthPlugin(); + //Implementation of CAuthPluginInterface definitions using a PIN system + virtual void Identify(TIdentityId& aId, const TDesC& aClientMessage, HBufC8*& aResult, TRequestStatus& aRequest); + virtual void Cancel(); + virtual void Train(TIdentityId aId, HBufC8*& aResult, TRequestStatus& aRequest); + virtual TBool IsActive() const; + virtual TInt Forget(TIdentityId aId); + virtual TInt DefaultData(TIdentityId aId, HBufC8*& aOutputBuf); + virtual TInt Reset(TIdentityId aId, const TDesC& aRegistrationData, HBufC8*& aResult); + //virtual TPluginId Id() const; + virtual const TPtrC& Name() const; + virtual const TPtrC& Description() const; + virtual AuthServer::TEntropy MinEntropy() const; + virtual AuthServer::TPercentage FalsePositiveRate() const; + virtual AuthServer::TPercentage FalseNegativeRate() const; + virtual AuthServer::TAuthPluginType Type() const; + + // Utility functions + TInt IdReadUserInput(TBuf8<32>& inputValue); + TInt TrainReadUserInput(TBuf8<32>& inputValue); + TInt CheckForStringPresence(TIdentityId& aId, TBuf8<32> aInputValue, TRequestStatus& aRequestValue); + TInt CheckForNewStringPresenceL(TIdentityId aId, TBuf8<32> aInputValue, TRequestStatus& aRequestValue); + TInt FindStringAndRemoveL(TIdentityId aId); + TInt AddToGlobalDb (TIdentityId aId, TBuf8<32> aInputValue); + TInt RemoveFromGlobalDb (TIdentityId aId); + const HBufC* ClientMessage (); + + +public: + mutable TBuf<70> iFileToRead; + void ConstructL(); + CTPinAuthPlugin(); + void ReloadAllFromIniFile(); + void ReloadActiveStateFromIniFile() const; +protected: + /// The name of the plugin. Derived classes should set this member. + TPtrC iName; + /// The plugin's description. Derived classes should set this member. + TPtrC iDescription; + /// The minumum entropy provided by the plugin. Derived classes should set + /// this member. + AuthServer::TEntropy iMinEntropy; + /// The false positive rate of the plugin. Derived classes should set this + /// member. + AuthServer::TPercentage iFalsePositiveRate; + /// The false negative rate of the plugin. Derived classes should set this + /// member. + AuthServer::TPercentage iFalseNegativeRate; + /// The type of the plugin. Derived classes should set this member. + AuthServer::TAuthPluginType iType; + +private: + // Data read from file determining if this plugin supports default data + TBool iSupportsDefaultData; + mutable TBool iActiveState; + HBufC* iClientMessage; + }; + + +//========================================================================= +// The various classes that are spawned from this base class by inheriting the implementations besides +// the Id() function (Uses the #define macro) + +// number is hex, type is one of the TAuthPluginType enums +// Id() returns the Id of the plugin + + +#define NClass(id,type) class CTPinAuthPlugin##id : public CTPinAuthPlugin\ + { \ +public: \ + typedef CTPinAuthPlugin##id TMyPinType; \ + TPluginId Id() const \ + { return 0x##id; } \ + const TPtrC& Name() const \ + { \ + return iName; \ + } \ + const TPtrC& Description() const \ + { \ + return iDescription; \ + } \ + AuthServer::TAuthPluginType Type() const \ + { \ + return iType; \ + } \ + AuthServer::TEntropy MinEntropy() const \ + { \ + return iMinEntropy; \ + } \ + AuthServer::TPercentage FalsePositiveRate() const \ + { \ + return iFalsePositiveRate; \ + } \ + AuthServer::TPercentage FalseNegativeRate() const \ + { \ + return iFalseNegativeRate; \ + } \ + static TMyPinType* NewL() \ + { \ + TMyPinType* r = new (ELeave) TMyPinType(); \ + CleanupStack::PushL(r); \ + r->ConstructL(); \ + CleanupStack::Pop(r); \ + r->iType = type; \ + return r; \ + } \ + } + +NClass(11113100, EAuthKnowledge); +NClass(11113101, EAuthKnowledge); +NClass(11113102, EAuthKnowledge); +NClass(11113103, EAuthBiometric); +NClass(11113104, EAuthToken); + +//========================================================================= +// Constants used in the utility functions -File locations, etc +_LIT8(KDefaultData, "0000"); +_LIT(KInitInfoFile, "\\tAuth\\tAuthSvr\\testdata\\initialisation_Info.ini"); +_LIT(KPolicyFile, "\\tAuth\\tAuthSvr\\testdata\\AuthSvrPolicy.ini"); + +_LIT(KPluginNamePin, "Pin1"); +_LIT(KPluginDescriptionPin, "Pin Plugin, can store and return known id and training data for each identity."); + +static const TInt KEntropyPin = 999; +static const TInt KFalsePosPin = 100; +static const TInt KFalseNegPin = 10; + +//From Step_Base.cpp +_LIT(KPluginIniSection, "SectionOne"); +_LIT(KAuthSvrPolicyFile, "\\tAuth\\tAuthSvr\\testdata\\AuthSvrPolicy.ini"); +_LIT(KDefaultPluginTag, "DefaultPlugin"); +_LIT(KEnteredPinTag, "EnteredPinValue"); +_LIT(KPinDbTag, "Identity&PinValues"); +_LIT(KTotalDbTag, "AllUserID&PinValues"); +_LIT(KInitPinDatabaseValue, ","); + + + +#endif /* TPINAUTHPLUGIN_H */