cryptoservices/filebasedcertificateandkeystores/source/certstore/server/filecertstore.cpp
changeset 29 ece3df019add
parent 8 35751d3474b7
child 33 cf642210ecb7
--- a/cryptoservices/filebasedcertificateandkeystores/source/certstore/server/filecertstore.cpp	Fri Nov 06 13:21:00 2009 +0200
+++ b/cryptoservices/filebasedcertificateandkeystores/source/certstore/server/filecertstore.cpp	Tue Nov 24 09:06:03 2009 +0200
@@ -326,11 +326,15 @@
 	// API policing
 	const CCertStoreEntry& entry = iEntryList->GetByIndex(index);
 
-	if (!AddRemovePolicy(entry.CertInfo().CertificateOwnerType()).CheckPolicy(aMessage))
+
+	//Check whether the certificate is deleteable and that the necessary capabilities are 
+	//present
+	if (!AddRemovePolicy(entry.CertInfo().CertificateOwnerType()).CheckPolicy(aMessage) ||
+	        !entry.CertInfo().IsDeletable())
 		{
 		User::Leave(KErrPermissionDenied);
 		}
-
+	
 	TCleanupItem cleanupStore(RevertStore, iStore);
 	CleanupStack::PushL(cleanupStore);