Add support for ODK v19.2

This commit is contained in:
Jacob Trimble
2024-07-09 21:17:50 +00:00
parent 5229a4fdd4
commit 3f6ce1d204
13 changed files with 20 additions and 14 deletions

View File

@@ -1 +1 @@
build --cxxopt='-std=c++14'
build --cxxopt='-std=c++17'

View File

@@ -65,7 +65,7 @@ http_archive(
new_git_repository(
name = "odk_repo",
build_file = "//external:odk.BUILD",
commit = "74178f968f2188db27b6f56adcae60f377049f72", # 18.3
commit = "7b5fec3a7929cb36cf53db216565b09c99dc2c85", # 19.2
remote = "https://widevine-partner.googlesource.com/oemcrypto_core_message.git",
)

View File

@@ -83,7 +83,7 @@ INSTANTIATE_TEST_SUITE_P(
::testing::Values(kNoSigningKey, Padding::kNone, Padding::kPKSC8),
::testing::Values(OdkVersion::kNone, OdkVersion::k16_3,
OdkVersion::k16_5, OdkVersion::k17_1,
OdkVersion::k18_3)));
OdkVersion::k18_3, OdkVersion::k19_2)));
// Failure tests

View File

@@ -528,6 +528,8 @@ uint16_t GetOdkMajorVersion(TestLicenseBuilder::OdkVersion odk_version) {
return 17;
case TestLicenseBuilder::OdkVersion::k18_3:
return 18;
case TestLicenseBuilder::OdkVersion::k19_2:
return 19;
case TestLicenseBuilder::OdkVersion::kNone:
DCHECK(false);
return 0;
@@ -539,6 +541,8 @@ uint16_t GetOdkMajorVersion(TestLicenseBuilder::OdkVersion odk_version) {
uint16_t GetOdkMinorVersion(TestLicenseBuilder::OdkVersion odk_version) {
switch (odk_version) {
case TestLicenseBuilder::OdkVersion::k19_2:
return 2;
case TestLicenseBuilder::OdkVersion::k16_3:
case TestLicenseBuilder::OdkVersion::k18_3:
case TestLicenseBuilder::OdkVersion::k99:
@@ -687,7 +691,7 @@ void TestLicenseBuilder::Build(const TestServer& server,
std::string oemcrypto_core_message;
if (settings_.odk_version != OdkVersion::kNone) {
uint16_t api_major_version = GetOdkMajorVersion(settings_.odk_version);;
uint16_t api_major_version = GetOdkMajorVersion(settings_.odk_version);
uint16_t api_minor_version = GetOdkMinorVersion(settings_.odk_version);
oemcrypto_core_message = GenerateCoreMessage(
serialized_request_, message_str, api_major_version, api_minor_version,

View File

@@ -59,6 +59,7 @@ class TestLicenseBuilder {
k16_5, // ODK version 16.5
k17_1, // ODK version 17.1
k18_3, // ODK version 18.3
k19_2, // ODK version 19.2
k99, // ODK 16.3, but with the version set to 99 (an arbitrary value).
};

View File

@@ -35,7 +35,8 @@ class WhiteboxInitHelper final {
WhiteboxInitHelper() {}
~WhiteboxInitHelper() {
if (thread_) thread_->join();
if (thread_)
thread_->join();
}
State state() const {
@@ -84,7 +85,8 @@ class WhiteboxInitHelper final {
state_ = result == WB_RESULT_OK ? State::SignReady : State::Error;
result_ = result;
cond_.notify_all();
if (result != WB_RESULT_OK) return;
if (result != WB_RESULT_OK)
return;
}
result = WB_License_ProcessLicenseResponse_Init();

View File

@@ -8,4 +8,4 @@
#include "chromium_deps/cdm/protos/certificate_provisioning.pb.h"
#include "chromium_deps/cdm/protos/license_protocol.pb.h"
#endif // ODK_DEPS_LICENSE_PROTOCOL_PB_H_
#endif // ODK_DEPS_LICENSE_PROTOCOL_PB_H_

View File

@@ -79,7 +79,6 @@ class LicenseParser {
static WB_KeyStatus GetKeyStatus(
video_widevine::License_KeyContainer_SecurityLevel level,
bool is_hw_verified);
};
} // namespace widevine

View File

@@ -99,9 +99,11 @@ bool CheckAndUpdateSize(size_t min_size, size_t* out_size) {
return good;
}
#if defined(HAS_GENERIC_CRYPTO) || defined(HAS_ENTITLEMENT)
std::string MakeString(const uint8_t* data, size_t size) {
return std::string(data, data + size);
}
#endif
} // namespace

View File

@@ -36,7 +36,6 @@ class OdkLicenseParser : public LicenseParser {
const std::vector<ProviderKey>& provider_keys,
size_t provider_key_id) const;
std::vector<widevine::RenewalKey> renewal_keys_;
std::map<std::string, InternalKey> content_keys_;
std::map<std::string, InternalKey> entitlement_keys_;

View File

@@ -20,10 +20,8 @@ class ProtobufLicenseParser : public LicenseParser {
const widevine::RenewalKey* GetRenewalKey() const override;
const std::map<std::string, InternalKey>& GetContentKeys() const override;
const std::map<std::string, InternalKey>&
GetEntitlementKeys() const override;
const std::map<std::string, InternalKey>&
GetGenericKeys() const override;
const std::map<std::string, InternalKey>& GetEntitlementKeys() const override;
const std::map<std::string, InternalKey>& GetGenericKeys() const override;
RenewalKey ParseSigningKey(
const std::string& decryption_key,