diff --git a/example/wvpl_cas_proxy_environment_example b/example/wvpl_cas_proxy_environment_example index eae3401..4b3f80a 100644 Binary files a/example/wvpl_cas_proxy_environment_example and b/example/wvpl_cas_proxy_environment_example differ diff --git a/example/wvpl_cas_proxy_session_example b/example/wvpl_cas_proxy_session_example index 6985990..8114dba 100644 Binary files a/example/wvpl_cas_proxy_session_example and b/example/wvpl_cas_proxy_session_example differ diff --git a/libwvpl_cas_proxy.so b/libwvpl_cas_proxy.so index ae674b2..d953b7e 100755 Binary files a/libwvpl_cas_proxy.so and b/libwvpl_cas_proxy.so differ diff --git a/sdk/external/common/wvpl/wvpl_sdk_session.h b/sdk/external/common/wvpl/wvpl_sdk_session.h index 8cf5d19..8b9c285 100644 --- a/sdk/external/common/wvpl/wvpl_sdk_session.h +++ b/sdk/external/common/wvpl/wvpl_sdk_session.h @@ -11,15 +11,18 @@ #include #include "sdk/external/common/wvpl/wvpl_types.h" -#include "protos/public/client_identification.pb.h" -#include "protos/public/device_certificate_status.pb.h" -#include "protos/public/license_protocol.pb.h" -#include "protos/public/license_server_sdk.pb.h" -#include "protos/public/provisioned_device_info.pb.h" namespace widevine { +class ClientIdentification; class DrmRootCertificate; +class LicenseRequest; +class License_KeyContainer_OutputProtection; +class License_KeyContainer; +class License_Policy; +class ProvisionedDeviceInfo; class SessionInit; +class SessionState; +class SignedMessage; } // namespace widevine namespace widevine_server { namespace wv_pl_sdk { @@ -28,7 +31,7 @@ class WvPLSDKSession { public: explicit WvPLSDKSession( const widevine::DrmRootCertificate* drm_root_certificate); - virtual ~WvPLSDKSession() = 0; + virtual ~WvPLSDKSession(); public: // Add WvPLKey. @@ -101,9 +104,7 @@ class WvPLSDKSession { virtual PlatformVerificationStatus VerifyPlatform() = 0; - virtual widevine::LicenseRequest::RequestType request_type() const { - return request_type_; - } + virtual LicenseRequestType request_type() const { return request_type_; } /** * Returns true if the license type is offline, otherwise return false. @@ -119,7 +120,7 @@ class WvPLSDKSession { WvPLPlaybackPolicy policy_; WvPLSessionInit session_init_; WvPLWidevinePsshData pssh_data_; - widevine::ClientIdentification client_id_; + std::unique_ptr client_id_; bool has_pssh_data_ = false; bool has_client_id_ = false; MessageType message_type_ = UNKNOWN; @@ -130,7 +131,7 @@ class WvPLSDKSession { std::string license_request_from_cdm_; std::string remote_attestation_cert_serial_number_; std::unique_ptr sdk_license_request_; - widevine::LicenseRequest::RequestType request_type_; + LicenseRequestType request_type_; virtual WvPLStatus VerifyRemoteAttestation(); // Returns the WvPL Client Capabilities information for the license request @@ -146,35 +147,23 @@ class WvPLSDKSession { widevine::License_KeyContainer* sdk_key_container); virtual void CopySecurityLevel( const WvPLOutputProtection& output_protection, TrackType track_type, - widevine::License::KeyContainer* key_container); + widevine::License_KeyContainer* key_container); // Copies/translates the policy from a WvPL policy into an SDK policy. A // helper function for GenerateLicenseRequestAsJSON. virtual void CopyPlaybackPolicy(const WvPLPlaybackPolicy& wvpl_policy, - widevine::License::Policy* sdk_policy); + widevine::License_Policy* sdk_policy); // Copy the |cgms_value| into the key container. A helper function for // GenerateLicenseRequestAsJSON. - virtual void CopyCGMS(CGMS cgms_value, - widevine::License::KeyContainer::OutputProtection* - output_protection); + virtual void CopyCGMS( + CGMS cgms_value, + widevine::License_KeyContainer_OutputProtection* output_protection); // Copy the |hdcp_value| into the key container. - virtual void CopyHDCP(HDCP hdcp_value, - widevine::License::KeyContainer::OutputProtection* - output_protection); - - // Copy the |hdcp_value| into the client_capabilities. - virtual void CopyHDCPToClientCapabilities( - widevine::ClientIdentification::ClientCapabilities::HdcpVersion - hdcp_value, - WvPLClientCapabilities* client_capabilities) const; - - // Copy the |analog_output_capabilities| into the client_capabilities. - virtual void CopyAnalogOutputCapabilities( - widevine::ClientIdentification::ClientCapabilities:: - AnalogOutputCapabilities analog_output_capabilities, - WvPLClientCapabilities* client_capabilities) const; + virtual void CopyHDCP( + HDCP hdcp_value, + widevine::License_KeyContainer_OutputProtection* output_protection); // Copy the WvPLSession Init into Session Init. virtual void CopySessionInit(const WvPLSessionInit& wvpl_session_init, diff --git a/sdk/external/common/wvpl/wvpl_types.h b/sdk/external/common/wvpl/wvpl_types.h index 0431ea6..1f3a7aa 100644 --- a/sdk/external/common/wvpl/wvpl_types.h +++ b/sdk/external/common/wvpl/wvpl_types.h @@ -59,6 +59,13 @@ enum CertificateKeyType { RSA_3072 = 1, }; +enum LicenseRequestType { + REQUEST_TYPE_UNSPECIFIED = 0, + NEW = 1, + RENEWAL = 2, + RELEASE = 3, +}; + enum PlatformVerificationStatus { PLATFORM_UNVERIFIED = 0, PLATFORM_TAMPERED = 1,