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);
|
||||
const std::vector<uint8_t> enc_context = MakeContext(
|
||||
"ENCRYPTION", provision_request, provision_request_length, 0x80);
|
||||
const OEMCryptoResult result = pair.fcn->DeriveKeysFromSessionKey_V18(
|
||||
pair.session, derivation_key, derivation_key_length, mac_context.data(),
|
||||
mac_context.size(), enc_context.data(), enc_context.size());
|
||||
const OEMCrypto_ProvisioningMethod provisioning_method =
|
||||
pair.fcn->GetProvisioningMethod != nullptr
|
||||
? 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;
|
||||
|
||||
return pair.fcn->LoadProvisioning_V18(
|
||||
|
||||
Reference in New Issue
Block a user