diff --git a/security/keymint/support/remote_prov_utils.cpp b/security/keymint/support/remote_prov_utils.cpp index 780c3d2041..34f7ce4627 100644 --- a/security/keymint/support/remote_prov_utils.cpp +++ b/security/keymint/support/remote_prov_utils.cpp @@ -962,6 +962,20 @@ ErrMsgOr parseAndValidateAuthenticatedRequestSignedPayload( return signedRequest->value(); } +ErrMsgOr getDiceChainKind() { + int vendor_api_level = ::android::base::GetIntProperty("ro.vendor.api_level", -1); + switch (vendor_api_level) { + case __ANDROID_API_T__: + return hwtrust::DiceChain::Kind::kVsr13; + case __ANDROID_API_U__: + return hwtrust::DiceChain::Kind::kVsr14; + case __ANDROID_API_V__: + return hwtrust::DiceChain::Kind::kVsr15; + default: + return "Unsupported vendor API level: " + std::to_string(vendor_api_level); + } +} + ErrMsgOr parseAndValidateAuthenticatedRequest(const std::vector& request, const std::vector& challenge) { auto [parsedRequest, _, csrErrMsg] = cppbor::parse(request); @@ -996,7 +1010,12 @@ ErrMsgOr parseAndValidateAuthenticatedRequest(const std::vector