2 * Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of the License "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
15 * RAuthclient - external authentication client session interface
16 * The defined fuctionality is used by clients to access the authentication
18 * The access to a specific functionality is dependant on the client
19 * capabilities and may be restricted.
33 #include "authserver/identity.h"
34 #include "authserver/authexpression.h"
35 #include "authserver/plugindesc.h"
36 #include "authserver/idandstring.h"
37 #include <scs/scsclient.h>
41 class CAsyncResponseDecoder;
44 * Client side interface to the authentication server providing general
45 * authentication and plugin query services.
48 class RAuthClient : public RScsClientBase
51 friend class CAsyncResponseDecoder;
55 IMPORT_C RAuthClient();
57 IMPORT_C TInt Connect();
59 IMPORT_C void AuthenticateL(
60 const CAuthExpression& aExpression,
61 TTimeIntervalSeconds aTimeout,
62 TBool aClientSpecificKey,
64 CIdentity*& aIdentityResult,
65 TRequestStatus& aStatus);
67 IMPORT_C CIdentity* AuthenticateL(
68 const CAuthExpression& aExpression,
69 TTimeIntervalSeconds aTimeout,
70 TBool aClientSpecificKey,
73 IMPORT_C CIdentity* AuthenticateL(
74 const CAuthExpression& aAuthExpression,
75 TTimeIntervalSeconds aTimeout,
76 TBool aClientSpecificKey,
79 const TDesC& aClientMessage);
81 IMPORT_C void AuthenticateL(
82 const CAuthExpression& aAuthExpression,
83 TTimeIntervalSeconds aTimeout,
84 TBool aClientSpecificKey,
87 const TDesC& aClientMessage,
88 CIdentity*& aIdentityResult,
89 TRequestStatus& aStatus
92 IMPORT_C void DeauthenticateL();
94 IMPORT_C void PluginsL(RPluginDescriptions& aPluginList);
95 IMPORT_C void ActivePluginsL(RPluginDescriptions& aPluginList);
96 IMPORT_C void PluginsOfTypeL(TAuthPluginType aType,
97 RPluginDescriptions& aPluginList);
99 IMPORT_C void PluginsWithTrainingStatusL(
100 TAuthTrainingStatus aStatus,
101 RPluginDescriptions& aPluginList);
103 IMPORT_C void IdentitiesL(RIdentityIdArray& aIdList);
104 IMPORT_C void IdentitiesWithStringL(RIdAndStringArray& aList);
106 IMPORT_C HBufC* IdentityStringL(TIdentityId aId);
107 IMPORT_C void SetIdentityStringL(TIdentityId aId, const TDesC& aString);
109 IMPORT_C TPluginId PreferredTypePluginL(TAuthPluginType aPluginType);
111 IMPORT_C TUint Cancel();
112 IMPORT_C void Close();
114 IMPORT_C void ListAuthAliasesL(RPointerArray<HBufC>& aAuthAliasList);
116 IMPORT_C CAuthExpression* CreateAuthExpressionL(const TDesC& aAuthString) const;
119 /* @internalComponent */
120 void CheckAsyncDecoderL();
121 /* @internalComponent */
122 HBufC8* SendReceiveBufferLC(TInt aMessage);
123 /* @internalComponent */
124 HBufC8* SendReceiveBufferLC(TInt aMessage, TIpcArgs& aArgs);
127 TInt StartAuthServer();
130 CAsyncResponseDecoder* iAsyncResponseDecoder;