Aktualizr
C++ SOTA Client
role.cc
1 #include "uptane/tuf.h"
2 
3 #include <sstream>
4 
5 using Uptane::Role;
6 using Uptane::Version;
7 
8 Role::Role(const std::string &role_name) {
9  std::string role_name_lower;
10  std::transform(role_name.begin(), role_name.end(), std::back_inserter(role_name_lower), ::tolower);
11  if (role_name_lower == "root") {
12  role_ = RoleEnum::kRoot;
13  } else if (role_name_lower == "snapshot") {
14  role_ = RoleEnum::kSnapshot;
15  } else if (role_name_lower == "targets") {
16  role_ = RoleEnum::kTargets;
17  } else if (role_name_lower == "timestamp") {
18  role_ = RoleEnum::kTimestamp;
19  } else {
20  role_ = RoleEnum::kInvalidRole;
21  }
22 }
23 
24 std::string Role::ToString() const {
25  switch (role_) {
26  case RoleEnum::kRoot:
27  return "root";
28  case RoleEnum::kSnapshot:
29  return "snapshot";
30  case RoleEnum::kTargets:
31  return "targets";
32  case RoleEnum::kTimestamp:
33  return "timestamp";
34  default:
35  return "invalidrole";
36  }
37 }
38 
39 std::ostream &Uptane::operator<<(std::ostream &os, const Role &t) {
40  os << t.ToString();
41  return os;
42 }
43 
44 std::string Version::RoleFileName(Role role) const {
45  std::stringstream ss;
46  if (version_ != Version::ANY_VERSION) {
47  ss << version_ << ".";
48  }
49  ss << role.ToString() << ".json";
50  return ss.str();
51 }
Metadata version numbers.
Definition: tuf.h:57
TUF Roles.
Definition: tuf.h:25