15 template <
size_t N,
typename Tag =
void>
37 if (data.size() !=
size())
39 throw std::logic_error(fmt::format(
40 "Cannot initialise AttestationMeasurement with data of size {}, "
46 std::copy(data.data(), data.data() + data.size(),
measurement.data());
54 template <
size_t N,
typename Tag>
59 template <
size_t N,
typename Tag =
void>
66 template <
size_t N,
typename Tag =
void>
72 measurement = j.get<std::string>();
77 "Attestation measurement should be hex-encoded string: {}", j.dump()));
81 template <
size_t N,
typename Tag =
void>
83 nlohmann::json& schema,
86 schema[
"type"] =
"string";
91 schema[
"format"] =
"hex";
100 static constexpr size_t sgx_attestation_measurement_size = 32;
107 return "SgxAttestationMeasurement";
111 static constexpr size_t snp_attestation_measurement_size = 48;
118 return "SnpAttestationMeasurement";
130 template <
size_t N,
typename Tag>
133 data(measurement.measurement.begin(), measurement.measurement.end())
141 return ds::to_hex(
data);
144 operator std::span<const uint8_t>()
const
155 template <
size_t N,
typename Tag>
161 auto hex_str = measurement.
hex_str();
169 ccf::ds::from_hex(std::string(data.data(), data.end()), ret.measurement);
#define DECLARE_JSON_REQUIRED_FIELDS(TYPE,...)
Definition json.h:718
#define DECLARE_JSON_TYPE(TYPE)
Definition json.h:667
Definition sha256_hash.h:88
ccf::ByteVector SerialisedEntry
Definition serialised_entry.h:8
Definition attestation.h:13
void fill_json_schema(nlohmann::json &schema, const AttestationMeasurement< N, Tag > *measurement_type)
Definition measurement.h:82
void to_json(nlohmann::json &j, const AttestationMeasurement< N, Tag > &measurement)
Definition measurement.h:60
std::string VirtualAttestationMeasurement
Definition measurement.h:97
void from_json(const nlohmann::json &j, AttestationMeasurement< N, Tag > &measurement)
Definition measurement.h:67
std::string schema_name(const SgxAttestationMeasurement *sgx_measurement_type)
Definition measurement.h:104
Definition app_interface.h:14
static ccf::pal::AttestationMeasurement< N, Tag > from_serialised(const SerialisedEntry &data)
Definition measurement.h:165
static SerialisedEntry to_serialised(const ccf::pal::AttestationMeasurement< N, Tag > &measurement)
Definition measurement.h:158
Definition blit_serialiser.h:14
Definition measurement.h:17
AttestationMeasurement(const std::string &hex_str)
Definition measurement.h:31
AttestationMeasurement()=default
std::string hex_str() const
Definition measurement.h:25
AttestationMeasurement(std::span< const uint8_t > data)
Definition measurement.h:35
std::array< uint8_t, N > measurement
Definition measurement.h:18
static size_t size()
Definition measurement.h:20
Definition measurement.h:52