Test session should continue with no keybox
Merge from Widevine repo of http://go/wvgerrit/142149 This CL updates the TestCryptoSession so that it will recover from initializing without a keybox. This allows unit and integration tests to be run using a test keybox on a device that does not have any keybox. Bug: 210807585 Bug: 161925952 Change-Id: I8639bd733a50ae5af3a7c786347b5a06a9d783ce
This commit is contained in:
@@ -354,39 +354,43 @@ void CryptoSession::Init() {
|
||||
});
|
||||
|
||||
if (initialized) {
|
||||
uint32_t version;
|
||||
std::string api_version =
|
||||
CryptoSession::GetApiVersion(kLevelDefault, &version)
|
||||
? std::to_string(version)
|
||||
: kStringNotAvailable;
|
||||
std::string api_minor_version =
|
||||
CryptoSession::GetApiMinorVersion(kLevelDefault, &version)
|
||||
? std::to_string(version)
|
||||
: kStringNotAvailable;
|
||||
LOGD("OEMCrypto version (default security level): %s.%s",
|
||||
api_version.c_str(), api_minor_version.c_str());
|
||||
CacheVersion();
|
||||
}
|
||||
}
|
||||
|
||||
api_version = CryptoSession::GetApiVersion(kLevel3, &version)
|
||||
? std::to_string(version)
|
||||
: kStringNotAvailable;
|
||||
api_minor_version = CryptoSession::GetApiMinorVersion(kLevel3, &version)
|
||||
? std::to_string(version)
|
||||
: kStringNotAvailable;
|
||||
LOGD("OEMCrypto version (L3 security level): %s.%s", api_version.c_str(),
|
||||
api_minor_version.c_str());
|
||||
if (needs_keybox_provisioning_) {
|
||||
WithStaticFieldWriteLock("SystemFallbackPolicy", [&] {
|
||||
if (!okp_fallback_policy_l1_) {
|
||||
LOGD("OEMCrypto needs keybox provisioning");
|
||||
// Only create once. Possible that OEMCrypto is initialized
|
||||
// and terminated many times over the life cycle of the OTA
|
||||
// keybox provisioning process.
|
||||
okp_fallback_policy_l1_ = okp::SystemFallbackPolicy::Create();
|
||||
if (okp_fallback_policy_l1_)
|
||||
okp_fallback_policy_l1_->MarkNeedsProvisioning();
|
||||
}
|
||||
});
|
||||
}
|
||||
void CryptoSession::CacheVersion() {
|
||||
uint32_t version;
|
||||
std::string api_version =
|
||||
CryptoSession::GetApiVersion(kLevelDefault, &version)
|
||||
? std::to_string(version)
|
||||
: kStringNotAvailable;
|
||||
std::string api_minor_version =
|
||||
CryptoSession::GetApiMinorVersion(kLevelDefault, &version)
|
||||
? std::to_string(version)
|
||||
: kStringNotAvailable;
|
||||
LOGD("OEMCrypto version (default security level): %s.%s", api_version.c_str(),
|
||||
api_minor_version.c_str());
|
||||
|
||||
api_version = CryptoSession::GetApiVersion(kLevel3, &version)
|
||||
? std::to_string(version)
|
||||
: kStringNotAvailable;
|
||||
api_minor_version = CryptoSession::GetApiMinorVersion(kLevel3, &version)
|
||||
? std::to_string(version)
|
||||
: kStringNotAvailable;
|
||||
LOGD("OEMCrypto version (L3 security level): %s.%s", api_version.c_str(),
|
||||
api_minor_version.c_str());
|
||||
if (needs_keybox_provisioning_) {
|
||||
WithStaticFieldWriteLock("SystemFallbackPolicy", [&] {
|
||||
if (!okp_fallback_policy_l1_) {
|
||||
LOGD("OEMCrypto needs keybox provisioning");
|
||||
// Only create once. Possible that OEMCrypto is initialized
|
||||
// and terminated many times over the life cycle of the OTA
|
||||
// keybox provisioning process.
|
||||
okp_fallback_policy_l1_ = okp::SystemFallbackPolicy::Create();
|
||||
if (okp_fallback_policy_l1_)
|
||||
okp_fallback_policy_l1_->MarkNeedsProvisioning();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user