]>
Commit | Line | Data |
---|---|---|
20effc67 TL |
1 | // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- |
2 | // vim: ts=8 sw=2 smarttab ft=cpp | |
3 | ||
4 | #pragma once | |
5 | #include <include/types.h> | |
6 | ||
7 | class XMLObj; | |
8 | ||
9 | class ApplyServerSideEncryptionByDefault | |
10 | { | |
11 | std::string kmsMasterKeyID; | |
12 | std::string sseAlgorithm; | |
13 | ||
14 | public: | |
2a845540 TL |
15 | ApplyServerSideEncryptionByDefault() {}; |
16 | ApplyServerSideEncryptionByDefault(const std::string &algorithm, | |
17 | const std::string &key_id) | |
18 | : kmsMasterKeyID(key_id), sseAlgorithm(algorithm) {}; | |
20effc67 TL |
19 | |
20 | const std::string& kms_master_key_id() const { | |
21 | return kmsMasterKeyID; | |
22 | } | |
23 | ||
24 | const std::string& sse_algorithm() const { | |
25 | return sseAlgorithm; | |
26 | } | |
27 | ||
28 | void encode(bufferlist& bl) const { | |
29 | ENCODE_START(1, 1, bl); | |
30 | encode(kmsMasterKeyID, bl); | |
31 | encode(sseAlgorithm, bl); | |
32 | ENCODE_FINISH(bl); | |
33 | } | |
34 | ||
35 | void decode(bufferlist::const_iterator& bl) { | |
36 | DECODE_START(1, bl); | |
37 | decode(kmsMasterKeyID, bl); | |
38 | decode(sseAlgorithm, bl); | |
39 | DECODE_FINISH(bl); | |
40 | } | |
41 | ||
42 | void decode_xml(XMLObj *obj); | |
43 | void dump_xml(Formatter *f) const; | |
44 | }; | |
45 | WRITE_CLASS_ENCODER(ApplyServerSideEncryptionByDefault) | |
46 | ||
47 | class ServerSideEncryptionConfiguration | |
48 | { | |
49 | protected: | |
50 | ApplyServerSideEncryptionByDefault applyServerSideEncryptionByDefault; | |
51 | bool bucketKeyEnabled; | |
52 | ||
53 | public: | |
54 | ServerSideEncryptionConfiguration(): bucketKeyEnabled(false) {}; | |
2a845540 TL |
55 | ServerSideEncryptionConfiguration(const std::string &algorithm, |
56 | const std::string &keyid="", bool enabled = false) | |
57 | : applyServerSideEncryptionByDefault(algorithm, keyid), | |
58 | bucketKeyEnabled(enabled) {} | |
20effc67 TL |
59 | |
60 | const std::string& kms_master_key_id() const { | |
61 | return applyServerSideEncryptionByDefault.kms_master_key_id(); | |
62 | } | |
63 | ||
64 | const std::string& sse_algorithm() const { | |
65 | return applyServerSideEncryptionByDefault.sse_algorithm(); | |
66 | } | |
67 | ||
68 | bool bucket_key_enabled() const { | |
69 | return bucketKeyEnabled; | |
70 | } | |
71 | ||
72 | void encode(bufferlist& bl) const { | |
73 | ENCODE_START(1, 1, bl); | |
74 | encode(applyServerSideEncryptionByDefault, bl); | |
75 | encode(bucketKeyEnabled, bl); | |
76 | ENCODE_FINISH(bl); | |
77 | } | |
78 | ||
79 | void decode(bufferlist::const_iterator& bl) { | |
80 | DECODE_START(1, bl); | |
81 | decode(applyServerSideEncryptionByDefault, bl); | |
82 | decode(bucketKeyEnabled, bl); | |
83 | DECODE_FINISH(bl); | |
84 | } | |
85 | ||
86 | void decode_xml(XMLObj *obj); | |
87 | void dump_xml(Formatter *f) const; | |
88 | }; | |
89 | WRITE_CLASS_ENCODER(ServerSideEncryptionConfiguration) | |
90 | ||
91 | class RGWBucketEncryptionConfig | |
92 | { | |
93 | protected: | |
94 | bool rule_exist; | |
95 | ServerSideEncryptionConfiguration rule; | |
96 | ||
97 | public: | |
98 | RGWBucketEncryptionConfig(): rule_exist(false) {} | |
2a845540 TL |
99 | RGWBucketEncryptionConfig(const std::string &algorithm, |
100 | const std::string &keyid = "", bool enabled = false) | |
101 | : rule_exist(true), rule(algorithm, keyid, enabled) {} | |
20effc67 TL |
102 | |
103 | const std::string& kms_master_key_id() const { | |
104 | return rule.kms_master_key_id(); | |
105 | } | |
106 | ||
107 | const std::string& sse_algorithm() const { | |
108 | return rule.sse_algorithm(); | |
109 | } | |
110 | ||
111 | bool bucket_key_enabled() const { | |
112 | return rule.bucket_key_enabled(); | |
113 | } | |
114 | ||
115 | bool has_rule() const { | |
116 | return rule_exist; | |
117 | } | |
118 | ||
119 | void encode(bufferlist& bl) const { | |
120 | ENCODE_START(1, 1, bl); | |
121 | encode(rule_exist, bl); | |
122 | if (rule_exist) { | |
123 | encode(rule, bl); | |
124 | } | |
125 | ENCODE_FINISH(bl); | |
126 | } | |
127 | ||
128 | void decode(bufferlist::const_iterator& bl) { | |
129 | DECODE_START(1, bl); | |
130 | decode(rule_exist, bl); | |
131 | if (rule_exist) { | |
132 | decode(rule, bl); | |
133 | } | |
134 | DECODE_FINISH(bl); | |
135 | } | |
136 | ||
137 | void decode_xml(XMLObj *obj); | |
138 | void dump_xml(Formatter *f) const; | |
2a845540 TL |
139 | void dump(Formatter *f) const; |
140 | static void generate_test_instances(std::list<RGWBucketEncryptionConfig*>& o); | |
20effc67 TL |
141 | }; |
142 | WRITE_CLASS_ENCODER(RGWBucketEncryptionConfig) |