Add test case for tokenEndECKeyValue function in SignatureReader.cpp
[platform/core/security/cert-svc.git] / src / vcore / CertificateIdentifier.h
1 /*
2  * Copyright (c) 2016 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 #pragma once
23
24 #include <map>
25
26 #include <vcore/Certificate.h>
27 #include <vcore/CertStoreType.h>
28
29 namespace ValidationCore {
30 class CertificateIdentifier {
31 public:
32         typedef std::map<Certificate::Fingerprint, CertStoreId::Set> FingerPrintMap;
33
34         CertificateIdentifier() = default;
35         ~CertificateIdentifier() = default;
36
37         CertificateIdentifier(const CertificateIdentifier &) = delete;
38         CertificateIdentifier &operator=(const CertificateIdentifier &) = delete;
39         CertificateIdentifier(CertificateIdentifier &&) = delete;
40         CertificateIdentifier &operator=(CertificateIdentifier &&) = delete;
41
42         void add(const Certificate::Fingerprint &fingerprint,
43                          CertStoreId::Type domain)
44         {
45                 fingerPrintMap[fingerprint].add(domain);
46         }
47
48         CertStoreId::Set find(const Certificate::Fingerprint &fingerprint) const
49         {
50                 FingerPrintMap::const_iterator iter = fingerPrintMap.find(fingerprint);
51
52                 if (iter == fingerPrintMap.end()) {
53                         return CertStoreId::Set();
54                 }
55
56                 return iter->second;
57         }
58
59         CertStoreId::Set find(const CertificatePtr &certificate) const
60         {
61                 return find(certificate->getFingerprint(Certificate::FINGERPRINT_SHA1));
62         }
63
64 private:
65         FingerPrintMap fingerPrintMap;
66 };
67 } // namespace ValidationCore