Source release v3.3.0

This commit is contained in:
Gene Morgan
2017-05-04 14:01:27 -07:00
parent baa7b133d3
commit 8082775924
678 changed files with 51264 additions and 14200 deletions

View File

@@ -63,21 +63,31 @@ class CDM_EXPORT Cdm : public ITimerClient {
// is used instead of App-Assisted
} MessageType;
// Status codes returned by CDM functions.
//
typedef enum {
// These are defined by Widevine:
kSuccess = 0,
kNeedsDeviceCertificate = 1,
kSessionNotFound = 2,
kDecryptError = 3,
kNoKey = 4,
// These are analogous to the errors used by EME:
kTypeError = 5,
kInvalidAccess = kTypeError, // deprecated name from June 1 draft
kNotSupported = 6,
kInvalidState = 7,
kQuotaExceeded = 8,
kRangeError = 9,
// These are analogous to the exceptions defined in the EME specification.
// Client implementations that support the EME API should pass these
// directly to the client application.
// Note: kTypeError replaced kInvalidAccess in the 6/1/2015 EME spec.
kTypeError = 1,
kNotSupported = 2,
kInvalidState = 3,
kQuotaExceeded = 4,
// These are additional codes defined by Widevine. In client implementations
// that support the EME API, these codes should be handled in the system
// layer. If it is necessary to notify the client application of one of
// these statuses, it should be mapped to one of the exception codes defined
// in the EME specification.
kNeedsDeviceCertificate = 101,
kSessionNotFound = 102,
kDecryptError = 103,
kNoKey = 104,
kKeyUsageBlockedByPolicy = 105,
kRangeError = 106,
// The action could not be completed yet but has been scheduled to be done
// later. A call to |event_listener.onDeferredComplete| will be made once
@@ -341,6 +351,24 @@ class CDM_EXPORT Cdm : public ITimerClient {
// as a preliminary step in the license request.
virtual Status setServiceCertificate(const std::string& certificate) = 0;
// Create a Service Certificate Request message.
// This is used to fetch a service certificate from the license server.
// It is needed in cases where the system or application does not have
// a service certificate for the license server.
// The service certificate holds the RSA public key for the server and
// other fields needed for provisioning. It is also needed for privacy mode.
virtual Status getServiceCertificateRequest(std::string* message) = 0;
// Parse a Service Certificate Response message and extract the certificate.
// This is used when fetching a service certificate from the license server.
// The response input is the string returned by the license server
// (see getServiceCertificateRequest()). The service certificate is installed
// if no error is returned. The returned certificate string may be used in
// future sessions as the input to setServiceCertificate(), avoiding extra
// calls to the license server.
virtual Status parseServiceCertificateResponse(const std::string& response,
std::string* certificate) = 0;
// Determine if the device has a Device Certificate (for the current origin).
// The Device Certificate is origin-specific, and the origin is
// dertermined by the CDM's current IStorage object.
@@ -360,6 +388,22 @@ class CDM_EXPORT Cdm : public ITimerClient {
// CDM's current IStorage object.
virtual Status listStoredLicenses(std::vector<std::string>* key_set_ids) = 0;
// Get the current list of secure-stop licenses on the system.
// License storage is origin-specific, and the origin is determined by the
// CDM's current IStorage object. ksids receives list of KSIDs representing
// usage records or secure-stop licenses.
virtual Status listUsageRecords(std::vector<std::string>* ksids) = 0;
// Delete the usage record for the given key_set_id.
// Usage info storage is origin-specific, and the origin is determined by the
// CDM's current IStorage object.
virtual Status deleteUsageRecord(const std::string& key_set_id) = 0;
// Delete all usage records for the current origin.
// Usage info storage is origin-specific, and the origin is determined by the
// CDM's current IStorage object.
virtual Status deleteAllUsageRecords() = 0;
// Creates a new session.
// Do not use this to load an existing persistent session (use load()).
// If successful, the session_id is returned via |sessionId|.

View File

@@ -1,2 +1,2 @@
// Widevine CE CDM Version
#define CDM_VERSION "v3.2.0-0-g565f4378-ce"
#define CDM_VERSION "v3.3.0-0-gffcfda19-ce"

View File

@@ -14,6 +14,7 @@ class PropertiesCE {
public:
static Cdm::ClientInfo GetClientInfo();
static Cdm::SecureOutputType GetSecureOutputType();
static void SetProvisioningMessagesAreBinary(bool bin_prov);
private:
static void SetSecureOutputType(Cdm::SecureOutputType secure_output_type);