2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
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
8 // http://floralicense.org/license/
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.
18 * @file StCertificatePresentationModel.h
19 * @brief This is the header file for Certificate Presentation Model class.
22 #ifndef _ST_CERTIFICATE_PRESENTATION_MODEL_H_
23 #define _ST_CERTIFICATE_PRESENTATION_MODEL_H_
28 class ICertificatePresentationModelSelector;
30 class CertificatePresentationModel
33 Tizen::Security::Cert::CertificateType GetCertificateSelectorType(void) const;
34 result SetCertificateSelector(Tizen::Security::Cert::CertificateType certificateType = Tizen::Security::Cert::ROOT_CA);
36 result UpdateCertificateListFromCertificateStore(void);
37 Tizen::Base::String GetSubjectNameFromCertifcateStore(int i);
38 Tizen::Security::Cert::ICertificate* GetCertificateFromCertificateStoreN(int i);
39 int GetCertificateStoreCount(void);
41 result FindUserCertificateToInstallFromStorage(void);
42 Tizen::Base::String GetFileNameInFoundUserCertificateToInstallListAt(int index);
43 int GetFoundUserCertificateToInstallListCount(void);
45 result InsertPkcs12FormatIntoCertificateStore(const Tizen::Base::String& filePath, const Tizen::Base::String& password);
46 result RemoveFromCertificateStore(const Tizen::Security::Cert::ICertificate& certificate);
48 bool IsPendingCertificate(void);
49 bool PushPendingCertificate(Tizen::Security::Cert::ICertificate& certificate);
50 Tizen::Security::Cert::ICertificate* PopPendingCertificateN(void);
51 void ClearPendingCertificate(void);
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);
60 CertificatePresentationModel(void);
61 ~CertificatePresentationModel(void);
62 CertificatePresentationModel(const CertificatePresentationModel& rhs);
63 const CertificatePresentationModel& operator = (CertificatePresentationModel& rhs) const;
65 result Construct(void);
66 result InitFoundUserCertificateToInstallList(void);
67 void RemoveCertificateSelector(void);
68 void RemoveCertificateList(void);
69 void RemoveFoundUserCertifiacteToInstallList(void);
71 static void CreateInstance(void);
72 static void DestroyInstance(void);
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;
82 static CertificatePresentationModel* __pStCertificatePresentationModelInstance;
85 class ICertificatePresentationModelSelector
86 : public Tizen::Security::Cert::ICertificateSelector
89 ICertificatePresentationModelSelector(void);
90 virtual ~ICertificatePresentationModelSelector(void){}
92 Tizen::Security::Cert::CertificateType GetType(void) const;
93 void SetType(const Tizen::Security::Cert::CertificateType certificateType);
96 Tizen::Security::Cert::CertificateType __currentCertificateType;
99 class CertificatePresentationModelUtility
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);
107 CertificatePresentationModelUtility(void){}
108 virtual ~CertificatePresentationModelUtility(void){}
111 #endif // _ST_CERTIFICATE_PRESENTATION_MODEL_H_