cryptoservices/filebasedcertificateandkeystores/source/certstore/server/filecertstore.cpp
--- 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);