diff -r b5d63d5fc252 -r a469c0e6e7fb smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/smfcredentialmgr/smfcredmgrclient/smfcredmgrclient.h Wed Jun 23 19:51:49 2010 +0530 @@ -0,0 +1,164 @@ +/** + * Copyright (c) 2010 Sasken Communication Technologies Ltd. + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of the "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: + * Pritam Roy Biswas, Sasken Communication Technologies Ltd - Initial contribution + * + * Description: + * This is the public implementation Class(Qt-wrapper) for symbian client for Credential Manager server + * + */ + +#ifndef SMFCREDMGRCLIENT_H_ +#define SMFCREDMGRCLIENT_H_ + +#include +#include +#include +#include + +#ifdef Q_OS_SYMBIAN +#include +#include +#endif +//Private implementation for different platforms +#ifdef Q_OS_SYMBIAN +class CSmfCredMgrClientSymbian; +class RSmfCredMgrClientSession; +#else +class SmfCredMgrClientStub; +class SmfCredMgrClientStubSession; +#endif + +/** + * Qt wrapper class for for exporting APIs of Credential Manager server + */ +class SmfCredMgrClient : public QObject + { + //Q_OBJECT -- todo used when signal and slots implemented +public: + + /** + * Constructor + */ + SmfCredMgrClient_EXPORT SmfCredMgrClient(QObject* parent = 0); + + /** + * Destructor + */ + SmfCredMgrClient_EXPORT ~SmfCredMgrClient(); + +public: + + /** + * API to check plugin authentication + * @param PluginID The ID of the Plugin to be checked + * @return The boolean value-TRUE if authenticated, FALSE if not + */ + SmfCredMgrClient_EXPORT bool + CheckPluginAuthentication(QString PluginID) const; + + /** + * API to get the Auth Data set, eg:OAuth_RequestToken; OAuth_AccessToken + * @param RegToken Registration Token obtained from SMF while storing this Auth Data set + * @param Validity Time by which the Auth set will expire + * @param AuthDataSet The Auth Token Set for the plugin, this Api would fill this parameter + * so the caller of The API must create space for SmfAuthParams + * @return boolean Value if the reg token is still valid + */ + SmfCredMgrClient_EXPORT bool AuthDataSet(QString RegToken, + QDateTime Validity, SmfAuthParams& AuthDataSet) const; + + /** + * API to get list of URLs which plugin can access + * @param PluginID The ID of the Plugin whose corresponding list of URLs to be retrieved + * @return The URL list + */ + SmfCredMgrClient_EXPORT QList URLList(QString PluginID) const; + + /** + * API to get the list of authenticated plugins + * @param RegistrationToken The token that validates a list of such plugins. + * @return The list of authenticated plugins + */ + SmfCredMgrClient_EXPORT QStringList AuthenticatedPluginList( + QString RegistrationToken) const; + + /** + * API to generate NONCE token + * @param Length Lenth of the NONCE tobe generated + * @return The generated NONCE. This is never zero, the minimum length is 12. + */ + SmfCredMgrClient_EXPORT QString GenerateNONCE(const qint64 Length); + + /** + * API to update the list of authenticated plugins-add, remove, update to plugins + * @param NewPluginID ID of the new plugin + * @param Flag flag to enable or disable the plugin + * @param OldPluginID ID of the old plugin to be replaced + * @todo - should return an error code to indicate error while changing the list. + */ + SmfCredMgrClient_EXPORT void ChangePluginIDList(QString NewPluginID, + bool Flag, QString OldPluginID); + /** + * API to store all data related to an auth app i.e URL list for Plugins, List of Plugins.etc. + * @param Set The auth Key set + * @param Validity time by which the Auth set will expire + * @param URLList The URL list to be set + * @param PluginList The plugin list to be set + * @param AuthAppId The Authentication Application Id + * @param Flag flag to enable or disable the plugins + * @return The registration token that completes authentication, its a NULL string if the + * API fails due to any wrong argument + */ + SmfCredMgrClient_EXPORT QString StoreAuthData(SmfAuthParams Set, + QDateTime Validity, QList URLList, QStringList PluginList, + QString AuthAppId, bool Flag); + + /** + * API to store RSA Keys + * @param KeyLabel First key of the key pair + * @param Keydata Other key of the key pair + * @param Validity time by which the key set will expire + * @return The Label of key pair + */ + SmfCredMgrClient_EXPORT QString StoreRSAKeys(const QString KeyLabel, + const QString Keydata, const QDateTime Validity); + + /** + * API to Sign the message + * @param Message The message to be signed + * @param Key If Signature method is RSA-SHA1 then it must be equal to the value + * returned while storeRSAKeys(), if signature method is HMAC-SHA1 key + * must the value to sign the message with + * @param Signature The signed message is an output argument + * @param AlgorithmUsed The algorithm used for signing + * return Smf defined errorcode + * @todo - RSA Signing is falgged-put for time being. + */ + SmfCredMgrClient_EXPORT SMFCredMgrErrorCode SignMessage(QString Message, + QString Key, QString& Signature, SmfSignatureMethod AlgorithmUsed); + /** + * API To delete the RSA Key from the Key Store + * @param KeyLabel The Label of key pair. This is the value returned while StoreRSAKeys(). + */ + SmfCredMgrClient_EXPORT void DeleteRSAKey(QString KeyLabel); + +private: + /** + * Handle to private implementation class. + */ +#ifdef Q_OS_SYMBIAN + CSmfCredMgrClientSymbian* m_SmfClientPrivate; + friend class CSmfCredMgrClientSymbian; +#endif + + }; + +#endif /* SMFCREDMGRCLIENT_H_ */ +