sl@0: /* sl@0: * Copyright (c) 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: #include "pluginentry.h" sl@0: #include "pluginconfig.h" sl@0: #include "dummyeccimpl.h" sl@0: #include "dummyeccsignerimpl.h" sl@0: #include "keys.h" sl@0: #include sl@0: sl@0: using namespace DummyEccHwCrypto; sl@0: sl@0: EXPORT_C const TCharacteristics** CCryptoPluginEntry::Enumerate( sl@0: TUid aInterface, TInt& aNumPlugins) sl@0: { sl@0: const TCharacteristics** ptr(0); sl@0: sl@0: switch (aInterface.iUid) sl@0: { sl@0: case KAsymmetricCipherInterface: sl@0: { sl@0: aNumPlugins = sizeof(KAsymmetricCipherCharacteristics) sl@0: / sizeof(TAsymmetricCipherCharacteristics*); sl@0: ptr sl@0: = (const TCharacteristics**) &KAsymmetricCipherCharacteristics[0]; sl@0: } sl@0: break; sl@0: sl@0: case KSignerInterface: sl@0: { sl@0: aNumPlugins = sizeof(KSignerCharacteristics) sl@0: / sizeof(TAsymmetricSignatureCharacteristics*); sl@0: ptr = (const TCharacteristics**) &KSignerCharacteristics[0]; sl@0: } sl@0: break; sl@0: sl@0: default: sl@0: aNumPlugins = 0; sl@0: } sl@0: sl@0: return ptr; sl@0: } sl@0: sl@0: EXPORT_C void CCryptoPluginEntry::GetExtendedCharacteristicsL( sl@0: TUid /* aImplementationUid */, CExtendedCharacteristics*& /* aExt */) sl@0: { sl@0: User::Leave(KErrNotSupported); sl@0: } sl@0: sl@0: EXPORT_C void CCryptoPluginEntry::CreateAsymmetricCipherL( sl@0: MAsymmetricCipher*& aPlugin, TUid aImplementationId, sl@0: const CKey& aKey, TUid aCryptoMode, TUid aPaddingMode, sl@0: const CCryptoParams* /* aAlgorithmParams */) sl@0: { sl@0: switch (aImplementationId.iUid) sl@0: { sl@0: case KCryptoPluginEccCipher: sl@0: { sl@0: aPlugin = CDummyECCCipherImpl::NewL(aKey, aCryptoMode, aPaddingMode); sl@0: } sl@0: break; sl@0: sl@0: default: sl@0: User::Leave(KErrNotFound); sl@0: } sl@0: } sl@0: sl@0: EXPORT_C void CCryptoPluginEntry::CreateAsymmetricSignerL( sl@0: MSigner*& aPlugin, TUid aImplementationId, sl@0: const CKey& aKey, TUid aPaddingMode, const CCryptoParams* /* aAlgorithmParams */) sl@0: { sl@0: switch (aImplementationId.iUid) sl@0: { sl@0: case KCryptoPluginEccSigner: sl@0: { sl@0: aPlugin = CDummyECCSignerImpl::NewL(aKey, aPaddingMode); sl@0: } sl@0: break; sl@0: sl@0: default: sl@0: User::Leave(KErrNotFound); sl@0: } sl@0: } sl@0: sl@0: EXPORT_C void CCryptoPluginEntry::CreateAsymmetricVerifierL( sl@0: MVerifier*& /*aPlugin*/, TUid /*aImplementationId*/, sl@0: const CKey& /*aKey*/, TUid /*aPaddingMode*/, const CCryptoParams* /*aAlgorithmParams*/) sl@0: { sl@0: User::Leave(KErrNotFound); sl@0: } sl@0: sl@0: EXPORT_C void CCryptoPluginEntry::CreateHashL(MHash*& /*aPlugin*/, sl@0: TUid /*aImplementationId*/, TUid /*aOperationMode*/, sl@0: const CKey* /*aKey*/, const CCryptoParams* /*aAlgorithmParams*/) sl@0: { sl@0: User::Leave(KErrNotFound); sl@0: } sl@0: sl@0: EXPORT_C void CCryptoPluginEntry::CreateKeyAgreementL( sl@0: MKeyAgreement*& /*aPlugin*/, TUid /*aImplementationId*/, sl@0: const CKey& /*aPrivateKey*/, const CCryptoParams* /*aAlgorithmParams*/) sl@0: { sl@0: User::Leave(KErrNotFound); sl@0: } sl@0: sl@0: EXPORT_C void CCryptoPluginEntry::CreateKeyPairGeneratorL( sl@0: MKeyPairGenerator*& /*aPlugin*/, TUid /*aImplementationId*/, sl@0: const CCryptoParams* /*aAlgorithmParams*/) sl@0: { sl@0: User::Leave(KErrNotFound); sl@0: } sl@0: sl@0: EXPORT_C void CCryptoPluginEntry::CreateRandomL(MRandom*& /*aPlugin*/, sl@0: TUid /*aImplementationId*/, const CCryptoParams* /*aAlgorithmParams*/) sl@0: { sl@0: User::Leave(KErrNotFound); sl@0: } sl@0: sl@0: EXPORT_C void CCryptoPluginEntry::CreateSymmetricCipherL( sl@0: MSymmetricCipher*& /*aPlugin*/, TUid /*aImplementationId*/, const CKey& /*aKey*/, sl@0: TUid /*aCryptoMode*/, TUid /*aOperationMode*/, TUid /*aPadding*/, sl@0: const CCryptoParams* /*aAlgorithmParams*/) sl@0: { sl@0: User::Leave(KErrNotSupported); sl@0: } sl@0: // End of file