Add Device info validator to oemcrypto util and unit tests
Validator that can parse and validate device info Cbor object. This is to support better prov40 unit tests regarding OEMCrypto_GetDeviceInformation() later. Test: opk_ta_p40 Bug: 300304834 Change-Id: Ic260a6626dffcbef5d6b386263839499f83a69db
This commit is contained in:
@@ -109,5 +109,32 @@ void CborValidator::AddValidationMessage(CborMessageStatus status,
|
||||
validate_messages_.push_back({status, msg});
|
||||
if (status > message_status_) message_status_ = status;
|
||||
}
|
||||
|
||||
// TODO(b/314141962): Replace this with the map lookup function in cppbor
|
||||
// library
|
||||
const cppbor::Item* CborValidator::GetMapEntry(const cppbor::Map& map,
|
||||
const std::string& entry_name) {
|
||||
for (auto const& entry : map) {
|
||||
if (!entry.first->asTstr()) continue;
|
||||
const std::string& name = entry.first->asTstr()->value();
|
||||
if (name == entry_name) return entry.second.get();
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
std::string CborValidator::CheckMapEntry(const cppbor::Map& map,
|
||||
cppbor::MajorType major_type,
|
||||
const std::string& entry_name) {
|
||||
const cppbor::Item* value = GetMapEntry(map, entry_name);
|
||||
if (!value) {
|
||||
return entry_name + " is missing.";
|
||||
}
|
||||
if (value->type() != major_type) {
|
||||
return entry_name + " has the wrong type. Expect: " +
|
||||
CppborMajorTypeToString(major_type) +
|
||||
", actual: " + CppborMajorTypeToString(value->type());
|
||||
}
|
||||
return "";
|
||||
}
|
||||
} // namespace util
|
||||
} // namespace wvoec
|
||||
|
||||
Reference in New Issue
Block a user