29 |
29 |
30 // CLASS DECLARATION |
30 // CLASS DECLARATION |
31 |
31 |
32 /** |
32 /** |
33 * Class for handling certificates in WIM card |
33 * Class for handling certificates in WIM card |
34 * |
34 * |
35 * @since Series60 2.1 |
35 * @since Series60 2.1 |
36 */ |
36 */ |
37 class CWimCertHandler : public CBase |
37 class CWimCertHandler : public CBase |
38 { |
38 { |
39 public: // Constructors and destructor |
39 public: // Constructors and destructor |
40 |
40 |
41 /** |
41 /** |
42 * Two-phased constructor. |
42 * Two-phased constructor. |
43 */ |
43 */ |
44 static CWimCertHandler* NewL(); |
44 static CWimCertHandler* NewL(); |
45 |
45 |
46 /** |
46 /** |
47 * Destructor. |
47 * Destructor. |
48 */ |
48 */ |
49 virtual ~CWimCertHandler(); |
49 virtual ~CWimCertHandler(); |
50 |
50 |
51 public: // New functions |
51 public: // New functions |
52 |
52 |
53 /** |
53 /** |
54 * Fetches certificates from WIM card. |
54 * Fetches certificates from WIM card. |
55 * @param aMessage Encapsulates a client request. |
55 * @param aMessage Encapsulates a client request. |
56 * @param aWimMgmt Pointer to WIM reference management class. |
56 * @param aWimMgmt Pointer to WIM reference management class. |
57 */ |
57 */ |
58 void GetCertificatesFromWimL( const RMessage2& aMessage, |
58 void GetCertificatesFromWimL( const RMessage2& aMessage, |
59 CWimMemMgmt* aWimMgmt ); |
59 CWimMemMgmt* aWimMgmt ); |
60 |
60 |
61 /** |
61 /** |
62 * Fetches certificate extra information from WIM card. |
62 * Fetches certificate extra information from WIM card. |
63 * Extra information includes trusted usage and CDF referense |
63 * Extra information includes trusted usage and CDF referense |
64 * information. |
64 * information. |
65 * @param aMessage Encapsulates a client request. |
65 * @param aMessage Encapsulates a client request. |
66 * @param aWimMgmt Pointer to WIM reference management class. |
66 * @param aWimMgmt Pointer to WIM reference management class. |
67 */ |
67 */ |
68 void GetExtrasFromWimL( const RMessage2& aMessage, |
68 void GetExtrasFromWimL( const RMessage2& aMessage, |
69 CWimMemMgmt* aWimMgmt ); |
69 CWimMemMgmt* aWimMgmt ); |
70 |
70 |
71 /** |
71 /** |
72 * Fetches count of certicates in certain WIM card. |
72 * Fetches count of certicates in certain WIM card. |
73 * @param aMessage Encapsulates a client request. |
73 * @param aMessage Encapsulates a client request. |
74 * @param aWimMgmt Pointer to WIM reference management class. |
74 * @param aWimMgmt Pointer to WIM reference management class. |
75 */ |
75 */ |
76 void GetCerticateCountL( const RMessage2& aMessage, |
76 void GetCerticateCountL( const RMessage2& aMessage, |
77 CWimMemMgmt* aWimMgmt ) const; |
77 CWimMemMgmt* aWimMgmt ) const; |
78 |
78 |
79 |
79 |
80 /** |
80 /** |
81 * Stores certificate to the WIM card. |
81 * Stores certificate to the WIM card. |
82 * @since Series60 2.6 |
82 * @since Series60 2.6 |
83 * @param aRequest Enumerator used in message |
83 * @param aRequest Enumerator used in message |
84 passing between client and server. |
84 passing between client and server. |
85 * @param aMessage Encapsulates a client request. |
85 * @param aMessage Encapsulates a client request. |
86 */ |
86 */ |
87 void StoreCertificateL( TWimServRqst aRequest, |
87 void StoreCertificateL( TWimServRqst aRequest, |
88 const RMessage2& aMessage ) const; |
88 const RMessage2& aMessage ) const; |
89 |
89 |
93 * @param aMessage Encapsulates a client request. |
93 * @param aMessage Encapsulates a client request. |
94 * @param aWimMgmt Pointer to WIM reference management class. |
94 * @param aWimMgmt Pointer to WIM reference management class. |
95 */ |
95 */ |
96 void RemoveCertificateL( const RMessage2& aMessage, |
96 void RemoveCertificateL( const RMessage2& aMessage, |
97 CWimMemMgmt* aWimMgmt ) const; |
97 CWimMemMgmt* aWimMgmt ) const; |
98 |
98 |
99 /** |
99 /** |
100 * Fetches certificate details. |
100 * Fetches certificate details. |
101 * @param aOpCode Enumerator used in message |
101 * @param aOpCode Enumerator used in message |
102 passing between client and server. |
102 passing between client and server. |
103 * @param aMessage Encapsulates a client request. |
103 * @param aMessage Encapsulates a client request. |
104 */ |
104 */ |
105 void GetCertificateDetailsL( TWimServRqst aOpCode, |
105 void GetCertificateDetailsL( TWimServRqst aOpCode, |
106 const RMessage2& aMessage ) ; |
106 const RMessage2& aMessage ) ; |
107 |
107 |
109 * Exports Public Key of certificate |
109 * Exports Public Key of certificate |
110 * @since Series60 2.6 |
110 * @since Series60 2.6 |
111 * @param aMessage Encapsulates a client request. |
111 * @param aMessage Encapsulates a client request. |
112 */ |
112 */ |
113 void ExportPublicKeyL( const RMessage2& aMessage ) const; |
113 void ExportPublicKeyL( const RMessage2& aMessage ) const; |
114 |
114 |
115 |
115 |
116 TBool SanityCheck( TUint32 aCertRef ); |
116 TBool SanityCheck( TUint32 aCertRef ); |
117 |
117 |
118 TBool CheckReadCapsForUsage( const RMessage2& aMsg, |
118 TBool CheckReadCapsForUsage( const RMessage2& aMsg, |
119 TUint8 aUsage ); |
119 TUint8 aUsage ); |
120 |
120 |
121 |
121 |
122 WIMI_STAT ResolveCertUsage( const RMessage2& aMsg, |
122 WIMI_STAT ResolveCertUsage( const RMessage2& aMsg, |
123 TUint8& aUsage ); |
123 TUint8& aUsage ); |
124 |
124 |
125 WIMI_STAT GetCertificateInfo( WIMI_Ref_pt aCertRef, |
125 WIMI_STAT GetCertificateInfo( WIMI_Ref_pt aCertRef, |
126 TUint8& aUsage ); |
126 TUint8& aUsage ); |
141 */ |
141 */ |
142 WIMI_STAT GetCertificateFromWimRefL( WIMI_Ref_t* aTmpWimRef, |
142 WIMI_STAT GetCertificateFromWimRefL( WIMI_Ref_t* aTmpWimRef, |
143 TInt8 aUsage, |
143 TInt8 aUsage, |
144 TUint8& aCertNum, |
144 TUint8& aCertNum, |
145 TUint32* aCertRefLst, |
145 TUint32* aCertRefLst, |
146 TWimCertInfo* aCertInfoLst, |
146 TWimCertInfo* aCertInfoLst, |
147 const RMessage2& aMessage ); |
147 const RMessage2& aMessage ); |
148 |
148 |
149 /** |
149 /** |
150 * Copies certificate information to client's allocated memory area. |
150 * Copies certificate information to client's allocated memory area. |
151 * @param aCertInfo Certificate information to be copied. |
151 * @param aCertInfo Certificate information to be copied. |
152 * @param aCert Certificate reference. |
152 * @param aCert Certificate reference. |
153 * @param aMessage Encapsulates a client request. |
153 * @param aMessage Encapsulates a client request. |
154 * @return TInt KErrNone or KErrArgument |
154 * @return TInt KErrNone or KErrArgument |
155 */ |
155 */ |
156 TInt CopyCertificateInfo( TWimCertInfo& aCertInfo, |
156 TInt CopyCertificateInfo( TWimCertInfo& aCertInfo, |
157 WIMI_Ref_t* aCert, |
157 WIMI_Ref_t* aCert, |
158 const RMessage2& aMessage ); |
158 const RMessage2& aMessage ); |
159 |
159 |
160 /** |
160 /** |
161 * Fetches certificate extra information from the WIM card. |
161 * Fetches certificate extra information from the WIM card. |
162 * @param aTmpWimRef Reference(id) of certain WIM card. |
162 * @param aTmpWimRef Reference(id) of certain WIM card. |
163 * @param aUsage Certificate usage. Client/CA. |
163 * @param aUsage Certificate usage. Client/CA. |
164 * @param aKeyHash Certificate key hash. |
164 * @param aKeyHash Certificate key hash. |
165 * @param aMessage Encapsulates a client request. |
165 * @param aMessage Encapsulates a client request. |
166 * @return Status returned by WIMI. See in WimClsv.h. |
166 * @return Status returned by WIMI. See in WimClsv.h. |
167 */ |
167 */ |
168 WIMI_STAT GetExtrasFromWimRefL( WIMI_Ref_t* aTmpWimRef, |
168 WIMI_STAT GetExtrasFromWimRefL( WIMI_Ref_t* aTmpWimRef, |
169 TInt8 aUsage, |
169 TInt8 aUsage, |
170 TDesC8& aKeyHash, |
170 TDesC8& aKeyHash, |
171 const RMessage2& aMessage ); |
171 const RMessage2& aMessage ); |
172 |
172 |
173 /** |
173 /** |
185 * @param aRef WIM card reference pointer. |
185 * @param aRef WIM card reference pointer. |
186 * @param aCertCount Count of certificates in WIM card pointed by aRef |
186 * @param aCertCount Count of certificates in WIM card pointed by aRef |
187 * @param aUsage Certificate usage. |
187 * @param aUsage Certificate usage. |
188 * @return Status returned by WIMI. See in wimclsv.h. |
188 * @return Status returned by WIMI. See in wimclsv.h. |
189 */ |
189 */ |
190 WIMI_STAT GetCertificateCountByWIM( WIMI_Ref_t* aRef, |
190 WIMI_STAT GetCertificateCountByWIM( WIMI_Ref_t* aRef, |
191 TUint8& aCertCount, |
191 TUint8& aCertCount, |
192 TUint8 aUsage ) const; |
192 TUint8 aUsage ) const; |
193 |
193 |
194 /** |
194 /** |
195 * Parse Public Key from certificate. |
195 * Parse Public Key from certificate. |
196 * @since Series60 2.6 |
196 * @since Series60 2.6 |
200 */ |
200 */ |
201 void ParseCertPublicKeyL( const TDesC8& aCertData, |
201 void ParseCertPublicKeyL( const TDesC8& aCertData, |
202 TDes8& aPublicKey, |
202 TDes8& aPublicKey, |
203 const TUint8 aCertType ) const; |
203 const TUint8 aCertType ) const; |
204 |
204 |
|
205 /** |
|
206 * Returns WIM reference. Returns WIM ref cached in aWimMgmt, or |
|
207 * fetches new using WIMI_GetWIMRef() and caches it in aWimMgmt. |
|
208 * @since Serier60 5.2 |
|
209 * @param aWimMgmt WIM memory manager |
|
210 */ |
|
211 WIMI_Ref_t* MainWimRef( CWimMemMgmt& aWimMgmt ) const; |
205 |
212 |
206 private: // Data |
213 private: // Data |
207 CWimUtilityFuncs* iWimUtilFuncs; |
214 CWimUtilityFuncs* iWimUtilFuncs; |
208 RArray<TUint32> iCertRefLst; |
215 RArray<TUint32> iCertRefLst; |
209 }; |
216 }; |
210 |
217 |
211 #endif // CWIMCERTHANDLER_H |
218 #endif // CWIMCERTHANDLER_H |
212 |
219 |
213 //End of File |
220 //End of File |