Repository: Diazole/dumper
Branch: main
Commit: 16df7440d6b3
Files: 7
Total size: 150.7 KB
Directory structure:
gitextract_uh3fiif8/
├── .gitignore
├── Helpers/
│ ├── Device.py
│ ├── script.js
│ └── wv_proto2_pb2.py
├── README.md
├── dump_keys.py
└── requirements.txt
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
.python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# dumper
license_request.bin
key_dumps
================================================
FILE: Helpers/Device.py
================================================
import os
import logging
import base64
import frida
from Crypto.PublicKey import RSA
from Helpers.wv_proto2_pb2 import SignedLicenseRequest
class Device:
def __init__(self, dynamic_function_name, cdm_version, module_names):
self.logger = logging.getLogger(__name__)
self.saved_keys = {}
self.widevine_libraries = module_names
self.usb_device = frida.get_usb_device()
self.name = self.usb_device.name
with open('./Helpers/script.js', 'r', encoding="utf_8") as script:
self.frida_script = script.read()
self.frida_script = self.frida_script.replace(r'${DYNAMIC_FUNCTION_NAME}', dynamic_function_name)
self.frida_script = self.frida_script.replace(r'${CDM_VERSION}', cdm_version)
def export_key(self, key, client_id):
save_dir = os.path.join(
'key_dumps',
f'{self.name}',
'private_keys',
f'{client_id.Token._DeviceCertificate.SystemId}',
f'{str(key.n)[:10]}'
)
if not os.path.exists(save_dir):
os.makedirs(save_dir)
with open(os.path.join(save_dir, 'client_id.bin'), 'wb+') as writer:
writer.write(client_id.SerializeToString())
with open(os.path.join(save_dir, 'private_key.pem'), 'wb+') as writer:
writer.write(key.exportKey('PEM'))
self.logger.info('Key pairs saved at %s', save_dir)
def on_message(self, msg, data):
if 'payload' in msg:
if msg['payload'] == 'private_key':
key = RSA.import_key(data)
if key.n not in self.saved_keys:
self.logger.debug(
'Retrieved key: \n\n%s\n',
key.export_key().decode("utf-8")
)
self.saved_keys[key.n] = key
elif msg['payload'] == 'device_info':
self.license_request_message(data)
elif msg['payload'] == 'message_info':
self.logger.info(data.decode())
def license_request_message(self, data):
self.logger.debug(
'Retrieved build info: \n\n%s\n',
base64.b64encode(data).decode('utf-8')
)
root = SignedLicenseRequest()
root.ParseFromString(data)
public_key = root.Msg.ClientId.Token._DeviceCertificate.PublicKey
key = RSA.importKey(public_key)
cur = self.saved_keys.get(key.n)
if cur is not None:
self.export_key(cur, root.Msg.ClientId)
def find_widevine_process(self, process_name):
process = self.usb_device.attach(process_name)
script = process.create_script(self.frida_script)
script.load()
loaded_modules = []
try:
for lib in self.widevine_libraries:
try:
loaded_modules.append(script.exports.getmodulebyname(lib))
except frida.core.RPCException as e:
# Hide the cases where the module cannot be found
continue
except Exception as e:
raise(e)
finally:
process.detach()
return loaded_modules
def hook_to_process(self, process, library):
session = self.usb_device.attach(process)
script = session.create_script(self.frida_script)
script.on('message', self.on_message)
script.load()
script.exports.hooklibfunctions(library)
return session
================================================
FILE: Helpers/script.js
================================================
const DYNAMIC_FUNCTION_NAME = '${DYNAMIC_FUNCTION_NAME}';
const CDM_VERSION = '${CDM_VERSION}';
// These strings are function names that have been succesfully dumped.
const KNOWN_DYNAMIC_FUNCTION_NAMES = [
'rnmsglvj',
'polorucp',
'kqzqahjq',
'pldrclfq',
'kgaitijd',
'dnvffnze',
'cwkfcplc',
'crhqcdet'
];
// The TextEncoder/Decoder API isn't supported so it has to be polyfilled.
// Taken from https://gist.github.com/Yaffle/5458286#file-textencodertextdecoder-js
function TextEncoder() {
}
TextEncoder.prototype.encode = function (string) {
var octets = [];
var length = string.length;
var i = 0;
while (i < length) {
var codePoint = string.codePointAt(i);
var c = 0;
var bits = 0;
if (codePoint <= 0x0000007F) {
c = 0;
bits = 0x00;
} else if (codePoint <= 0x000007FF) {
c = 6;
bits = 0xC0;
} else if (codePoint <= 0x0000FFFF) {
c = 12;
bits = 0xE0;
} else if (codePoint <= 0x001FFFFF) {
c = 18;
bits = 0xF0;
}
octets.push(bits | (codePoint >> c));
c -= 6;
while (c >= 0) {
octets.push(0x80 | ((codePoint >> c) & 0x3F));
c -= 6;
}
i += codePoint >= 0x10000 ? 2 : 1;
}
return octets;
}
function getPrivateKey(address) {
Interceptor.attach(ptr(address), {
onEnter: function (args) {
if (!args[6].isNull()) {
const size = args[6].toInt32();
if (size >= 1000 && size <= 2000 && !args[5].isNull()) {
const buf = args[5].readByteArray(size);
const bytes = new Uint8Array(buf);
// The first two bytes of the DER encoding are 0x30 and 0x82 (MII).
if (bytes[0] === 0x30 && bytes[1] === 0x82) {
try {
const binaryString = a2bs(bytes)
const keyLength = getKeyLength(binaryString);
const key = bytes.slice(0, keyLength);
send('private_key', key);
} catch (error) {
console.log(error)
}
}
}
}
}
});
}
// nop privacy mode.
// PrivacyMode encrypts the payload with the public key returned by the license server which we don't want.
function disablePrivacyMode(address) {
Interceptor.attach(address, {
onLeave: function (retval) {
retval.replace(ptr(0));
}
});
}
function prepareKeyRequest(address) {
Interceptor.attach(ptr(address), {
onEnter: function (args) {
switch (CDM_VERSION) {
case '14.0.0':
case '15.0.0':
case '16.0.0':
this.ret = args[4];
break;
case '16.1.0':
case '17.0.0':
this.ret = args[5];
break;
default:
const message = 'Defaulting to args[4] for PrepareKeyRequest.'
send('message_info', new TextEncoder().encode(message));
this.ret = args[4];
break;
}
},
onLeave: function () {
if (this.ret) {
const size = Memory.readU32(ptr(this.ret).add(Process.pointerSize))
const arr = Memory.readByteArray(this.ret.add(Process.pointerSize * 2).readPointer(), size)
send('device_info', arr);
}
}
});
}
function hookLibFunctions(lib) {
const name = lib['name'];
const baseAddr = lib['base'];
let message = 'Hooking ' + name + ' at ' + baseAddr;
let hookedProvidedModule = false;
let funcNames = [];
send('message_info', new TextEncoder().encode(message));
Module.enumerateExportsSync(name).forEach(function (module) {
try {
let hookedModule;
if (module.name.includes('UsePrivacyMode')) {
disablePrivacyMode(module.address);
hookedModule = module.name;
} else if (module.name.includes('PrepareKeyRequest')) {
prepareKeyRequest(module.address);
hookedModule = module.name;
} else if (DYNAMIC_FUNCTION_NAME !== '' && module.name.includes(DYNAMIC_FUNCTION_NAME)) {
getPrivateKey(module.address);
hookedModule = module.name;
hookedProvidedModule = true;
} else if (DYNAMIC_FUNCTION_NAME === '' && module.name.match(/^[a-z]+$/)) {
getPrivateKey(module.address);
hookedModule = module.name;
funcNames.push(hookedModule);
}
if (hookedModule) {
const message = 'Hooked ' + hookedModule + ' at ' + module.address;
send('message_info', new TextEncoder().encode(message));
}
} catch (e) {
console.log("Error: " + e + " at F: " + module.name);
}
});
if (DYNAMIC_FUNCTION_NAME !== '' && !hookedProvidedModule) {
const message = "Unable to find '" + DYNAMIC_FUNCTION_NAME + "'";
send('message_info', new TextEncoder().encode(message));
}
if (DYNAMIC_FUNCTION_NAME === '') {
const possibleFuncNames = KNOWN_DYNAMIC_FUNCTION_NAMES.filter(x => funcNames.includes(x));
if (possibleFuncNames.length) {
message = "Your function name is most likely: " + "'" + possibleFuncNames.join('\', \'') + "'";
send('message_info', new TextEncoder().encode(message));
}
}
}
function getModuleByName(lib) {
return Process.getModuleByName(lib);
}
function a2bs(bytes) {
let b = '';
for (let i = 0; i < bytes.byteLength; i++)
b += String.fromCharCode(bytes[i]);
return b
}
function getKeyLength(key) {
let pos = 1 // Skip the tag
let buf = key.charCodeAt(pos++);
let len = buf & 0x7F; // Short tag length
buf = 0;
for (let i = 0; i < len; ++i)
buf = (buf * 256) + key.charCodeAt(pos++);
return pos + Math.abs(buf);
}
rpc.exports.hooklibfunctions = hookLibFunctions;
rpc.exports.getmodulebyname = getModuleByName;
================================================
FILE: Helpers/wv_proto2_pb2.py
================================================
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: pywidevine/cdm/formats/wv_proto2.proto
import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor(
name='pywidevine/cdm/formats/wv_proto2.proto',
package='',
syntax='proto2',
serialized_pb=_b('\n&pywidevine/cdm/formats/wv_proto2.proto\"\xe7\x05\n\x14\x43lientIdentification\x12-\n\x04Type\x18\x01 \x02(\x0e\x32\x1f.ClientIdentification.TokenType\x12\'\n\x05Token\x18\x02 \x01(\x0b\x32\x18.SignedDeviceCertificate\x12\x33\n\nClientInfo\x18\x03 \x03(\x0b\x32\x1f.ClientIdentification.NameValue\x12\x1b\n\x13ProviderClientToken\x18\x04 \x01(\x0c\x12\x16\n\x0eLicenseCounter\x18\x05 \x01(\r\x12\x45\n\x13_ClientCapabilities\x18\x06 \x01(\x0b\x32(.ClientIdentification.ClientCapabilities\x12 \n\x0b_FileHashes\x18\x07 \x01(\x0b\x32\x0b.FileHashes\x1a(\n\tNameValue\x12\x0c\n\x04Name\x18\x01 \x02(\t\x12\r\n\x05Value\x18\x02 \x02(\t\x1a\xa4\x02\n\x12\x43lientCapabilities\x12\x13\n\x0b\x43lientToken\x18\x01 \x01(\r\x12\x14\n\x0cSessionToken\x18\x02 \x01(\r\x12\"\n\x1aVideoResolutionConstraints\x18\x03 \x01(\r\x12L\n\x0eMaxHdcpVersion\x18\x04 \x01(\x0e\x32\x34.ClientIdentification.ClientCapabilities.HdcpVersion\x12\x1b\n\x13OemCryptoApiVersion\x18\x05 \x01(\r\"T\n\x0bHdcpVersion\x12\r\n\tHDCP_NONE\x10\x00\x12\x0b\n\x07HDCP_V1\x10\x01\x12\x0b\n\x07HDCP_V2\x10\x02\x12\r\n\tHDCP_V2_1\x10\x03\x12\r\n\tHDCP_V2_2\x10\x04\"S\n\tTokenType\x12\n\n\x06KEYBOX\x10\x00\x12\x16\n\x12\x44\x45VICE_CERTIFICATE\x10\x01\x12\"\n\x1eREMOTE_ATTESTATION_CERTIFICATE\x10\x02\"\x9b\x02\n\x11\x44\x65viceCertificate\x12\x30\n\x04Type\x18\x01 \x02(\x0e\x32\".DeviceCertificate.CertificateType\x12\x14\n\x0cSerialNumber\x18\x02 \x01(\x0c\x12\x1b\n\x13\x43reationTimeSeconds\x18\x03 \x01(\r\x12\x11\n\tPublicKey\x18\x04 \x01(\x0c\x12\x10\n\x08SystemId\x18\x05 \x01(\r\x12\x1c\n\x14TestDeviceDeprecated\x18\x06 \x01(\r\x12\x11\n\tServiceId\x18\x07 \x01(\x0c\"K\n\x0f\x43\x65rtificateType\x12\x08\n\x04ROOT\x10\x00\x12\x10\n\x0cINTERMEDIATE\x10\x01\x12\x0f\n\x0bUSER_DEVICE\x10\x02\x12\x0b\n\x07SERVICE\x10\x03\"\xc4\x01\n\x17\x44\x65viceCertificateStatus\x12\x14\n\x0cSerialNumber\x18\x01 \x01(\x0c\x12:\n\x06Status\x18\x02 \x01(\x0e\x32*.DeviceCertificateStatus.CertificateStatus\x12*\n\nDeviceInfo\x18\x04 \x01(\x0b\x32\x16.ProvisionedDeviceInfo\"+\n\x11\x43\x65rtificateStatus\x12\t\n\x05VALID\x10\x00\x12\x0b\n\x07REVOKED\x10\x01\"o\n\x1b\x44\x65viceCertificateStatusList\x12\x1b\n\x13\x43reationTimeSeconds\x18\x01 \x01(\r\x12\x33\n\x11\x43\x65rtificateStatus\x18\x02 \x03(\x0b\x32\x18.DeviceCertificateStatus\"\xaf\x01\n\x1d\x45ncryptedClientIdentification\x12\x11\n\tServiceId\x18\x01 \x02(\t\x12&\n\x1eServiceCertificateSerialNumber\x18\x02 \x01(\x0c\x12\x19\n\x11\x45ncryptedClientId\x18\x03 \x02(\x0c\x12\x1b\n\x13\x45ncryptedClientIdIv\x18\x04 \x02(\x0c\x12\x1b\n\x13\x45ncryptedPrivacyKey\x18\x05 \x02(\x0c\"\x9c\x01\n\x15LicenseIdentification\x12\x11\n\tRequestId\x18\x01 \x01(\x0c\x12\x11\n\tSessionId\x18\x02 \x01(\x0c\x12\x12\n\nPurchaseId\x18\x03 \x01(\x0c\x12\x1a\n\x04Type\x18\x04 \x01(\x0e\x32\x0c.LicenseType\x12\x0f\n\x07Version\x18\x05 \x01(\r\x12\x1c\n\x14ProviderSessionToken\x18\x06 \x01(\x0c\"\xa1\x0e\n\x07License\x12\"\n\x02Id\x18\x01 \x01(\x0b\x32\x16.LicenseIdentification\x12 \n\x07_Policy\x18\x02 \x01(\x0b\x32\x0f.License.Policy\x12\"\n\x03Key\x18\x03 \x03(\x0b\x32\x15.License.KeyContainer\x12\x18\n\x10LicenseStartTime\x18\x04 \x01(\r\x12!\n\x19RemoteAttestationVerified\x18\x05 \x01(\r\x12\x1b\n\x13ProviderClientToken\x18\x06 \x01(\x0c\x12\x18\n\x10ProtectionScheme\x18\x07 \x01(\r\x1a\xbb\x02\n\x06Policy\x12\x0f\n\x07\x43\x61nPlay\x18\x01 \x01(\x08\x12\x12\n\nCanPersist\x18\x02 \x01(\x08\x12\x10\n\x08\x43\x61nRenew\x18\x03 \x01(\x08\x12\x1d\n\x15RentalDurationSeconds\x18\x04 \x01(\r\x12\x1f\n\x17PlaybackDurationSeconds\x18\x05 \x01(\r\x12\x1e\n\x16LicenseDurationSeconds\x18\x06 \x01(\r\x12&\n\x1eRenewalRecoveryDurationSeconds\x18\x07 \x01(\r\x12\x18\n\x10RenewalServerUrl\x18\x08 \x01(\t\x12\x1b\n\x13RenewalDelaySeconds\x18\t \x01(\r\x12#\n\x1bRenewalRetryIntervalSeconds\x18\n \x01(\r\x12\x16\n\x0eRenewWithUsage\x18\x0b \x01(\x08\x1a\xf9\t\n\x0cKeyContainer\x12\n\n\x02Id\x18\x01 \x01(\x0c\x12\n\n\x02Iv\x18\x02 \x01(\x0c\x12\x0b\n\x03Key\x18\x03 \x01(\x0c\x12+\n\x04Type\x18\x04 \x01(\x0e\x32\x1d.License.KeyContainer.KeyType\x12\x32\n\x05Level\x18\x05 \x01(\x0e\x32#.License.KeyContainer.SecurityLevel\x12\x42\n\x12RequiredProtection\x18\x06 \x01(\x0b\x32&.License.KeyContainer.OutputProtection\x12\x43\n\x13RequestedProtection\x18\x07 \x01(\x0b\x32&.License.KeyContainer.OutputProtection\x12\x35\n\x0b_KeyControl\x18\x08 \x01(\x0b\x32 .License.KeyContainer.KeyControl\x12[\n\x1e_OperatorSessionKeyPermissions\x18\t \x01(\x0b\x32\x33.License.KeyContainer.OperatorSessionKeyPermissions\x12S\n\x1aVideoResolutionConstraints\x18\n \x03(\x0b\x32/.License.KeyContainer.VideoResolutionConstraint\x1a\xdb\x01\n\x10OutputProtection\x12\x42\n\x04Hdcp\x18\x01 \x01(\x0e\x32\x34.ClientIdentification.ClientCapabilities.HdcpVersion\x12>\n\tCgmsFlags\x18\x02 \x01(\x0e\x32+.License.KeyContainer.OutputProtection.CGMS\"C\n\x04\x43GMS\x12\r\n\tCOPY_FREE\x10\x00\x12\r\n\tCOPY_ONCE\x10\x02\x12\x0e\n\nCOPY_NEVER\x10\x03\x12\r\n\tCGMS_NONE\x10*\x1a\x31\n\nKeyControl\x12\x17\n\x0fKeyControlBlock\x18\x01 \x02(\x0c\x12\n\n\x02Iv\x18\x02 \x02(\x0c\x1a|\n\x1dOperatorSessionKeyPermissions\x12\x14\n\x0c\x41llowEncrypt\x18\x01 \x01(\r\x12\x14\n\x0c\x41llowDecrypt\x18\x02 \x01(\r\x12\x11\n\tAllowSign\x18\x03 \x01(\r\x12\x1c\n\x14\x41llowSignatureVerify\x18\x04 \x01(\r\x1a\x99\x01\n\x19VideoResolutionConstraint\x12\x1b\n\x13MinResolutionPixels\x18\x01 \x01(\r\x12\x1b\n\x13MaxResolutionPixels\x18\x02 \x01(\r\x12\x42\n\x12RequiredProtection\x18\x03 \x01(\x0b\x32&.License.KeyContainer.OutputProtection\"J\n\x07KeyType\x12\x0b\n\x07SIGNING\x10\x01\x12\x0b\n\x07\x43ONTENT\x10\x02\x12\x0f\n\x0bKEY_CONTROL\x10\x03\x12\x14\n\x10OPERATOR_SESSION\x10\x04\"z\n\rSecurityLevel\x12\x14\n\x10SW_SECURE_CRYPTO\x10\x01\x12\x14\n\x10SW_SECURE_DECODE\x10\x02\x12\x14\n\x10HW_SECURE_CRYPTO\x10\x03\x12\x14\n\x10HW_SECURE_DECODE\x10\x04\x12\x11\n\rHW_SECURE_ALL\x10\x05\"\x98\x01\n\x0cLicenseError\x12&\n\tErrorCode\x18\x01 \x01(\x0e\x32\x13.LicenseError.Error\"`\n\x05\x45rror\x12\x1e\n\x1aINVALID_DEVICE_CERTIFICATE\x10\x01\x12\x1e\n\x1aREVOKED_DEVICE_CERTIFICATE\x10\x02\x12\x17\n\x13SERVICE_UNAVAILABLE\x10\x03\"\xac\x07\n\x0eLicenseRequest\x12\'\n\x08\x43lientId\x18\x01 \x01(\x0b\x32\x15.ClientIdentification\x12\x38\n\tContentId\x18\x02 \x01(\x0b\x32%.LicenseRequest.ContentIdentification\x12)\n\x04Type\x18\x03 \x01(\x0e\x32\x1b.LicenseRequest.RequestType\x12\x13\n\x0bRequestTime\x18\x04 \x01(\r\x12!\n\x19KeyControlNonceDeprecated\x18\x05 \x01(\x0c\x12)\n\x0fProtocolVersion\x18\x06 \x01(\x0e\x32\x10.ProtocolVersion\x12\x17\n\x0fKeyControlNonce\x18\x07 \x01(\r\x12\x39\n\x11\x45ncryptedClientId\x18\x08 \x01(\x0b\x32\x1e.EncryptedClientIdentification\x1a\xa2\x04\n\x15\x43ontentIdentification\x12:\n\x06\x43\x65ncId\x18\x01 \x01(\x0b\x32*.LicenseRequest.ContentIdentification.CENC\x12:\n\x06WebmId\x18\x02 \x01(\x0b\x32*.LicenseRequest.ContentIdentification.WebM\x12\x46\n\x07License\x18\x03 \x01(\x0b\x32\x35.LicenseRequest.ContentIdentification.ExistingLicense\x1a_\n\x04\x43\x45NC\x12!\n\x04Pssh\x18\x01 \x01(\x0b\x32\x13.WidevineCencHeader\x12!\n\x0bLicenseType\x18\x02 \x01(\x0e\x32\x0c.LicenseType\x12\x11\n\tRequestId\x18\x03 \x01(\x0c\x1aL\n\x04WebM\x12\x0e\n\x06Header\x18\x01 \x01(\x0c\x12!\n\x0bLicenseType\x18\x02 \x01(\x0e\x32\x0c.LicenseType\x12\x11\n\tRequestId\x18\x03 \x01(\x0c\x1a\x99\x01\n\x0f\x45xistingLicense\x12)\n\tLicenseId\x18\x01 \x01(\x0b\x32\x16.LicenseIdentification\x12\x1b\n\x13SecondsSinceStarted\x18\x02 \x01(\r\x12\x1e\n\x16SecondsSinceLastPlayed\x18\x03 \x01(\r\x12\x1e\n\x16SessionUsageTableEntry\x18\x04 \x01(\x0c\"0\n\x0bRequestType\x12\x07\n\x03NEW\x10\x01\x12\x0b\n\x07RENEWAL\x10\x02\x12\x0b\n\x07RELEASE\x10\x03\"\xa9\x07\n\x11LicenseRequestRaw\x12\'\n\x08\x43lientId\x18\x01 \x01(\x0b\x32\x15.ClientIdentification\x12;\n\tContentId\x18\x02 \x01(\x0b\x32(.LicenseRequestRaw.ContentIdentification\x12,\n\x04Type\x18\x03 \x01(\x0e\x32\x1e.LicenseRequestRaw.RequestType\x12\x13\n\x0bRequestTime\x18\x04 \x01(\r\x12!\n\x19KeyControlNonceDeprecated\x18\x05 \x01(\x0c\x12)\n\x0fProtocolVersion\x18\x06 \x01(\x0e\x32\x10.ProtocolVersion\x12\x17\n\x0fKeyControlNonce\x18\x07 \x01(\r\x12\x39\n\x11\x45ncryptedClientId\x18\x08 \x01(\x0b\x32\x1e.EncryptedClientIdentification\x1a\x96\x04\n\x15\x43ontentIdentification\x12=\n\x06\x43\x65ncId\x18\x01 \x01(\x0b\x32-.LicenseRequestRaw.ContentIdentification.CENC\x12=\n\x06WebmId\x18\x02 \x01(\x0b\x32-.LicenseRequestRaw.ContentIdentification.WebM\x12I\n\x07License\x18\x03 \x01(\x0b\x32\x38.LicenseRequestRaw.ContentIdentification.ExistingLicense\x1aJ\n\x04\x43\x45NC\x12\x0c\n\x04Pssh\x18\x01 \x01(\x0c\x12!\n\x0bLicenseType\x18\x02 \x01(\x0e\x32\x0c.LicenseType\x12\x11\n\tRequestId\x18\x03 \x01(\x0c\x1aL\n\x04WebM\x12\x0e\n\x06Header\x18\x01 \x01(\x0c\x12!\n\x0bLicenseType\x18\x02 \x01(\x0e\x32\x0c.LicenseType\x12\x11\n\tRequestId\x18\x03 \x01(\x0c\x1a\x99\x01\n\x0f\x45xistingLicense\x12)\n\tLicenseId\x18\x01 \x01(\x0b\x32\x16.LicenseIdentification\x12\x1b\n\x13SecondsSinceStarted\x18\x02 \x01(\r\x12\x1e\n\x16SecondsSinceLastPlayed\x18\x03 \x01(\r\x12\x1e\n\x16SessionUsageTableEntry\x18\x04 \x01(\x0c\"0\n\x0bRequestType\x12\x07\n\x03NEW\x10\x01\x12\x0b\n\x07RENEWAL\x10\x02\x12\x0b\n\x07RELEASE\x10\x03\"\xa6\x02\n\x15ProvisionedDeviceInfo\x12\x10\n\x08SystemId\x18\x01 \x01(\r\x12\x0b\n\x03Soc\x18\x02 \x01(\t\x12\x14\n\x0cManufacturer\x18\x03 \x01(\t\x12\r\n\x05Model\x18\x04 \x01(\t\x12\x12\n\nDeviceType\x18\x05 \x01(\t\x12\x11\n\tModelYear\x18\x06 \x01(\r\x12=\n\rSecurityLevel\x18\x07 \x01(\x0e\x32&.ProvisionedDeviceInfo.WvSecurityLevel\x12\x12\n\nTestDevice\x18\x08 \x01(\r\"O\n\x0fWvSecurityLevel\x12\x15\n\x11LEVEL_UNSPECIFIED\x10\x00\x12\x0b\n\x07LEVEL_1\x10\x01\x12\x0b\n\x07LEVEL_2\x10\x02\x12\x0b\n\x07LEVEL_3\x10\x03\"\x15\n\x13ProvisioningOptions\"\x15\n\x13ProvisioningRequest\"\x16\n\x14ProvisioningResponse\"i\n\x11RemoteAttestation\x12\x33\n\x0b\x43\x65rtificate\x18\x01 \x01(\x0b\x32\x1e.EncryptedClientIdentification\x12\x0c\n\x04Salt\x18\x02 \x01(\t\x12\x11\n\tSignature\x18\x03 \x01(\t\"\r\n\x0bSessionInit\"\x0e\n\x0cSessionState\"\x1d\n\x1bSignedCertificateStatusList\"\x86\x01\n\x17SignedDeviceCertificate\x12.\n\x12_DeviceCertificate\x18\x01 \x01(\x0b\x32\x12.DeviceCertificate\x12\x11\n\tSignature\x18\x02 \x01(\x0c\x12(\n\x06Signer\x18\x03 \x01(\x0b\x32\x18.SignedDeviceCertificate\"\x1b\n\x19SignedProvisioningMessage\"\x9b\x02\n\rSignedMessage\x12(\n\x04Type\x18\x01 \x01(\x0e\x32\x1a.SignedMessage.MessageType\x12\x0b\n\x03Msg\x18\x02 \x01(\x0c\x12\x11\n\tSignature\x18\x03 \x01(\x0c\x12\x12\n\nSessionKey\x18\x04 \x01(\x0c\x12-\n\x11RemoteAttestation\x18\x05 \x01(\x0b\x32\x12.RemoteAttestation\"}\n\x0bMessageType\x12\x13\n\x0fLICENSE_REQUEST\x10\x01\x12\x0b\n\x07LICENSE\x10\x02\x12\x12\n\x0e\x45RROR_RESPONSE\x10\x03\x12\x1f\n\x1bSERVICE_CERTIFICATE_REQUEST\x10\x04\x12\x17\n\x13SERVICE_CERTIFICATE\x10\x05\"\xc5\x02\n\x12WidevineCencHeader\x12\x30\n\talgorithm\x18\x01 \x01(\x0e\x32\x1d.WidevineCencHeader.Algorithm\x12\x0e\n\x06key_id\x18\x02 \x03(\x0c\x12\x10\n\x08provider\x18\x03 \x01(\t\x12\x12\n\ncontent_id\x18\x04 \x01(\x0c\x12\x1d\n\x15track_type_deprecated\x18\x05 \x01(\t\x12\x0e\n\x06policy\x18\x06 \x01(\t\x12\x1b\n\x13\x63rypto_period_index\x18\x07 \x01(\r\x12\x17\n\x0fgrouped_license\x18\x08 \x01(\x0c\x12\x19\n\x11protection_scheme\x18\t \x01(\r\x12\x1d\n\x15\x63rypto_period_seconds\x18\n \x01(\r\"(\n\tAlgorithm\x12\x0f\n\x0bUNENCRYPTED\x10\x00\x12\n\n\x06\x41\x45SCTR\x10\x01\"\xba\x02\n\x14SignedLicenseRequest\x12/\n\x04Type\x18\x01 \x01(\x0e\x32!.SignedLicenseRequest.MessageType\x12\x1c\n\x03Msg\x18\x02 \x01(\x0b\x32\x0f.LicenseRequest\x12\x11\n\tSignature\x18\x03 \x01(\x0c\x12\x12\n\nSessionKey\x18\x04 \x01(\x0c\x12-\n\x11RemoteAttestation\x18\x05 \x01(\x0b\x32\x12.RemoteAttestation\"}\n\x0bMessageType\x12\x13\n\x0fLICENSE_REQUEST\x10\x01\x12\x0b\n\x07LICENSE\x10\x02\x12\x12\n\x0e\x45RROR_RESPONSE\x10\x03\x12\x1f\n\x1bSERVICE_CERTIFICATE_REQUEST\x10\x04\x12\x17\n\x13SERVICE_CERTIFICATE\x10\x05\"\xc3\x02\n\x17SignedLicenseRequestRaw\x12\x32\n\x04Type\x18\x01 \x01(\x0e\x32$.SignedLicenseRequestRaw.MessageType\x12\x1f\n\x03Msg\x18\x02 \x01(\x0b\x32\x12.LicenseRequestRaw\x12\x11\n\tSignature\x18\x03 \x01(\x0c\x12\x12\n\nSessionKey\x18\x04 \x01(\x0c\x12-\n\x11RemoteAttestation\x18\x05 \x01(\x0b\x32\x12.RemoteAttestation\"}\n\x0bMessageType\x12\x13\n\x0fLICENSE_REQUEST\x10\x01\x12\x0b\n\x07LICENSE\x10\x02\x12\x12\n\x0e\x45RROR_RESPONSE\x10\x03\x12\x1f\n\x1bSERVICE_CERTIFICATE_REQUEST\x10\x04\x12\x17\n\x13SERVICE_CERTIFICATE\x10\x05\"\xa5\x02\n\rSignedLicense\x12(\n\x04Type\x18\x01 \x01(\x0e\x32\x1a.SignedLicense.MessageType\x12\x15\n\x03Msg\x18\x02 \x01(\x0b\x32\x08.License\x12\x11\n\tSignature\x18\x03 \x01(\x0c\x12\x12\n\nSessionKey\x18\x04 \x01(\x0c\x12-\n\x11RemoteAttestation\x18\x05 \x01(\x0b\x32\x12.RemoteAttestation\"}\n\x0bMessageType\x12\x13\n\x0fLICENSE_REQUEST\x10\x01\x12\x0b\n\x07LICENSE\x10\x02\x12\x12\n\x0e\x45RROR_RESPONSE\x10\x03\x12\x1f\n\x1bSERVICE_CERTIFICATE_REQUEST\x10\x04\x12\x17\n\x13SERVICE_CERTIFICATE\x10\x05\"\xcb\x02\n\x18SignedServiceCertificate\x12\x33\n\x04Type\x18\x01 \x01(\x0e\x32%.SignedServiceCertificate.MessageType\x12%\n\x03Msg\x18\x02 \x01(\x0b\x32\x18.SignedDeviceCertificate\x12\x11\n\tSignature\x18\x03 \x01(\x0c\x12\x12\n\nSessionKey\x18\x04 \x01(\x0c\x12-\n\x11RemoteAttestation\x18\x05 \x01(\x0b\x32\x12.RemoteAttestation\"}\n\x0bMessageType\x12\x13\n\x0fLICENSE_REQUEST\x10\x01\x12\x0b\n\x07LICENSE\x10\x02\x12\x12\n\x0e\x45RROR_RESPONSE\x10\x03\x12\x1f\n\x1bSERVICE_CERTIFICATE_REQUEST\x10\x04\x12\x17\n\x13SERVICE_CERTIFICATE\x10\x05\"\xb5\x01\n\nFileHashes\x12\x0e\n\x06signer\x18\x01 \x01(\x0c\x12)\n\nsignatures\x18\x02 \x03(\x0b\x32\x15.FileHashes.Signature\x1al\n\tSignature\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x14\n\x0ctest_signing\x18\x02 \x01(\x08\x12\x12\n\nSHA512Hash\x18\x03 \x01(\x0c\x12\x10\n\x08main_exe\x18\x04 \x01(\x08\x12\x11\n\tsignature\x18\x05 \x01(\x0c*1\n\x0bLicenseType\x12\x08\n\x04ZERO\x10\x00\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x01\x12\x0b\n\x07OFFLINE\x10\x02*\x1e\n\x0fProtocolVersion\x12\x0b\n\x07\x43URRENT\x10\x15')
)
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
_LICENSETYPE = _descriptor.EnumDescriptor(
name='LicenseType',
full_name='LicenseType',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='ZERO', index=0, number=0,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='DEFAULT', index=1, number=1,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='OFFLINE', index=2, number=2,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=8362,
serialized_end=8411,
)
_sym_db.RegisterEnumDescriptor(_LICENSETYPE)
LicenseType = enum_type_wrapper.EnumTypeWrapper(_LICENSETYPE)
_PROTOCOLVERSION = _descriptor.EnumDescriptor(
name='ProtocolVersion',
full_name='ProtocolVersion',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='CURRENT', index=0, number=21,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=8413,
serialized_end=8443,
)
_sym_db.RegisterEnumDescriptor(_PROTOCOLVERSION)
ProtocolVersion = enum_type_wrapper.EnumTypeWrapper(_PROTOCOLVERSION)
ZERO = 0
DEFAULT = 1
OFFLINE = 2
CURRENT = 21
_CLIENTIDENTIFICATION_CLIENTCAPABILITIES_HDCPVERSION = _descriptor.EnumDescriptor(
name='HdcpVersion',
full_name='ClientIdentification.ClientCapabilities.HdcpVersion',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='HDCP_NONE', index=0, number=0,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='HDCP_V1', index=1, number=1,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='HDCP_V2', index=2, number=2,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='HDCP_V2_1', index=3, number=3,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='HDCP_V2_2', index=4, number=4,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=617,
serialized_end=701,
)
_sym_db.RegisterEnumDescriptor(_CLIENTIDENTIFICATION_CLIENTCAPABILITIES_HDCPVERSION)
_CLIENTIDENTIFICATION_TOKENTYPE = _descriptor.EnumDescriptor(
name='TokenType',
full_name='ClientIdentification.TokenType',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='KEYBOX', index=0, number=0,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='DEVICE_CERTIFICATE', index=1, number=1,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='REMOTE_ATTESTATION_CERTIFICATE', index=2, number=2,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=703,
serialized_end=786,
)
_sym_db.RegisterEnumDescriptor(_CLIENTIDENTIFICATION_TOKENTYPE)
_DEVICECERTIFICATE_CERTIFICATETYPE = _descriptor.EnumDescriptor(
name='CertificateType',
full_name='DeviceCertificate.CertificateType',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='ROOT', index=0, number=0,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='INTERMEDIATE', index=1, number=1,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='USER_DEVICE', index=2, number=2,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='SERVICE', index=3, number=3,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=997,
serialized_end=1072,
)
_sym_db.RegisterEnumDescriptor(_DEVICECERTIFICATE_CERTIFICATETYPE)
_DEVICECERTIFICATESTATUS_CERTIFICATESTATUS = _descriptor.EnumDescriptor(
name='CertificateStatus',
full_name='DeviceCertificateStatus.CertificateStatus',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='VALID', index=0, number=0,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='REVOKED', index=1, number=1,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=1228,
serialized_end=1271,
)
_sym_db.RegisterEnumDescriptor(_DEVICECERTIFICATESTATUS_CERTIFICATESTATUS)
_LICENSE_KEYCONTAINER_OUTPUTPROTECTION_CGMS = _descriptor.EnumDescriptor(
name='CGMS',
full_name='License.KeyContainer.OutputProtection.CGMS',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='COPY_FREE', index=0, number=0,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='COPY_ONCE', index=1, number=2,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='COPY_NEVER', index=2, number=3,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='CGMS_NONE', index=3, number=42,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=2949,
serialized_end=3016,
)
_sym_db.RegisterEnumDescriptor(_LICENSE_KEYCONTAINER_OUTPUTPROTECTION_CGMS)
_LICENSE_KEYCONTAINER_KEYTYPE = _descriptor.EnumDescriptor(
name='KeyType',
full_name='License.KeyContainer.KeyType',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='SIGNING', index=0, number=1,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='CONTENT', index=1, number=2,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='KEY_CONTROL', index=2, number=3,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='OPERATOR_SESSION', index=3, number=4,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=3351,
serialized_end=3425,
)
_sym_db.RegisterEnumDescriptor(_LICENSE_KEYCONTAINER_KEYTYPE)
_LICENSE_KEYCONTAINER_SECURITYLEVEL = _descriptor.EnumDescriptor(
name='SecurityLevel',
full_name='License.KeyContainer.SecurityLevel',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='SW_SECURE_CRYPTO', index=0, number=1,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='SW_SECURE_DECODE', index=1, number=2,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='HW_SECURE_CRYPTO', index=2, number=3,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='HW_SECURE_DECODE', index=3, number=4,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='HW_SECURE_ALL', index=4, number=5,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=3427,
serialized_end=3549,
)
_sym_db.RegisterEnumDescriptor(_LICENSE_KEYCONTAINER_SECURITYLEVEL)
_LICENSEERROR_ERROR = _descriptor.EnumDescriptor(
name='Error',
full_name='LicenseError.Error',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='INVALID_DEVICE_CERTIFICATE', index=0, number=1,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='REVOKED_DEVICE_CERTIFICATE', index=1, number=2,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='SERVICE_UNAVAILABLE', index=2, number=3,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=3608,
serialized_end=3704,
)
_sym_db.RegisterEnumDescriptor(_LICENSEERROR_ERROR)
_LICENSEREQUEST_REQUESTTYPE = _descriptor.EnumDescriptor(
name='RequestType',
full_name='LicenseRequest.RequestType',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='NEW', index=0, number=1,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='RENEWAL', index=1, number=2,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='RELEASE', index=2, number=3,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=4599,
serialized_end=4647,
)
_sym_db.RegisterEnumDescriptor(_LICENSEREQUEST_REQUESTTYPE)
_LICENSEREQUESTRAW_REQUESTTYPE = _descriptor.EnumDescriptor(
name='RequestType',
full_name='LicenseRequestRaw.RequestType',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='NEW', index=0, number=1,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='RENEWAL', index=1, number=2,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='RELEASE', index=2, number=3,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=4599,
serialized_end=4647,
)
_sym_db.RegisterEnumDescriptor(_LICENSEREQUESTRAW_REQUESTTYPE)
_PROVISIONEDDEVICEINFO_WVSECURITYLEVEL = _descriptor.EnumDescriptor(
name='WvSecurityLevel',
full_name='ProvisionedDeviceInfo.WvSecurityLevel',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='LEVEL_UNSPECIFIED', index=0, number=0,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='LEVEL_1', index=1, number=1,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='LEVEL_2', index=2, number=2,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='LEVEL_3', index=3, number=3,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=5805,
serialized_end=5884,
)
_sym_db.RegisterEnumDescriptor(_PROVISIONEDDEVICEINFO_WVSECURITYLEVEL)
_SIGNEDMESSAGE_MESSAGETYPE = _descriptor.EnumDescriptor(
name='MessageType',
full_name='SignedMessage.MessageType',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='LICENSE_REQUEST', index=0, number=1,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='LICENSE', index=1, number=2,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='ERROR_RESPONSE', index=2, number=3,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='SERVICE_CERTIFICATE_REQUEST', index=3, number=4,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='SERVICE_CERTIFICATE', index=4, number=5,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=6450,
serialized_end=6575,
)
_sym_db.RegisterEnumDescriptor(_SIGNEDMESSAGE_MESSAGETYPE)
_WIDEVINECENCHEADER_ALGORITHM = _descriptor.EnumDescriptor(
name='Algorithm',
full_name='WidevineCencHeader.Algorithm',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='UNENCRYPTED', index=0, number=0,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='AESCTR', index=1, number=1,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=6863,
serialized_end=6903,
)
_sym_db.RegisterEnumDescriptor(_WIDEVINECENCHEADER_ALGORITHM)
_SIGNEDLICENSEREQUEST_MESSAGETYPE = _descriptor.EnumDescriptor(
name='MessageType',
full_name='SignedLicenseRequest.MessageType',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='LICENSE_REQUEST', index=0, number=1,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='LICENSE', index=1, number=2,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='ERROR_RESPONSE', index=2, number=3,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='SERVICE_CERTIFICATE_REQUEST', index=3, number=4,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='SERVICE_CERTIFICATE', index=4, number=5,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=6450,
serialized_end=6575,
)
_sym_db.RegisterEnumDescriptor(_SIGNEDLICENSEREQUEST_MESSAGETYPE)
_SIGNEDLICENSEREQUESTRAW_MESSAGETYPE = _descriptor.EnumDescriptor(
name='MessageType',
full_name='SignedLicenseRequestRaw.MessageType',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='LICENSE_REQUEST', index=0, number=1,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='LICENSE', index=1, number=2,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='ERROR_RESPONSE', index=2, number=3,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='SERVICE_CERTIFICATE_REQUEST', index=3, number=4,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='SERVICE_CERTIFICATE', index=4, number=5,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=6450,
serialized_end=6575,
)
_sym_db.RegisterEnumDescriptor(_SIGNEDLICENSEREQUESTRAW_MESSAGETYPE)
_SIGNEDLICENSE_MESSAGETYPE = _descriptor.EnumDescriptor(
name='MessageType',
full_name='SignedLicense.MessageType',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='LICENSE_REQUEST', index=0, number=1,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='LICENSE', index=1, number=2,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='ERROR_RESPONSE', index=2, number=3,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='SERVICE_CERTIFICATE_REQUEST', index=3, number=4,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='SERVICE_CERTIFICATE', index=4, number=5,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=6450,
serialized_end=6575,
)
_sym_db.RegisterEnumDescriptor(_SIGNEDLICENSE_MESSAGETYPE)
_SIGNEDSERVICECERTIFICATE_MESSAGETYPE = _descriptor.EnumDescriptor(
name='MessageType',
full_name='SignedServiceCertificate.MessageType',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='LICENSE_REQUEST', index=0, number=1,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='LICENSE', index=1, number=2,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='ERROR_RESPONSE', index=2, number=3,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='SERVICE_CERTIFICATE_REQUEST', index=3, number=4,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='SERVICE_CERTIFICATE', index=4, number=5,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=6450,
serialized_end=6575,
)
_sym_db.RegisterEnumDescriptor(_SIGNEDSERVICECERTIFICATE_MESSAGETYPE)
_CLIENTIDENTIFICATION_NAMEVALUE = _descriptor.Descriptor(
name='NameValue',
full_name='ClientIdentification.NameValue',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='Name', full_name='ClientIdentification.NameValue.Name', index=0,
number=1, type=9, cpp_type=9, label=2,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Value', full_name='ClientIdentification.NameValue.Value', index=1,
number=2, type=9, cpp_type=9, label=2,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=366,
serialized_end=406,
)
_CLIENTIDENTIFICATION_CLIENTCAPABILITIES = _descriptor.Descriptor(
name='ClientCapabilities',
full_name='ClientIdentification.ClientCapabilities',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='ClientToken', full_name='ClientIdentification.ClientCapabilities.ClientToken', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='SessionToken', full_name='ClientIdentification.ClientCapabilities.SessionToken', index=1,
number=2, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='VideoResolutionConstraints', full_name='ClientIdentification.ClientCapabilities.VideoResolutionConstraints', index=2,
number=3, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='MaxHdcpVersion', full_name='ClientIdentification.ClientCapabilities.MaxHdcpVersion', index=3,
number=4, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='OemCryptoApiVersion', full_name='ClientIdentification.ClientCapabilities.OemCryptoApiVersion', index=4,
number=5, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
_CLIENTIDENTIFICATION_CLIENTCAPABILITIES_HDCPVERSION,
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=409,
serialized_end=701,
)
_CLIENTIDENTIFICATION = _descriptor.Descriptor(
name='ClientIdentification',
full_name='ClientIdentification',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='Type', full_name='ClientIdentification.Type', index=0,
number=1, type=14, cpp_type=8, label=2,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Token', full_name='ClientIdentification.Token', index=1,
number=2, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='ClientInfo', full_name='ClientIdentification.ClientInfo', index=2,
number=3, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='ProviderClientToken', full_name='ClientIdentification.ProviderClientToken', index=3,
number=4, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='LicenseCounter', full_name='ClientIdentification.LicenseCounter', index=4,
number=5, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='_ClientCapabilities', full_name='ClientIdentification._ClientCapabilities', index=5,
number=6, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='_FileHashes', full_name='ClientIdentification._FileHashes', index=6,
number=7, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[_CLIENTIDENTIFICATION_NAMEVALUE, _CLIENTIDENTIFICATION_CLIENTCAPABILITIES, ],
enum_types=[
_CLIENTIDENTIFICATION_TOKENTYPE,
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=43,
serialized_end=786,
)
_DEVICECERTIFICATE = _descriptor.Descriptor(
name='DeviceCertificate',
full_name='DeviceCertificate',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='Type', full_name='DeviceCertificate.Type', index=0,
number=1, type=14, cpp_type=8, label=2,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='SerialNumber', full_name='DeviceCertificate.SerialNumber', index=1,
number=2, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='CreationTimeSeconds', full_name='DeviceCertificate.CreationTimeSeconds', index=2,
number=3, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='PublicKey', full_name='DeviceCertificate.PublicKey', index=3,
number=4, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='SystemId', full_name='DeviceCertificate.SystemId', index=4,
number=5, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='TestDeviceDeprecated', full_name='DeviceCertificate.TestDeviceDeprecated', index=5,
number=6, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='ServiceId', full_name='DeviceCertificate.ServiceId', index=6,
number=7, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
_DEVICECERTIFICATE_CERTIFICATETYPE,
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=789,
serialized_end=1072,
)
_DEVICECERTIFICATESTATUS = _descriptor.Descriptor(
name='DeviceCertificateStatus',
full_name='DeviceCertificateStatus',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='SerialNumber', full_name='DeviceCertificateStatus.SerialNumber', index=0,
number=1, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Status', full_name='DeviceCertificateStatus.Status', index=1,
number=2, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='DeviceInfo', full_name='DeviceCertificateStatus.DeviceInfo', index=2,
number=4, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
_DEVICECERTIFICATESTATUS_CERTIFICATESTATUS,
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1075,
serialized_end=1271,
)
_DEVICECERTIFICATESTATUSLIST = _descriptor.Descriptor(
name='DeviceCertificateStatusList',
full_name='DeviceCertificateStatusList',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='CreationTimeSeconds', full_name='DeviceCertificateStatusList.CreationTimeSeconds', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='CertificateStatus', full_name='DeviceCertificateStatusList.CertificateStatus', index=1,
number=2, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1273,
serialized_end=1384,
)
_ENCRYPTEDCLIENTIDENTIFICATION = _descriptor.Descriptor(
name='EncryptedClientIdentification',
full_name='EncryptedClientIdentification',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='ServiceId', full_name='EncryptedClientIdentification.ServiceId', index=0,
number=1, type=9, cpp_type=9, label=2,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='ServiceCertificateSerialNumber', full_name='EncryptedClientIdentification.ServiceCertificateSerialNumber', index=1,
number=2, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='EncryptedClientId', full_name='EncryptedClientIdentification.EncryptedClientId', index=2,
number=3, type=12, cpp_type=9, label=2,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='EncryptedClientIdIv', full_name='EncryptedClientIdentification.EncryptedClientIdIv', index=3,
number=4, type=12, cpp_type=9, label=2,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='EncryptedPrivacyKey', full_name='EncryptedClientIdentification.EncryptedPrivacyKey', index=4,
number=5, type=12, cpp_type=9, label=2,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1387,
serialized_end=1562,
)
_LICENSEIDENTIFICATION = _descriptor.Descriptor(
name='LicenseIdentification',
full_name='LicenseIdentification',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='RequestId', full_name='LicenseIdentification.RequestId', index=0,
number=1, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='SessionId', full_name='LicenseIdentification.SessionId', index=1,
number=2, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='PurchaseId', full_name='LicenseIdentification.PurchaseId', index=2,
number=3, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Type', full_name='LicenseIdentification.Type', index=3,
number=4, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Version', full_name='LicenseIdentification.Version', index=4,
number=5, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='ProviderSessionToken', full_name='LicenseIdentification.ProviderSessionToken', index=5,
number=6, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1565,
serialized_end=1721,
)
_LICENSE_POLICY = _descriptor.Descriptor(
name='Policy',
full_name='License.Policy',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='CanPlay', full_name='License.Policy.CanPlay', index=0,
number=1, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='CanPersist', full_name='License.Policy.CanPersist', index=1,
number=2, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='CanRenew', full_name='License.Policy.CanRenew', index=2,
number=3, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RentalDurationSeconds', full_name='License.Policy.RentalDurationSeconds', index=3,
number=4, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='PlaybackDurationSeconds', full_name='License.Policy.PlaybackDurationSeconds', index=4,
number=5, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='LicenseDurationSeconds', full_name='License.Policy.LicenseDurationSeconds', index=5,
number=6, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RenewalRecoveryDurationSeconds', full_name='License.Policy.RenewalRecoveryDurationSeconds', index=6,
number=7, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RenewalServerUrl', full_name='License.Policy.RenewalServerUrl', index=7,
number=8, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RenewalDelaySeconds', full_name='License.Policy.RenewalDelaySeconds', index=8,
number=9, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RenewalRetryIntervalSeconds', full_name='License.Policy.RenewalRetryIntervalSeconds', index=9,
number=10, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RenewWithUsage', full_name='License.Policy.RenewWithUsage', index=10,
number=11, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1958,
serialized_end=2273,
)
_LICENSE_KEYCONTAINER_OUTPUTPROTECTION = _descriptor.Descriptor(
name='OutputProtection',
full_name='License.KeyContainer.OutputProtection',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='Hdcp', full_name='License.KeyContainer.OutputProtection.Hdcp', index=0,
number=1, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='CgmsFlags', full_name='License.KeyContainer.OutputProtection.CgmsFlags', index=1,
number=2, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
_LICENSE_KEYCONTAINER_OUTPUTPROTECTION_CGMS,
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=2797,
serialized_end=3016,
)
_LICENSE_KEYCONTAINER_KEYCONTROL = _descriptor.Descriptor(
name='KeyControl',
full_name='License.KeyContainer.KeyControl',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='KeyControlBlock', full_name='License.KeyContainer.KeyControl.KeyControlBlock', index=0,
number=1, type=12, cpp_type=9, label=2,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Iv', full_name='License.KeyContainer.KeyControl.Iv', index=1,
number=2, type=12, cpp_type=9, label=2,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=3018,
serialized_end=3067,
)
_LICENSE_KEYCONTAINER_OPERATORSESSIONKEYPERMISSIONS = _descriptor.Descriptor(
name='OperatorSessionKeyPermissions',
full_name='License.KeyContainer.OperatorSessionKeyPermissions',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='AllowEncrypt', full_name='License.KeyContainer.OperatorSessionKeyPermissions.AllowEncrypt', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='AllowDecrypt', full_name='License.KeyContainer.OperatorSessionKeyPermissions.AllowDecrypt', index=1,
number=2, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='AllowSign', full_name='License.KeyContainer.OperatorSessionKeyPermissions.AllowSign', index=2,
number=3, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='AllowSignatureVerify', full_name='License.KeyContainer.OperatorSessionKeyPermissions.AllowSignatureVerify', index=3,
number=4, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=3069,
serialized_end=3193,
)
_LICENSE_KEYCONTAINER_VIDEORESOLUTIONCONSTRAINT = _descriptor.Descriptor(
name='VideoResolutionConstraint',
full_name='License.KeyContainer.VideoResolutionConstraint',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='MinResolutionPixels', full_name='License.KeyContainer.VideoResolutionConstraint.MinResolutionPixels', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='MaxResolutionPixels', full_name='License.KeyContainer.VideoResolutionConstraint.MaxResolutionPixels', index=1,
number=2, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RequiredProtection', full_name='License.KeyContainer.VideoResolutionConstraint.RequiredProtection', index=2,
number=3, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=3196,
serialized_end=3349,
)
_LICENSE_KEYCONTAINER = _descriptor.Descriptor(
name='KeyContainer',
full_name='License.KeyContainer',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='Id', full_name='License.KeyContainer.Id', index=0,
number=1, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Iv', full_name='License.KeyContainer.Iv', index=1,
number=2, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Key', full_name='License.KeyContainer.Key', index=2,
number=3, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Type', full_name='License.KeyContainer.Type', index=3,
number=4, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=1,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Level', full_name='License.KeyContainer.Level', index=4,
number=5, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=1,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RequiredProtection', full_name='License.KeyContainer.RequiredProtection', index=5,
number=6, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RequestedProtection', full_name='License.KeyContainer.RequestedProtection', index=6,
number=7, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='_KeyControl', full_name='License.KeyContainer._KeyControl', index=7,
number=8, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='_OperatorSessionKeyPermissions', full_name='License.KeyContainer._OperatorSessionKeyPermissions', index=8,
number=9, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='VideoResolutionConstraints', full_name='License.KeyContainer.VideoResolutionConstraints', index=9,
number=10, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[_LICENSE_KEYCONTAINER_OUTPUTPROTECTION, _LICENSE_KEYCONTAINER_KEYCONTROL, _LICENSE_KEYCONTAINER_OPERATORSESSIONKEYPERMISSIONS, _LICENSE_KEYCONTAINER_VIDEORESOLUTIONCONSTRAINT, ],
enum_types=[
_LICENSE_KEYCONTAINER_KEYTYPE,
_LICENSE_KEYCONTAINER_SECURITYLEVEL,
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=2276,
serialized_end=3549,
)
_LICENSE = _descriptor.Descriptor(
name='License',
full_name='License',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='Id', full_name='License.Id', index=0,
number=1, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='_Policy', full_name='License._Policy', index=1,
number=2, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Key', full_name='License.Key', index=2,
number=3, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='LicenseStartTime', full_name='License.LicenseStartTime', index=3,
number=4, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RemoteAttestationVerified', full_name='License.RemoteAttestationVerified', index=4,
number=5, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='ProviderClientToken', full_name='License.ProviderClientToken', index=5,
number=6, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='ProtectionScheme', full_name='License.ProtectionScheme', index=6,
number=7, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[_LICENSE_POLICY, _LICENSE_KEYCONTAINER, ],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=1724,
serialized_end=3549,
)
_LICENSEERROR = _descriptor.Descriptor(
name='LicenseError',
full_name='LicenseError',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='ErrorCode', full_name='LicenseError.ErrorCode', index=0,
number=1, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=1,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
_LICENSEERROR_ERROR,
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=3552,
serialized_end=3704,
)
_LICENSEREQUEST_CONTENTIDENTIFICATION_CENC = _descriptor.Descriptor(
name='CENC',
full_name='LicenseRequest.ContentIdentification.CENC',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='Pssh', full_name='LicenseRequest.ContentIdentification.CENC.Pssh', index=0,
number=1, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='LicenseType', full_name='LicenseRequest.ContentIdentification.CENC.LicenseType', index=1,
number=2, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RequestId', full_name='LicenseRequest.ContentIdentification.CENC.RequestId', index=2,
number=3, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=4268,
serialized_end=4363,
)
_LICENSEREQUEST_CONTENTIDENTIFICATION_WEBM = _descriptor.Descriptor(
name='WebM',
full_name='LicenseRequest.ContentIdentification.WebM',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='Header', full_name='LicenseRequest.ContentIdentification.WebM.Header', index=0,
number=1, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='LicenseType', full_name='LicenseRequest.ContentIdentification.WebM.LicenseType', index=1,
number=2, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RequestId', full_name='LicenseRequest.ContentIdentification.WebM.RequestId', index=2,
number=3, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=4365,
serialized_end=4441,
)
_LICENSEREQUEST_CONTENTIDENTIFICATION_EXISTINGLICENSE = _descriptor.Descriptor(
name='ExistingLicense',
full_name='LicenseRequest.ContentIdentification.ExistingLicense',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='LicenseId', full_name='LicenseRequest.ContentIdentification.ExistingLicense.LicenseId', index=0,
number=1, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='SecondsSinceStarted', full_name='LicenseRequest.ContentIdentification.ExistingLicense.SecondsSinceStarted', index=1,
number=2, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='SecondsSinceLastPlayed', full_name='LicenseRequest.ContentIdentification.ExistingLicense.SecondsSinceLastPlayed', index=2,
number=3, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='SessionUsageTableEntry', full_name='LicenseRequest.ContentIdentification.ExistingLicense.SessionUsageTableEntry', index=3,
number=4, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=4444,
serialized_end=4597,
)
_LICENSEREQUEST_CONTENTIDENTIFICATION = _descriptor.Descriptor(
name='ContentIdentification',
full_name='LicenseRequest.ContentIdentification',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='CencId', full_name='LicenseRequest.ContentIdentification.CencId', index=0,
number=1, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='WebmId', full_name='LicenseRequest.ContentIdentification.WebmId', index=1,
number=2, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='License', full_name='LicenseRequest.ContentIdentification.License', index=2,
number=3, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[_LICENSEREQUEST_CONTENTIDENTIFICATION_CENC, _LICENSEREQUEST_CONTENTIDENTIFICATION_WEBM, _LICENSEREQUEST_CONTENTIDENTIFICATION_EXISTINGLICENSE, ],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=4051,
serialized_end=4597,
)
_LICENSEREQUEST = _descriptor.Descriptor(
name='LicenseRequest',
full_name='LicenseRequest',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='ClientId', full_name='LicenseRequest.ClientId', index=0,
number=1, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='ContentId', full_name='LicenseRequest.ContentId', index=1,
number=2, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Type', full_name='LicenseRequest.Type', index=2,
number=3, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=1,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RequestTime', full_name='LicenseRequest.RequestTime', index=3,
number=4, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='KeyControlNonceDeprecated', full_name='LicenseRequest.KeyControlNonceDeprecated', index=4,
number=5, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='ProtocolVersion', full_name='LicenseRequest.ProtocolVersion', index=5,
number=6, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=21,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='KeyControlNonce', full_name='LicenseRequest.KeyControlNonce', index=6,
number=7, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='EncryptedClientId', full_name='LicenseRequest.EncryptedClientId', index=7,
number=8, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[_LICENSEREQUEST_CONTENTIDENTIFICATION, ],
enum_types=[
_LICENSEREQUEST_REQUESTTYPE,
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=3707,
serialized_end=4647,
)
_LICENSEREQUESTRAW_CONTENTIDENTIFICATION_CENC = _descriptor.Descriptor(
name='CENC',
full_name='LicenseRequestRaw.ContentIdentification.CENC',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='Pssh', full_name='LicenseRequestRaw.ContentIdentification.CENC.Pssh', index=0,
number=1, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='LicenseType', full_name='LicenseRequestRaw.ContentIdentification.CENC.LicenseType', index=1,
number=2, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RequestId', full_name='LicenseRequestRaw.ContentIdentification.CENC.RequestId', index=2,
number=3, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=5229,
serialized_end=5303,
)
_LICENSEREQUESTRAW_CONTENTIDENTIFICATION_WEBM = _descriptor.Descriptor(
name='WebM',
full_name='LicenseRequestRaw.ContentIdentification.WebM',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='Header', full_name='LicenseRequestRaw.ContentIdentification.WebM.Header', index=0,
number=1, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='LicenseType', full_name='LicenseRequestRaw.ContentIdentification.WebM.LicenseType', index=1,
number=2, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RequestId', full_name='LicenseRequestRaw.ContentIdentification.WebM.RequestId', index=2,
number=3, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=4365,
serialized_end=4441,
)
_LICENSEREQUESTRAW_CONTENTIDENTIFICATION_EXISTINGLICENSE = _descriptor.Descriptor(
name='ExistingLicense',
full_name='LicenseRequestRaw.ContentIdentification.ExistingLicense',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='LicenseId', full_name='LicenseRequestRaw.ContentIdentification.ExistingLicense.LicenseId', index=0,
number=1, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='SecondsSinceStarted', full_name='LicenseRequestRaw.ContentIdentification.ExistingLicense.SecondsSinceStarted', index=1,
number=2, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='SecondsSinceLastPlayed', full_name='LicenseRequestRaw.ContentIdentification.ExistingLicense.SecondsSinceLastPlayed', index=2,
number=3, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='SessionUsageTableEntry', full_name='LicenseRequestRaw.ContentIdentification.ExistingLicense.SessionUsageTableEntry', index=3,
number=4, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=4444,
serialized_end=4597,
)
_LICENSEREQUESTRAW_CONTENTIDENTIFICATION = _descriptor.Descriptor(
name='ContentIdentification',
full_name='LicenseRequestRaw.ContentIdentification',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='CencId', full_name='LicenseRequestRaw.ContentIdentification.CencId', index=0,
number=1, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='WebmId', full_name='LicenseRequestRaw.ContentIdentification.WebmId', index=1,
number=2, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='License', full_name='LicenseRequestRaw.ContentIdentification.License', index=2,
number=3, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[_LICENSEREQUESTRAW_CONTENTIDENTIFICATION_CENC, _LICENSEREQUESTRAW_CONTENTIDENTIFICATION_WEBM, _LICENSEREQUESTRAW_CONTENTIDENTIFICATION_EXISTINGLICENSE, ],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=5003,
serialized_end=5537,
)
_LICENSEREQUESTRAW = _descriptor.Descriptor(
name='LicenseRequestRaw',
full_name='LicenseRequestRaw',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='ClientId', full_name='LicenseRequestRaw.ClientId', index=0,
number=1, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='ContentId', full_name='LicenseRequestRaw.ContentId', index=1,
number=2, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Type', full_name='LicenseRequestRaw.Type', index=2,
number=3, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=1,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RequestTime', full_name='LicenseRequestRaw.RequestTime', index=3,
number=4, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='KeyControlNonceDeprecated', full_name='LicenseRequestRaw.KeyControlNonceDeprecated', index=4,
number=5, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='ProtocolVersion', full_name='LicenseRequestRaw.ProtocolVersion', index=5,
number=6, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=21,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='KeyControlNonce', full_name='LicenseRequestRaw.KeyControlNonce', index=6,
number=7, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='EncryptedClientId', full_name='LicenseRequestRaw.EncryptedClientId', index=7,
number=8, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[_LICENSEREQUESTRAW_CONTENTIDENTIFICATION, ],
enum_types=[
_LICENSEREQUESTRAW_REQUESTTYPE,
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=4650,
serialized_end=5587,
)
_PROVISIONEDDEVICEINFO = _descriptor.Descriptor(
name='ProvisionedDeviceInfo',
full_name='ProvisionedDeviceInfo',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='SystemId', full_name='ProvisionedDeviceInfo.SystemId', index=0,
number=1, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Soc', full_name='ProvisionedDeviceInfo.Soc', index=1,
number=2, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Manufacturer', full_name='ProvisionedDeviceInfo.Manufacturer', index=2,
number=3, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Model', full_name='ProvisionedDeviceInfo.Model', index=3,
number=4, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='DeviceType', full_name='ProvisionedDeviceInfo.DeviceType', index=4,
number=5, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='ModelYear', full_name='ProvisionedDeviceInfo.ModelYear', index=5,
number=6, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='SecurityLevel', full_name='ProvisionedDeviceInfo.SecurityLevel', index=6,
number=7, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='TestDevice', full_name='ProvisionedDeviceInfo.TestDevice', index=7,
number=8, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
_PROVISIONEDDEVICEINFO_WVSECURITYLEVEL,
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=5590,
serialized_end=5884,
)
_PROVISIONINGOPTIONS = _descriptor.Descriptor(
name='ProvisioningOptions',
full_name='ProvisioningOptions',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=5886,
serialized_end=5907,
)
_PROVISIONINGREQUEST = _descriptor.Descriptor(
name='ProvisioningRequest',
full_name='ProvisioningRequest',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=5909,
serialized_end=5930,
)
_PROVISIONINGRESPONSE = _descriptor.Descriptor(
name='ProvisioningResponse',
full_name='ProvisioningResponse',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=5932,
serialized_end=5954,
)
_REMOTEATTESTATION = _descriptor.Descriptor(
name='RemoteAttestation',
full_name='RemoteAttestation',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='Certificate', full_name='RemoteAttestation.Certificate', index=0,
number=1, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Salt', full_name='RemoteAttestation.Salt', index=1,
number=2, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Signature', full_name='RemoteAttestation.Signature', index=2,
number=3, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=5956,
serialized_end=6061,
)
_SESSIONINIT = _descriptor.Descriptor(
name='SessionInit',
full_name='SessionInit',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=6063,
serialized_end=6076,
)
_SESSIONSTATE = _descriptor.Descriptor(
name='SessionState',
full_name='SessionState',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=6078,
serialized_end=6092,
)
_SIGNEDCERTIFICATESTATUSLIST = _descriptor.Descriptor(
name='SignedCertificateStatusList',
full_name='SignedCertificateStatusList',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=6094,
serialized_end=6123,
)
_SIGNEDDEVICECERTIFICATE = _descriptor.Descriptor(
name='SignedDeviceCertificate',
full_name='SignedDeviceCertificate',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='_DeviceCertificate', full_name='SignedDeviceCertificate._DeviceCertificate', index=0,
number=1, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Signature', full_name='SignedDeviceCertificate.Signature', index=1,
number=2, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Signer', full_name='SignedDeviceCertificate.Signer', index=2,
number=3, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=6126,
serialized_end=6260,
)
_SIGNEDPROVISIONINGMESSAGE = _descriptor.Descriptor(
name='SignedProvisioningMessage',
full_name='SignedProvisioningMessage',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=6262,
serialized_end=6289,
)
_SIGNEDMESSAGE = _descriptor.Descriptor(
name='SignedMessage',
full_name='SignedMessage',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='Type', full_name='SignedMessage.Type', index=0,
number=1, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=1,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Msg', full_name='SignedMessage.Msg', index=1,
number=2, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Signature', full_name='SignedMessage.Signature', index=2,
number=3, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='SessionKey', full_name='SignedMessage.SessionKey', index=3,
number=4, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RemoteAttestation', full_name='SignedMessage.RemoteAttestation', index=4,
number=5, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
_SIGNEDMESSAGE_MESSAGETYPE,
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=6292,
serialized_end=6575,
)
_WIDEVINECENCHEADER = _descriptor.Descriptor(
name='WidevineCencHeader',
full_name='WidevineCencHeader',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='algorithm', full_name='WidevineCencHeader.algorithm', index=0,
number=1, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='key_id', full_name='WidevineCencHeader.key_id', index=1,
number=2, type=12, cpp_type=9, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='provider', full_name='WidevineCencHeader.provider', index=2,
number=3, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='content_id', full_name='WidevineCencHeader.content_id', index=3,
number=4, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='track_type_deprecated', full_name='WidevineCencHeader.track_type_deprecated', index=4,
number=5, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='policy', full_name='WidevineCencHeader.policy', index=5,
number=6, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='crypto_period_index', full_name='WidevineCencHeader.crypto_period_index', index=6,
number=7, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='grouped_license', full_name='WidevineCencHeader.grouped_license', index=7,
number=8, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='protection_scheme', full_name='WidevineCencHeader.protection_scheme', index=8,
number=9, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='crypto_period_seconds', full_name='WidevineCencHeader.crypto_period_seconds', index=9,
number=10, type=13, cpp_type=3, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
_WIDEVINECENCHEADER_ALGORITHM,
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=6578,
serialized_end=6903,
)
_SIGNEDLICENSEREQUEST = _descriptor.Descriptor(
name='SignedLicenseRequest',
full_name='SignedLicenseRequest',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='Type', full_name='SignedLicenseRequest.Type', index=0,
number=1, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=1,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Msg', full_name='SignedLicenseRequest.Msg', index=1,
number=2, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Signature', full_name='SignedLicenseRequest.Signature', index=2,
number=3, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='SessionKey', full_name='SignedLicenseRequest.SessionKey', index=3,
number=4, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RemoteAttestation', full_name='SignedLicenseRequest.RemoteAttestation', index=4,
number=5, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
_SIGNEDLICENSEREQUEST_MESSAGETYPE,
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=6906,
serialized_end=7220,
)
_SIGNEDLICENSEREQUESTRAW = _descriptor.Descriptor(
name='SignedLicenseRequestRaw',
full_name='SignedLicenseRequestRaw',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='Type', full_name='SignedLicenseRequestRaw.Type', index=0,
number=1, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=1,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Msg', full_name='SignedLicenseRequestRaw.Msg', index=1,
number=2, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Signature', full_name='SignedLicenseRequestRaw.Signature', index=2,
number=3, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='SessionKey', full_name='SignedLicenseRequestRaw.SessionKey', index=3,
number=4, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RemoteAttestation', full_name='SignedLicenseRequestRaw.RemoteAttestation', index=4,
number=5, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
_SIGNEDLICENSEREQUESTRAW_MESSAGETYPE,
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=7223,
serialized_end=7546,
)
_SIGNEDLICENSE = _descriptor.Descriptor(
name='SignedLicense',
full_name='SignedLicense',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='Type', full_name='SignedLicense.Type', index=0,
number=1, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=1,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Msg', full_name='SignedLicense.Msg', index=1,
number=2, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Signature', full_name='SignedLicense.Signature', index=2,
number=3, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='SessionKey', full_name='SignedLicense.SessionKey', index=3,
number=4, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RemoteAttestation', full_name='SignedLicense.RemoteAttestation', index=4,
number=5, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
_SIGNEDLICENSE_MESSAGETYPE,
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=7549,
serialized_end=7842,
)
_SIGNEDSERVICECERTIFICATE = _descriptor.Descriptor(
name='SignedServiceCertificate',
full_name='SignedServiceCertificate',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='Type', full_name='SignedServiceCertificate.Type', index=0,
number=1, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=1,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Msg', full_name='SignedServiceCertificate.Msg', index=1,
number=2, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='Signature', full_name='SignedServiceCertificate.Signature', index=2,
number=3, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='SessionKey', full_name='SignedServiceCertificate.SessionKey', index=3,
number=4, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='RemoteAttestation', full_name='SignedServiceCertificate.RemoteAttestation', index=4,
number=5, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
_SIGNEDSERVICECERTIFICATE_MESSAGETYPE,
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=7845,
serialized_end=8176,
)
_FILEHASHES_SIGNATURE = _descriptor.Descriptor(
name='Signature',
full_name='FileHashes.Signature',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='filename', full_name='FileHashes.Signature.filename', index=0,
number=1, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='test_signing', full_name='FileHashes.Signature.test_signing', index=1,
number=2, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='SHA512Hash', full_name='FileHashes.Signature.SHA512Hash', index=2,
number=3, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='main_exe', full_name='FileHashes.Signature.main_exe', index=3,
number=4, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='signature', full_name='FileHashes.Signature.signature', index=4,
number=5, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=8252,
serialized_end=8360,
)
_FILEHASHES = _descriptor.Descriptor(
name='FileHashes',
full_name='FileHashes',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='signer', full_name='FileHashes.signer', index=0,
number=1, type=12, cpp_type=9, label=1,
has_default_value=False, default_value=_b(""),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='signatures', full_name='FileHashes.signatures', index=1,
number=2, type=11, cpp_type=10, label=3,
has_default_value=False, default_value=[],
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[_FILEHASHES_SIGNATURE, ],
enum_types=[
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=8179,
serialized_end=8360,
)
_CLIENTIDENTIFICATION_NAMEVALUE.containing_type = _CLIENTIDENTIFICATION
_CLIENTIDENTIFICATION_CLIENTCAPABILITIES.fields_by_name['MaxHdcpVersion'].enum_type = _CLIENTIDENTIFICATION_CLIENTCAPABILITIES_HDCPVERSION
_CLIENTIDENTIFICATION_CLIENTCAPABILITIES.containing_type = _CLIENTIDENTIFICATION
_CLIENTIDENTIFICATION_CLIENTCAPABILITIES_HDCPVERSION.containing_type = _CLIENTIDENTIFICATION_CLIENTCAPABILITIES
_CLIENTIDENTIFICATION.fields_by_name['Type'].enum_type = _CLIENTIDENTIFICATION_TOKENTYPE
_CLIENTIDENTIFICATION.fields_by_name['Token'].message_type = _SIGNEDDEVICECERTIFICATE
_CLIENTIDENTIFICATION.fields_by_name['ClientInfo'].message_type = _CLIENTIDENTIFICATION_NAMEVALUE
_CLIENTIDENTIFICATION.fields_by_name['_ClientCapabilities'].message_type = _CLIENTIDENTIFICATION_CLIENTCAPABILITIES
_CLIENTIDENTIFICATION.fields_by_name['_FileHashes'].message_type = _FILEHASHES
_CLIENTIDENTIFICATION_TOKENTYPE.containing_type = _CLIENTIDENTIFICATION
_DEVICECERTIFICATE.fields_by_name['Type'].enum_type = _DEVICECERTIFICATE_CERTIFICATETYPE
_DEVICECERTIFICATE_CERTIFICATETYPE.containing_type = _DEVICECERTIFICATE
_DEVICECERTIFICATESTATUS.fields_by_name['Status'].enum_type = _DEVICECERTIFICATESTATUS_CERTIFICATESTATUS
_DEVICECERTIFICATESTATUS.fields_by_name['DeviceInfo'].message_type = _PROVISIONEDDEVICEINFO
_DEVICECERTIFICATESTATUS_CERTIFICATESTATUS.containing_type = _DEVICECERTIFICATESTATUS
_DEVICECERTIFICATESTATUSLIST.fields_by_name['CertificateStatus'].message_type = _DEVICECERTIFICATESTATUS
_LICENSEIDENTIFICATION.fields_by_name['Type'].enum_type = _LICENSETYPE
_LICENSE_POLICY.containing_type = _LICENSE
_LICENSE_KEYCONTAINER_OUTPUTPROTECTION.fields_by_name['Hdcp'].enum_type = _CLIENTIDENTIFICATION_CLIENTCAPABILITIES_HDCPVERSION
_LICENSE_KEYCONTAINER_OUTPUTPROTECTION.fields_by_name['CgmsFlags'].enum_type = _LICENSE_KEYCONTAINER_OUTPUTPROTECTION_CGMS
_LICENSE_KEYCONTAINER_OUTPUTPROTECTION.containing_type = _LICENSE_KEYCONTAINER
_LICENSE_KEYCONTAINER_OUTPUTPROTECTION_CGMS.containing_type = _LICENSE_KEYCONTAINER_OUTPUTPROTECTION
_LICENSE_KEYCONTAINER_KEYCONTROL.containing_type = _LICENSE_KEYCONTAINER
_LICENSE_KEYCONTAINER_OPERATORSESSIONKEYPERMISSIONS.containing_type = _LICENSE_KEYCONTAINER
_LICENSE_KEYCONTAINER_VIDEORESOLUTIONCONSTRAINT.fields_by_name['RequiredProtection'].message_type = _LICENSE_KEYCONTAINER_OUTPUTPROTECTION
_LICENSE_KEYCONTAINER_VIDEORESOLUTIONCONSTRAINT.containing_type = _LICENSE_KEYCONTAINER
_LICENSE_KEYCONTAINER.fields_by_name['Type'].enum_type = _LICENSE_KEYCONTAINER_KEYTYPE
_LICENSE_KEYCONTAINER.fields_by_name['Level'].enum_type = _LICENSE_KEYCONTAINER_SECURITYLEVEL
_LICENSE_KEYCONTAINER.fields_by_name['RequiredProtection'].message_type = _LICENSE_KEYCONTAINER_OUTPUTPROTECTION
_LICENSE_KEYCONTAINER.fields_by_name['RequestedProtection'].message_type = _LICENSE_KEYCONTAINER_OUTPUTPROTECTION
_LICENSE_KEYCONTAINER.fields_by_name['_KeyControl'].message_type = _LICENSE_KEYCONTAINER_KEYCONTROL
_LICENSE_KEYCONTAINER.fields_by_name['_OperatorSessionKeyPermissions'].message_type = _LICENSE_KEYCONTAINER_OPERATORSESSIONKEYPERMISSIONS
_LICENSE_KEYCONTAINER.fields_by_name['VideoResolutionConstraints'].message_type = _LICENSE_KEYCONTAINER_VIDEORESOLUTIONCONSTRAINT
_LICENSE_KEYCONTAINER.containing_type = _LICENSE
_LICENSE_KEYCONTAINER_KEYTYPE.containing_type = _LICENSE_KEYCONTAINER
_LICENSE_KEYCONTAINER_SECURITYLEVEL.containing_type = _LICENSE_KEYCONTAINER
_LICENSE.fields_by_name['Id'].message_type = _LICENSEIDENTIFICATION
_LICENSE.fields_by_name['_Policy'].message_type = _LICENSE_POLICY
_LICENSE.fields_by_name['Key'].message_type = _LICENSE_KEYCONTAINER
_LICENSEERROR.fields_by_name['ErrorCode'].enum_type = _LICENSEERROR_ERROR
_LICENSEERROR_ERROR.containing_type = _LICENSEERROR
_LICENSEREQUEST_CONTENTIDENTIFICATION_CENC.fields_by_name['Pssh'].message_type = _WIDEVINECENCHEADER
_LICENSEREQUEST_CONTENTIDENTIFICATION_CENC.fields_by_name['LicenseType'].enum_type = _LICENSETYPE
_LICENSEREQUEST_CONTENTIDENTIFICATION_CENC.containing_type = _LICENSEREQUEST_CONTENTIDENTIFICATION
_LICENSEREQUEST_CONTENTIDENTIFICATION_WEBM.fields_by_name['LicenseType'].enum_type = _LICENSETYPE
_LICENSEREQUEST_CONTENTIDENTIFICATION_WEBM.containing_type = _LICENSEREQUEST_CONTENTIDENTIFICATION
_LICENSEREQUEST_CONTENTIDENTIFICATION_EXISTINGLICENSE.fields_by_name['LicenseId'].message_type = _LICENSEIDENTIFICATION
_LICENSEREQUEST_CONTENTIDENTIFICATION_EXISTINGLICENSE.containing_type = _LICENSEREQUEST_CONTENTIDENTIFICATION
_LICENSEREQUEST_CONTENTIDENTIFICATION.fields_by_name['CencId'].message_type = _LICENSEREQUEST_CONTENTIDENTIFICATION_CENC
_LICENSEREQUEST_CONTENTIDENTIFICATION.fields_by_name['WebmId'].message_type = _LICENSEREQUEST_CONTENTIDENTIFICATION_WEBM
_LICENSEREQUEST_CONTENTIDENTIFICATION.fields_by_name['License'].message_type = _LICENSEREQUEST_CONTENTIDENTIFICATION_EXISTINGLICENSE
_LICENSEREQUEST_CONTENTIDENTIFICATION.containing_type = _LICENSEREQUEST
_LICENSEREQUEST.fields_by_name['ClientId'].message_type = _CLIENTIDENTIFICATION
_LICENSEREQUEST.fields_by_name['ContentId'].message_type = _LICENSEREQUEST_CONTENTIDENTIFICATION
_LICENSEREQUEST.fields_by_name['Type'].enum_type = _LICENSEREQUEST_REQUESTTYPE
_LICENSEREQUEST.fields_by_name['ProtocolVersion'].enum_type = _PROTOCOLVERSION
_LICENSEREQUEST.fields_by_name['EncryptedClientId'].message_type = _ENCRYPTEDCLIENTIDENTIFICATION
_LICENSEREQUEST_REQUESTTYPE.containing_type = _LICENSEREQUEST
_LICENSEREQUESTRAW_CONTENTIDENTIFICATION_CENC.fields_by_name['LicenseType'].enum_type = _LICENSETYPE
_LICENSEREQUESTRAW_CONTENTIDENTIFICATION_CENC.containing_type = _LICENSEREQUESTRAW_CONTENTIDENTIFICATION
_LICENSEREQUESTRAW_CONTENTIDENTIFICATION_WEBM.fields_by_name['LicenseType'].enum_type = _LICENSETYPE
_LICENSEREQUESTRAW_CONTENTIDENTIFICATION_WEBM.containing_type = _LICENSEREQUESTRAW_CONTENTIDENTIFICATION
_LICENSEREQUESTRAW_CONTENTIDENTIFICATION_EXISTINGLICENSE.fields_by_name['LicenseId'].message_type = _LICENSEIDENTIFICATION
_LICENSEREQUESTRAW_CONTENTIDENTIFICATION_EXISTINGLICENSE.containing_type = _LICENSEREQUESTRAW_CONTENTIDENTIFICATION
_LICENSEREQUESTRAW_CONTENTIDENTIFICATION.fields_by_name['CencId'].message_type = _LICENSEREQUESTRAW_CONTENTIDENTIFICATION_CENC
_LICENSEREQUESTRAW_CONTENTIDENTIFICATION.fields_by_name['WebmId'].message_type = _LICENSEREQUESTRAW_CONTENTIDENTIFICATION_WEBM
_LICENSEREQUESTRAW_CONTENTIDENTIFICATION.fields_by_name['License'].message_type = _LICENSEREQUESTRAW_CONTENTIDENTIFICATION_EXISTINGLICENSE
_LICENSEREQUESTRAW_CONTENTIDENTIFICATION.containing_type = _LICENSEREQUESTRAW
_LICENSEREQUESTRAW.fields_by_name['ClientId'].message_type = _CLIENTIDENTIFICATION
_LICENSEREQUESTRAW.fields_by_name['ContentId'].message_type = _LICENSEREQUESTRAW_CONTENTIDENTIFICATION
_LICENSEREQUESTRAW.fields_by_name['Type'].enum_type = _LICENSEREQUESTRAW_REQUESTTYPE
_LICENSEREQUESTRAW.fields_by_name['ProtocolVersion'].enum_type = _PROTOCOLVERSION
_LICENSEREQUESTRAW.fields_by_name['EncryptedClientId'].message_type = _ENCRYPTEDCLIENTIDENTIFICATION
_LICENSEREQUESTRAW_REQUESTTYPE.containing_type = _LICENSEREQUESTRAW
_PROVISIONEDDEVICEINFO.fields_by_name['SecurityLevel'].enum_type = _PROVISIONEDDEVICEINFO_WVSECURITYLEVEL
_PROVISIONEDDEVICEINFO_WVSECURITYLEVEL.containing_type = _PROVISIONEDDEVICEINFO
_REMOTEATTESTATION.fields_by_name['Certificate'].message_type = _ENCRYPTEDCLIENTIDENTIFICATION
_SIGNEDDEVICECERTIFICATE.fields_by_name['_DeviceCertificate'].message_type = _DEVICECERTIFICATE
_SIGNEDDEVICECERTIFICATE.fields_by_name['Signer'].message_type = _SIGNEDDEVICECERTIFICATE
_SIGNEDMESSAGE.fields_by_name['Type'].enum_type = _SIGNEDMESSAGE_MESSAGETYPE
_SIGNEDMESSAGE.fields_by_name['RemoteAttestation'].message_type = _REMOTEATTESTATION
_SIGNEDMESSAGE_MESSAGETYPE.containing_type = _SIGNEDMESSAGE
_WIDEVINECENCHEADER.fields_by_name['algorithm'].enum_type = _WIDEVINECENCHEADER_ALGORITHM
_WIDEVINECENCHEADER_ALGORITHM.containing_type = _WIDEVINECENCHEADER
_SIGNEDLICENSEREQUEST.fields_by_name['Type'].enum_type = _SIGNEDLICENSEREQUEST_MESSAGETYPE
_SIGNEDLICENSEREQUEST.fields_by_name['Msg'].message_type = _LICENSEREQUEST
_SIGNEDLICENSEREQUEST.fields_by_name['RemoteAttestation'].message_type = _REMOTEATTESTATION
_SIGNEDLICENSEREQUEST_MESSAGETYPE.containing_type = _SIGNEDLICENSEREQUEST
_SIGNEDLICENSEREQUESTRAW.fields_by_name['Type'].enum_type = _SIGNEDLICENSEREQUESTRAW_MESSAGETYPE
_SIGNEDLICENSEREQUESTRAW.fields_by_name['Msg'].message_type = _LICENSEREQUESTRAW
_SIGNEDLICENSEREQUESTRAW.fields_by_name['RemoteAttestation'].message_type = _REMOTEATTESTATION
_SIGNEDLICENSEREQUESTRAW_MESSAGETYPE.containing_type = _SIGNEDLICENSEREQUESTRAW
_SIGNEDLICENSE.fields_by_name['Type'].enum_type = _SIGNEDLICENSE_MESSAGETYPE
_SIGNEDLICENSE.fields_by_name['Msg'].message_type = _LICENSE
_SIGNEDLICENSE.fields_by_name['RemoteAttestation'].message_type = _REMOTEATTESTATION
_SIGNEDLICENSE_MESSAGETYPE.containing_type = _SIGNEDLICENSE
_SIGNEDSERVICECERTIFICATE.fields_by_name['Type'].enum_type = _SIGNEDSERVICECERTIFICATE_MESSAGETYPE
_SIGNEDSERVICECERTIFICATE.fields_by_name['Msg'].message_type = _SIGNEDDEVICECERTIFICATE
_SIGNEDSERVICECERTIFICATE.fields_by_name['RemoteAttestation'].message_type = _REMOTEATTESTATION
_SIGNEDSERVICECERTIFICATE_MESSAGETYPE.containing_type = _SIGNEDSERVICECERTIFICATE
_FILEHASHES_SIGNATURE.containing_type = _FILEHASHES
_FILEHASHES.fields_by_name['signatures'].message_type = _FILEHASHES_SIGNATURE
DESCRIPTOR.message_types_by_name['ClientIdentification'] = _CLIENTIDENTIFICATION
DESCRIPTOR.message_types_by_name['DeviceCertificate'] = _DEVICECERTIFICATE
DESCRIPTOR.message_types_by_name['DeviceCertificateStatus'] = _DEVICECERTIFICATESTATUS
DESCRIPTOR.message_types_by_name['DeviceCertificateStatusList'] = _DEVICECERTIFICATESTATUSLIST
DESCRIPTOR.message_types_by_name['EncryptedClientIdentification'] = _ENCRYPTEDCLIENTIDENTIFICATION
DESCRIPTOR.message_types_by_name['LicenseIdentification'] = _LICENSEIDENTIFICATION
DESCRIPTOR.message_types_by_name['License'] = _LICENSE
DESCRIPTOR.message_types_by_name['LicenseError'] = _LICENSEERROR
DESCRIPTOR.message_types_by_name['LicenseRequest'] = _LICENSEREQUEST
DESCRIPTOR.message_types_by_name['LicenseRequestRaw'] = _LICENSEREQUESTRAW
DESCRIPTOR.message_types_by_name['ProvisionedDeviceInfo'] = _PROVISIONEDDEVICEINFO
DESCRIPTOR.message_types_by_name['ProvisioningOptions'] = _PROVISIONINGOPTIONS
DESCRIPTOR.message_types_by_name['ProvisioningRequest'] = _PROVISIONINGREQUEST
DESCRIPTOR.message_types_by_name['ProvisioningResponse'] = _PROVISIONINGRESPONSE
DESCRIPTOR.message_types_by_name['RemoteAttestation'] = _REMOTEATTESTATION
DESCRIPTOR.message_types_by_name['SessionInit'] = _SESSIONINIT
DESCRIPTOR.message_types_by_name['SessionState'] = _SESSIONSTATE
DESCRIPTOR.message_types_by_name['SignedCertificateStatusList'] = _SIGNEDCERTIFICATESTATUSLIST
DESCRIPTOR.message_types_by_name['SignedDeviceCertificate'] = _SIGNEDDEVICECERTIFICATE
DESCRIPTOR.message_types_by_name['SignedProvisioningMessage'] = _SIGNEDPROVISIONINGMESSAGE
DESCRIPTOR.message_types_by_name['SignedMessage'] = _SIGNEDMESSAGE
DESCRIPTOR.message_types_by_name['WidevineCencHeader'] = _WIDEVINECENCHEADER
DESCRIPTOR.message_types_by_name['SignedLicenseRequest'] = _SIGNEDLICENSEREQUEST
DESCRIPTOR.message_types_by_name['SignedLicenseRequestRaw'] = _SIGNEDLICENSEREQUESTRAW
DESCRIPTOR.message_types_by_name['SignedLicense'] = _SIGNEDLICENSE
DESCRIPTOR.message_types_by_name['SignedServiceCertificate'] = _SIGNEDSERVICECERTIFICATE
DESCRIPTOR.message_types_by_name['FileHashes'] = _FILEHASHES
DESCRIPTOR.enum_types_by_name['LicenseType'] = _LICENSETYPE
DESCRIPTOR.enum_types_by_name['ProtocolVersion'] = _PROTOCOLVERSION
ClientIdentification = _reflection.GeneratedProtocolMessageType('ClientIdentification', (_message.Message,), dict(
NameValue = _reflection.GeneratedProtocolMessageType('NameValue', (_message.Message,), dict(
DESCRIPTOR = _CLIENTIDENTIFICATION_NAMEVALUE,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:ClientIdentification.NameValue)
))
,
ClientCapabilities = _reflection.GeneratedProtocolMessageType('ClientCapabilities', (_message.Message,), dict(
DESCRIPTOR = _CLIENTIDENTIFICATION_CLIENTCAPABILITIES,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:ClientIdentification.ClientCapabilities)
))
,
DESCRIPTOR = _CLIENTIDENTIFICATION,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:ClientIdentification)
))
_sym_db.RegisterMessage(ClientIdentification)
_sym_db.RegisterMessage(ClientIdentification.NameValue)
_sym_db.RegisterMessage(ClientIdentification.ClientCapabilities)
DeviceCertificate = _reflection.GeneratedProtocolMessageType('DeviceCertificate', (_message.Message,), dict(
DESCRIPTOR = _DEVICECERTIFICATE,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:DeviceCertificate)
))
_sym_db.RegisterMessage(DeviceCertificate)
DeviceCertificateStatus = _reflection.GeneratedProtocolMessageType('DeviceCertificateStatus', (_message.Message,), dict(
DESCRIPTOR = _DEVICECERTIFICATESTATUS,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:DeviceCertificateStatus)
))
_sym_db.RegisterMessage(DeviceCertificateStatus)
DeviceCertificateStatusList = _reflection.GeneratedProtocolMessageType('DeviceCertificateStatusList', (_message.Message,), dict(
DESCRIPTOR = _DEVICECERTIFICATESTATUSLIST,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:DeviceCertificateStatusList)
))
_sym_db.RegisterMessage(DeviceCertificateStatusList)
EncryptedClientIdentification = _reflection.GeneratedProtocolMessageType('EncryptedClientIdentification', (_message.Message,), dict(
DESCRIPTOR = _ENCRYPTEDCLIENTIDENTIFICATION,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:EncryptedClientIdentification)
))
_sym_db.RegisterMessage(EncryptedClientIdentification)
LicenseIdentification = _reflection.GeneratedProtocolMessageType('LicenseIdentification', (_message.Message,), dict(
DESCRIPTOR = _LICENSEIDENTIFICATION,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:LicenseIdentification)
))
_sym_db.RegisterMessage(LicenseIdentification)
License = _reflection.GeneratedProtocolMessageType('License', (_message.Message,), dict(
Policy = _reflection.GeneratedProtocolMessageType('Policy', (_message.Message,), dict(
DESCRIPTOR = _LICENSE_POLICY,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:License.Policy)
))
,
KeyContainer = _reflection.GeneratedProtocolMessageType('KeyContainer', (_message.Message,), dict(
OutputProtection = _reflection.GeneratedProtocolMessageType('OutputProtection', (_message.Message,), dict(
DESCRIPTOR = _LICENSE_KEYCONTAINER_OUTPUTPROTECTION,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:License.KeyContainer.OutputProtection)
))
,
KeyControl = _reflection.GeneratedProtocolMessageType('KeyControl', (_message.Message,), dict(
DESCRIPTOR = _LICENSE_KEYCONTAINER_KEYCONTROL,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:License.KeyContainer.KeyControl)
))
,
OperatorSessionKeyPermissions = _reflection.GeneratedProtocolMessageType('OperatorSessionKeyPermissions', (_message.Message,), dict(
DESCRIPTOR = _LICENSE_KEYCONTAINER_OPERATORSESSIONKEYPERMISSIONS,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:License.KeyContainer.OperatorSessionKeyPermissions)
))
,
VideoResolutionConstraint = _reflection.GeneratedProtocolMessageType('VideoResolutionConstraint', (_message.Message,), dict(
DESCRIPTOR = _LICENSE_KEYCONTAINER_VIDEORESOLUTIONCONSTRAINT,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:License.KeyContainer.VideoResolutionConstraint)
))
,
DESCRIPTOR = _LICENSE_KEYCONTAINER,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:License.KeyContainer)
))
,
DESCRIPTOR = _LICENSE,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:License)
))
_sym_db.RegisterMessage(License)
_sym_db.RegisterMessage(License.Policy)
_sym_db.RegisterMessage(License.KeyContainer)
_sym_db.RegisterMessage(License.KeyContainer.OutputProtection)
_sym_db.RegisterMessage(License.KeyContainer.KeyControl)
_sym_db.RegisterMessage(License.KeyContainer.OperatorSessionKeyPermissions)
_sym_db.RegisterMessage(License.KeyContainer.VideoResolutionConstraint)
LicenseError = _reflection.GeneratedProtocolMessageType('LicenseError', (_message.Message,), dict(
DESCRIPTOR = _LICENSEERROR,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:LicenseError)
))
_sym_db.RegisterMessage(LicenseError)
LicenseRequest = _reflection.GeneratedProtocolMessageType('LicenseRequest', (_message.Message,), dict(
ContentIdentification = _reflection.GeneratedProtocolMessageType('ContentIdentification', (_message.Message,), dict(
CENC = _reflection.GeneratedProtocolMessageType('CENC', (_message.Message,), dict(
DESCRIPTOR = _LICENSEREQUEST_CONTENTIDENTIFICATION_CENC,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:LicenseRequest.ContentIdentification.CENC)
))
,
WebM = _reflection.GeneratedProtocolMessageType('WebM', (_message.Message,), dict(
DESCRIPTOR = _LICENSEREQUEST_CONTENTIDENTIFICATION_WEBM,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:LicenseRequest.ContentIdentification.WebM)
))
,
ExistingLicense = _reflection.GeneratedProtocolMessageType('ExistingLicense', (_message.Message,), dict(
DESCRIPTOR = _LICENSEREQUEST_CONTENTIDENTIFICATION_EXISTINGLICENSE,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:LicenseRequest.ContentIdentification.ExistingLicense)
))
,
DESCRIPTOR = _LICENSEREQUEST_CONTENTIDENTIFICATION,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:LicenseRequest.ContentIdentification)
))
,
DESCRIPTOR = _LICENSEREQUEST,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:LicenseRequest)
))
_sym_db.RegisterMessage(LicenseRequest)
_sym_db.RegisterMessage(LicenseRequest.ContentIdentification)
_sym_db.RegisterMessage(LicenseRequest.ContentIdentification.CENC)
_sym_db.RegisterMessage(LicenseRequest.ContentIdentification.WebM)
_sym_db.RegisterMessage(LicenseRequest.ContentIdentification.ExistingLicense)
LicenseRequestRaw = _reflection.GeneratedProtocolMessageType('LicenseRequestRaw', (_message.Message,), dict(
ContentIdentification = _reflection.GeneratedProtocolMessageType('ContentIdentification', (_message.Message,), dict(
CENC = _reflection.GeneratedProtocolMessageType('CENC', (_message.Message,), dict(
DESCRIPTOR = _LICENSEREQUESTRAW_CONTENTIDENTIFICATION_CENC,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:LicenseRequestRaw.ContentIdentification.CENC)
))
,
WebM = _reflection.GeneratedProtocolMessageType('WebM', (_message.Message,), dict(
DESCRIPTOR = _LICENSEREQUESTRAW_CONTENTIDENTIFICATION_WEBM,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:LicenseRequestRaw.ContentIdentification.WebM)
))
,
ExistingLicense = _reflection.GeneratedProtocolMessageType('ExistingLicense', (_message.Message,), dict(
DESCRIPTOR = _LICENSEREQUESTRAW_CONTENTIDENTIFICATION_EXISTINGLICENSE,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:LicenseRequestRaw.ContentIdentification.ExistingLicense)
))
,
DESCRIPTOR = _LICENSEREQUESTRAW_CONTENTIDENTIFICATION,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:LicenseRequestRaw.ContentIdentification)
))
,
DESCRIPTOR = _LICENSEREQUESTRAW,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:LicenseRequestRaw)
))
_sym_db.RegisterMessage(LicenseRequestRaw)
_sym_db.RegisterMessage(LicenseRequestRaw.ContentIdentification)
_sym_db.RegisterMessage(LicenseRequestRaw.ContentIdentification.CENC)
_sym_db.RegisterMessage(LicenseRequestRaw.ContentIdentification.WebM)
_sym_db.RegisterMessage(LicenseRequestRaw.ContentIdentification.ExistingLicense)
ProvisionedDeviceInfo = _reflection.GeneratedProtocolMessageType('ProvisionedDeviceInfo', (_message.Message,), dict(
DESCRIPTOR = _PROVISIONEDDEVICEINFO,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:ProvisionedDeviceInfo)
))
_sym_db.RegisterMessage(ProvisionedDeviceInfo)
ProvisioningOptions = _reflection.GeneratedProtocolMessageType('ProvisioningOptions', (_message.Message,), dict(
DESCRIPTOR = _PROVISIONINGOPTIONS,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:ProvisioningOptions)
))
_sym_db.RegisterMessage(ProvisioningOptions)
ProvisioningRequest = _reflection.GeneratedProtocolMessageType('ProvisioningRequest', (_message.Message,), dict(
DESCRIPTOR = _PROVISIONINGREQUEST,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:ProvisioningRequest)
))
_sym_db.RegisterMessage(ProvisioningRequest)
ProvisioningResponse = _reflection.GeneratedProtocolMessageType('ProvisioningResponse', (_message.Message,), dict(
DESCRIPTOR = _PROVISIONINGRESPONSE,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:ProvisioningResponse)
))
_sym_db.RegisterMessage(ProvisioningResponse)
RemoteAttestation = _reflection.GeneratedProtocolMessageType('RemoteAttestation', (_message.Message,), dict(
DESCRIPTOR = _REMOTEATTESTATION,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:RemoteAttestation)
))
_sym_db.RegisterMessage(RemoteAttestation)
SessionInit = _reflection.GeneratedProtocolMessageType('SessionInit', (_message.Message,), dict(
DESCRIPTOR = _SESSIONINIT,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:SessionInit)
))
_sym_db.RegisterMessage(SessionInit)
SessionState = _reflection.GeneratedProtocolMessageType('SessionState', (_message.Message,), dict(
DESCRIPTOR = _SESSIONSTATE,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:SessionState)
))
_sym_db.RegisterMessage(SessionState)
SignedCertificateStatusList = _reflection.GeneratedProtocolMessageType('SignedCertificateStatusList', (_message.Message,), dict(
DESCRIPTOR = _SIGNEDCERTIFICATESTATUSLIST,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:SignedCertificateStatusList)
))
_sym_db.RegisterMessage(SignedCertificateStatusList)
SignedDeviceCertificate = _reflection.GeneratedProtocolMessageType('SignedDeviceCertificate', (_message.Message,), dict(
DESCRIPTOR = _SIGNEDDEVICECERTIFICATE,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:SignedDeviceCertificate)
))
_sym_db.RegisterMessage(SignedDeviceCertificate)
SignedProvisioningMessage = _reflection.GeneratedProtocolMessageType('SignedProvisioningMessage', (_message.Message,), dict(
DESCRIPTOR = _SIGNEDPROVISIONINGMESSAGE,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:SignedProvisioningMessage)
))
_sym_db.RegisterMessage(SignedProvisioningMessage)
SignedMessage = _reflection.GeneratedProtocolMessageType('SignedMessage', (_message.Message,), dict(
DESCRIPTOR = _SIGNEDMESSAGE,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:SignedMessage)
))
_sym_db.RegisterMessage(SignedMessage)
WidevineCencHeader = _reflection.GeneratedProtocolMessageType('WidevineCencHeader', (_message.Message,), dict(
DESCRIPTOR = _WIDEVINECENCHEADER,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:WidevineCencHeader)
))
_sym_db.RegisterMessage(WidevineCencHeader)
SignedLicenseRequest = _reflection.GeneratedProtocolMessageType('SignedLicenseRequest', (_message.Message,), dict(
DESCRIPTOR = _SIGNEDLICENSEREQUEST,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:SignedLicenseRequest)
))
_sym_db.RegisterMessage(SignedLicenseRequest)
SignedLicenseRequestRaw = _reflection.GeneratedProtocolMessageType('SignedLicenseRequestRaw', (_message.Message,), dict(
DESCRIPTOR = _SIGNEDLICENSEREQUESTRAW,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:SignedLicenseRequestRaw)
))
_sym_db.RegisterMessage(SignedLicenseRequestRaw)
SignedLicense = _reflection.GeneratedProtocolMessageType('SignedLicense', (_message.Message,), dict(
DESCRIPTOR = _SIGNEDLICENSE,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:SignedLicense)
))
_sym_db.RegisterMessage(SignedLicense)
SignedServiceCertificate = _reflection.GeneratedProtocolMessageType('SignedServiceCertificate', (_message.Message,), dict(
DESCRIPTOR = _SIGNEDSERVICECERTIFICATE,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:SignedServiceCertificate)
))
_sym_db.RegisterMessage(SignedServiceCertificate)
FileHashes = _reflection.GeneratedProtocolMessageType('FileHashes', (_message.Message,), dict(
Signature = _reflection.GeneratedProtocolMessageType('Signature', (_message.Message,), dict(
DESCRIPTOR = _FILEHASHES_SIGNATURE,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:FileHashes.Signature)
))
,
DESCRIPTOR = _FILEHASHES,
__module__ = 'pywidevine.cdm.formats.wv_proto2_pb2'
# @@protoc_insertion_point(class_scope:FileHashes)
))
_sym_db.RegisterMessage(FileHashes)
_sym_db.RegisterMessage(FileHashes.Signature)
# @@protoc_insertion_point(module_scope)
================================================
FILE: README.md
================================================
# Dumper
Dumper is a Frida script to dump L3 CDMs from any Android device.
## ** IMPORTANT **
The function parameters can differ between CDM versions. The default is [4] but you may have to change this for your specific version in the [script.js](./Helpers/script.js).
## Prerequisites
- Rooted Android device
- [Installed Frida server on the Android device]((https://frida.re/docs/android/))
- Installed [platform-tools ADB/Fastboot](https://developer.android.com/studio/releases/platform-tools) on the PC
- Installed [Python 3](https://www.python.org/downloads/) on the PC
- `CDM_VERSION` retrieved from the [DRM Info app](https://play.google.com/store/apps/details?id=com.androidfung.drminfo).
## Requirements:
Use pip to install the dependencies:
`pip3 install -r requirements.txt`
## Usage:
* Enable USB debugging on the Android device and connect it to the PC
* [Start frida-server on the Android device](https://frida.re/docs/android/)
* Execute dump_keys.py on the PC
* Start streaming some DRM-protected content on the Android device e.g. [Bitmovin](https://bitmovin.com/demos/drm)
The script will hook every function in your widevine 'libwvhidl.so'/'libwvaidl.so' modules by default, effectively brute forcing the private key function name.
```
python3 dump_keys.py
```
You can pass the function name to hook using the `--function-name` argument. You can use [this post](https://forum.videohelp.com/threads/404219-How-To-Dump-L3-CDM-From-Android-Device-s-(ONLY-Talk-About-Dumping-L3-CDMS)/page6#post2646150) to retrive it by yourself.
```
python3 dump_keys.py --function-name 'polorucp'
```
The script defaults to `args[4]` if no `--cdm-version` is provided. This will only have an effect if your version is `16.1.0` or `17.0.0`.
```
python3 dump_keys.py --cdm-version '16.1.0'
```
You can pass the `.so` -module name using the `--module-name` argument. By default it looks in the `libwvhidl.so` and `libwvaidl.so` files. It can have multiple values. Its name can change depending on the version and SoC including but not limited to: `libwvaidl.so`, `libwvhidl.so`, `libwvdrmengine.so`, `libwvm.so`, `libdrmwvmplugin.so` [source](https://arxiv.org/abs/2204.09298). You can find your module name in the /vendor/lib64/ or /vendor/lib/ directories using an ADB shell.
```
python3 dump_keys.py --module-name 'libwvhidl.so' --module-name 'libwvaidl.so'
```
## Options:
```
-h, --help Print this help text and exit.
--cdm-version The CDM version of the device e.g. '16.1.0'.
--function-name The name of the function to hook to retrieve the private key.
--module-name The name of the widevine `.so` modules.
```
## Scenario:
1. You've got the function name
2. You've got the private key
3. Client ID extracted
4. Script closed
The following files will be created after a successful dump:
- `client_id.bin` - Device identification
- `private_key.pem` - RSA private key
## Known Working Versions:
* Android 9
* CDM 14.0.0
* Android 10
* CDM 15.0.0
* Android 11
* CDM 16.0.0
* Android 12
* CDM 16.1.0
* Android 13
* CDM 17.0.0
## Temporary disabling L1 to use L3 instead
A few phone brands let us use the L1 keybox even after unlocking the bootloader (like Xiaomi). In this case, installation of a Magisk module called [liboemcrypto-disabler](https://github.com/umylive/liboemcrypto-disabler) is necessary.
## Credits
Thanks to the original author of the code.
================================================
FILE: dump_keys.py
================================================
#!/usr/bin/env python3
import argparse
import time
import logging
from Helpers.Device import Device
logging.basicConfig(
format='%(asctime)s - %(name)s - %(lineno)d - %(levelname)s - %(message)s',
datefmt='%Y-%m-%d %I:%M:%S %p',
level=logging.DEBUG,
)
def main():
parser = argparse.ArgumentParser(description='Android Widevine L3 dumper.')
parser.add_argument('--cdm-version', help='The CDM version of the device e.g. \'14.0.0\'', default='14.0.0')
parser.add_argument('--function-name', help='The name of the function to hook to retrieve the private key.', default='')
parser.add_argument('--module-name',
nargs='+',
type=str,
help='The names of the widevine `.so` modules',
default=["libwvaidl.so", "libwvhidl.so"]
)
args = parser.parse_args()
dynamic_function_name = args.function_name
cdm_version = args.cdm_version
module_names = args.module_name
logger = logging.getLogger("main")
device = Device(dynamic_function_name, cdm_version, module_names)
logger.info('Connected to %s', device.name)
logger.info('Scanning all processes')
for process in device.usb_device.enumerate_processes():
if 'drm' in process.name:
for library in device.find_widevine_process(process.name):
device.hook_to_process(process.name, library)
logger.info('Functions hooked, now open the DRM stream test on Bitmovin from your Android device! https://bitmovin.com/demos/drm')
if __name__ == '__main__':
main()
while True:
time.sleep(1000)
================================================
FILE: requirements.txt
================================================
frida
protobuf == 3.19.3
pycryptodome
gitextract_uh3fiif8/ ├── .gitignore ├── Helpers/ │ ├── Device.py │ ├── script.js │ └── wv_proto2_pb2.py ├── README.md ├── dump_keys.py └── requirements.txt
SYMBOL INDEX (19 symbols across 3 files)
FILE: Helpers/Device.py
class Device (line 9) | class Device:
method __init__ (line 10) | def __init__(self, dynamic_function_name, cdm_version, module_names):
method export_key (line 22) | def export_key(self, key, client_id):
method on_message (line 41) | def on_message(self, msg, data):
method license_request_message (line 56) | def license_request_message(self, data):
method find_widevine_process (line 70) | def find_widevine_process(self, process_name):
method hook_to_process (line 88) | def hook_to_process(self, process, library):
FILE: Helpers/script.js
constant DYNAMIC_FUNCTION_NAME (line 1) | const DYNAMIC_FUNCTION_NAME = '${DYNAMIC_FUNCTION_NAME}';
constant CDM_VERSION (line 2) | const CDM_VERSION = '${CDM_VERSION}';
constant KNOWN_DYNAMIC_FUNCTION_NAMES (line 5) | const KNOWN_DYNAMIC_FUNCTION_NAMES = [
function TextEncoder (line 18) | function TextEncoder() {
function getPrivateKey (line 53) | function getPrivateKey(address) {
function disablePrivacyMode (line 80) | function disablePrivacyMode(address) {
function prepareKeyRequest (line 88) | function prepareKeyRequest(address) {
function hookLibFunctions (line 118) | function hookLibFunctions(lib) {
function getModuleByName (line 169) | function getModuleByName(lib) {
function a2bs (line 173) | function a2bs(bytes) {
function getKeyLength (line 180) | function getKeyLength(key) {
FILE: dump_keys.py
function main (line 14) | def main():
Condensed preview — 7 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (161K chars).
[
{
"path": ".gitignore",
"chars": 1839,
"preview": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packagi"
},
{
"path": "Helpers/Device.py",
"chars": 3503,
"preview": "import os\nimport logging\nimport base64\nimport frida\nfrom Crypto.PublicKey import RSA\nfrom Helpers.wv_proto2_pb2 import S"
},
{
"path": "Helpers/script.js",
"chars": 6586,
"preview": "const DYNAMIC_FUNCTION_NAME = '${DYNAMIC_FUNCTION_NAME}';\r\nconst CDM_VERSION = '${CDM_VERSION}';\r\n\r\n// These strings are"
},
{
"path": "Helpers/wv_proto2_pb2.py",
"chars": 137199,
"preview": "# Generated by the protocol buffer compiler. DO NOT EDIT!\n# source: pywidevine/cdm/formats/wv_proto2.proto\n\nimport sys\n"
},
{
"path": "README.md",
"chars": 3490,
"preview": "# Dumper\n\nDumper is a Frida script to dump L3 CDMs from any Android device.\n\n## ** IMPORTANT **\nThe function parameters "
},
{
"path": "dump_keys.py",
"chars": 1626,
"preview": "#!/usr/bin/env python3\r\n\r\nimport argparse\r\nimport time\r\nimport logging\r\nfrom Helpers.Device import Device\r\n\r\nlogging.bas"
},
{
"path": "requirements.txt",
"chars": 38,
"preview": "frida\nprotobuf == 3.19.3\npycryptodome\n"
}
]
About this extraction
This page contains the full source code of the Diazole/dumper GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 7 files (150.7 KB), approximately 39.5k tokens, and a symbol index with 19 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.