source code open
[framework/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
29 #include <dpl/noncopyable.h>
30
31 #include "Certificate.h"
32 #include "CertStoreType.h"
33
34 namespace ValidationCore {
35 class CertificateIdentifier : public DPL::Noncopyable
36 {
37   public:
38     typedef std::map<Certificate::Fingerprint, CertStoreId::Set> FingerPrintMap;
39
40     CertificateIdentifier()
41     {
42     }
43     ~CertificateIdentifier()
44     {
45     }
46
47     void add(const Certificate::Fingerprint &fingerprint,
48             CertStoreId::Type domain)
49     {
50         fingerPrintMap[fingerprint].add(domain);
51     }
52
53     CertStoreId::Set find(const Certificate::Fingerprint &fingerprint) const
54     {
55         FingerPrintMap::const_iterator iter = fingerPrintMap.find(fingerprint);
56         if (iter == fingerPrintMap.end()) {
57             return CertStoreId::Set();
58         }
59         return iter->second;
60     }
61
62     CertStoreId::Set find(const CertificatePtr &certificate) const
63     {
64         return
65             find(certificate->getFingerprint(Certificate::FINGERPRINT_SHA1));
66     }
67
68   private:
69     FingerPrintMap fingerPrintMap;
70 };
71 } // namespace ValidationCore
72
73 #endif // _WRT_ENGINE_SRC_INSTALLER_CORE_VALIDATION_CORE_CERTIFICATEIDENTIFICATOR_H_