Update contrib.
2 * Copyright (c) 2006-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.
15 * crypto plugin characteristic implementation
21 #include <cryptospi/plugincharacteristics.h>
22 #include <cryptospi/cryptospidef.h>
23 #include <cryptospi/romlit.h>
25 using namespace CryptoSpi;
27 EXPORT_C TBool TSymmetricCipherCharacteristics::IsOperationModeSupported(TUid aOperationMode) const
29 // Sanity check to catch incorrect casts of characteristics classes
30 ASSERT(cmn.iInterfaceUID == KSymmetricCipherInterface);
32 TBool supported(EFalse);
33 for (TUint i = 0; i < iOperationModeNum; ++i)
35 if (iSupportedOperationModes[i] == aOperationMode.iUid)
44 EXPORT_C TBool TSymmetricCipherCharacteristics::IsPaddingModeSupported(TUid aPaddingMode) const
46 // Sanity check to catch incorrect casts of characteristics classes
47 ASSERT(cmn.iInterfaceUID == KSymmetricCipherInterface);
49 TBool supported(EFalse);
50 for (TUint i = 0; i < iPaddingModeNum; ++i)
52 if (iSupportedPaddingModes[i] == aPaddingMode.iUid)
61 EXPORT_C TBool TAsymmetricCipherCharacteristics::IsPaddingModeSupported(TUid aPaddingMode) const
63 // Sanity check to catch incorrect casts of characteristics classes
64 ASSERT(cmn.iInterfaceUID == KAsymmetricCipherInterface);
66 TBool supported(EFalse);
67 for (TInt i = 0; i < iPaddingModeNum; ++i)
69 if (iSupportedPaddingModes[i] == aPaddingMode.iUid)
78 EXPORT_C TBool TAsymmetricSignatureCharacteristics::IsPaddingModeSupported(TUid aPaddingMode) const
80 // Sanity check to catch incorrect casts of characteristics classes
81 ASSERT(cmn.iInterfaceUID == KSignerInterface || cmn.iInterfaceUID == KVerifierInterface);
83 TBool supported(EFalse);
84 for (TInt i = 0; i < iPaddingModeNum; ++i)
86 if (iSupportedPaddingModes[i] == aPaddingMode.iUid)
95 EXPORT_C TBool THashCharacteristics::IsOperationModeSupported(TUid aOperationMode) const
97 // Sanity check to catch incorrect casts of characteristics classes
98 ASSERT(cmn.iInterfaceUID == KHashInterface);
100 TBool supported(EFalse);
101 for (TUint i = 0; i < iOperationModeNum; ++i)
103 if (iSupportedOperationModes[i] == aOperationMode.iUid)
112 #ifdef SYMBIAN_SDP_IPSEC_VOIP_SUPPORT
114 void TMacCharacteristics::ExternalizeL(RWriteStream& aStream) const
116 iMacChar.ExternalizeL(aStream);
117 aStream.WriteInt32L(iMacMode);
118 if(iMacMode == KHmacMode)
120 //externalize THashCharacteristics object
121 iHashAlgorithmChar->ExternalizeL(aStream);
123 else if(iMacMode == KSymmetricCipherMode)
125 //externalize TSymmetricCipherCharacteristics object
126 iCipherAlgorithmChar->ExternalizeL(aStream);
132 void TCommonCharacteristics::ExternalizeL(RWriteStream& aStream) const
134 aStream.WriteInt32L(iInterfaceUID);
135 aStream.WriteInt32L(iAlgorithmUID);
136 aStream.WriteInt32L(iImplementationUID);
137 aStream<<(*iCreatorName)();
138 aStream.WriteInt8L(iIsFIPSApproved);
139 aStream.WriteInt8L(iIsHardwareSupported);
140 aStream.WriteUint32L(iMaxConcurrencySupported);
141 aStream<<(*iAlgorithmName)();
142 aStream.WriteInt32L(iLatency);
143 aStream.WriteInt32L(iThroughput);
146 void THashCharacteristics::ExternalizeL(RWriteStream& aStream) const
148 cmn.ExternalizeL(aStream);
149 aStream.WriteUint32L(iBlockSize);
150 aStream.WriteUint32L(iOutputSize);
151 aStream.WriteUint32L(iOperationModeNum);
152 for (TUint i=0;i<iOperationModeNum;i++)
154 aStream.WriteInt32L(iSupportedOperationModes[i]);
158 void TRandomCharacteristics::ExternalizeL(RWriteStream& aStream) const
160 cmn.ExternalizeL(aStream);
161 aStream.WriteUint32L(iBlockingMode);
164 void TSymmetricCipherCharacteristics::ExternalizeL(RWriteStream& aStream) const
166 cmn.ExternalizeL(aStream);
167 aStream.WriteUint32L(iMaximumKeyLength);
168 aStream.WriteUint32L(iBlockSize);
169 aStream.WriteUint32L(iPaddingModeNum);
170 for (TUint i=0;i<iPaddingModeNum;i++)
172 aStream.WriteInt32L(iSupportedPaddingModes[i]);
174 aStream.WriteUint32L(iOperationModeNum);
175 for (TUint j=0;j<iOperationModeNum;j++)
177 aStream.WriteInt32L(iSupportedOperationModes[j]);
179 aStream.WriteInt32L(iKeySupportMode);
182 void TAsymmetricCipherCharacteristics::ExternalizeL(RWriteStream& aStream) const
184 cmn.ExternalizeL(aStream);
185 aStream.WriteUint32L(iMaximumKeyLength);
186 aStream.WriteUint32L(iPaddingModeNum);
187 for (TInt i=0;i<iPaddingModeNum;i++)
189 aStream.WriteInt32L(iSupportedPaddingModes[i]);
191 aStream.WriteInt32L(iKeySupportMode);
194 void TAsymmetricSignatureCharacteristics::ExternalizeL(RWriteStream& aStream) const
196 cmn.ExternalizeL(aStream);
197 aStream.WriteUint32L(iMaximumKeyLength);
198 aStream.WriteUint32L(iPaddingModeNum);
199 for (TInt i=0;i<iPaddingModeNum;i++)
201 aStream.WriteInt32L(iSupportedPaddingModes[i]);
203 aStream.WriteInt32L(iKeySupportMode);
206 void TKeyAgreementCharacteristics::ExternalizeL(RWriteStream& aStream) const
208 cmn.ExternalizeL(aStream);
211 void TAsymmetricKeypairGeneratorCharacteristics::ExternalizeL(RWriteStream& aStream) const
213 cmn.ExternalizeL(aStream);
214 aStream.WriteUint32L(iMaximumKeyLength);