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>
85 schema[
"type"] =
"string";
90 schema[
"format"] =
"hex";
99 static constexpr size_t sgx_attestation_measurement_size = 32;
105 return "SgxAttestationMeasurement";
109 static constexpr size_t snp_attestation_measurement_size = 48;
115 return "SnpAttestationMeasurement";
127 template <
size_t N,
typename Tag>
130 data(measurement.measurement.begin(), measurement.measurement.end())
138 return ds::to_hex(
data);
141 operator std::span<const uint8_t>()
const
152 template <
size_t N,
typename Tag>
158 auto hex_str = measurement.
hex_str();
166 ccf::ds::from_hex(std::string(data.data(), data.end()), ret.
measurement);
#define DECLARE_JSON_REQUIRED_FIELDS(TYPE,...)
Definition json.h:714
#define DECLARE_JSON_TYPE(TYPE)
Definition json.h:663
Definition sha256_hash.h:80
ccf::ByteVector SerialisedEntry
Definition serialised_entry.h:8
Definition attestation.h:20
void fill_json_schema(nlohmann::json &schema, const AttestationMeasurement< N, Tag > *)
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:96
void from_json(const nlohmann::json &j, AttestationMeasurement< N, Tag > &measurement)
Definition measurement.h:67
std::string schema_name(const SgxAttestationMeasurement *)
Definition measurement.h:103
Definition app_interface.h:14
static ccf::pal::AttestationMeasurement< N, Tag > from_serialised(const SerialisedEntry &data)
Definition measurement.h:162
static SerialisedEntry to_serialised(const ccf::pal::AttestationMeasurement< N, Tag > &measurement)
Definition measurement.h:155
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