28 #include "TrustClient.h" |
28 #include "TrustClient.h" |
29 #include <ssl_compatibility.h> |
29 #include <ssl_compatibility.h> |
30 #include <f32file.h> |
30 #include <f32file.h> |
31 #include <e32cmn.h> |
31 #include <e32cmn.h> |
32 |
32 |
|
33 #include <x509cert.h> |
33 |
34 |
34 _LIT( KServerID, "TarmBlr"); |
35 _LIT( KServerID, "TarmBlr"); |
35 //_LIT( KTarmBlrCer, "TarmBlrcer"); |
36 //_LIT( KTarmBlrCer, "TarmBlrcer"); |
36 _LIT( KTestFilePath, "E:\\testing\\data\\"); |
37 _LIT( KTestFilePath, "E:\\testing\\data\\"); |
37 |
38 |
38 |
39 const TInt KMaxLabelIdLength = 25; |
39 |
40 |
40 // ============================ MEMBER FUNCTIONS =============================== |
41 // ============================ MEMBER FUNCTIONS =============================== |
41 |
42 |
42 // ----------------------------------------------------------------------------- |
43 // ----------------------------------------------------------------------------- |
43 // Cpolicy_management_request_api::Delete |
44 // Cpolicy_management_request_api::Delete |
75 ENTRY( "ExecuteOperation", Cpolicy_management_request_api::ExecuteOperationL ), |
76 ENTRY( "ExecuteOperation", Cpolicy_management_request_api::ExecuteOperationL ), |
76 |
77 |
77 ENTRY( "GetElememtList", Cpolicy_management_request_api::GetElememtListL ), |
78 ENTRY( "GetElememtList", Cpolicy_management_request_api::GetElememtListL ), |
78 ENTRY( "GetElememt", Cpolicy_management_request_api::GetElememtL ), |
79 ENTRY( "GetElememt", Cpolicy_management_request_api::GetElememtL ), |
79 ENTRY( "GetXACMLDescription", Cpolicy_management_request_api::GetXACMLDescriptionL ), |
80 ENTRY( "GetXACMLDescription", Cpolicy_management_request_api::GetXACMLDescriptionL ), |
|
81 |
|
82 ENTRY( "AddServerCert", Cpolicy_management_request_api::AddServerCertL ), |
|
83 ENTRY( "RemoveServerCert", Cpolicy_management_request_api::RemoveServerCertL ), |
80 //ADD NEW ENTRY HERE |
84 //ADD NEW ENTRY HERE |
81 // [test cases entries] - Do not remove |
85 // [test cases entries] - Do not remove |
82 |
86 |
83 }; |
87 }; |
84 |
88 |
197 if (err != KErrNone) |
201 if (err != KErrNone) |
198 err = KErrNone; |
202 err = KErrNone; |
199 |
203 |
200 return err; |
204 return err; |
201 } |
205 } |
|
206 |
|
207 TInt Cpolicy_management_request_api::AddServerCertL(CStifItemParser& aItem) |
|
208 { |
|
209 //Load X.509 certificate |
|
210 RFs fs; |
|
211 User::LeaveIfError(fs.Connect()); |
|
212 CleanupClosePushL(fs); |
|
213 |
|
214 RFile certFile; |
|
215 User::LeaveIfError(certFile.Open(fs, _L("c:\\dm2.blrtesting.der"), EFileRead)); |
|
216 CleanupClosePushL(certFile); |
|
217 |
|
218 TInt size(0); |
|
219 User::LeaveIfError(certFile.Size(size)); |
|
220 |
|
221 HBufC8* certData = HBufC8::NewLC(size); |
|
222 TPtr8 buf = certData->Des(); |
|
223 User::LeaveIfError(certFile.Read(buf,size)); |
|
224 CX509Certificate* cert = CX509Certificate::NewLC(*certData); |
|
225 //create the empty label to be filled later with certificate name after adding to store. |
|
226 HBufC *testLabel = HBufC::NewL(KMaxLabelIdLength); |
|
227 testLabel->Des().Zero(); |
|
228 |
|
229 //connect to policy engine |
|
230 RPolicyEngine engine; |
|
231 User::LeaveIfError(engine.Connect()); |
|
232 |
|
233 RPolicyManagement management; |
|
234 User::LeaveIfError(management.Open(engine)); |
|
235 |
|
236 TPtr ptr = testLabel->Des(); |
|
237 TInt err = management.AddServerCert(*cert,ptr); |
|
238 |
|
239 management.Close(); |
|
240 engine.Close(); |
|
241 |
|
242 |
|
243 CleanupStack::PopAndDestroy(4, &fs); |
|
244 delete testLabel; |
|
245 |
|
246 return err; |
|
247 } |
|
248 |
|
249 |
|
250 TInt Cpolicy_management_request_api::RemoveServerCertL(CStifItemParser& aItem) |
|
251 { |
|
252 RPolicyEngine engine; |
|
253 User::LeaveIfError(engine.Connect()); |
|
254 |
|
255 RPolicyManagement management; |
|
256 User::LeaveIfError(management.Open(engine)); |
|
257 |
|
258 //create the empty label |
|
259 HBufC *testLabel = HBufC::NewL(KMaxLabelIdLength); |
|
260 testLabel->Des().Zero(); |
|
261 TInt err = management.RemoveServerCert(*testLabel); |
|
262 |
|
263 management.Close(); |
|
264 engine.Close(); |
|
265 |
|
266 delete testLabel; |
|
267 |
|
268 return err; |
|
269 } |
|
270 |
202 |
271 |
203 TInt Cpolicy_management_request_api::CertificateRoleL( CStifItemParser& aItem ) |
272 TInt Cpolicy_management_request_api::CertificateRoleL( CStifItemParser& aItem ) |
204 { |
273 { |
205 RPolicyEngine engine; |
274 RPolicyEngine engine; |
206 User::LeaveIfError(engine.Connect()); |
275 User::LeaveIfError(engine.Connect()); |