os/security/cryptoplugins/cryptospiplugins/test/h4drv/crypto_h4_plugin/pluginentry.cpp
First public contribution.
2 * Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of the License "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
24 #include "pluginentry.h"
25 #include "pluginconfig.h"
27 #include "randomimpl.h"
28 #include "rijndaelimpl.h"
29 #include "randomimpl.h"
30 #include <cryptospi/cryptospidef.h>
33 using namespace HwCrypto;
35 EXPORT_C const TCharacteristics** CCryptoPluginEntry::Enumerate(TUid aInterface, TInt& aNumPlugins)
37 const TCharacteristics** ptr(0);
40 switch (aInterface.iUid)
42 case KRandomInterface:
44 aNumPlugins=sizeof(KRandomCharacteristics)/sizeof(TRandomCharacteristics*);
45 ptr= (const TCharacteristics**) &KRandomCharacteristics[0];
49 case KSymmetricCipherInterface:
51 aNumPlugins=sizeof(KSymmetricCipherCharacteristics)/sizeof(TSymmetricCipherCharacteristics*);
52 ptr = (const TCharacteristics**) &KSymmetricCipherCharacteristics[0];
62 EXPORT_C void CCryptoPluginEntry::GetExtendedCharacteristicsL(TUid aImplementationUid, CExtendedCharacteristics*& aExt)
64 switch (aImplementationUid.iUid)
66 case KCryptoPluginRandom:
67 aExt=CRandomImpl::StaticGetExtendedCharacteristicsL();
69 case KCryptoPluginAes:
70 aExt=CH4RijndaelImpl::StaticGetExtendedCharacteristicsL();
73 User::Leave(KErrNotSupported);
77 EXPORT_C void CCryptoPluginEntry::CreateAsymmetricCipherL(MAsymmetricCipher*& /*aPlugin*/,
78 TUid /*aImplementationId*/,
81 TUid /*aPaddingMode*/,
82 const CCryptoParams* /*aAlgorithmParams*/)
84 User::Leave(KErrNotFound);
89 EXPORT_C void CCryptoPluginEntry::CreateAsymmetricSignerL(MSigner*& /*aPlugin*/,
90 TUid /*aImplementationId*/,
92 TUid /*aPaddingMode*/,
93 const CCryptoParams* /*aAlgorithmParams*/)
95 User::Leave(KErrNotFound);
99 EXPORT_C void CCryptoPluginEntry::CreateAsymmetricVerifierL(MVerifier*& /*aPlugin*/,
100 TUid /*aImplementationId*/,
101 const CKey& /*aKey*/,
102 TUid /*aPaddingMode*/,
103 const CCryptoParams* /*aAlgorithmParams*/)
105 User::Leave(KErrNotFound);
108 EXPORT_C void CCryptoPluginEntry::CreateHashL(MHash*& /*aPlugin*/,
109 TUid /*aImplementationId*/,
110 TUid /*aOperationMode*/,
111 const CKey* /*aKey*/,
112 const CCryptoParams* /*aAlgorithmParams*/)
114 User::Leave(KErrNotFound);
117 EXPORT_C void CCryptoPluginEntry::CreateKeyAgreementL(MKeyAgreement*& /*aPlugin*/,
118 TUid /*aImplementationId*/,
119 const CKey& /*aPrivateKey*/,
120 const CCryptoParams* /*aAlgorithmParams*/)
122 User::Leave(KErrNotFound);
125 EXPORT_C void CCryptoPluginEntry::CreateKeyPairGeneratorL(MKeyPairGenerator*& /*aPlugin*/,
126 TUid /*aImplementationId*/,
127 const CCryptoParams* /*aAlgorithmParams*/)
129 User::Leave(KErrNotFound);
133 EXPORT_C void CCryptoPluginEntry::CreateRandomL(MRandom*& aPlugin,
134 TUid /*aImplementationId*/,
135 const CCryptoParams* /*aAlgorithmParams*/)
137 aPlugin=CRandomImpl::NewL();
138 //User::Leave(KErrNotFound);
141 EXPORT_C void CCryptoPluginEntry::CreateSymmetricCipherL(MSymmetricCipher*& aPlugin,
142 TUid aImplementationId,
147 const CCryptoParams* /*aAlgorithmParams*/)
149 switch (aImplementationId.iUid)
151 case KCryptoPluginAes:
153 aPlugin=CH4RijndaelImpl::NewL(aKey, aCryptoMode, aOperationMode, aPadding);
154 //User::Leave(KErrNotFound);
159 User::Leave(KErrNotFound);