|
1 /* |
|
2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * Implementation of CSsmInitPsKeys class. |
|
16 * |
|
17 */ |
|
18 |
|
19 #include "ssminitpskeys.h" |
|
20 #include "ssmmapperutility.h" |
|
21 #include "ssmmapperutilityinternalpskeys.h" |
|
22 #include "ssmcustcmdsprivatepskeys.h" |
|
23 #include "trace.h" |
|
24 |
|
25 #include <ssm/startupdomainpskeys.h> |
|
26 #include <ssm/starterdomaincrkeys.h> |
|
27 #include <ssm/ssmrefcustomcmdcommon.h> |
|
28 |
|
29 _LIT_SECURITY_POLICY_C1( KReadDeviceDataPolicy, ECapabilityReadDeviceData ); |
|
30 _LIT_SECURITY_POLICY_C1( KWriteDeviceDataPolicy, ECapabilityWriteDeviceData ); |
|
31 _LIT_SECURITY_POLICY_C1( KPowerMgmtPolicy, ECapabilityPowerMgmt ); |
|
32 _LIT_SECURITY_POLICY_PASS( KAlwaysPassPolicy ); |
|
33 |
|
34 |
|
35 // ======== MEMBER FUNCTIONS ======== |
|
36 |
|
37 // --------------------------------------------------------------------------- |
|
38 // CSsmInitPsKeys::NewL |
|
39 // --------------------------------------------------------------------------- |
|
40 // |
|
41 CSsmInitPsKeys* CSsmInitPsKeys::NewL() |
|
42 { |
|
43 FUNC_LOG; |
|
44 return new ( ELeave ) CSsmInitPsKeys(); |
|
45 } |
|
46 |
|
47 |
|
48 // --------------------------------------------------------------------------- |
|
49 // CSsmInitPsKeys::~CSsmInitPsKeys |
|
50 // --------------------------------------------------------------------------- |
|
51 // |
|
52 CSsmInitPsKeys::~CSsmInitPsKeys() |
|
53 { |
|
54 FUNC_LOG; |
|
55 } |
|
56 |
|
57 |
|
58 // --------------------------------------------------------------------------- |
|
59 // CSsmInitPsKeys::Initialize |
|
60 // --------------------------------------------------------------------------- |
|
61 // |
|
62 TInt CSsmInitPsKeys::Initialize( CSsmCustomCommandEnv* /*aCmdEnv*/ ) |
|
63 { |
|
64 FUNC_LOG; |
|
65 return KErrNone; |
|
66 } |
|
67 |
|
68 |
|
69 // --------------------------------------------------------------------------- |
|
70 // CSsmInitPsKeys::Execute |
|
71 // --------------------------------------------------------------------------- |
|
72 // |
|
73 void CSsmInitPsKeys::Execute( |
|
74 const TDesC8& /*aParams*/, |
|
75 TRequestStatus& aRequest ) |
|
76 { |
|
77 FUNC_LOG; |
|
78 aRequest = KRequestPending; |
|
79 |
|
80 TRAPD( errorCode, InitializeKeysL() ); |
|
81 ERROR( errorCode, "Failed to initialize P&S keys" ); |
|
82 |
|
83 TRequestStatus* request = &aRequest; |
|
84 User::RequestComplete( request, errorCode ); |
|
85 } |
|
86 |
|
87 |
|
88 // --------------------------------------------------------------------------- |
|
89 // CSsmInitPsKeys::ExecuteCancel |
|
90 // --------------------------------------------------------------------------- |
|
91 // |
|
92 void CSsmInitPsKeys::ExecuteCancel() |
|
93 { |
|
94 FUNC_LOG; |
|
95 // Nothing to do. |
|
96 } |
|
97 |
|
98 |
|
99 // --------------------------------------------------------------------------- |
|
100 // CSsmInitPsKeys::Close |
|
101 // --------------------------------------------------------------------------- |
|
102 // |
|
103 void CSsmInitPsKeys::Close() |
|
104 { |
|
105 FUNC_LOG; |
|
106 |
|
107 /** |
|
108 * Close resources initialized in the previous call to Initialize. |
|
109 */ |
|
110 } |
|
111 |
|
112 |
|
113 // --------------------------------------------------------------------------- |
|
114 // CSsmInitPsKeys::Release |
|
115 // --------------------------------------------------------------------------- |
|
116 // |
|
117 void CSsmInitPsKeys::Release() |
|
118 { |
|
119 FUNC_LOG; |
|
120 |
|
121 delete this; |
|
122 } |
|
123 |
|
124 // --------------------------------------------------------------------------- |
|
125 // CSsmInitPsKeys::InitializeKeysL |
|
126 // --------------------------------------------------------------------------- |
|
127 // |
|
128 void CSsmInitPsKeys::InitializeKeysL() |
|
129 { |
|
130 FUNC_LOG; |
|
131 |
|
132 // Startup Security Status API |
|
133 |
|
134 INFO( "KPSUidStartup::KStartupSimSecurityStatus" ); |
|
135 DefineL( KPSUidStartup, |
|
136 KStartupSimSecurityStatus, |
|
137 KReadDeviceDataPolicy, |
|
138 KWriteDeviceDataPolicy ); |
|
139 SetL( KPSUidStartup, |
|
140 KStartupSimSecurityStatus, |
|
141 ESimSecurityStatusUninitialized ); |
|
142 |
|
143 INFO( "KPSUidStartup::KStartupSimLockStatus" ); |
|
144 DefineL( KPSUidStartup, |
|
145 KStartupSimLockStatus, |
|
146 KReadDeviceDataPolicy, |
|
147 KWriteDeviceDataPolicy ); |
|
148 SetL( KPSUidStartup, |
|
149 KStartupSimLockStatus, |
|
150 ESimLockStatusUninitialized ); |
|
151 |
|
152 INFO( "KPSUidStartup::KStartupSecurityCodeStatus" ); |
|
153 DefineL( KPSUidStartup, |
|
154 KStartupSecurityCodeStatus, |
|
155 KReadDeviceDataPolicy, |
|
156 KWriteDeviceDataPolicy ); |
|
157 SetL( KPSUidStartup, |
|
158 KStartupSecurityCodeStatus, |
|
159 ESecurityCodeStatusUninitialized ); |
|
160 |
|
161 INFO( "KPSUidStartup::KStartupSecurityCodeQueryStatus" ); |
|
162 DefineL( KPSUidStartup, |
|
163 KStartupSecurityCodeQueryStatus, |
|
164 KReadDeviceDataPolicy, |
|
165 KWriteDeviceDataPolicy ); |
|
166 SetL( KPSUidStartup, |
|
167 KStartupSecurityCodeQueryStatus, |
|
168 ESecurityQueryUninitialized ); |
|
169 |
|
170 // System Application Startup API |
|
171 |
|
172 INFO( "KPSUidStartup::KStartupBootIntoOffline" ); |
|
173 DefineL( KPSUidStartup, |
|
174 KStartupBootIntoOffline, |
|
175 KReadDeviceDataPolicy, |
|
176 KWriteDeviceDataPolicy ); |
|
177 SetL( KPSUidStartup, |
|
178 KStartupBootIntoOffline, |
|
179 EBootIntoOnlineModeUninitialized ); |
|
180 |
|
181 INFO( "KPSUidStartup::KStartupCleanBoot" ); |
|
182 DefineL( KPSUidStartup, |
|
183 KStartupCleanBoot, |
|
184 KReadDeviceDataPolicy, |
|
185 KWriteDeviceDataPolicy ); |
|
186 SetL( KPSUidStartup, KStartupCleanBoot, EStartupCleanBootUninitialized ); |
|
187 |
|
188 // SIM Utils API |
|
189 |
|
190 INFO( "KPSUidStartup::KPSSimStatus" ); |
|
191 DefineL( KPSUidStartup, |
|
192 KPSSimStatus, |
|
193 KReadDeviceDataPolicy, |
|
194 KWriteDeviceDataPolicy ); |
|
195 SetL( KPSUidStartup, KPSSimStatus, ESimStatusUninitialized ); |
|
196 |
|
197 INFO( "KPSUidStartup::KPSSimOwned" ); |
|
198 DefineL( KPSUidStartup, |
|
199 KPSSimOwned, |
|
200 KReadDeviceDataPolicy, |
|
201 KWriteDeviceDataPolicy ); |
|
202 SetL( KPSUidStartup, KPSSimOwned, ESimOwnedUninitialized ); |
|
203 |
|
204 INFO( "KPSUidStartup::KPSSimChanged" ); |
|
205 DefineL( KPSUidStartup, |
|
206 KPSSimChanged, |
|
207 KReadDeviceDataPolicy, |
|
208 KWriteDeviceDataPolicy ); |
|
209 SetL( KPSUidStartup, KPSSimChanged, ESimChangedUninitialized ); |
|
210 |
|
211 // System State API |
|
212 |
|
213 INFO( "KPSUidStartup::KPSGlobalSystemState" ); |
|
214 DefineL( KPSUidStartup, |
|
215 KPSGlobalSystemState, |
|
216 KAlwaysPassPolicy, |
|
217 KPowerMgmtPolicy ); |
|
218 INFO( "KPSUidStartup::KPSGlobalStartupMode" ); |
|
219 DefineL( KPSUidStartup, |
|
220 KPSGlobalStartupMode, |
|
221 KAlwaysPassPolicy, |
|
222 KPowerMgmtPolicy ); |
|
223 |
|
224 INFO( "KPSUidStartup::KPSIdlePhase1Ok" ); |
|
225 DefineL( KPSUidStartup, |
|
226 KPSIdlePhase1Ok, |
|
227 KAlwaysPassPolicy, |
|
228 KWriteDeviceDataPolicy ); |
|
229 SetL( KPSUidStartup, KPSIdlePhase1Ok, EIdlePhase1NOK ); |
|
230 |
|
231 INFO( "KPSUidStartup::KPSPhonePhase1Ok" ); |
|
232 DefineL( KPSUidStartup, |
|
233 KPSPhonePhase1Ok, |
|
234 KAlwaysPassPolicy, |
|
235 KPowerMgmtPolicy ); |
|
236 SetL( KPSUidStartup, KPSPhonePhase1Ok, EPhonePhase1NOK ); |
|
237 |
|
238 INFO( "KPSUidStartup::KPSStartupReason" ); |
|
239 DefineL( KPSUidStartup, |
|
240 KPSStartupReason, |
|
241 KAlwaysPassPolicy, |
|
242 KPowerMgmtPolicy ); |
|
243 |
|
244 // Wakeup Alarm API |
|
245 INFO( "KPSUidStartup::KPSWakeupAlarmStatus" ); |
|
246 DefineL( KPSUidStartup, |
|
247 KPSWakeupAlarmStatus, |
|
248 KAlwaysPassPolicy, |
|
249 KWriteDeviceDataPolicy ); |
|
250 SetL( KPSUidStartup, KPSWakeupAlarmStatus, EWakeupAlarmUninitialized ); |
|
251 |
|
252 // Startup Security Phase API |
|
253 INFO( "KPSStarterUid::KStarterSecurityPhase" ); |
|
254 DefineL( KPSStarterUid, |
|
255 KStarterSecurityPhase, |
|
256 KAlwaysPassPolicy, |
|
257 KWriteDeviceDataPolicy ); |
|
258 |
|
259 SetL( KPSStarterUid, KStarterSecurityPhase, EStarterSecurityPhaseUninitialized ); |
|
260 |
|
261 // Disk Reserver API |
|
262 INFO( "KPSStarterUid::KDiskReserveKey" ); |
|
263 DefineL( KPSStarterUid, |
|
264 KDiskReserveKey, |
|
265 KReadDeviceDataPolicy, |
|
266 KWriteDeviceDataPolicy ); |
|
267 SetL( KPSStarterUid, KDiskReserveKey, 0 ); |
|
268 |
|
269 // RTC validation API |
|
270 INFO( "KPSStarterUid::KRTCPropertyKey" ); |
|
271 DefineL( KPSStarterUid, |
|
272 KRTCPropertyKey, |
|
273 KReadDeviceDataPolicy, |
|
274 KWriteDeviceDataPolicy ); |
|
275 SetL( KPSStarterUid, KRTCPropertyKey, 0 ); |
|
276 |
|
277 // Store FirstBoot Value from cenrep |
|
278 TInt csVal( 0 ); |
|
279 TInt psVal( 0 ); |
|
280 CSsmMapperUtility& util = MapperUtilityL(); |
|
281 User::LeaveIfError( util.CrValue( KCRUidStartup, |
|
282 KStartupFirstBoot, |
|
283 csVal ) ); |
|
284 |
|
285 INFO( "KPSUidStartup::KPSStartupFirstBoot" ); |
|
286 psVal = ( csVal == EStartupIsFirstBoot )? EPSStartupFirstBoot : EPSStartupNotFirstBoot; |
|
287 DefineL( KPSUidStartup, |
|
288 KPSStartupFirstBoot, |
|
289 KAlwaysPassPolicy, |
|
290 KWriteDeviceDataPolicy ); |
|
291 |
|
292 SetL( KPSUidStartup, KPSStartupFirstBoot, psVal ); |
|
293 } |