in java/remoteprovisioning/DeviceInfo.java [54:111]
private void parseDeviceInfo(CBORObject deviceInfo) throws CborException {
if (deviceInfo.getType() != CBORType.Array) {
throw new CborException(
"DeviceInfo type wrong", CBORType.Array, deviceInfo.getType(), CborException.TYPE_MISMATCH);
}
if (deviceInfo.size() != DEVICE_INFO_NUM_ENTRIES) {
throw new CborException(
"DeviceInfo has incorrect number of entries.",
DEVICE_INFO_NUM_ENTRIES, deviceInfo.size(), CborException.INCORRECT_LENGTH);
}
if (deviceInfo.get(DEVICE_INFO_VERIFIED).getType() != CBORType.Map) {
throw new CborException(
"DeviceInfoVerified type wrong",
CBORType.Map, deviceInfo.get(DEVICE_INFO_VERIFIED).getType(), CborException.TYPE_MISMATCH);
}
if (deviceInfo.get(DEVICE_INFO_UNVERIFIED).getType() != CBORType.Map) {
throw new CborException(
"DeviceInfoUnverified type wrong",
CBORType.Map,
deviceInfo.get(DEVICE_INFO_UNVERIFIED).getType(),
CborException.TYPE_MISMATCH);
}
CBORObject devInfoVerified = deviceInfo.get(DEVICE_INFO_VERIFIED);
mBrand = Optional.ofNullable(devInfoVerified.get("brand")).map(x -> x.AsString()).orElse("");
mManufacturer =
Optional.ofNullable(devInfoVerified.get("manufacturer")).map(x -> x.AsString()).orElse("");
mProduct =
Optional.ofNullable(devInfoVerified.get("product")).map(x -> x.AsString()).orElse("");
mModel = Optional.ofNullable(devInfoVerified.get("model")).map(x -> x.AsString()).orElse("");
mBoard = Optional.ofNullable(devInfoVerified.get("board")).map(x -> x.AsString()).orElse("");
mDevice = Optional.ofNullable(devInfoVerified.get("device")).map(x -> x.AsString()).orElse("");
mVbState =
Optional.ofNullable(devInfoVerified.get("vb_state")).map(x -> x.AsString()).orElse("");
mBootloaderState =
Optional.ofNullable(
devInfoVerified.get("bootloader_state")).map(x -> x.AsString()).orElse("");
mVbmetaDigest =
Optional.ofNullable(devInfoVerified.get("vbmeta_digest")).map(x -> x.AsString()).orElse("");
mOsVersion =
Optional.ofNullable(devInfoVerified.get("os_version")).map(x -> x.AsString()).orElse("");
mSystemPatchLevel =
Optional.ofNullable(
devInfoVerified.get("system_patch_level")).map(x -> x.AsInt32()).orElse(-1);
mBootPatchLevel =
Optional.ofNullable(
devInfoVerified.get("boot_patch_level")).map(x -> x.AsInt32()).orElse(-1);
mVendorPatchLevel =
Optional.ofNullable(
devInfoVerified.get("vendor_patch_level")).map(x -> x.AsInt32()).orElse(-1);
mVersion =
Optional.ofNullable(devInfoVerified.get("version")).map(x -> x.AsInt32()).orElse(-1);
mSecurityLevel =
Optional.ofNullable(
devInfoVerified.get("security_level")).map(x -> x.AsString()).orElse("");
CBORObject devInfoUnverified = deviceInfo.get(DEVICE_INFO_UNVERIFIED);
mFingerprint =
Optional.ofNullable(devInfoUnverified.get("fingerprint")).map(x -> x.AsString()).orElse("");
}