policymanagement/policyengine/policyengineclient/src/PolicyEngineClient.cpp
changeset 72 8ee66fcd0a7c
parent 0 b497e44ab2fc
--- a/policymanagement/policyengine/policyengineclient/src/PolicyEngineClient.cpp	Fri Sep 17 08:34:58 2010 +0300
+++ b/policymanagement/policyengine/policyengineclient/src/PolicyEngineClient.cpp	Mon Oct 04 01:40:31 2010 +0300
@@ -29,7 +29,10 @@
 #include "ErrorCodes.h"
 #include "debug.h"
 
+#include <f32file.h>
+#include <s32file.h>
 
+const TInt KMaxLabelIdLength = 25; //take 25 from cert store or some header file
 
 
 // Standard server startup code
@@ -268,6 +271,41 @@
 	return SendReceive( EAddSessionTrust, TIpcArgs( &certInfoPck));	
 }
 
+EXPORT_C TInt RPolicyManagement::AddServerCert(const CX509Certificate& aCert, TDes& aLabel)
+{
+    RDEBUG("RPolicyManagement::AddServerCert()" );
+    
+    TPtrC8 ptr(aCert.Encoding());   
+    TInt size =ptr.Length();
+          
+    TBuf<1024> certData;
+    certData.Copy(ptr);
+    //label buffer to be written by server
+    TBuf<KMaxLabelIdLength> cLabel;
+    
+    TIpcArgs args(&certData,size,&cLabel);       
+    
+    TInt err = SendReceive(EServerCertAddRequest, args); 
+    // copy returned label 
+    aLabel.Append(cLabel);    
+    
+    return err; 
+ 
+}
+
+
+EXPORT_C TInt RPolicyManagement:: RemoveServerCert(const TDesC& aLabel)
+{  
+    RDEBUG("RPolicyManagement:: RemoveServerCert");
+
+    TBuf<KMaxLabelIdLength> labelData;
+    labelData.Copy(aLabel);    
+    
+    TInt err = SendReceive(EServerCertRemoveRequest, TIpcArgs(&labelData));    
+    return err;    
+}
+
+
 EXPORT_C TInt RPolicyManagement::IsAllowedServerId( const TDesC& aServerID)
 {
 	RDEBUG_2("RPolicyManagement::IsAllowedServerId( %S )", &aServerID );