144 aMessage.Complete(matchCount); |
144 aMessage.Complete(matchCount); |
145 } |
145 } |
146 break; |
146 break; |
147 case PkiService::EGetCertDetails: |
147 case PkiService::EGetCertDetails: |
148 { |
148 { |
149 TPckgBuf<TSecurityObjectDescriptor> secDescPtr; |
149 TPckgBuf<TSecurityObjectDescriptor>* secDescPtr = |
150 aMessage.ReadL(1, secDescPtr); |
150 new (ELeave) TPckgBuf<TSecurityObjectDescriptor>(); |
|
151 CleanupStack::PushL(secDescPtr); |
|
152 aMessage.ReadL(1, *secDescPtr); |
151 TCertificateListEntry* resultCertInfo = new (ELeave) TCertificateListEntry; |
153 TCertificateListEntry* resultCertInfo = new (ELeave) TCertificateListEntry; |
152 CleanupStack::PushL(resultCertInfo); |
154 CleanupStack::PushL(resultCertInfo); |
153 Status = iMapper.GetCertDetailsL(secDescPtr(), |
155 Status = iMapper.GetCertDetailsL((*secDescPtr)(), |
154 iWrapper->CertStoreType(), |
156 iWrapper->CertStoreType(), |
155 iWrapper->Informational(), |
157 iWrapper->Informational(), |
156 *resultCertInfo); |
158 *resultCertInfo); |
157 if (Status == KErrNone) |
159 if (Status == KErrNone) |
158 { |
160 { |
159 TPckg<TCertificateListEntry> certDetailsPtr(*resultCertInfo); |
161 TPckg<TCertificateListEntry> certDetailsPtr(*resultCertInfo); |
160 aMessage.WriteL(0, certDetailsPtr); |
162 aMessage.WriteL(0, certDetailsPtr); |
161 } |
163 } |
162 aMessage.Complete(Status); |
164 aMessage.Complete(Status); |
163 CleanupStack::PopAndDestroy(resultCertInfo); |
165 CleanupStack::PopAndDestroy(resultCertInfo); |
|
166 CleanupStack::PopAndDestroy(secDescPtr); |
164 } |
167 } |
165 break; |
168 break; |
166 case PkiService::EGetCertList: |
169 case PkiService::EGetCertList: |
167 iMapper.GetCertListL(aMessage, iWrapper->Informational()); |
170 iMapper.GetCertListL(aMessage, iWrapper->Informational()); |
168 aMessage.Complete(KErrNone); |
171 aMessage.Complete(KErrNone); |