Applied latest source code
[apps/native/preloaded/Settings.git] / inc / StCertificatePresentationModel.h
1 //
2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
3 //
4 // Licensed under the Flora License, Version 1.1 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //     http://floralicense.org/license/
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an AS IS BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16
17 /**
18  * @file                StCertificatePresentationModel.h
19  * @brief               This is the header file for Certificate Presentation Model class.
20  */
21
22 #ifndef _ST_CERTIFICATE_PRESENTATION_MODEL_H_
23 #define _ST_CERTIFICATE_PRESENTATION_MODEL_H_
24
25 #include <FBase.h>
26 #include <FSecCert.h>
27
28 class ICertificatePresentationModelSelector;
29
30 class CertificatePresentationModel
31 {
32 public:
33         Tizen::Security::Cert::CertificateType GetCertificateSelectorType(void) const;
34         result SetCertificateSelector(Tizen::Security::Cert::CertificateType certificateType = Tizen::Security::Cert::ROOT_CA);
35
36         result UpdateCertificateListFromCertificateStore(void);
37         Tizen::Base::String GetSubjectNameFromCertifcateStore(int i);
38         Tizen::Security::Cert::ICertificate* GetCertificateFromCertificateStoreN(int i);
39         int GetCertificateStoreCount(void);
40
41         result FindUserCertificateToInstallFromStorage(void);
42         Tizen::Base::String GetFileNameInFoundUserCertificateToInstallListAt(int index);
43         int GetFoundUserCertificateToInstallListCount(void);
44
45         result InsertPkcs12FormatIntoCertificateStore(const Tizen::Base::String& filePath, const Tizen::Base::String& password);
46         result RemoveFromCertificateStore(const Tizen::Security::Cert::ICertificate& certificate);
47
48         bool IsPendingCertificate(void);
49         bool PushPendingCertificate(Tizen::Security::Cert::ICertificate& certificate);
50         Tizen::Security::Cert::ICertificate* PopPendingCertificateN(void);
51         void ClearPendingCertificate(void);
52
53         bool IsPendingUserCertificateFileNameToInstall(void);
54         bool PushPendingUserCertificateFileNameToInstall(Tizen::Base::String& filePath);
55         Tizen::Base::String* PopPendingUserCertificateFileNameToInstallN(void);
56         void ClearPendingUserCertificateFileNameToInstall(void);
57         static CertificatePresentationModel* GetInstance(void);
58
59 private:
60         CertificatePresentationModel(void);
61         ~CertificatePresentationModel(void);
62         CertificatePresentationModel(const CertificatePresentationModel& rhs);
63         const CertificatePresentationModel& operator = (CertificatePresentationModel& rhs) const;
64
65         result Construct(void);
66         result InitFoundUserCertificateToInstallList(void);
67         void RemoveCertificateSelector(void);
68         void RemoveCertificateList(void);
69         void RemoveFoundUserCertifiacteToInstallList(void);
70
71         static void CreateInstance(void);
72         static void DestroyInstance(void);
73
74 private:
75         Tizen::Security::Cert::X509CertificateStore* __pX509CertificateStore;
76         ICertificatePresentationModelSelector* __pICertificatePresentationModelSelector;
77         Tizen::Security::Cert::ICertificate* __pPendingCertificate;
78         Tizen::Base::Collection::ArrayListT<Tizen::Security::Cert::ICertificate*>* __pCertificateList;
79         Tizen::Base::Collection::ArrayList* __pFoundUserCertificateToInstallList;
80         Tizen::Base::String* __pPendingUserCertificateToInstallList;
81
82         static CertificatePresentationModel* __pStCertificatePresentationModelInstance;
83 };
84
85 class ICertificatePresentationModelSelector
86         : public Tizen::Security::Cert::ICertificateSelector
87 {
88 public:
89         ICertificatePresentationModelSelector(void);
90         virtual ~ICertificatePresentationModelSelector(void){}
91
92         Tizen::Security::Cert::CertificateType GetType(void) const;
93         void SetType(const Tizen::Security::Cert::CertificateType certificateType);
94
95 protected:
96         Tizen::Security::Cert::CertificateType __currentCertificateType;
97 };
98
99 class CertificatePresentationModelUtility
100 {
101 public:
102         static Tizen::Base::String GetCommonName(const Tizen::Base::String& source);
103         static Tizen::Base::String GetOrganisation(const Tizen::Base::String& source);
104         static Tizen::Base::String GetHexPublicKeyString(Tizen::Security::IPublicKey& publicKey);
105
106 private:
107         CertificatePresentationModelUtility(void){}
108         virtual ~CertificatePresentationModelUtility(void){}
109 };
110
111 #endif // _ST_CERTIFICATE_PRESENTATION_MODEL_H_