Adds support for specifying service type when creating a service certificate.
A recent change to the SDK allows for service certificates (DrmCertificate) to also specify a ServiceType indicating which type of service they are supposed to be used on. This CL adds certificate creation service support for this.
-------------
Fix typo in cas proxy SDK.
-------------
Migrate C++ proto_library rules to cc_proto_library.
We update dependency edges of cc_* rules on proto_library() rules to use a cc_proto_library() intermediary in preparation for eliminating proto_library()'s cc support as per []
More information: []
Tested:
TAP --sample for global presubmit queue
[]
-------------
Migrate cc proto_library to cc_proto_library. Also fixes build break introduced by []
-------------
Remove unnecessary #MOE directives
-------------
[Proxy_SDK] Move generateSignature in WvPLSDKEnvironment to signature_util.cc file.
-------------
[SDK]Add service_certificate type check in WVPL LSDK and PROXY SDK.
-------------
[Proxy_SDK] Add new API to get remote_attestation_cert_serial_number for proxy SDK.
-------------
[Proxy_SDK] Add getDrmDeviceId function
-------------
[Proxy_SDK] add getrequesttype function for proxy sdk
-------------
[SDK] Add videoFeature field to WvPLWidevinePsshData in WvPLWidevine.java and wvpl_type.h. Related to []
-------------
Allow specified devices to request licenses even if these devices are in TEST_ONLY state.
This will also override the global setting of TEST_ONLY devices not being allowed to
successfully receive licenses from Widevine License SDK.
-------------
[Proxy_SDK] Add ParseDCSL function and test case.
-------------
[Proxy_SDK] Return non-ok status for service_certificate_request when create proxy sdk session. Add test case in Java test.
-------------
[Proxy_SDK] Add video_feature parsing in GetPsshData function. Also check video_feature when geneateModularDrmLicenseRequest.
-------------
[SDK]Deprecated message_type() function, use request_type() instead.
-------------
Use JDK instead of JRE
The concept of a JRE is going away in JDK 11. The jre/ subdirectory in the JDK will no longer exist and the :jre targets will no longer make sense.
Currently in JDK 8, the JDK is a superset of the JRE (it contains all of the files in the JRE), so this is a safe change.
Tested:
TAP found no affected targets
[]
-------------
Renaming WvPLSDKSession.request_type() API.
Added LICENSE_TYPE_UNSPECIFIED enumeration to WvPLLicenseType.
-------------
Additional VLOG messaging for licensing with TEST_ONLY devices.
-------------
Remove forward declarations of absl names. The style guide bans this, and those names are not for external users to redeclare. External users should include the public headers instead.
-------------
Change Kokoro to use latest bazel version
-------------
Update the abseil build to the December 18 release.
This fixes a problem where the MOE build is failing because there was no definition for node_hash_map.
-------------
[CAS_Proxy]Add WvPLCASProxyEnvironmentJNI.cc and com_google_video_widevine_sdk_wvpl_WvPLCASProxyEnvironment.h file to implement JNI layer for WvPLCASProxyEnvironment.
-------------
Apply changes to sdk to match device certificate status list updates.
Cleans up some of the protos we're using for the new SignedDeviceInfo. Also, adjusts the sdk implementation to reflect the proto and service changes.
-------------
[CAS_PROXY]Add WvPLCASProxyEnvironment.java, WvPLCASProxySession.java and WvPLCASProxyTest.java file.
-------------
Add API to return the DRM service certificate by provider.
-------------
[CAS_PROXY]Implement SetDrmServiceCertificate and SetDeviceCertificateStatusList JNI layer.
-------------
Get DeviceInfo from request.
-------------
CAS Proxy SDK updated to 1.1.5.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=248640225
256 lines
7.4 KiB
Protocol Buffer
256 lines
7.4 KiB
Protocol Buffer
////////////////////////////////////////////////////////////////////////////////
|
|
// Copyright 2017 Google LLC.
|
|
//
|
|
// This software is licensed under the terms defined in the Widevine Master
|
|
// License Agreement. For a copy of this agreement, please contact
|
|
// widevine-licensing@google.com.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Description:
|
|
// Definitions of the common Widevine protocol errors.
|
|
|
|
syntax = "proto2";
|
|
|
|
package widevine;
|
|
|
|
option java_package = "com.google.video.widevine.protos";
|
|
|
|
|
|
enum Errors {
|
|
// Attempt to parse the signed message failed.
|
|
SIGNED_MESSAGE_PARSE_ERROR = 100;
|
|
|
|
// Attempt to parse the license request message failed.
|
|
LICENSE_REQUEST_PARSE_ERROR = 101;
|
|
|
|
// Attempt to parse the session state message failed.
|
|
SESSION_STATE_PARSE_ERROR = 102;
|
|
|
|
// The license request does not contain content_id. Since client_id was
|
|
// not present, content_id was expected.
|
|
MISSING_CONTENT_ID = 103;
|
|
|
|
// The license request does not contain license_id. Since client_id was
|
|
// not present, license_id was expected.
|
|
MISSING_LICENSE_ID = 104;
|
|
|
|
// The license request does not contain client_id. Since this is not a
|
|
// renewal, client_id was expected.
|
|
MISSING_CLIENT_ID = 105;
|
|
|
|
// ClientCert construction failed.
|
|
INVALID_SIGNATURE = 106;
|
|
|
|
// Session Id from the session state does not match session Id specified.
|
|
SESSION_ID_MISMATCH = 107;
|
|
|
|
// License Id from session state does not match license Id in the renewal
|
|
// license request.
|
|
RENEWAL_LICENSE_ID_MISMATCH = 108;
|
|
|
|
// Signing key is missing from the session state.
|
|
MISSING_RENEWAL_SIGNING_KEY = 109;
|
|
|
|
// Signature verification failed when using the session's state signing key.
|
|
INVALID_RENEWAL_SIGNATURE = 110;
|
|
|
|
// System Id from the keybox is not supported.
|
|
UNSUPPORTED_SYSTEM_ID = 111;
|
|
|
|
// Error trying to encrypt.
|
|
ENCRYPT_ERROR = 112;
|
|
|
|
// Error trying to decrypt the keybox.
|
|
KEYBOX_DECRYPT_ERROR = 113;
|
|
|
|
// Client Id type is not expected.
|
|
INVALID_CLIENT_CERT_TYPE = 114;
|
|
|
|
// Error usung the keybox token. Perhaps the size is less than 72 bytes.
|
|
INVALID_KEYBOX_TOKEN = 115;
|
|
|
|
// Unable to find a preprovisionnig key based on the system Id. Perhaps the
|
|
// device was revoked.
|
|
MISSING_PRE_PROV_KEY = 116;
|
|
|
|
// Unable to verify the token hash.
|
|
TOKEN_HASH_MISMATCH = 117;
|
|
|
|
// Unable to create the encryption key for the initial license.
|
|
MISSING_ENCRYPTION_KEY = 118;
|
|
|
|
// Signing key is missing from the session state.
|
|
MISSING_SIGNING_KEY = 119;
|
|
|
|
// Serialization failed.
|
|
UNABLE_TO_SERIALIZE_SIGNED_MESSAGE = 120;
|
|
|
|
// Serialization failed.
|
|
UNABLE_TO_SERIALIZE_SESSION_STATE = 121;
|
|
|
|
// Client cert is missing. Perhaps an attempt to renew with content keys.
|
|
MISSING_CLIENT_CERT = 122;
|
|
|
|
// Attempt to use GenerateSignedLicense() for license renewal containing
|
|
// content keys.
|
|
RENEWAL_WITH_CONTENT_KEYS_NOT_ALLOWED = 123;
|
|
|
|
// Invalid Nonce, expected as a 32 bit unsigned int.
|
|
INVALID_KEY_CONTROL_NONCE = 124;
|
|
|
|
// Invalid renewal signing key size. For protocol version 2_0, size must be 32
|
|
// bytes. For protocol version 2_1, size must be 64 bytes.
|
|
INVALID_RENEWAL_SIGNING_KEY_SIZE = 125;
|
|
|
|
// Invalid Device Certificate token. Perhaps the intermediate cert was
|
|
// replaced or the device cert is corrupt. Will result in re-provisioning.
|
|
INVALID_DRM_CERTIFICATE = 126;
|
|
|
|
// Device Certificate was revoked.
|
|
DRM_DEVICE_CERTIFICATE_REVOKED = 127;
|
|
|
|
// Device Certificate not in the certificate status list, and unknown
|
|
// devices are not allowed.
|
|
DRM_DEVICE_CERTIFICATE_UNKNOWN = 128;
|
|
|
|
// Invalid Certificate status list.
|
|
INVALID_CERTIFICATE_STATUS_LIST = 129;
|
|
|
|
// Expired Certificate status list.
|
|
EXPIRED_CERTIFICATE_STATUS_LIST = 130;
|
|
|
|
// KeyControl block generation failed.
|
|
KEYCONTROL_GENERATION_ERROR = 131;
|
|
|
|
// The device root certificate was not set.
|
|
ROOT_CERTIFICATE_NOT_SET = 132;
|
|
|
|
// The service certificate is invalid.
|
|
INVALID_SERVICE_CERTIFICATE = 133;
|
|
|
|
// Service certificate not found.
|
|
SERVICE_CERTIFICATE_NOT_FOUND = 134;
|
|
|
|
// Invalid EncryptedClientIdentification message.
|
|
INVALID_ENCRYPTED_CLIENT_IDENTIFICATION = 135;
|
|
|
|
// No service certificates have been added.
|
|
SERVICE_CERTIFICATE_NOT_SET = 136;
|
|
|
|
// Could not process service private key.
|
|
INVALID_SERVICE_PRIVATE_KEY = 137;
|
|
|
|
// ClientIdentification and EncryptedClientIdentification were specified.
|
|
MULTIPLE_CLIENT_ID = 138;
|
|
|
|
// Message is a service certificate request.
|
|
SERVICE_CERTIFICATE_REQUEST_MESSAGE = 139;
|
|
|
|
// Invalid message type
|
|
INVALID_MESSAGE_TYPE = 140;
|
|
|
|
// Remote attestation verification failed.
|
|
REMOTE_ATTESTATION_FAILED = 141;
|
|
|
|
// can_play = true for license RELEASE response.
|
|
INVALID_RELEASE_CAN_PLAY_VALUE = 142;
|
|
|
|
// can_persist = false for offline license.
|
|
INVALID_OFFLINE_CAN_PERSIST = 143;
|
|
|
|
// Session usage table entry is malformed.
|
|
INVALID_SESSION_USAGE_TABLE_ENTRY = 144;
|
|
|
|
// Session usage table entry signature verification failed.
|
|
INVALID_SESSION_USAGE_SIGNATURE = 145;
|
|
|
|
// The type of ContentIdentification is unrecognized
|
|
INVALID_CONTENT_ID_TYPE = 146;
|
|
|
|
// Unknown InitData type.
|
|
UNKNOWN_INIT_DATA_TYPE = 147;
|
|
|
|
// InitData.init_data field is missing.
|
|
MISSING_INIT_DATA = 148;
|
|
|
|
// InitData contains invalid ISO BMFF boxes.
|
|
INVALID_CENC_INIT_DATA = 149;
|
|
|
|
// Malformed PSSH box.
|
|
INVALID_PSSH = 150;
|
|
|
|
// PSSH box version not supported.
|
|
UNSUPPORTED_PSSH_VERSION = 151;
|
|
|
|
// Widevine PSSH Data malformed.
|
|
INVALID_WIDEVINE_PSSH_DATA = 152;
|
|
|
|
// Device capabilities are too low for the specified output protection.
|
|
DEVICE_CAPABILITIES_TOO_LOW = 153;
|
|
|
|
// Invalid master signing key size. Must be 16 bytes.
|
|
INVALID_MASTER_SIGNING_KEY_SIZE = 154;
|
|
|
|
// Invalid signing key size. Must be 64 bytes.
|
|
INVALID_SIGNING_KEY_SIZE = 155;
|
|
|
|
// Keybox tokens not intialized. PreProvisioning keys not loaded.
|
|
KEYBOX_TOKEN_KEYS_NOT_INITIALIZED = 156;
|
|
|
|
// Provider Id in device certificate does not match service Id for License
|
|
// server. Check cert used when initializing with AddDrmServiceCertificate().
|
|
PROVIDER_ID_MISMATCH = 157;
|
|
|
|
// Certificate chain not selected.
|
|
CERT_CHAIN_NOT_SELECTED = 158;
|
|
|
|
// Failed to read the SRM file from specified location.
|
|
INVALID_SRM_LOCATION = 159;
|
|
|
|
// Invalid SRM file size, HDCP2 SRM file must be at least 396 bytes.
|
|
INVALID_SRM_SIZE = 160;
|
|
|
|
// SRM file signature validation failed.
|
|
INVALID_SRM_SIGNATURE = 161;
|
|
|
|
// Unable to find provider.
|
|
MISSING_PROVIDER = 162;
|
|
|
|
// Unable to find group master key id.
|
|
MISSING_GROUP_MASTER_KEY_ID = 163;
|
|
|
|
// Unable to find group master key.
|
|
MISSING_GROUP_MASTER_KEY = 164;
|
|
|
|
// Invalid Provider session token size. Must be less than 256 bytes.
|
|
INVALID_PROVIDER_SESSION_TOKEN_SIZE = 165;
|
|
|
|
// Failure to decrypt data with service certificate private key.
|
|
SERVICE_PRIVATE_KEY_DECRYPT_ERROR = 166;
|
|
|
|
// Disallowed development certificate.
|
|
DEVELOPMENT_CERTIFICATE_NOT_ALLOWED = 167;
|
|
|
|
// Invalid message. E.g. Deserialization failed.
|
|
INVALID_MESSAGE = 168;
|
|
|
|
// Invalid key size.
|
|
INVALID_KEY_SIZE = 169;
|
|
|
|
// Invalid method parameter.
|
|
INVALID_PARAMETER = 170;
|
|
|
|
// Even KeyID not specified, CasEncryptionResponse.KeyInfo.KeySlot
|
|
MISSING_EVEN_KEY_ID = 171;
|
|
|
|
// Even Key not specified, CasEncryptionResponse.KeyInfo.KeySlot
|
|
MISSING_EVEN_KEY = 172;
|
|
|
|
// VMP verification required for this platform, however VMP data is missing.
|
|
VMP_ERROR_PLATFORM_NOT_VERIFIED = 173;
|
|
|
|
// VMP verification failed this platform, perhaps was tampered with.
|
|
VMP_ERROR_PLATFORM_TAMPERED = 174;
|
|
|
|
}
|