authenticationservices/authenticationserver/source/client/authclient.cpp
branchRCL_3
changeset 62 a71299154b21
parent 61 641f389e9157
child 63 94225563cd41
--- a/authenticationservices/authenticationserver/source/client/authclient.cpp	Tue Aug 31 17:00:08 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,774 +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: 
-* authclient - exported authentication client session  implementation
-*
-*/
-
-
-/**
- @file 
-*/
-
-#include <e32debug.h>
-#include <s32mem.h>
-#include "authclient_impl.h"
-#include "authrepository.h"
-
-namespace AuthServer
-{
-
-/**
-	Helper function for Authenticate.  This allocates
-	a buffer to hold the externalized authentication expression.
-	
-	@param	aExpr			Expression to externalize.
-	@return					Descriptor containing externalized expression.
-							The memory must be freed by the caller.
- */
-HBufC8* ExternalizeExpressionL(const CAuthExpression* aExpr)
-	{
-	AuthServer::TSizeStream ss;
-	RWriteStream ws(&ss);
-	aExpr->ExternalizeL(ws);
-	
-	TInt len = ss.Size();
-	HBufC8* buf = HBufC8::NewLC(len);
-	TPtr8 bufDes(buf->Des());
-	
-	RDesWriteStream dws(bufDes);
-	aExpr->ExternalizeL(dws);
-	dws.CommitL();
-		
-	CleanupStack::Pop(buf);
-	return buf;
-	}
-}
-
-using namespace AuthServer;
-
-
-/**
- * Connect to the server, attempt to start it if it is not yet running
- *
- * @return KErrNone if successful or an error code
- */
-EXPORT_C TInt RAuthClient::Connect()
-	{
-	const TUidType serverUid(KNullUid, KNullUid, KAuthServerSecureId);
-
-	TInt err = RScsClientBase::Connect(AuthServer::KAuthServerName, TVersion(1, 0, 0), 
-									   AuthServer::KAuthServerImg, serverUid );
-	return err;
-	}
-
-EXPORT_C RAuthClient::RAuthClient() : 
-	RScsClientBase(), iAsyncResponseDecoder(0)
-    {
-	
-    }
-    
- 
-    
-/**
-  Authenticate the current device holder using a specified combination of
-  authentication methods. The ownership of the heap allocated CIdentity
-  object is passed to the caller. Requesting a user specific key
-  requires ReadUserData capability.
- 
-  @capability None/ReadUserData
- 
-  @param aExpression An authentication expression specifying which 
-  combination of methods to use to authenticate the device holder.
- 
-  @param aTimeout If an authentication has previously been performed 
-  within this period then a cached identity is returned.
- 
-  @param aClientSpecificKey If this value is true then the key returned
-  by this server will be unique to the calling client. This is achieved
-  by combining the identity protection key with the client process UID.
-  If this value is set to false then the call requires ReadUserData.
- 
-  @param aWithString If this value is true then the identity object returned
-  by the server will contain the identities string. If this value is set to
-  true then the call requires ReadUserData.
- 
-  @return CIdentity object corresponding to the authenticated device
-  holder. It is possible for the identity to be 'unknown'.
-  
-  @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 ...			One of the AuthServer error codes defined in 
-  						auth_srv_errs.h or one of the system-wide error codes.
- **/
-EXPORT_C CIdentity* RAuthClient::AuthenticateL(
-	const CAuthExpression& aExpression,
-	TTimeIntervalSeconds   aTimeout,
-	TBool                  aClientSpecificKey,
-	TBool                  aWithString)
-	{
-	TUid clientSid = {0};
-		
-	CIdentity* identity = AuthenticateL(aExpression, aTimeout,
-										aClientSpecificKey, clientSid, 
-										aWithString, KNullDesC());
-		
-	return identity;
-	
-    }
-
-    
-
-/**
-  Authenticate the current device holder using a specified combination of
-  authentication methods. The ownership of the heap allocated CIdentity
-  object is passed to the caller. Requesting a user specific key
-  requires ReadUserData capability.
- 
-  @capability None/ReadUserData
- 
-  @param aExpression An authentication expression specifying which 
-  combination of methods to use to authenticate the device holder.
- 
-  @param aTimeout If an authentication has previously been performed 
-  within this period then a cached identity is returned.
- 
-  @param aClientSpecificKey If this value is true then the key returned
-  by this server will be unique to the calling client. This is achieved
-  by combining the identity protection key with the client process UID.
-  If this value is set to false then the call requires ReadUserData.
- 
-  @param aWithString If this value is true then the identity object returned
-  by the server will contain the identities string. If this value is set to
-  true then the call requires ReadUserData.
- 
-  @param aIdentityResult The returned identity will be placed in this
-  parameter when the asynchronous request completes.  
- 
-  @param aStatus The request status for this asynchronous request.
- 
-  @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 ...			One of the AuthServer error codes defined in 
-  						auth_srv_errs.h or one of the system-wide error codes.
-
- **/
-EXPORT_C void RAuthClient::AuthenticateL(
-	const CAuthExpression& 	aExpression,
-	TTimeIntervalSeconds   	aTimeout,
-	TBool                  	aClientSpecificKey,
-	TBool                  	aWithString, 
-	CIdentity*&            	aIdentityResult, 
-	TRequestStatus&        	aStatus)
-	{
-	TUid clientSid = {0};
-	AuthenticateL(aExpression, aTimeout, aClientSpecificKey,
-				  clientSid, aWithString, KNullDesC(),
-			      aIdentityResult, aStatus);	
-	
-	}
-
-
-/**
-   Authenticate the current device holder using a specified combination of
-  authentication methods. The ownership of the heap allocated CIdentity 
-  object is passed to the caller. Requesting a user specific key requires 
-  ReadUserData capability.
- 
-   @capability None/ReadUserData
- 
-   @param aAuthStrength Descriptor specifying the authentication strength, 
-   which inturn maps to a combination of methods to be used to authenticate 
-   the device holder.
- 
-   @param aTimeout If an authentication has previously been performed 
-   within this period then a cached identity is returned.
- 
-   @param aClientSpecificKey If this value is true then the key returned
-   by this server will be unique to the calling client. This is achieved
-   by combining the identity protection key with the client process UID.
-   If this value is set to false then the call requires ReadUserData.
-          
-   @param aClientSid Sid of the client application from where the authentication
-   request originated and is used to generate protection key.This value is ignored 
-   when aClientSpecificKey is set to false. If aClientSid is non-zero and is not 
-   the calling application's sid, then the call requires ReadUserData.
-  
-   @param aWithString If this value is true then the identity object returned
-   by the server will contain the identities string. If this value is set to
-   true then the call requires ReadUserData.
- 
-   @param aClientMessage A displayable text string parameter for authentication
-   requests.It shall be passed to plug-ins to display to the users.
-
-   @return the CIdentity object corresponding to the authenticated device
-   holder. It is possible for the identity to be 'unknown'.
-  
-   @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 ...			One of the AuthServer error codes defined in 
-  						auth_srv_errs.h or one of the system-wide error codes.
-
- **/	
-
-EXPORT_C CIdentity* RAuthClient::AuthenticateL(
-		const CAuthExpression& aAuthExpression,
-	    TTimeIntervalSeconds   aTimeout,
-		TBool                  aClientSpecificKey,
-		TUid 				   aClientSid,
-		TBool                  aWithString,
-		const TDesC&		   aClientMessage)
-	{
-	
-	//Create a flat buffer
-	CBufFlat* flatBuffer = CBufFlat::NewL(KDefaultBufferSize);
-	CleanupStack::PushL(flatBuffer);
-	
-	//Initialize the CAuthParams object
-	CAuthParams* params = CAuthParams::NewL(aTimeout,
-											aClientSpecificKey,
-											aClientSid,
-											aWithString,
-											aClientMessage);
-	CleanupStack::PushL(params);
-	//Externalize params
-	RBufWriteStream stream(*flatBuffer);
-	CleanupClosePushL(stream);
-	params->ExternalizeL(stream);
-	CleanupStack::PopAndDestroy(2, params);
-	
-	HBufC8* paramsBuffer = HBufC8::NewLC(flatBuffer->Size());
-	TPtr8 paramsPtr(paramsBuffer->Des());
-	flatBuffer->Read(0, paramsPtr, flatBuffer->Size());
-		
-	//Externalize the expression
-	HBufC8* exprBuf = ExternalizeExpressionL(&aAuthExpression);
-	CleanupStack::PushL(exprBuf);
-		
-	// allocate buffer for identity result
-	HBufC8* identityResultbuf = HBufC8::NewLC(KDefaultBufferSize);
-	TPtr8 bufDes(identityResultbuf->Des());
-		
-	TIpcArgs args(exprBuf, &paramsPtr, &bufDes); 
-	User::LeaveIfError(CallSessionFunction(EAuthenticate, args));
-		
-
-		
-	RDesReadStream readStream(*identityResultbuf);
-	CIdentity* identity = CIdentity::InternalizeL(readStream);
-	    
-	CleanupStack::PopAndDestroy(4,flatBuffer);//identityResultbuf, exprBuf,
-											  //paramsBuffer, flatBuffer	
-	return identity;
-	}
-
-/**
-  Authenticate the current device holder using a specified combination of
-  authentication methods. The ownership of the heap allocated CIdentity 
-  object is passed to the caller. Requesting a user specific key requires 
-  ReadUserData capability.
- 
-  @capability None/ReadUserData
- 
-  @param aAuthStrength	Descriptor specifying the authentication strength, 
-  which inturn maps to a combination of methods to be used to authenticate the device holder.
- 
-  @param aTimeout If an authentication has previously been performed 
-  within this period then a cached identity is returned.
- 
-  @param aClientSpecificKey If this value is true then the key returned
-  by this server will be unique to the calling client. This is achieved
-  by combining the identity protection key with the client process UID.
-  If this value is set to false then the call requires ReadUserData.
-  
-  @param aClientSid Sid of the client application from where the authentication
-  request originated and is used to generate protection key.This value is ignored 
-  when aClientSpecificKey is set to false. If aClientSid is non-zero and is not 
-  the calling application's sid, then the call requires ReadUserData.
- 
-  @param aWithString If this value is true then the identity object returned
-  by the server will contain the identities string. If this value is set to
-  true then the call requires ReadUserData.
- 
-  @param aClientMessage A displayable text string parameter for authentication
-  requests.It shall be passed to plug-ins to display to the users.
-   
-  @param aIdentityResult The returned identity will be placed in this
-  parameter when the asynchronous request completes.  
- 
-  @param aStatus The request status for this asynchronous request.
- 
-  @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 ...			One of the AuthServer error codes defined in 
-  						auth_srv_errs.h or one of the system-wide error codes.
-
- **/
- 	
-EXPORT_C void RAuthClient::AuthenticateL(
-	const CAuthExpression& aExpression,
-	TTimeIntervalSeconds   aTimeout,
-	TBool                  aClientSpecificKey,
-	TUid 				   aClientSid,	
-	TBool                  aWithString, 
-	const TDesC&		   aClientMessage,
-	CIdentity*&            aIdentityResult,
-	TRequestStatus&        aStatus
-	)
-	{
-	
-	CheckAsyncDecoderL();
-	iAsyncResponseDecoder->AuthenticateL(aExpression,
-										 aTimeout,
-										 aClientSpecificKey,
-										 aClientSid,
-										 aWithString,
-										 aClientMessage,
-										 aIdentityResult,
-										 aStatus);
-										 
-	
-	}
-
-/**
- * creates the async decoder if it's not already been created. 
- */
-void RAuthClient::CheckAsyncDecoderL()
-    {
-    if (iAsyncResponseDecoder == 0)
-	    {
-	    iAsyncResponseDecoder = new (ELeave) CAsyncResponseDecoder(*this);
-	    }
-    }
-    
-	    
-
-
-/**
- * Retrieves all plugin descriptions. 
- *
- * @param aPluginList will be filled with  the full list of plugins available on the device. 
- *
- * @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.
- **/
-EXPORT_C void RAuthClient::PluginsL(RPluginDescriptions& aPluginList)
-    {
-	HBufC8* buffer = SendReceiveBufferLC(EPlugins);
-	// create a stream based on the buffer
-	RDesReadStream stream(*buffer);
-	CleanupClosePushL(stream);
-	
-	// reassemble the array from the stream
-	InternalizePointerArrayL(aPluginList, stream);
-	
-	CleanupStack::PopAndDestroy(2, buffer);// buffer, stream
-    }
-	
-/**
- * @param aPluginList the list of active plugins available on the device. 
- *
- * @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.
- **/
-EXPORT_C void RAuthClient::ActivePluginsL(RPluginDescriptions& aPluginList)
-    {
- 	HBufC8* buffer = SendReceiveBufferLC(EActivePlugins);
-	// create a stream based on the buffer
-	RDesReadStream stream(*buffer);
-	CleanupClosePushL(stream);
-	
-	// reassemble the array from the stream
-	InternalizePointerArrayL(aPluginList, stream);
-	
-	CleanupStack::PopAndDestroy(2, buffer);// buffer, stream
-	}
-	
-/**
- *
- * Retrieves plugin descriptions for plugins matching the specified
- * type.
- *
- * @param aType the plugin type for which the method should return 
- * the list of plugins. 
- *
- * @param aPluginList the list of plugins with the specified type available
- * on the device. 
- *
- * @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.
- *
- * @see TAuthPluginType
- **/
-EXPORT_C void RAuthClient::PluginsOfTypeL(
-    TAuthPluginType aType,
-    RPluginDescriptions& aPluginList)
-    {
-	TIpcArgs args(TIpcArgs::ENothing, aType);
-	HBufC8* buffer = SendReceiveBufferLC(EPluginsByType, args);
-	// create a stream based on the buffer
-	RDesReadStream stream(*buffer);
-	CleanupClosePushL(stream);
-	
-	// reassemble the array from the stream
-	InternalizePointerArrayL(aPluginList, stream);
-	
-	CleanupStack::PopAndDestroy(2, buffer);// buffer, stream
-    }
-	
-/**
- * Retrieves plugin descriptions for plugins matching the specified
- * training status.
- *
- * @param aStatus the training status for which the method should 
- * return the list of plugins. 
- *
- * @param aPluginList the list of plugins with the specified type available
- * on the device.
- *
- * @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.
- *
- * @see TAuthTrainingStatus
- **/
-EXPORT_C void RAuthClient::PluginsWithTrainingStatusL(
-    TAuthTrainingStatus aStatus,
-    RPluginDescriptions& aPluginList)
-    {
-	TIpcArgs args(TIpcArgs::ENothing, aStatus);
-	HBufC8* buffer = SendReceiveBufferLC(EPluginsByTraining, args);
-	// create a stream based on the buffer
-	RDesReadStream stream(*buffer);
-	CleanupClosePushL(stream);
-	
-	// reassemble the array from the stream
-	InternalizePointerArrayL(aPluginList, stream);
-	
-	CleanupStack::PopAndDestroy(2, buffer);// buffer, stream
-    }
-	
-/**
- * @param aIdList populated with the list of identities known by the 
- * phone.
- *
- * @capability ReadDeviceData
- *
- * @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.
- **/
-EXPORT_C void RAuthClient::IdentitiesL(RIdentityIdArray& aIdList)
-    {
-	HBufC8* buffer = SendReceiveBufferLC(EIdentities);
-	// create a stream based on the buffer
-	RDesReadStream stream(*buffer);
-	CleanupClosePushL(stream);
-	
-	// reassemble the array from the stream
-	InternalizeArrayL(aIdList, stream);
-	
-	CleanupStack::PopAndDestroy(2, buffer);// buffer, stream
-    }
-
-/**
- * @param aIdList populated with the list of identities and their strings
- * known by the phone.
- *
- * @capability ReadDeviceData
- * @capability ReadUserData
- *
- * @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.
- **/
-EXPORT_C void RAuthClient::IdentitiesWithStringL(RIdAndStringArray& aIdList)
-    {
-	HBufC8* buffer = SendReceiveBufferLC(EIdentitiesWithString);
-	// create a stream based on the buffer
-	RDesReadStream stream(*buffer);
-	CleanupClosePushL(stream);
-	
-	// reassemble the array from the stream
-	InternalizePointerArrayL(aIdList, stream);
-	
-	CleanupStack::PopAndDestroy(2, buffer);// buffer, stream
-    }
-
-/**
- * @param aId the Id number of the identity for which to set the
- * string.
- *
- * @param aId the identity who's string to set.
- * @param aString the string to use
- *
- * @capability WriteUserData
- *
- * @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 RAuthClient::SetIdentityStringL(TIdentityId aId,
-											  const TDesC& aString)
-  {
-  TIpcArgs args(aId, &aString);
-
-  User::LeaveIfError(CallSessionFunction(ESetIdentityString, args));
-  }
-
-/**
- * Deauthenticates the current user. This means that clients requesting an
- * authentication will always cause a plug-in to be called regardless of
- * any timeout value specified.
- *
- * @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.
- *
- **/
-EXPORT_C void RAuthClient::DeauthenticateL()
-  {
-  User::LeaveIfError(CallSessionFunction(EDeauthenticate));
-  }
-
-/**
- * @param aId the Id number of the identity for which to return the
- * string.
- * 
- * @return the string associated with the specified identity.
- *
- * @capability ReadUserData
- *
- * @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 HBufC* RAuthClient::IdentityStringL(TIdentityId aId)
-    {
-    HBufC* buffer = HBufC::NewLC(KDefaultBufferSize);
-	TPtr ptr = buffer->Des();
-	User::LeaveIfError(CallSessionFunction(EIdentityString, TIpcArgs(&ptr, aId)));
-	CleanupStack::Pop(buffer);
-	return buffer;
-    }
-
-
-/**
- */
-HBufC8* RAuthClient::SendReceiveBufferLC(TInt aMessage) 
-	{
-	HBufC8* output = HBufC8::NewLC(KDefaultBufferSize);
-	
-	TPtr8 pOutput(output->Des());
-	
-	TInt result = CallSessionFunction(aMessage, TIpcArgs(&pOutput));
-	
-	if (result == KErrOverflow)
-		{
-		TInt sizeNeeded = 0;
-		TPckg<TInt> sizeNeededPackage(sizeNeeded);
-		sizeNeededPackage.Copy(*output);
-		
-		// Re-allocate buffer after reclaiming memory
-		CleanupStack::PopAndDestroy(output);
-		output = HBufC8::NewLC(sizeNeeded);
-
-		TPtr8 pResizedOutput(output->Des());
-		
-		result=CallSessionFunction(aMessage, TIpcArgs(&pResizedOutput));
-		}
-	User::LeaveIfError(result);
-	return output;
-	}
-
-/**
- * aArgs[0] is set to the buffer to be sent/received
- */
-HBufC8* RAuthClient::SendReceiveBufferLC(
-	TInt aMessage,
-	TIpcArgs& aArgs) 
-	{
-	HBufC8* output = HBufC8::NewLC(KDefaultBufferSize);
-	
-	TPtr8 pOutput(output->Des());
-
-	aArgs.Set(0, &pOutput);
-		  
-	TInt result = CallSessionFunction(aMessage, aArgs);
-	
-	if (result == KErrOverflow)
-		{
-		TInt sizeNeeded;
-		TPckg<TInt> sizeNeededPackage(sizeNeeded);
-		sizeNeededPackage.Copy(*output);
-		
-		// Re-allocate buffer
-		CleanupStack::PopAndDestroy(output);
-		output = HBufC8::NewLC(sizeNeeded);
-
-		TPtr8 pResizedOutput(output->Des());
-		aArgs.Set(0, &pResizedOutput);
-		result=CallSessionFunction(aMessage, aArgs);
-		}
-	User::LeaveIfError(result);
-	return output;
-	}
-
-/**
- * @param aPluginType the type of plugin for which to return the preferred
- * plugin id
- * 
- * @return the id of the preferred plugin for the specified type
- *
- * @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.
- **/
-EXPORT_C TPluginId RAuthClient::PreferredTypePluginL(TAuthPluginType aPluginType)
-	{
-	TPluginId id = KUnknownPluginId;
-	TPckg<TPluginId> idPckg(id);
-	
-	User::LeaveIfError(CallSessionFunction(EGetAuthPreferences, TIpcArgs(aPluginType, &idPckg)));
-
-	return id;
-	}
-	
-/**
- * Cancel any operation in progress.
- * 
- * @return KErrNone, if the send operation is successful or no operation
- * is in effect.
- * @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.
- **/
-EXPORT_C TUint RAuthClient::Cancel()
-    {
-    CallSessionFunction(ECancel);
-    if(iAsyncResponseDecoder)
-    	{
-    	iAsyncResponseDecoder->Cancel();
-    	}
-    
-    return KErrNone;
-	}
-	
-
-EXPORT_C void RAuthClient::Close()
-    {
-    delete iAsyncResponseDecoder;
-    iAsyncResponseDecoder = 0;
-     
-    RScsClientBase::Close();
-    }
-
-/**
-  Lists the authentication aliases.
-  
-  @return An array of authentication strength aliases.
- 
-  @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.
- **/
- 
-EXPORT_C void RAuthClient::ListAuthAliasesL(RPointerArray<HBufC>& aAuthAliasesList)
-    {
-	HBufC8* buffer = SendReceiveBufferLC(EListAuthAliases);
-	
-	// create a stream based on the buffer
-	RDesReadStream stream(*buffer);
-	CleanupClosePushL(stream);
-	
-	// reassemble the array from the stream
-	TInt strengthAliasCount = stream.ReadInt32L();
-	for(TInt i = 0; i < strengthAliasCount; ++i)
-		{
-		HBufC* strengthAlias = HBufC::NewLC(stream, KMaxTInt);
-		aAuthAliasesList.AppendL(strengthAlias);
-		CleanupStack::Pop(strengthAlias);
-		}
-	
-	CleanupStack::PopAndDestroy(2, buffer);// buffer, stream
-    }
-
-/**
-   Returns a CAuthExpression object from a free form expression
-   which can be a combination of plugin Ids, plugin types and alias names.
-   This can be used for calling the authentication APIs.
-   
- 
-   @capability None
- 
-   @param aAuthString Descriptor specifying a free form expression
-   which can be a combination of plugin Ids, plugin types and alias names.
-   
- 
-   @return the CAuthExpression object which can be used to call the 
-   authentication APIs.
-  
-   @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 ...			One of the AuthServer error codes defined in 
-  						auth_srv_errs.h or one of the system-wide error codes.
-
- **/	
-
-EXPORT_C CAuthExpression* RAuthClient::CreateAuthExpressionL(const TDesC& aAuthString) const
-	{
-	CAuthExpression* authExpr(0);
-	
-	if(aAuthString == KNullDesC)
-		{
-		authExpr = AuthExpr();
-		return authExpr;
-		}
-	HBufC* buffer = HBufC::NewLC(KDefaultBufferSize);
-	TPtr bufDes(buffer->Des());
-		
-	// get the string in combination of plugin ID and plugin type.
-	User::LeaveIfError(CallSessionFunction(EResolveExpression, TIpcArgs(&bufDes, &aAuthString)));
-		
-	// create an auth expression from alias string.
-	authExpr = CAuthExpressionImpl::CreateAuthExprObjectL(*buffer);
-	CleanupStack::PopAndDestroy(buffer);
-	
-	return authExpr;
-	}
-
- 
-
-