diff -r afc583cfa176 -r da2ae96f639b cryptoplugins/cryptospiplugins/test/dummyecchwplugin/src/pluginentry.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cryptoplugins/cryptospiplugins/test/dummyecchwplugin/src/pluginentry.h Mon Oct 12 10:17:04 2009 +0300 @@ -0,0 +1,210 @@ +/* +* 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 CPLUGINENTRY_H +#define CPLUGINENTRY_H + +#include +#include +#include +#include "keys.h" +#include +#include +#include "symmetriccipherplugin.h" +#include "asymmetriccipherplugin.h" +#include "signerplugin.h" +#include "verifierplugin.h" +#include "keypairgeneratorplugin.h" +#include "keyagreementplugin.h" + +using namespace CryptoSpi; + +class CCryptoPluginEntry + { +public: + /** + * Enumerates the set of plug-ins supported by the module for a given interface + * e.g. all of the hash plug-ins. + * + * @param aInterface The UID of the plug-in interface type. If the UID is not recognised + * then the NULL pointer must be returned. + * @param aNumPlugins The number of plug-in characteristics objects in the result. + */ + IMPORT_C static const TCharacteristics** Enumerate(TUid aInterface, + TInt& aNumPlugins); + + IMPORT_C static void GetExtendedCharacteristicsL(TUid aImplementationUid, + CExtendedCharacteristics*&); + + /** + * Creates a new instance of an asymmetric cipher + * + * @param aPlugin A reference to a pointer that should be set to point to + * the new asymmetric cipher object. + * @param aImplementationId The UID of the asymmetric cipher plug-in to instantiate. + * @param aKey The encryption/decryption key. + * @param aPaddingMode The padding mode. + * @param aAlgorithmParams The parameters that are specific to a particular + * algorithm. This is for extendibility and will normally be null. + * + * @leave Function can leave with any system wide error codes in + * case of failure. + */ + IMPORT_C static void CreateAsymmetricCipherL(MAsymmetricCipher*& aPlugin, + TUid aImplementationId, const CKey& aKey, TUid aCryptoMode, + TUid aPaddingMode, const CCryptoParams* aAlgorithmParams); + + /** + * Creates a new instance of an asymmetric signer. + * + * @param aPlugin A reference to a pointer that should be set to point to + * the new asymmetric signer object. + * @param aImplementationId The UID of the signer plug-in to instantiate. + * @param aKey The signing key. + * @param aPaddingMode The padding mode. + * @param aAlgorithmParams The parameters that are specific to a particular + * algorithm. This is for extendibility and will normally be null. + * + * @leave Function can leave with any system wide error codes in + * case of failure. + */ + IMPORT_C static void CreateAsymmetricSignerL(MSigner*& aPlugin, + TUid aImplementationId, const CKey& aKey, TUid aPaddingMode, + const CCryptoParams* aAlgorithmParams); + + /** + * Creates a new instance of an asymmetric verifier. + * + * @param aPlugin A reference to a pointer that should be set to point to + * the new asymmetric verifier object. + * @param aImplementationId The UID of the verifier plug-in to instantiate. + * @param aKey The key to verify the signature with. + * @param aAlgorithmParams The parameters that are specific to a particular + * algorithm. This is for extendibility and will normally be null. + * + * @leave Function can leave with any system wide error codes in + * case of failure. + */ + IMPORT_C static void CreateAsymmetricVerifierL(MVerifier*& aPlugin, + TUid aImplementationId, + const CKey& aKey, + TUid aPaddingMode, + const CCryptoParams* aAlgorithmParams); + + /** + * Creates a new instance of a Hash object. + * + * @param aPlugin A reference to a pointer that should be set to point to + * the new hash object. + * @param aImplementationId The UID of the hash plug-in to instantiate. + * @param aAlgorithmParams The parameters that are specific to a particular + * algorithm. This is for extendibility and will normally be null. + * + * @leave Function can leave with any system wide error codes in + * case of failure. + */ + IMPORT_C static void CreateHashL(MHash*& aPlugin, + TUid aImplementationId, + TUid aOperationMode, + const CKey* aKey, + const CCryptoParams* aAlgorithmParams); + + /** + * Creates a new instance of a Random object. + * + * @param aPlugin A reference to a pointer that should be set to point to the new random object. + * @param aImplementationId The UID of the random plug-in to instantiate. + * @param aAlgorithmParams The parameters that are specific to a particular + * algorithm. This is for extendibility and will normally be null. + * + * @leave Function can leave with any system wide error codes in + * case of failure. + */ + IMPORT_C static void CreateRandomL(MRandom*& aPlugin, + TUid aImplementationId, + const CCryptoParams* aAlgorithmParams); + + + /** + * Creates a new instance of a key agreement system. + * + * @param aPlugin A reference to a pointer that should be set to point to + * the new asymmetric key pair generator object. + * @param aImplementationId The UID of the key agreement plug-in to instantiate. + * @param aPrivateKey The private key to combine with the other parties public key + * during the agreement. + * @param aAlgorithmParams The parameters that are specific to a particular + * algorithm. This is for extendibility and will normally be null. + * + * @leave Function can leave with any system wide error codes in + * case of failure. + */ + IMPORT_C static void CreateKeyAgreementL(MKeyAgreement*& aPlugin, + TUid aImplementationId, + const CKey& aPrivateKey, + const CCryptoParams* aAlgorithmParams); + + /** + * Creates a new instance of an asymmetric key pair generator. + * + * @param aPlugin A reference to a pointer that should be set to point to + * the new asymmetric key pair generator object. + * @param aImplementationId The UID of the verifier plug-in to instantiate. + * @param aAlgorithmParams The parameters that are specific to a particular + * algorithm. This is for extendibility and will normally be null. + * + * @leave Function can leave with any system wide error codes in + * case of failure. + */ + IMPORT_C static void CreateKeyPairGeneratorL(MKeyPairGenerator*& aPlugin, + TUid aImplementationId, + const CCryptoParams* aAlgorithmParams); + + /** + * Creates a new instance of a symmetric cipher + * + * @param aPlugin A reference to a pointer that should be set to point to + * the new asymmetric object. + * @param aImplementationId The UID of the symmetric cipher plug-in to instantiate. + * @param aKey The encryption/decryption key. + * @param aCryptoMode Encrypt or Decrypt. + * @param aOperationMode the block cipher mode to use ECB, CBC, CTR etc + * @param aPadding the padding scheme to use. + * @param aAlgorithmParams The parameters that are specific to a particular + * algorithm. This is for extendibility and will normally be null. + * + * @leave Function can leave with any system wide error codes in + * case of failure. + */ + IMPORT_C static void CreateSymmetricCipherL(MSymmetricCipher*& aPlugin, + TUid aImplementationId, + const CKey& aKey, + TUid aCryptoMode, + TUid aOperationMode, + TUid aPadding, + const CCryptoParams* aAlgorithmParams); + + + }; + +#endif // CPLUGINENTRY_H