Update contrib.
2 * Copyright (c) 2007-2010 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.
15 * plugin entry implementation
16 * plugin entry implementation
25 #include "pluginentry.h"
26 #include "pluginconfig.h"
29 #include <cryptospi/keys.h>
31 #include "rsakeypairgenextendimpl.h"
32 #include "rsaverifyimpl.h"
33 #include <cryptospi/cryptospidef.h>
35 #ifdef SYMBIAN_SDP_IPSEC_VOIP_SUPPORT
37 #include "rijndaelimpl.h"
40 using namespace SoftwareCrypto;
42 EXPORT_C const TCharacteristics** CCryptoPluginEntry::Enumerate(TUid aInterface, TInt& aNumPlugins)
44 const TCharacteristics** ptr(0);
45 switch (aInterface.iUid)
49 aNumPlugins=sizeof(KHashCharacteristics)/sizeof(THashCharacteristics*);
50 ptr = (const TCharacteristics**) &KHashCharacteristics[0];
54 #ifdef SYMBIAN_SDP_IPSEC_VOIP_SUPPORT
57 aNumPlugins=sizeof(KMacCharacteristics)/sizeof(TMacCharacteristics*);
58 ptr = (const TCharacteristics**) &KMacCharacteristics[0];
63 case KSymmetricCipherInterface:
65 aNumPlugins=sizeof(KSymmetricCipherCharacteristics)/sizeof(TSymmetricCipherCharacteristics*);
66 ptr = (const TCharacteristics**) &KSymmetricCipherCharacteristics[0];
70 case KKeypairGeneratorInterface:
72 aNumPlugins=sizeof(KKeyPairGeneratorCharacteristics)/sizeof(TAsymmetricKeypairGeneratorCharacteristics*);
73 ptr = (const TCharacteristics**) &KKeyPairGeneratorCharacteristics[0];
77 case KVerifierInterface:
79 aNumPlugins=sizeof(KVerifierCharacteristics)/sizeof(TAsymmetricSignatureCharacteristics*);
80 ptr = (const TCharacteristics**) &KVerifierCharacteristics[0];
91 EXPORT_C void CCryptoPluginEntry::GetExtendedCharacteristicsL(TUid aImplementationUid, CExtendedCharacteristics*& aExt)
93 switch (aImplementationUid.iUid)
95 case KTestPlugin01Md2_1:
96 case KTestPlugin01Md2_2:
97 #ifdef SYMBIAN_SDP_IPSEC_VOIP_SUPPORT
98 case KTestPlugin01MacMd2_1:
99 case KTestPlugin01MacMd2_2:
102 aExt = CMD2Impl::CreateExtendedCharacteristicsL();
106 case KTestPlugin01Des_1:
107 case KTestPlugin01Des_2:
108 case KTestPlugin01Des_3:
109 case KTestPlugin01Des_4:
111 aExt = CDesImpl::CreateExtendedCharacteristicsL();
115 case KTestPlugin01RsaKeyGen_1:
117 aExt = CRSAKeyPairGenExtendImpl::CreateExtendedCharacteristicsL();
121 case KTestPlugin01RsaVerifier_1:
122 case KTestPlugin01RsaVerifier_2:
124 aExt = CRSAVerifierImpl::CreateExtendedCharacteristicsL();
128 #ifdef SYMBIAN_SDP_IPSEC_VOIP_SUPPORT
129 case KTestPlugin01XcbcMac96:
130 case KTestPlugin01Aes:
132 aExt = CRijndaelImpl::CreateExtendedCharacteristicsL();
139 User::Leave(KErrNotSupported);
145 EXPORT_C void CCryptoPluginEntry::CreateAsymmetricCipherL(MAsymmetricCipher*& /*aPlugin*/,
146 TUid /*aImplementationId*/,
147 const CKey& /*aKey*/,
148 TUid /*aCryptoMode*/,
149 TUid /*aPaddingMode*/,
150 const CCryptoParams* /*aAlgorithmParams*/)
152 User::Leave(KErrNotFound);
157 EXPORT_C void CCryptoPluginEntry::CreateAsymmetricSignerL(MSigner*& /*aPlugin*/,
158 TUid /*aImplementationId*/,
159 const CKey& /*aKey*/,
160 TUid /*aPaddingMode*/,
161 const CCryptoParams* /*aAlgorithmParams*/)
163 User::Leave(KErrNotFound);
169 EXPORT_C void CCryptoPluginEntry::CreateAsymmetricVerifierL(MVerifier*& aPlugin,
170 TUid aImplementationId,
173 const CCryptoParams* /*aAlgorithmParams*/)
175 switch (aImplementationId.iUid)
178 case KTestPlugin01RsaVerifier_1:
179 case KTestPlugin01RsaVerifier_2:
180 aPlugin = CRSAVerifierImpl::NewL(aImplementationId, aKey, aPaddingMode);
184 User::Leave(KErrNotFound);
188 EXPORT_C void CCryptoPluginEntry::CreateHashL(MHash*& aPlugin,
189 TUid aImplementationId,
192 const CCryptoParams* /*aAlgorithmParams*/)
194 aPlugin=CSoftwareHash::NewL(aImplementationId, aOperationMode, aKey);
197 #ifdef SYMBIAN_SDP_IPSEC_VOIP_SUPPORT
198 EXPORT_C void CCryptoPluginEntry::CreateHashL(MHash*& aPlugin,
199 TUid aImplementationId,
200 const CCryptoParams* /*aAlgorithmParams*/)
202 aPlugin=CSoftwareHash::NewL(aImplementationId);
205 EXPORT_C void CCryptoPluginEntry::CreateMacL(MMac*& aPlugin,
206 const TUid aImplementationId,
208 const CCryptoParams* aAlgorithmParams)
210 aPlugin=CMacImpl::NewL(aKey, aImplementationId, aAlgorithmParams);
215 EXPORT_C void CCryptoPluginEntry::CreateKeyAgreementL(MKeyAgreement*& /*aPlugin*/,
216 TUid /*aImplementationId*/,
217 const CKey& /*aPrivateKey*/,
218 const CCryptoParams* /*aAlgorithmParams*/)
220 User::Leave(KErrNotFound);
223 EXPORT_C void CCryptoPluginEntry::CreateKeyPairGeneratorL(MKeyPairGenerator*& aPlugin,
224 TUid aImplementationId,
225 const CCryptoParams* /*aAlgorithmParams*/)
227 //create requested key pair generator implementation in this plugin
228 switch (aImplementationId.iUid)
231 case KTestPlugin01RsaKeyGen_1:
233 aPlugin = CRSAKeyPairGenExtendImpl::NewL(aImplementationId);
238 User::Leave(KErrNotFound);
243 EXPORT_C void CCryptoPluginEntry::CreateRandomL(MRandom*& /*aPlugin*/,
244 TUid /*aImplementationId*/,
245 const CCryptoParams* /*aAlgorithmParams*/)
247 User::Leave(KErrNotFound);
250 EXPORT_C void CCryptoPluginEntry::CreateSymmetricCipherL(MSymmetricCipher*& aPlugin,
251 TUid aImplementationId,
256 const CCryptoParams* /*aAlgorithmParams*/)
258 switch (aImplementationId.iUid)
260 case KTestPlugin01Des_1:
261 case KTestPlugin01Des_2:
262 case KTestPlugin01Des_3:
263 case KTestPlugin01Des_4:
265 aPlugin=CDesImpl::NewL(aImplementationId, aKey, aCryptoMode, aOperationMode, aPadding);
269 #ifdef SYMBIAN_SDP_IPSEC_VOIP_SUPPORT
270 case KTestPlugin01Aes:
272 aPlugin=CRijndaelImpl::NewL(aKey, aCryptoMode, aOperationMode, aPadding, KTestPlugin01AesUid);
278 User::Leave(KErrNotFound);