+ bool encrypted () const {
+ return !_key_id.empty ();
+ }
+
+ void set_key_id (std::string i) {
+ _key_id = i;
+ }
+
+ std::string key_id () const {
+ return _key_id;
+ }
+
+ void set_key (Key);
+
+ boost::optional<Key> key () const {
+ return _key;
+ }
+
+protected:
+ virtual std::string key_type () const = 0;
+ virtual std::string cpl_node_name () const = 0;
+ virtual std::pair<std::string, std::string> cpl_node_attribute (bool) const {
+ return std::make_pair ("", "");
+ }
+