8f69b2eec9b8986a95fa6a37a740846716b0646b
[platform/framework/web/crosswalk.git] / src / xwalk / application / common / installer / signature_data.h
1 // Copyright (c) 2013 Intel Corporation. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef XWALK_APPLICATION_COMMON_INSTALLER_SIGNATURE_DATA_H_
6 #define XWALK_APPLICATION_COMMON_INSTALLER_SIGNATURE_DATA_H_
7
8 #include <list>
9 #include <set>
10 #include <string>
11
12 #include "base/files/file_path.h"
13 #include "libxml/tree.h"
14 #include "libxml/xpath.h"
15 #include "xwalk/application/common/signature_types.h"
16
17 namespace xwalk {
18 namespace application {
19
20 class SignatureData {
21  public:
22   SignatureData(const std::string& signature_file_name, int signature_number);
23   ~SignatureData();
24
25   std::string signature_file_name() const {
26     return signature_file_name_;
27   }
28
29   const std::set<std::string>& reference_set() const {
30     return reference_set_;
31   }
32
33   void set_reference_set(const std::set<std::string>& reference_set) {
34     reference_set_ = reference_set;
35   }
36
37   std::string role_uri() const {
38     return role_uri_;
39   }
40
41   void set_role_uri(const std::string& role_uri) {
42     role_uri_ = role_uri;
43   }
44
45   std::string profile_uri() const {
46     return profile_uri_;
47   }
48
49   void set_profile_uri(const std::string& profile_uri) {
50     profile_uri_ = profile_uri;
51   }
52
53   std::string object_id() const {
54     return object_id_;
55   }
56
57   void set_object_id(const std::string& object_id) {
58     object_id_ = object_id;
59   }
60
61   std::string signature_value() const {
62     return signature_value_;
63   }
64
65   void set_signature_value(const std::string& signature_value) {
66     signature_value_ = signature_value;
67   }
68
69   std::string canonicalization_method() const {
70     return canonicalization_method_;
71   }
72
73   void set_canonicalization_method(const std::string& canonicalization_method) {
74     canonicalization_method_ = canonicalization_method;
75   }
76
77   std::string signature_method() const {
78     return signature_method_;
79   }
80
81   void set_signature_method(const std::string signature_method) {
82     signature_method_ = signature_method;
83   }
84
85   const std::list<std::string>& certificate_list() const {
86     return certificate_list_;
87   }
88
89   void set_certificate_list(const std::list<std::string>& certificate_list) {
90     certificate_list_ = certificate_list;
91   }
92
93   ReferenceHashMap& reference_hash_map() {
94     return reference_hash_map_;
95   }
96
97   void set_reference_hash_map(const ReferenceHashMap& reference_hash_map) {
98     reference_hash_map_ = reference_hash_map;
99   }
100
101   bool isAuthorSignature() const {
102     return signature_number_ == -1;
103   }
104
105   base::FilePath GetExtractedWidgetPath() const;
106
107  private:
108   std::string signature_file_name_;
109   // This number is taken from distributor signature file name.
110   // Author signature do not contain any number on the file name.
111   // Author signature should have signature number equal to -1.
112   int signature_number_;
113   std::string role_uri_;
114   std::string profile_uri_;
115   std::string signature_value_;
116   std::string identifier;
117   std::string object_id_;
118   std::string canonicalization_method_;
119   std::string signature_method_;
120   std::set<std::string> reference_set_;
121   std::list<std::string> certificate_list_;
122   ReferenceHashMap reference_hash_map_;
123
124   DISALLOW_COPY_AND_ASSIGN(SignatureData);
125 };
126
127 }  // namespace application
128 }  // namespace xwalk
129
130 #endif  // XWALK_APPLICATION_COMMON_INSTALLER_SIGNATURE_DATA_H_