Check provisioning method in LoadProvisioningCast v18 dynamic adapter
Test:GTEST_FILTER="*TestSignaturePKCS1*" ./jenkins/run_dynamic_oemcrypto_v18 Bug: 317900212 Change-Id: I9829cf59b13320d69fddadaaba0a013e241f0b16
This commit is contained in:
committed by
Robert Shih
parent
fb380d9a0e
commit
4626fa18ce
@@ -2529,9 +2529,19 @@ extern "C" OEMCryptoResult OEMCrypto_LoadProvisioningCast(
|
|||||||
"AUTHENTICATION", provision_request, provision_request_length, 0x200);
|
"AUTHENTICATION", provision_request, provision_request_length, 0x200);
|
||||||
const std::vector<uint8_t> enc_context = MakeContext(
|
const std::vector<uint8_t> enc_context = MakeContext(
|
||||||
"ENCRYPTION", provision_request, provision_request_length, 0x80);
|
"ENCRYPTION", provision_request, provision_request_length, 0x80);
|
||||||
const OEMCryptoResult result = pair.fcn->DeriveKeysFromSessionKey_V18(
|
const OEMCrypto_ProvisioningMethod provisioning_method =
|
||||||
pair.session, derivation_key, derivation_key_length, mac_context.data(),
|
pair.fcn->GetProvisioningMethod != nullptr
|
||||||
mac_context.size(), enc_context.data(), enc_context.size());
|
? pair.fcn->GetProvisioningMethod()
|
||||||
|
: OEMCrypto_Keybox;
|
||||||
|
const OEMCryptoResult result =
|
||||||
|
(provisioning_method == OEMCrypto_BootCertificateChain)
|
||||||
|
? pair.fcn->DeriveKeysFromSessionKey_V18(
|
||||||
|
pair.session, derivation_key, derivation_key_length,
|
||||||
|
mac_context.data(), mac_context.size(), enc_context.data(),
|
||||||
|
enc_context.size())
|
||||||
|
: pair.fcn->GenerateDerivedKeys_V18(
|
||||||
|
pair.session, mac_context.data(), mac_context.size(),
|
||||||
|
enc_context.data(), enc_context.size());
|
||||||
if (result != OEMCrypto_SUCCESS) return result;
|
if (result != OEMCrypto_SUCCESS) return result;
|
||||||
|
|
||||||
return pair.fcn->LoadProvisioning_V18(
|
return pair.fcn->LoadProvisioning_V18(
|
||||||
|
|||||||
Reference in New Issue
Block a user