--- a/cryptoservices/filebasedcertificateandkeystores/test/thwkeystore/common/tkeydetails.cpp Fri Nov 06 13:21:00 2009 +0200
+++ b/cryptoservices/filebasedcertificateandkeystores/test/thwkeystore/common/tkeydetails.cpp Tue Nov 24 09:06:03 2009 +0200
@@ -25,6 +25,25 @@
CKeyDetails::CKeyDetails()
{}
+CKeyDetails::CKeyDetails(
+ TKeyIdentifier aID,
+ TKeyUsagePKCS15 aUsage,
+ TUint aSize,
+ HBufC* aLabel,
+ TInt aHandle,
+ const TSecurityPolicy& aUsePolicy,
+ const TSecurityPolicy& aManagementPolicy,
+ EKeyAlgorithm aAlgorithm,
+ TInt aAccessType,
+ TBool aNative,
+ TTime aStartDate,
+ TTime aEndDate,
+ HBufC8* aPKCS8AttributeSet)
+ : CKeyInfoBase( aID,aUsage,aSize,aLabel,aHandle,
+ aUsePolicy,aManagementPolicy,aAlgorithm,
+ aAccessType,aNative,aStartDate,aEndDate,aPKCS8AttributeSet)
+ {}
+
CKeyDetails::~CKeyDetails()
{
delete iPrivateKey;
@@ -51,9 +70,29 @@
const TDesC8& aPrivateKey,
const TDesC8& aPublicKey )
{
- CKeyDetails* keyDetails = new (ELeave) CKeyDetails();
+ TKeyIdentifier keyID;
+ keyID.FillZ(keyID.MaxSize());
+ TKeyUsagePKCS15 usage = EPKCS15UsageNone;
+ TUint size = 0;
+ TInt handle = aHandle;
+ const TSecurityPolicy& usePolicy = TSecurityPolicy::EAlwaysPass;
+ const TSecurityPolicy& managementPolicy = TSecurityPolicy::EAlwaysPass;
+ EKeyAlgorithm algorithm = EECC;
+ TInt accessType = CKeyInfoBase::ENeverExtractable;
+ accessType |= CKeyInfoBase::ELocal;
+ TBool native = ETrue;
+ TTime startDate = 0;
+ TTime endDate = 0;
+ HBufC8* pkcs8AttributeSet = NULL;
+
+ HBufC* label = HBufC::NewLC(aLabel.Length());
+ label->Des().Copy(aLabel);
+
+ CKeyDetails* keyDetails = new (ELeave) CKeyDetails(keyID,usage,size,label,handle,usePolicy,managementPolicy,algorithm,accessType,native,startDate,endDate,pkcs8AttributeSet);
+
+ CleanupStack::Pop(label);
CleanupStack::PushL(keyDetails);
- keyDetails->ConstructL(aHandle, aLabel, aPrivateKey, aPublicKey);
+ keyDetails->ConstructL(aPrivateKey, aPublicKey);
CleanupStack::Pop(keyDetails);
return keyDetails;
}
@@ -63,64 +102,44 @@
{
CKeyDetails* self = new (ELeave) CKeyDetails();
CleanupStack::PushL(self);
- self->InternalizeL(aReadStream);
+ self->ConstructL(aReadStream);
CleanupStack::Pop(self);
return (self);
}
-void CKeyDetails::ConstructL( TInt aHandle, const TDesC& aLabel,
- const TDesC8& aPrivateKey, const TDesC8& aPublicKey )
+void CKeyDetails::ConstructL( const TDesC8& aPrivateKey, const TDesC8& aPublicKey )
{
- CKeyInfoBase::ConstructL();
- iHandle = aHandle;
- iLabel = aLabel.AllocL();
iPrivateKey = aPrivateKey.AllocL();
- iPublicKey = aPublicKey.AllocL();
-
- // set the access type to never extractable
- iAccessType |= CKeyInfoBase::ENeverExtractable;
- iAccessType |= CKeyInfoBase::ELocal;
- // Policy set for keys in hardware depends on the vendor requirements
- // this reference implementation assumes that accessibility of keys
- // does not need any restriction. Hence for the testing environment policy is set to always pass.
- TSecurityPolicy temp(TSecurityPolicy::EAlwaysPass);
- iUsePolicy = temp;
+ iPublicKey = aPublicKey.AllocL();
+ }
+
+void CKeyDetails::ConstructL(RStoreReadStream& aReadStream)
+ {
+ CKeyInfoBase::ConstructL(aReadStream);
+ InternalizeL(aReadStream);
}
void CKeyDetails::ExternalizeL(RWriteStream& aWriteStream) const
- {
- aWriteStream.WriteInt32L(iHandle);
-
- TInt stringLen = iLabel->Length();
- aWriteStream.WriteInt32L(stringLen);
- TPtr stringPtr = iLabel->Des();
- stringPtr.SetLength(stringLen);
- aWriteStream.WriteL(stringPtr);
+ {
+ CKeyInfoBase::ExternalizeL(aWriteStream);
- stringLen = iPrivateKey->Length();
+ TInt stringLen = iPrivateKey->Length();
aWriteStream.WriteInt32L(stringLen);
TPtr8 keyPtr = iPrivateKey->Des();
keyPtr.SetLength(stringLen);
aWriteStream.WriteL(keyPtr);
-
+
stringLen = iPublicKey->Length();
aWriteStream.WriteInt32L(stringLen);
keyPtr = iPublicKey->Des();
keyPtr.SetLength(stringLen);
aWriteStream.WriteL(keyPtr);
+
}
void CKeyDetails::InternalizeL(RReadStream& aReadStream)
{
- iHandle = aReadStream.ReadInt32L();
-
TInt stringLen = aReadStream.ReadInt32L();
- iLabel = HBufC::NewMaxL(stringLen);
- TPtr labelPtr((TUint16*)iLabel->Ptr(), stringLen, stringLen);
- labelPtr.FillZ(stringLen);
- aReadStream.ReadL(labelPtr);
-
- stringLen = aReadStream.ReadInt32L();
iPrivateKey = HBufC8::NewMaxL(stringLen);
TPtr8 privateKeyPtr((TUint8*)iPrivateKey->Ptr(), stringLen, stringLen);
privateKeyPtr.FillZ(stringLen);
@@ -131,9 +150,5 @@
TPtr8 publicKeyPtr((TUint8*)iPublicKey->Ptr(), stringLen, stringLen);
publicKeyPtr.FillZ(stringLen);
aReadStream.ReadL(publicKeyPtr);
- // Policy set for keys in hardware depends on the vendor requirements
- // this reference implementation assumes that accessibility of keys
- // does not need any restriction. Hence for the testing environment policy is set to always pass.
- TSecurityPolicy temp(TSecurityPolicy::EAlwaysPass);
- iUsePolicy = temp;
+
}