diff --git a/security/keymint/support/remote_prov_utils.cpp b/security/keymint/support/remote_prov_utils.cpp index 491b757302..086ee790e7 100644 --- a/security/keymint/support/remote_prov_utils.cpp +++ b/security/keymint/support/remote_prov_utils.cpp @@ -290,11 +290,12 @@ bytevec getProdEekChain(int32_t supportedEekCurve) { return chain.encode(); } -ErrMsgOr> validateBcc(const cppbor::Array* bcc) { +ErrMsgOr> validateBcc(const cppbor::Array* bcc, + hwtrust::DiceChain::Kind kind) { auto encodedBcc = bcc->encode(); - auto chain = hwtrust::DiceChain::verify(encodedBcc); + auto chain = hwtrust::DiceChain::Verify(encodedBcc, kind); if (!chain.ok()) return chain.error().message(); - auto keys = chain->cose_public_keys(); + auto keys = chain->CosePublicKeys(); if (!keys.ok()) return keys.error().message(); std::vector result; for (auto& key : *keys) { @@ -569,7 +570,7 @@ ErrMsgOr> verifyProtectedData( } // BCC is [ pubkey, + BccEntry] - auto bccContents = validateBcc(bcc->asArray()); + auto bccContents = validateBcc(bcc->asArray(), hwtrust::DiceChain::Kind::kProtectedData); if (!bccContents) { return bccContents.message() + "\n" + prettyPrint(bcc.get()); } @@ -859,8 +860,8 @@ ErrMsgOr parseAndValidateAuthenticatedRequest(const std::vector