Rename vcore directory to src
[platform/core/security/cert-svc.git] / 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
29 #include <vcore/Certificate.h>
30 #include <vcore/CertStoreType.h>
31
32 namespace ValidationCore {
33 class CertificateIdentifier {
34 public:
35         typedef std::map<Certificate::Fingerprint, CertStoreId::Set> FingerPrintMap;
36
37         CertificateIdentifier() = default;
38         ~CertificateIdentifier() = default;
39
40         CertificateIdentifier(const CertificateIdentifier &) = delete;
41         CertificateIdentifier &operator=(const CertificateIdentifier &) = delete;
42         CertificateIdentifier(CertificateIdentifier &&) = delete;
43         CertificateIdentifier &operator=(CertificateIdentifier &&) = delete;
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
55                 if (iter == fingerPrintMap.end()) {
56                         return CertStoreId::Set();
57                 }
58
59                 return iter->second;
60         }
61
62         CertStoreId::Set find(const CertificatePtr &certificate) const
63         {
64                 return find(certificate->getFingerprint(Certificate::FINGERPRINT_SHA1));
65         }
66
67 private:
68         FingerPrintMap fingerPrintMap;
69 };
70 } // namespace ValidationCore
71
72 #endif // _WRT_ENGINE_SRC_INSTALLER_CORE_VALIDATION_CORE_CERTIFICATEIDENTIFICATOR_H_