diff -r 0e6c5a9328b5 -r deec7e509f66 authenticationservices/authenticationserver/test/reftestplugin/pinplugin/pinplugin.cpp --- a/authenticationservices/authenticationserver/test/reftestplugin/pinplugin/pinplugin.cpp Thu Aug 19 11:18:56 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,257 +0,0 @@ -/* -* 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: -* CPinPlugin implementation -* -*/ - - -/** - @file -*/ - - -#include "pinplugin.h" -#include -#include -#include -#include -#include -#include -#include - -using namespace AuthServer; - -_LIT(KPinPluginResourceFile, "z:\\Resource\\pinplugin\\pinpluginconfig.rsc"); - -const TPluginId KPinPluginImplementationUid = 0x200032E5; - -CPinPlugin* CPinPlugin::NewL() - { - CPinPlugin* self = CPinPlugin::NewLC(); - CleanupStack::Pop(); - return self; - } - -CPinPlugin* CPinPlugin::NewLC() - { - CPinPlugin* self = new(ELeave) CPinPlugin(); - CleanupStack::PushL(self); - self->ConstructL(); - return self; - } - -CPinPlugin::~CPinPlugin() - { - delete iPinPluginAO; - delete iPinName; - delete iPinDescription; - } - -CPinPlugin::CPinPlugin() - { - iActive = ETrue; - } - -void CPinPlugin::ConstructL() - { - TInt retryCount, pinSize, pinMinSize, pinMaxSize; - TReal val; - - // Verifies the UID/SID of the Authentication server - // to make sure pinplugin is loaded from Authentication server. - RProcess process; - - ReadResourceL(retryCount, pinSize, pinMinSize, pinMaxSize); - - __ASSERT_ALWAYS(retryCount >= 0 && pinSize >= 0 && pinMinSize >= 0 && - pinMaxSize >= 0 && pinSize >= pinMinSize && pinSize <= pinMaxSize, - User::Panic(KPinPluginPanicString(), EPinPanicInvalidConfigValues)); - - iName.Set(iPinName->Des()); - iDescription.Set(iPinDescription->Des()); - Math::Pow10(val, pinMinSize); - // since pinMinSize is always a Int value, val never have a floating point - // in future if entropy is changed to have real value also, it will work - // now in our case, compiler do the default truncation. - iMinEntropy = val; - iFalsePositiveRate = 0; - iFalseNegativeRate = 0; - iType = AuthServer::EAuthKnowledge; - - //Create a new implementation object - iPinPluginAO = CPinPluginAO::NewL(pinSize, pinMinSize, pinMaxSize, retryCount); - - SetPluginStateL(); - - } - - -//Implement CAuthPluginInterface definitions - -void CPinPlugin::Identify(TIdentityId& aId,const TDesC& aClientMessage, - HBufC8*& aResult, TRequestStatus& aRequest) - { - iPinPluginAO->Identify(aId, aClientMessage, aResult, aRequest); - } - -void CPinPlugin::Cancel() - { - iPinPluginAO->Cancel(); - } - -void CPinPlugin::Train(TIdentityId aId, HBufC8*& aResult, TRequestStatus& aRequest) - { - iPinPluginAO->Train(aId, aResult, aRequest); - } - -TInt CPinPlugin::Forget(TIdentityId aId) - { - return iPinPluginAO->Forget(aId); - } - -TBool CPinPlugin::IsActive() const - { - return iActive; - } - -TInt CPinPlugin::DefaultData(TIdentityId aId, HBufC8*& aOutputBuf) - { - return iPinPluginAO->DefaultData(aId, aOutputBuf); - } - -TInt CPinPlugin::Reset(TIdentityId aIdentityId, const TDesC& aRegistrationData, HBufC8*& aResult) - { - TRAPD(err, iPinPluginAO->ResetL(aIdentityId, aRegistrationData, aResult)); - return err; - } - -TPluginId CPinPlugin::Id() const - { - return KPinPluginImplementationUid; - } - -void CPinPlugin::ReadResourceL(TInt& aRetryCount, TInt& aPinSize, TInt& aPinMinSize, - TInt& aPinMaxSize) - { - RFs fs; - TFileName fileName(KPinPluginResourceFile); - User::LeaveIfError(fs.Connect()); - CleanupClosePushL(fs); - BaflUtils::NearestLanguageFile(fs,fileName); - RResourceFile resourceFile; - resourceFile.OpenL(fs,fileName); - CleanupClosePushL(resourceFile); - resourceFile.ConfirmSignatureL(0); - resourceFile.Offset(); - - aRetryCount = ResourceValueL(resourceFile, R_IDENTIFY_DIALOG_RETRY_COUNT); - aPinSize = ResourceValueL(resourceFile, R_PIN_SIZE); - aPinMinSize = ResourceValueL(resourceFile, R_PIN_MIN_SIZE); - aPinMaxSize = ResourceValueL(resourceFile, R_PIN_MAX_SIZE); - - HBufC8* res = resourceFile.AllocReadLC(R_PLUGIN_INFO); - TResourceReader reader; - reader.SetBuffer(res); - iPinName = reader.ReadTPtrC().AllocL(); - iPinDescription = reader.ReadTPtrC().AllocL(); - CleanupStack::PopAndDestroy(3, &fs); - } - -TInt CPinPlugin::ResourceValueL(RResourceFile& aResFile, const TInt aResourceID) - { - TResourceReader reader; - HBufC8* res = aResFile.AllocReadLC(aResourceID); - reader.SetBuffer(res); - TInt val = reader.ReadInt8(); - CleanupStack::PopAndDestroy(res); - return val; - } - -void CPinPlugin::SetPluginStateL() - { - // identifies the pinplugins state by looking for a file - // in system drive. - _LIT(KPinPlugin,"pinplugin_inactive.txt"); - TFileName filename; - filename.Copy(KPinPlugin); // convert from 8 -> 16 bit descriptor - - TDriveUnit sysDrive = RFs::GetSystemDrive(); - TDriveName sysDriveName (sysDrive.Name()); - filename.Insert(0,sysDriveName); - filename.Insert(2,_L("\\")); - - RFs fs; - User::LeaveIfError(fs.Connect()); - TEntry entry; - TInt err = fs.Entry(filename, entry); - if(err == KErrNone) - { - iActive = EFalse; - } - else if( err == KErrNotFound ) - { - iActive = ETrue; - } - else - { - User::LeaveIfError(err); - } - } - -// Map the interface UIDs to implementation factory functions -const TImplementationProxy ImplementationTable[] = - { - IMPLEMENTATION_PROXY_ENTRY(KPinPluginImplementationUid, CPinPlugin::NewL) - }; - -// Exported proxy function to resolve intstantiation methods for an ECOM plugin dll -EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount) - { - aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy); - return ImplementationTable; - } - - -const TPtrC& CPinPlugin::Name() const - { - return iName; - } -const TPtrC& CPinPlugin::Description() const - { - return iDescription; - } -TAuthPluginType CPinPlugin::Type() const - { - return iType; - } - -TEntropy CPinPlugin::MinEntropy() const - { - return iMinEntropy; - } - -TPercentage CPinPlugin::FalsePositiveRate() const - { - return iFalsePositiveRate; - } - -TPercentage CPinPlugin::FalseNegativeRate() const - { - return iFalseNegativeRate; - } - - - -