diff -r afc583cfa176 -r da2ae96f639b cryptoplugins/cryptospiplugins/test/dummyecchwplugin/src/dummyeccsignerimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cryptoplugins/cryptospiplugins/test/dummyecchwplugin/src/dummyeccsignerimpl.h Mon Oct 12 10:17:04 2009 +0300 @@ -0,0 +1,85 @@ +/* +* Copyright (c) 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: +* +*/ + + +/** + @file + @internalComponent + @released +*/ +#ifndef CDUMMYECCSIGNERIMPL_H +#define CDUMMYECCSIGNERIMPL_H +#include +#include +#include "keys.h" +#include "signerplugin.h" + +namespace DummyEccHwCrypto + { + using namespace CryptoSpi; + + /** + * Implements the MSigner interface. + * + * This should be used to create the signer object to perform + * signing using ECC. + */ + NONSHARABLE_CLASS(CDummyECCSignerImpl) : public CBase, public MSigner + { + public: + static CDummyECCSignerImpl* NewL(const CryptoSpi::CKey& aKey, + TUid aPaddingMode); + static CDummyECCSignerImpl* NewLC(const CryptoSpi::CKey& aKey, + TUid aPaddingMode); + + // MPlugin Interface + void Close(); + void Reset(); + void GetCharacteristicsL(const TCharacteristics*& aPluginCharacteristics); + const CExtendedCharacteristics* GetExtendedCharacteristicsL(); + TAny* GetExtension(TUid aExtensionId); + // End of MPlugin Interface + + // MSignatureBase inteface + void SetPaddingModeL(TUid aPaddingMode); + void SetKeyL(const CKey& aPrivateKey); + TInt GetMaximumInputLengthL() const; + TInt GetMaximumOutputLengthL() const; + // End of MSignatureBase inteface + + // MSigner interface + void SignL(const TDesC8& aInput, CCryptoParams& aSignature); + + TUid ImplementationUid() const; + /// Destructor + ~CDummyECCSignerImpl(); + + private: + CDummyECCSignerImpl(TUid aPaddingMode); + void ConstructL(const CryptoSpi::CKey& aKey); + + private: + /* The key extracted from a CKey object. This would just have + * a handle to the key stored in hardware. Hence the actual key + * would not be available to the user of this cryptoSPI plugin. + */ + CKey* iKey; + TUid iPaddingMode; + }; + } + +#endif //CDUMMYECCSIGNERIMPL_H