sl@0: /* sl@0: * Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of the License "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: sl@0: * sl@0: */ sl@0: sl@0: sl@0: #ifndef __CDUMMYKEYSTORECLIENT_H__ sl@0: #define __CDUMMYKEYSTORECLIENT_H__ sl@0: sl@0: #include sl@0: sl@0: /** sl@0: * Implements the MCTKeyStoreManager interface. sl@0: * sl@0: * The class implements the keystore manager token interface for the software sl@0: * keystore. It will be created and owned by the unified keystore. sl@0: */ sl@0: NONSHARABLE_CLASS(CDummyKeyStoreClient) : public MCTKeyStoreManager sl@0: { sl@0: public:// One creator function for each token interface sl@0: static MCTTokenInterface* NewKeyStoreInterfaceL(MCTToken& aToken); sl@0: sl@0: public: sl@0: virtual ~CDummyKeyStoreClient(); sl@0: void AddRef(); sl@0: sl@0: public: sl@0: // ********************************************************************************* sl@0: // MKeyStore sl@0: virtual void List(RMPointerArray& aKeys, const TCTKeyAttributeFilter& aFilter, TRequestStatus& aStatus); sl@0: virtual void CancelList(); sl@0: virtual void GetKeyInfo(TCTTokenObjectHandle aHandle, CCTKeyInfo*& aInfo, TRequestStatus& aStatus); sl@0: virtual void CancelGetKeyInfo(); sl@0: sl@0: /** Open an RSA key for signing */ sl@0: virtual void Open(const TCTTokenObjectHandle& aHandle, sl@0: MRSASigner*& aSigner, sl@0: TRequestStatus& aStatus); sl@0: /** Open a DSA key for signing */ sl@0: virtual void Open(const TCTTokenObjectHandle& aHandle, sl@0: MDSASigner*& aSigner, sl@0: TRequestStatus& aStatus); sl@0: /** Open a RSA key for private decryption */ sl@0: virtual void Open(const TCTTokenObjectHandle& aHandle, sl@0: MCTDecryptor*& aDecryptor, sl@0: TRequestStatus& aStatus); sl@0: /** Open a DH key for key agreement */ sl@0: virtual void Open(const TCTTokenObjectHandle& aHandle, sl@0: MCTDH*& aDH, TRequestStatus& aStatus); sl@0: sl@0: sl@0: /// Cancels an ongoing open request sl@0: virtual void CancelOpen(); sl@0: sl@0: /** Returns the public key in DER-encoded ASN-1 */ sl@0: virtual void ExportPublic(const TCTTokenObjectHandle& aHandle, sl@0: HBufC8*& aPublicKey, sl@0: TRequestStatus& aStatus); sl@0: virtual void CancelExportPublic(); sl@0: sl@0: public: sl@0: // ********************************************************************************* sl@0: // MCTKeyStoreManager sl@0: virtual void CreateKey(CCTKeyInfo*& aReturnedKey, TRequestStatus& aStatus); sl@0: virtual void CancelCreateKey(); sl@0: virtual void ImportKey(const TDesC8& aKey, CCTKeyInfo*& aReturnedKey, TRequestStatus& aStatus); sl@0: virtual void CancelImportKey(); sl@0: virtual void ImportEncryptedKey(const TDesC8& aKey, CCTKeyInfo*& aReturnedKey, TRequestStatus& aStatus); sl@0: virtual void CancelImportEncryptedKey(); sl@0: virtual void ExportKey(TCTTokenObjectHandle aHandle, HBufC8*& aKey, TRequestStatus& aStatus); sl@0: virtual void CancelExportKey(); sl@0: virtual void ExportEncryptedKey(TCTTokenObjectHandle aHandle, const CPBEncryptParms& aParams, HBufC8*& aKey, TRequestStatus& aStatus); sl@0: virtual void CancelExportEncryptedKey(); sl@0: virtual void DeleteKey(TCTTokenObjectHandle aHandle, TRequestStatus& aStatus); sl@0: virtual void CancelDeleteKey(); sl@0: virtual void SetUsePolicy(TCTTokenObjectHandle aHandle, const TSecurityPolicy& aPolicy, TRequestStatus& aStatus); sl@0: virtual void CancelSetUsePolicy(); sl@0: virtual void SetManagementPolicy(TCTTokenObjectHandle aHandle, const TSecurityPolicy& aPolicy, TRequestStatus& aStatus); sl@0: virtual void CancelSetManagementPolicy(); sl@0: virtual void SetPassphraseTimeout(TInt aTimeout, TRequestStatus& aStatus); sl@0: virtual void CancelSetPassphraseTimeout(); sl@0: virtual void Relock(TRequestStatus& aStatus); sl@0: virtual void CancelRelock(); sl@0: sl@0: void ReleaseObject(const TCTTokenObjectHandle& aObject); sl@0: sl@0: public: sl@0: // ********************************************************************************* sl@0: // From MCTTokenInterface sl@0: virtual MCTToken& Token(); sl@0: sl@0: public: sl@0: // ********************************************************************************* sl@0: void RepudiableDSASign(const TCTTokenObjectHandle& aObject, const TDesC8& aDigest, CDSASignature*& aSignature, TRequestStatus& aStatus); sl@0: void RepudiableRSASign(const TCTTokenObjectHandle& aObject, const TDesC8& aDigest, CRSASignature*& aSignature, TRequestStatus& aStatus); sl@0: void Decrypt(const TCTTokenObjectHandle& aObject, const TDesC8& aCiphertext, TDes8& aPlaintext, TRequestStatus& aStatus); sl@0: void DHPublicKey(const TCTTokenObjectHandle& aHandle, const TInteger& aN, const TInteger& aG, CDHPublicKey*& aX, TRequestStatus& aStatus); sl@0: void DHAgree(const TCTTokenObjectHandle& aHandle, const CDHPublicKey& iY, HBufC8*& aAgreedKey, TRequestStatus& aStatus); sl@0: sl@0: protected: sl@0: // ********************************************************************************* sl@0: // From MCTTokenInterface sl@0: virtual void DoRelease(); sl@0: protected: sl@0: // ********************************************************************************* sl@0: CDummyKeyStoreClient(MCTToken& aToken); sl@0: virtual void ConstructL(); sl@0: sl@0: private: sl@0: TInt iRefCount; sl@0: sl@0: private: sl@0: MCTToken& iToken; ///< The token we belong to sl@0: }; sl@0: sl@0: #endif // __CDUMMYKEYSTORECLIENT_H__