bff231be069b888a16163d7075a24ff2ac077b30
[platform/core/security/cert-svc.git] / vcore / src / vcore / CertificateIdentifier.h
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  *    Licensed under the Apache License, Version 2.0 (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://www.apache.org/licenses/LICENSE-2.0
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  * @file
18  * @author      Bartlomiej Grzelewski (b.grzelewski@samsung.com)
19  * @version     1.0
20  * @brief
21  */
22 #ifndef \
23     _WRT_ENGINE_SRC_INSTALLER_CORE_VALIDATION_CORE_CERTIFICATEIDENTIFICATOR_H_
24 #define \
25     _WRT_ENGINE_SRC_INSTALLER_CORE_VALIDATION_CORE_CERTIFICATEIDENTIFICATOR_H_
26
27 #include <map>
28 #include <dpl/noncopyable.h>
29
30 #include <vcore/Certificate.h>
31 #include <vcore/CertStoreType.h>
32
33 namespace ValidationCore {
34 class CertificateIdentifier : public VcoreDPL::Noncopyable {
35 public:
36         typedef std::map<Certificate::Fingerprint, CertStoreId::Set> FingerPrintMap;
37
38     CertificateIdentifier()
39     {
40     }
41     ~CertificateIdentifier()
42     {
43     }
44
45     void add(const Certificate::Fingerprint &fingerprint,
46             CertStoreId::Type domain)
47     {
48         fingerPrintMap[fingerprint].add(domain);
49     }
50
51     CertStoreId::Set find(const Certificate::Fingerprint &fingerprint) const
52     {
53         FingerPrintMap::const_iterator iter = fingerPrintMap.find(fingerprint);
54         if (iter == fingerPrintMap.end()) {
55             return CertStoreId::Set();
56         }
57         return iter->second;
58     }
59
60     CertStoreId::Set find(const CertificatePtr &certificate) const
61     {
62         return
63             find(certificate->getFingerprint(Certificate::FINGERPRINT_SHA1));
64     }
65
66 private:
67     FingerPrintMap fingerPrintMap;
68 };
69 } // namespace ValidationCore
70
71 #endif // _WRT_ENGINE_SRC_INSTALLER_CORE_VALIDATION_CORE_CERTIFICATEIDENTIFICATOR_H_