diff -r 0e6c5a9328b5 -r deec7e509f66 authenticationservices/authenticationserver/source/client/authmgrclient.cpp --- a/authenticationservices/authenticationserver/source/client/authmgrclient.cpp Thu Aug 19 11:18:56 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,276 +0,0 @@ -/* -* Copyright (c) 2005-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: -* authmgrclient - exported authentication client session implementation -* -*/ - - -/** - @file -*/ - -#include "authclient_impl.h" -#include "authserverutil.h" - -using namespace AuthServer; - -/** - * Register a new identity. This causes the server to create a new - * identity and attempt to train the user with all available active - * plugins. At least one plugin must be trained for this to be succesful. - * - * @param aIdentity The new heap allocated identity details will be - * pointed at by this parameter upon successful completion. - * - * @param aDescription The identity's description text. - * - * @param aRequest This status object will be completed when this - * asynchronous call finishes, the return values are described below. - * - * @capability TrustedUI - * - * @return KErrServerTerminated, if the server no longer present - * @return KErrServerBusy, if the request cannot be handled at this time. - * @return KErrNoMemory, if there is insufficient memory available. - * @return KErrPermissionDenied, if the caller has insufficient capabilities. - * @return KErrAuthServRegistrationFailed, if the all plugins failed to - * successfully train for the identity. - **/ -EXPORT_C void RAuthMgrClient::RegisterIdentityL( - CIdentity*& aIdentity, - const TDesC& aDescription, - TRequestStatus& aRequest) - { - CheckAsyncDecoderL(); - iAsyncResponseDecoder->RegisterIdentityL(aIdentity, aDescription, aRequest); - } - -/** - * Remove an identity. - * - * @param aId The identity to remove. - * - * @capability WriteDeviceData - * - * @leave KErrServerTerminated, if the server no longer present - * @leave KErrServerBusy, if the request cannot be handled at this time. - * @leave KErrNoMemory, if there is insufficient memory available. - * @leave KErrPermissionDenied, if the caller has insufficient capabilities. - * @leave KErrAuthServIdentityNotFound, if the id does not exist. - **/ -EXPORT_C void RAuthMgrClient::RemoveIdentityL( - TIdentityId aId) - { - User::LeaveIfError(CallSessionFunction(ERemoveIdentity, TIpcArgs(aId))); - } - -/** - * Train an authentication plugin for the specified identity. The identity - * to be trained must be authenticated prior to training. This is - * necessary for the AuthServer to decrypt the protection key prior to - * encrypting it with the new key generated through training. - * - * @param aId The identity for whom to train the plugin. - * - * @param aPlugin The id of the plugin to train. - * - * @param aRequest This status object will be completed when this - * asynchronous call finishes. - * - * @capability WriteUserData - * - * @return KErrServerTerminated, if the server no longer present - * @return KErrServerBusy, if the request cannot be handled at this time. - * @return KErrNoMemory, if there is insufficient memory available. - * @return KErrPermissionDenied, if the caller has insufficient capabilities. - * @return KErrAuthServIdentityNotFound, if the id does not exist. - * @return KErrAuthServNoSuchPlugin, if the plugin does not exist. - * @return KErrAuthServAuthenticationRequired, if the identity to be - * trained is not currently authenticated. - **/ -EXPORT_C void RAuthMgrClient::TrainPlugin( - TIdentityId aId, - TPluginId aPlugin, - TRequestStatus& aRequest) - { - CallSessionFunction(ETrainPlugin, TIpcArgs(aId, aPlugin), aRequest); - } - - -/** - * Remove the specified plugin as an authentication method for the - * identity. - * - * @param aId The identity for whom to forget plugin training. - * - * @param aPlugin The id of the plugin to retrain. - * - * @capability WriteUserData - * - * @return KErrServerTerminated, if the server no longer present - * @return KErrServerBusy, if the request cannot be handled at this time. - * @return KErrNoMemory, if there is insufficient memory available. - * @return KErrPermissionDenied, if the caller has insufficient capabilities. - * @return KErrAuthServIdentityNotFound, if the id does not exist. - * @return KErrAuthServNoSuchPlugin, if the plugin does not exist. - **/ -EXPORT_C void RAuthMgrClient::ForgetPluginL( - TIdentityId aId, - TPluginId aPlugin) - { - User::LeaveIfError(CallSessionFunction(EForgetPlugin, TIpcArgs(aId, aPlugin))); - } - - -/** - * Specifies the preferred plugin for the named type. - * - * @param aType The type of plugin for which to define the preference. - * - * @param aPluginId The id of the preferred plugin for the specified type. - * - * @capability WriteDeviceData - * - * @return KErrServerTerminated, if the server no longer present - * @return KErrServerBusy, if the request cannot be handled at this time. - * @return KErrNoMemory, if there is insufficient memory available. - * @return KErrPermissionDenied, if the caller has insufficient capabilities. - * @return KErrAuthServNoSuchPlugin, if the plugin does not exist. - * @return KErrArgument, if aType does not match the plugin's type. - **/ -EXPORT_C void RAuthMgrClient::SetPreferredTypePluginL(TAuthPluginType aType, - TPluginId aPluginId) - { - User::LeaveIfError(CallSessionFunction(ESetAuthPreferences, TIpcArgs(aType, aPluginId))); - } - -/** - * Reset the training data of a registered identity. - * - * @param aId The identity to reset. - * - * @param aRegistrationInformation The regisration information to be used for - * identifying the user. This data is meaningful for knowledge based authentication - * server plugins (here the registration data could be the passphrase). - * Note that a plugin may choose to ignore the supplied registration data and simply - * remove the identity from its records. - * - * @capability WriteDeviceData - * - * @return KErrServerTerminated, if the server no longer present - * @return KErrServerBusy, if the request cannot be handled at this time. - * @return KErrNoMemory, if there is insufficient memory available. - * @return KErrPermissionDenied, if the caller has insufficient capabilities. - * @return KErrAuthServIdentityNotFound, if the id cannot be found. - * @return KErrAuthServResetMayLoseIdentity, if a reset can result in the loss of an identity. - * @see KErrAuthServResetMayLoseIdentity. - * @return KErrArgument, if the supplied arguments are incorrect. - * @return ... any of the system-wide error codes. - **/ -EXPORT_C void RAuthMgrClient::ResetIdentityL(TIdentityId aId, - const TDesC& aRegistrationInformation) - { - // Sanity check arguments - if (aId == 0) - { - User::Leave(KErrArgument); - } - User::LeaveIfError(CallSessionFunction(EResetIdentity, TIpcArgs(aId, &aRegistrationInformation))); - } - -/** - * Reset the training data of a registered identity. - * - * @param aId The identity to reset. - * - * @param aPluginType The type of plugins for which to supply the registration data during the reset. - * Note that currently only EAuthKnowledge type plugins is supported for this parameter. - * - * @param aRegistrationInformation The regisration information to be used for - * identifying the user. This data is meaningful for knowledge based authentication - * server plugins (here the registration data could be the passphrase). - * Note that a plugin may choose to ignore the supplied registration data and simply - * remove the identity from its records. - * - * @capability WriteDeviceData - * - * @return KErrServerTerminated, if the server no longer present - * @return KErrServerBusy, if the request cannot be handled at this time. - * @return KErrNoMemory, if there is insufficient memory available. - * @return KErrPermissionDenied, if the caller has insufficient capabilities. - * @return KErrAuthServIdentityNotFound, if the id cannot be found. - * @return KErrAuthServResetMayLooseIdentity, if a reset can result in the loss of an identity. - * @see KErrAuthServResetMayLooseIdentity. - * @return KErrArgument, if the supplied arguments are incorrect. - * @return ... any of the system-wide error codes. - **/ -EXPORT_C void RAuthMgrClient::ResetIdentityL(TIdentityId aId, - TAuthPluginType aPluginType, - const TDesC& aRegistrationInformation) - { - // Sanity check arguments - if (aId == 0) - { - User::Leave(KErrArgument); - } - User::LeaveIfError(CallSessionFunction(EResetIdentityByType, TIpcArgs(aId, aPluginType, &aRegistrationInformation))); - } - -/** - * Reset the training data of a registered identity. - * - * @param aId The identity to reset. - * - * @param aPluginIdList The list of plugin ids for which to supply the registration data during the reset. - * - * @param aRegistrationInformation An array of regisration information to be used for - * identifying the user. The order of elements in this array correspond to the order of plugin ids in - * aPluginIdList. This data is meaningful for knowledge based authentication server - * plugins (here the registration data could be the passphrase). - * Note that a plugin may choose to ignore the supplied registration data and simply - * remove the identity from its records. - * - * @capability WriteDeviceData - * - * @return KErrServerTerminated, if the server no longer present - * @return KErrServerBusy, if the request cannot be handled at this time. - * @return KErrNoMemory, if there is insufficient memory available. - * @return KErrPermissionDenied, if the caller has insufficient capabilities. - * @return KErrAuthServIdentityNotFound, if the id cannot be found. - * @return KErrAuthServResetMayLooseIdentity, if a reset can result in the loss of an identity. - * @see KErrAuthServResetMayLooseIdentity. - * @return KErrArgument, if the supplied arguments are incorrect. - * @return ... any of the system-wide error codes. - **/ -EXPORT_C void RAuthMgrClient::ResetIdentityL(TIdentityId aId, - RArray& aPluginIdList, - RPointerArray& aRegistrationInformation) - { - // Sanity check arguments - TInt count = aPluginIdList.Count(); - if ((aId == 0) || (count < 1) || (count != aRegistrationInformation.Count())) - { - User::Leave(KErrArgument); - } - - // Flatten aPluginIdList - HBufC8* bufPluginIds = AuthServerUtil::FlattenDataArrayLC(aPluginIdList); - - // Flatten aRegistrationInformation - HBufC8* bufRegInfo = AuthServerUtil::FlattenDataPointerArrayLC(aRegistrationInformation); - - User::LeaveIfError(CallSessionFunction(EResetIdentityByList, TIpcArgs(aId, bufPluginIds, bufRegInfo))); - CleanupStack::PopAndDestroy(2, bufPluginIds); // bufRegInfo - }