cryptoservices/filebasedcertificateandkeystores/test/thwkeystore/common/tkeydetails.cpp
changeset 29 ece3df019add
parent 19 cd501b96611d
--- 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;
+    
     }