WvPL License SDK release: 16.5.0

This commit is contained in:
Buildbot
2021-11-04 23:18:08 +00:00
parent b5d6e495de
commit 4db51c1c61
249 changed files with 83584 additions and 329 deletions

View File

@@ -12,6 +12,7 @@
#include "absl/synchronization/mutex.h"
#include "common/hash_algorithm.h"
#include "common/output_protection_util.h"
#include "common/status.h"
#include "protos/public/client_identification.pb.h"
#include "protos/public/device_security_profile_data.pb.h"
@@ -20,6 +21,7 @@
#include "protos/public/security_profile.pb.h"
namespace video_widevine {
using ClientCapabilities = ClientIdentification::ClientCapabilities;
const char kDefaultProfileOwnerName[] = "Widevine";
@@ -50,13 +52,16 @@ class SecurityProfileList {
const std::vector<std::string>& profiles_to_check,
const std::string& owner, const ClientIdentification& client_id,
const ProvisionedDeviceInfo& device_info,
PlatformVerificationStatus device_vmp_status,
std::vector<std::string>* qualified_profiles) const;
// Populates |profiles_to_allow| with a list of profiles that meet the
// requirements for the this device. The number of profiles is returned.
virtual int GetQualifiedProfiles(
const ClientIdentification& client_id,
const ProvisionedDeviceInfo& device_info, const std::string& owner,
const ProvisionedDeviceInfo& device_info,
const PlatformVerificationStatus device_vmp_status,
const std::string& owner,
std::vector<std::string>* qualified_profiles) const;
// Return true if a profile exist matching the specified parameters {|name|,
@@ -115,6 +120,8 @@ class SecurityProfileList {
void ClearAllProfiles();
private:
friend class SecurityProfileListTest;
// Add Widevine default profiles into profile_list. The number of added
// default profiles will be returned.
virtual int AddDefaultProfiles();
@@ -127,7 +134,14 @@ class SecurityProfileList {
bool DoesProfileQualify(const SecurityProfile& profile,
const ClientIdentification& client_id,
const ProvisionedDeviceInfo& device_info) const;
const ProvisionedDeviceInfo& device_info,
PlatformVerificationStatus device_vmp_status) const;
bool CheckAnalogOutputCapabilities(
ClientIdentification_ClientCapabilities_AnalogOutputCapabilities
client_output_capabilities,
ClientIdentification_ClientCapabilities_AnalogOutputCapabilities
profile_output_capabilities,
bool client_can_disable_analog_output) const;
int64_t GetCurrentTimeSeconds() const;
@@ -143,6 +157,10 @@ class SecurityProfileList {
void ClearAllDefaultProfilesLocked() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mutex_);
void ClearAllCustomProfilesLocked() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mutex_);
// Return true is the client is a Chrome browser.
virtual bool IsChromeBrowser(const std::string& device_model) const;
mutable absl::Mutex mutex_;
// Security profiles
std::string profile_namespace_;