Source release 19.1.0
This commit is contained in:
@@ -173,15 +173,11 @@ class OTAKeyboxProvisioningTest : public ::testing::Test, public SessionUtil {
|
||||
TEST_F(OTAKeyboxProvisioningTest, BasicTest) {
|
||||
OEMCryptoResult result = OEMCrypto_IsKeyboxValid();
|
||||
if (result == OEMCrypto_SUCCESS) {
|
||||
cout << " "
|
||||
<< "Keybox valid after initialization. Skipping rest of test." << endl;
|
||||
return;
|
||||
GTEST_SKIP() << "Keybox valid after initialization. Skipping rest of test.";
|
||||
}
|
||||
if (result != OEMCrypto_ERROR_NEEDS_KEYBOX_PROVISIONING) {
|
||||
cout << " "
|
||||
<< "OTA Keybox functions not supported. Skipping rest of test."
|
||||
<< endl;
|
||||
return;
|
||||
GTEST_SKIP()
|
||||
<< "OTA Keybox functions not supported. Skipping rest of test.";
|
||||
}
|
||||
cout << " "
|
||||
<< "OTA Keybox functions supported. Device needs provisioning." << endl;
|
||||
@@ -235,28 +231,11 @@ TEST_F(OTAKeyboxProvisioningTest, BasicTest) {
|
||||
const std::vector<uint8_t> model_key = GetModelKey(device_id);
|
||||
#endif
|
||||
// The server should derive the same set of keys as the client.
|
||||
const std::string mac_label = "WV_SIGN";
|
||||
std::vector<uint8_t> mac_context(mac_label.begin(), mac_label.end());
|
||||
mac_context.push_back(0);
|
||||
std::copy(cert.begin(), cert.end(), std::back_inserter(mac_context));
|
||||
std::copy(device_id.begin(), device_id.end(),
|
||||
std::back_inserter(mac_context));
|
||||
uint32_t bit_size = MAC_KEY_SIZE * 8 * 2;
|
||||
std::string bit_size_string = wvutil::EncodeUint32(bit_size);
|
||||
std::copy(bit_size_string.begin(), bit_size_string.end(),
|
||||
std::back_inserter(mac_context));
|
||||
std::string enc_label = "WV_ENCRYPT";
|
||||
std::vector<uint8_t> enc_context(enc_label.begin(), enc_label.end());
|
||||
enc_context.push_back(0);
|
||||
std::copy(cert.begin(), cert.end(), std::back_inserter(enc_context));
|
||||
std::copy(device_id.begin(), device_id.end(),
|
||||
std::back_inserter(enc_context));
|
||||
bit_size = KEY_SIZE * 8;
|
||||
bit_size_string = wvutil::EncodeUint32(bit_size);
|
||||
std::copy(bit_size_string.begin(), bit_size_string.end(),
|
||||
std::back_inserter(enc_context));
|
||||
KeyDeriver keys;
|
||||
keys.DeriveKeys(model_key.data(), model_key.size(), mac_context, enc_context);
|
||||
std::vector<uint8_t> context = cert;
|
||||
context.insert(context.end(), device_id.begin(), device_id.end());
|
||||
keys.DeriveKeys(model_key.data(), model_key.size(), context, "WV_SIGN",
|
||||
"WV_ENCRYPT");
|
||||
const std::vector<uint8_t> message(
|
||||
request.data(),
|
||||
request.data() + request.size() - HMAC_SHA256_SIGNATURE_SIZE);
|
||||
|
||||
Reference in New Issue
Block a user