mirror of
				https://github.com/devine-dl/pywidevine.git
				synced 2025-11-04 03:44:50 +00:00 
			
		
		
		
	Update protobuf to v4.21.6 and recompile buffers
This commit is contained in:
		
							parent
							
								
									e001ef0291
								
							
						
					
					
						commit
						e585102798
					
				
							
								
								
									
										55
									
								
								poetry.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										55
									
								
								poetry.lock
									
									
									
										generated
									
									
									
								
							@ -168,11 +168,11 @@ python-versions = ">=3.7"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "protobuf"
 | 
			
		||||
version = "3.19.5"
 | 
			
		||||
description = "Protocol Buffers"
 | 
			
		||||
version = "4.21.6"
 | 
			
		||||
description = ""
 | 
			
		||||
category = "main"
 | 
			
		||||
optional = false
 | 
			
		||||
python-versions = ">=3.5"
 | 
			
		||||
python-versions = ">=3.7"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "pycryptodome"
 | 
			
		||||
@ -279,7 +279,7 @@ serve = ["aiohttp", "PyYAML"]
 | 
			
		||||
[metadata]
 | 
			
		||||
lock-version = "1.1"
 | 
			
		||||
python-versions = ">=3.7,<3.11"
 | 
			
		||||
content-hash = "35d7f614b5c080b48a15f6d299274ec399bb4e2cf6e8f2a79c00815e3bc57308"
 | 
			
		||||
content-hash = "d0658d6c8f08997e9ebd6a12e2613f76275c21b7c133e2e976d16f8b63c9437f"
 | 
			
		||||
 | 
			
		||||
[metadata.files]
 | 
			
		||||
aiohttp = [
 | 
			
		||||
@ -594,32 +594,20 @@ multidict = [
 | 
			
		||||
    {file = "multidict-6.0.2.tar.gz", hash = "sha256:5ff3bd75f38e4c43f1f470f2df7a4d430b821c4ce22be384e1459cb57d6bb013"},
 | 
			
		||||
]
 | 
			
		||||
protobuf = [
 | 
			
		||||
    {file = "protobuf-3.19.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6eca9ae238ba615d702387a2ddea635d535d769994a9968c09a4ca920c487ab9"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:f2b599a21c9a32e171ec29a2ac54e03297736c578698e11b099d031f79da114b"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f976234e20ab2785f54224bcdafa027674e23663b132fa3ca0caa291a6cfbde7"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp310-cp310-win32.whl", hash = "sha256:4ee2af7051d3b10c8a4fe6fd1a2c69f201fea36aeee7086cf202a692e1b99ee1"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp310-cp310-win_amd64.whl", hash = "sha256:dca2284378a5f2a86ffed35c6ac147d14c48b525eefcd1083e5a9ce28dfa8657"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c0f80876a8ff0ae7064084ed094eb86497bd5a3812e6fc96a05318b92301674e"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c4160b601220627f7e91154e572baf5e161a9c3f445a8242d536ee3d0b7b17c"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp36-cp36m-win32.whl", hash = "sha256:f2bde37667b18c2b5280df83bc799204394a5d2d774e4deaf9de0eb741df6833"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp36-cp36m-win_amd64.whl", hash = "sha256:1867f93b06a183f87696871bb8d1e99ee71dbb69d468ce1f0cc8bf3d30f982f3"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a89aa0c042e61e11ade320b802d6db4ee5391d8d973e46d3a48172c1597789f8"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:f9cebda093c2f6bfed88f1c17cdade09d4d96096421b344026feee236532d4de"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67efb5d20618020aa9596e17bfc37ca068c28ec0c1507d9507f73c93d46c9855"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp37-cp37m-win32.whl", hash = "sha256:950abd6c00e7b51f87ae8b18a0ce4d69fea217f62f171426e77de5061f6d9850"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp37-cp37m-win_amd64.whl", hash = "sha256:d3973a2d58aefc7d1230725c2447ce7f86a71cbc094b86a77c6ee1505ac7cdb1"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9e1d74032f56ff25f417cfe84c8147047732e5059137ca42efad20cbbd25f5e0"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:d249519ba5ecf5dd6b18150c9b6bcde510b273714b696f3923ff8308fc11ae49"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f957ef53e872d58a0afd3bf6d80d48535d28c99b40e75e6634cbc33ea42fd54"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp38-cp38-win32.whl", hash = "sha256:5470f892961af464ae6eaf0f3099e2c1190ae8c7f36f174b89491281341f79ca"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp38-cp38-win_amd64.whl", hash = "sha256:c44e3282cff74ad18c7e8a0375f407f69ee50c2116364b44492a196293e08b21"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:66d14b5b90090353efe75c9fb1bf65ef7267383034688d255b500822e37d5c2f"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f4f909f4dde413dec435a44b0894956d55bb928ded7d6e3c726556ca4c796e84"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5266c36cc0af3bb3dbf44f199d225b33da66a9a5c3bdc2b14865ad10eddf0e37"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp39-cp39-win32.whl", hash = "sha256:6a02172b9650f819d01fb8e224fc69b0706458fc1ab4f1c669281243c71c1a5e"},
 | 
			
		||||
    {file = "protobuf-3.19.5-cp39-cp39-win_amd64.whl", hash = "sha256:696e6cfab94cc15a14946f2bf72719dced087d437adbd994fff34f38986628bc"},
 | 
			
		||||
    {file = "protobuf-3.19.5-py2.py3-none-any.whl", hash = "sha256:9e42b1cf2ecd8a1bd161239e693f22035ba99905ae6d7efeac8a0546c7ec1a27"},
 | 
			
		||||
    {file = "protobuf-3.19.5.tar.gz", hash = "sha256:e63b0b3c42e51c94add62b010366cd4979cb6d5f06158bcae8faac4c294f91e1"},
 | 
			
		||||
    {file = "protobuf-4.21.6-cp310-abi3-win32.whl", hash = "sha256:49f88d56a9180dbb7f6199c920f5bb5c1dd0172f672983bb281298d57c2ac8eb"},
 | 
			
		||||
    {file = "protobuf-4.21.6-cp310-abi3-win_amd64.whl", hash = "sha256:7a6cc8842257265bdfd6b74d088b829e44bcac3cca234c5fdd6052730017b9ea"},
 | 
			
		||||
    {file = "protobuf-4.21.6-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:ba596b9ffb85c909fcfe1b1a23136224ed678af3faf9912d3fa483d5f9813c4e"},
 | 
			
		||||
    {file = "protobuf-4.21.6-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:4143513c766db85b9d7c18dbf8339673c8a290131b2a0fe73855ab20770f72b0"},
 | 
			
		||||
    {file = "protobuf-4.21.6-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:b6cea204865595a92a7b240e4b65bcaaca3ad5d2ce25d9db3756eba06041138e"},
 | 
			
		||||
    {file = "protobuf-4.21.6-cp37-cp37m-win32.whl", hash = "sha256:9666da97129138585b26afcb63ad4887f602e169cafe754a8258541c553b8b5d"},
 | 
			
		||||
    {file = "protobuf-4.21.6-cp37-cp37m-win_amd64.whl", hash = "sha256:308173d3e5a3528787bb8c93abea81d5a950bdce62840d9760effc84127fb39c"},
 | 
			
		||||
    {file = "protobuf-4.21.6-cp38-cp38-win32.whl", hash = "sha256:aa29113ec901281f29d9d27b01193407a98aa9658b8a777b0325e6d97149f5ce"},
 | 
			
		||||
    {file = "protobuf-4.21.6-cp38-cp38-win_amd64.whl", hash = "sha256:8f9e60f7d44592c66e7b332b6a7b4b6e8d8b889393c79dbc3a91f815118f8eac"},
 | 
			
		||||
    {file = "protobuf-4.21.6-cp39-cp39-win32.whl", hash = "sha256:80e6540381080715fddac12690ee42d087d0d17395f8d0078dfd6f1181e7be4c"},
 | 
			
		||||
    {file = "protobuf-4.21.6-cp39-cp39-win_amd64.whl", hash = "sha256:77b355c8604fe285536155286b28b0c4cbc57cf81b08d8357bf34829ea982860"},
 | 
			
		||||
    {file = "protobuf-4.21.6-py2.py3-none-any.whl", hash = "sha256:07a0bb9cc6114f16a39c866dc28b6e3d96fa4ffb9cc1033057412547e6e75cb9"},
 | 
			
		||||
    {file = "protobuf-4.21.6-py3-none-any.whl", hash = "sha256:c7c864148a237f058c739ae7a05a2b403c0dfa4ce7d1f3e5213f352ad52d57c6"},
 | 
			
		||||
    {file = "protobuf-4.21.6.tar.gz", hash = "sha256:6b1040a5661cd5f6e610cbca9cfaa2a17d60e2bb545309bc1b278bb05be44bdd"},
 | 
			
		||||
]
 | 
			
		||||
pycryptodome = [
 | 
			
		||||
    {file = "pycryptodome-3.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ff7ae90e36c1715a54446e7872b76102baa5c63aa980917f4aa45e8c78d1a3ec"},
 | 
			
		||||
@ -664,13 +652,6 @@ pyyaml = [
 | 
			
		||||
    {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"},
 | 
			
		||||
    {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"},
 | 
			
		||||
    {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"},
 | 
			
		||||
    {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"},
 | 
			
		||||
    {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"},
 | 
			
		||||
    {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"},
 | 
			
		||||
    {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"},
 | 
			
		||||
    {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"},
 | 
			
		||||
    {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"},
 | 
			
		||||
    {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"},
 | 
			
		||||
    {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"},
 | 
			
		||||
    {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"},
 | 
			
		||||
    {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"},
 | 
			
		||||
 | 
			
		||||
@ -28,7 +28,7 @@ classifiers = [
 | 
			
		||||
 | 
			
		||||
[tool.poetry.dependencies]
 | 
			
		||||
python = ">=3.7,<3.11"
 | 
			
		||||
protobuf = "3.19.5"
 | 
			
		||||
protobuf = "4.21.6"
 | 
			
		||||
pymp4 = "^1.2.0"
 | 
			
		||||
pycryptodome = "^3.15.0"
 | 
			
		||||
click = "^8.1.3"
 | 
			
		||||
 | 
			
		||||
@ -1,11 +1,11 @@
 | 
			
		||||
syntax = "proto2";
 | 
			
		||||
 | 
			
		||||
package video_widevine;
 | 
			
		||||
package pywidevine_license_protocol;
 | 
			
		||||
 | 
			
		||||
// need this if we are using libprotobuf-cpp-2.3.0-lite
 | 
			
		||||
option optimize_for = LITE_RUNTIME;
 | 
			
		||||
 | 
			
		||||
option java_package = "com.google.video.widevine.protos";
 | 
			
		||||
option java_package = "com.rlaphoenix.pywidevine.protos";
 | 
			
		||||
 | 
			
		||||
enum LicenseType {
 | 
			
		||||
  STREAMING = 1;
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										605
									
								
								pywidevine/license_protocol_pb2.pyi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										605
									
								
								pywidevine/license_protocol_pb2.pyi
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,605 @@
 | 
			
		||||
from google.protobuf.internal import containers as _containers
 | 
			
		||||
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
 | 
			
		||||
from google.protobuf import descriptor as _descriptor
 | 
			
		||||
from google.protobuf import message as _message
 | 
			
		||||
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
 | 
			
		||||
 | 
			
		||||
AUTOMATIC: LicenseType
 | 
			
		||||
DESCRIPTOR: _descriptor.FileDescriptor
 | 
			
		||||
HASH_ALGORITHM_SHA_1: HashAlgorithmProto
 | 
			
		||||
HASH_ALGORITHM_SHA_256: HashAlgorithmProto
 | 
			
		||||
HASH_ALGORITHM_SHA_384: HashAlgorithmProto
 | 
			
		||||
HASH_ALGORITHM_UNSPECIFIED: HashAlgorithmProto
 | 
			
		||||
OFFLINE: LicenseType
 | 
			
		||||
PLATFORM_HARDWARE_VERIFIED: PlatformVerificationStatus
 | 
			
		||||
PLATFORM_NO_VERIFICATION: PlatformVerificationStatus
 | 
			
		||||
PLATFORM_SECURE_STORAGE_SOFTWARE_VERIFIED: PlatformVerificationStatus
 | 
			
		||||
PLATFORM_SOFTWARE_VERIFIED: PlatformVerificationStatus
 | 
			
		||||
PLATFORM_TAMPERED: PlatformVerificationStatus
 | 
			
		||||
PLATFORM_UNVERIFIED: PlatformVerificationStatus
 | 
			
		||||
STREAMING: LicenseType
 | 
			
		||||
VERSION_2_0: ProtocolVersion
 | 
			
		||||
VERSION_2_1: ProtocolVersion
 | 
			
		||||
VERSION_2_2: ProtocolVersion
 | 
			
		||||
 | 
			
		||||
class ClientIdentification(_message.Message):
 | 
			
		||||
    __slots__ = ["client_capabilities", "client_info", "device_credentials", "license_counter", "provider_client_token", "token", "type", "vmp_data"]
 | 
			
		||||
    class TokenType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
        __slots__ = []
 | 
			
		||||
    class ClientCapabilities(_message.Message):
 | 
			
		||||
        __slots__ = ["analog_output_capabilities", "anti_rollback_usage_table", "can_disable_analog_output", "can_update_srm", "client_token", "max_hdcp_version", "oem_crypto_api_version", "resource_rating_tier", "session_token", "srm_version", "supported_certificate_key_type", "video_resolution_constraints"]
 | 
			
		||||
        class AnalogOutputCapabilities(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
            __slots__ = []
 | 
			
		||||
        class CertificateKeyType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
            __slots__ = []
 | 
			
		||||
        class HdcpVersion(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
            __slots__ = []
 | 
			
		||||
        ANALOG_OUTPUT_CAPABILITIES_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        ANALOG_OUTPUT_NONE: ClientIdentification.ClientCapabilities.AnalogOutputCapabilities
 | 
			
		||||
        ANALOG_OUTPUT_SUPPORTED: ClientIdentification.ClientCapabilities.AnalogOutputCapabilities
 | 
			
		||||
        ANALOG_OUTPUT_SUPPORTS_CGMS_A: ClientIdentification.ClientCapabilities.AnalogOutputCapabilities
 | 
			
		||||
        ANALOG_OUTPUT_UNKNOWN: ClientIdentification.ClientCapabilities.AnalogOutputCapabilities
 | 
			
		||||
        ANTI_ROLLBACK_USAGE_TABLE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        CAN_DISABLE_ANALOG_OUTPUT_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        CAN_UPDATE_SRM_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        CLIENT_TOKEN_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        ECC_SECP256R1: ClientIdentification.ClientCapabilities.CertificateKeyType
 | 
			
		||||
        ECC_SECP384R1: ClientIdentification.ClientCapabilities.CertificateKeyType
 | 
			
		||||
        ECC_SECP521R1: ClientIdentification.ClientCapabilities.CertificateKeyType
 | 
			
		||||
        HDCP_NONE: ClientIdentification.ClientCapabilities.HdcpVersion
 | 
			
		||||
        HDCP_NO_DIGITAL_OUTPUT: ClientIdentification.ClientCapabilities.HdcpVersion
 | 
			
		||||
        HDCP_V1: ClientIdentification.ClientCapabilities.HdcpVersion
 | 
			
		||||
        HDCP_V2: ClientIdentification.ClientCapabilities.HdcpVersion
 | 
			
		||||
        HDCP_V2_1: ClientIdentification.ClientCapabilities.HdcpVersion
 | 
			
		||||
        HDCP_V2_2: ClientIdentification.ClientCapabilities.HdcpVersion
 | 
			
		||||
        HDCP_V2_3: ClientIdentification.ClientCapabilities.HdcpVersion
 | 
			
		||||
        MAX_HDCP_VERSION_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        OEM_CRYPTO_API_VERSION_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        RESOURCE_RATING_TIER_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        RSA_2048: ClientIdentification.ClientCapabilities.CertificateKeyType
 | 
			
		||||
        RSA_3072: ClientIdentification.ClientCapabilities.CertificateKeyType
 | 
			
		||||
        SESSION_TOKEN_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        SRM_VERSION_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        SUPPORTED_CERTIFICATE_KEY_TYPE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        VIDEO_RESOLUTION_CONSTRAINTS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        analog_output_capabilities: ClientIdentification.ClientCapabilities.AnalogOutputCapabilities
 | 
			
		||||
        anti_rollback_usage_table: bool
 | 
			
		||||
        can_disable_analog_output: bool
 | 
			
		||||
        can_update_srm: bool
 | 
			
		||||
        client_token: bool
 | 
			
		||||
        max_hdcp_version: ClientIdentification.ClientCapabilities.HdcpVersion
 | 
			
		||||
        oem_crypto_api_version: int
 | 
			
		||||
        resource_rating_tier: int
 | 
			
		||||
        session_token: bool
 | 
			
		||||
        srm_version: int
 | 
			
		||||
        supported_certificate_key_type: _containers.RepeatedScalarFieldContainer[ClientIdentification.ClientCapabilities.CertificateKeyType]
 | 
			
		||||
        video_resolution_constraints: bool
 | 
			
		||||
        def __init__(self, client_token: bool = ..., session_token: bool = ..., video_resolution_constraints: bool = ..., max_hdcp_version: _Optional[_Union[ClientIdentification.ClientCapabilities.HdcpVersion, str]] = ..., oem_crypto_api_version: _Optional[int] = ..., anti_rollback_usage_table: bool = ..., srm_version: _Optional[int] = ..., can_update_srm: bool = ..., supported_certificate_key_type: _Optional[_Iterable[_Union[ClientIdentification.ClientCapabilities.CertificateKeyType, str]]] = ..., analog_output_capabilities: _Optional[_Union[ClientIdentification.ClientCapabilities.AnalogOutputCapabilities, str]] = ..., can_disable_analog_output: bool = ..., resource_rating_tier: _Optional[int] = ...) -> None: ...
 | 
			
		||||
    class ClientCredentials(_message.Message):
 | 
			
		||||
        __slots__ = ["token", "type"]
 | 
			
		||||
        TOKEN_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        TYPE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        token: bytes
 | 
			
		||||
        type: ClientIdentification.TokenType
 | 
			
		||||
        def __init__(self, type: _Optional[_Union[ClientIdentification.TokenType, str]] = ..., token: _Optional[bytes] = ...) -> None: ...
 | 
			
		||||
    class NameValue(_message.Message):
 | 
			
		||||
        __slots__ = ["name", "value"]
 | 
			
		||||
        NAME_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        VALUE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        name: str
 | 
			
		||||
        value: str
 | 
			
		||||
        def __init__(self, name: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
 | 
			
		||||
    CLIENT_CAPABILITIES_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    CLIENT_INFO_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    DEVICE_CREDENTIALS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    DRM_DEVICE_CERTIFICATE: ClientIdentification.TokenType
 | 
			
		||||
    KEYBOX: ClientIdentification.TokenType
 | 
			
		||||
    LICENSE_COUNTER_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    OEM_DEVICE_CERTIFICATE: ClientIdentification.TokenType
 | 
			
		||||
    PROVIDER_CLIENT_TOKEN_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    REMOTE_ATTESTATION_CERTIFICATE: ClientIdentification.TokenType
 | 
			
		||||
    TOKEN_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    TYPE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    VMP_DATA_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    client_capabilities: ClientIdentification.ClientCapabilities
 | 
			
		||||
    client_info: _containers.RepeatedCompositeFieldContainer[ClientIdentification.NameValue]
 | 
			
		||||
    device_credentials: _containers.RepeatedCompositeFieldContainer[ClientIdentification.ClientCredentials]
 | 
			
		||||
    license_counter: int
 | 
			
		||||
    provider_client_token: bytes
 | 
			
		||||
    token: bytes
 | 
			
		||||
    type: ClientIdentification.TokenType
 | 
			
		||||
    vmp_data: bytes
 | 
			
		||||
    def __init__(self, type: _Optional[_Union[ClientIdentification.TokenType, str]] = ..., token: _Optional[bytes] = ..., client_info: _Optional[_Iterable[_Union[ClientIdentification.NameValue, _Mapping]]] = ..., provider_client_token: _Optional[bytes] = ..., license_counter: _Optional[int] = ..., client_capabilities: _Optional[_Union[ClientIdentification.ClientCapabilities, _Mapping]] = ..., vmp_data: _Optional[bytes] = ..., device_credentials: _Optional[_Iterable[_Union[ClientIdentification.ClientCredentials, _Mapping]]] = ...) -> None: ...
 | 
			
		||||
 | 
			
		||||
class DrmCertificate(_message.Message):
 | 
			
		||||
    __slots__ = ["algorithm", "creation_time_seconds", "encryption_key", "expiration_time_seconds", "provider_id", "public_key", "rot_id", "serial_number", "service_types", "system_id", "test_device_deprecated", "type"]
 | 
			
		||||
    class Algorithm(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
        __slots__ = []
 | 
			
		||||
    class ServiceType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
        __slots__ = []
 | 
			
		||||
    class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
        __slots__ = []
 | 
			
		||||
    class EncryptionKey(_message.Message):
 | 
			
		||||
        __slots__ = ["algorithm", "public_key"]
 | 
			
		||||
        ALGORITHM_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        PUBLIC_KEY_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        algorithm: DrmCertificate.Algorithm
 | 
			
		||||
        public_key: bytes
 | 
			
		||||
        def __init__(self, public_key: _Optional[bytes] = ..., algorithm: _Optional[_Union[DrmCertificate.Algorithm, str]] = ...) -> None: ...
 | 
			
		||||
    ALGORITHM_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    CAS_PROXY_SDK: DrmCertificate.ServiceType
 | 
			
		||||
    CREATION_TIME_SECONDS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    DEVICE: DrmCertificate.Type
 | 
			
		||||
    DEVICE_MODEL: DrmCertificate.Type
 | 
			
		||||
    ECC_SECP256R1: DrmCertificate.Algorithm
 | 
			
		||||
    ECC_SECP384R1: DrmCertificate.Algorithm
 | 
			
		||||
    ECC_SECP521R1: DrmCertificate.Algorithm
 | 
			
		||||
    ENCRYPTION_KEY_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    EXPIRATION_TIME_SECONDS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    LICENSE_SERVER_PROXY_SDK: DrmCertificate.ServiceType
 | 
			
		||||
    LICENSE_SERVER_SDK: DrmCertificate.ServiceType
 | 
			
		||||
    PROVIDER_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    PROVISIONER: DrmCertificate.Type
 | 
			
		||||
    PROVISIONING_SDK: DrmCertificate.ServiceType
 | 
			
		||||
    PUBLIC_KEY_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    ROOT: DrmCertificate.Type
 | 
			
		||||
    ROT_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    RSA: DrmCertificate.Algorithm
 | 
			
		||||
    SERIAL_NUMBER_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    SERVICE: DrmCertificate.Type
 | 
			
		||||
    SERVICE_TYPES_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    SYSTEM_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    TEST_DEVICE_DEPRECATED_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    TYPE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    UNKNOWN_ALGORITHM: DrmCertificate.Algorithm
 | 
			
		||||
    UNKNOWN_SERVICE_TYPE: DrmCertificate.ServiceType
 | 
			
		||||
    algorithm: DrmCertificate.Algorithm
 | 
			
		||||
    creation_time_seconds: int
 | 
			
		||||
    encryption_key: DrmCertificate.EncryptionKey
 | 
			
		||||
    expiration_time_seconds: int
 | 
			
		||||
    provider_id: str
 | 
			
		||||
    public_key: bytes
 | 
			
		||||
    rot_id: bytes
 | 
			
		||||
    serial_number: bytes
 | 
			
		||||
    service_types: _containers.RepeatedScalarFieldContainer[DrmCertificate.ServiceType]
 | 
			
		||||
    system_id: int
 | 
			
		||||
    test_device_deprecated: bool
 | 
			
		||||
    type: DrmCertificate.Type
 | 
			
		||||
    def __init__(self, type: _Optional[_Union[DrmCertificate.Type, str]] = ..., serial_number: _Optional[bytes] = ..., creation_time_seconds: _Optional[int] = ..., expiration_time_seconds: _Optional[int] = ..., public_key: _Optional[bytes] = ..., system_id: _Optional[int] = ..., test_device_deprecated: bool = ..., provider_id: _Optional[str] = ..., service_types: _Optional[_Iterable[_Union[DrmCertificate.ServiceType, str]]] = ..., algorithm: _Optional[_Union[DrmCertificate.Algorithm, str]] = ..., rot_id: _Optional[bytes] = ..., encryption_key: _Optional[_Union[DrmCertificate.EncryptionKey, _Mapping]] = ...) -> None: ...
 | 
			
		||||
 | 
			
		||||
class EncryptedClientIdentification(_message.Message):
 | 
			
		||||
    __slots__ = ["encrypted_client_id", "encrypted_client_id_iv", "encrypted_privacy_key", "provider_id", "service_certificate_serial_number"]
 | 
			
		||||
    ENCRYPTED_CLIENT_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    ENCRYPTED_CLIENT_ID_IV_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    ENCRYPTED_PRIVACY_KEY_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    PROVIDER_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    SERVICE_CERTIFICATE_SERIAL_NUMBER_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    encrypted_client_id: bytes
 | 
			
		||||
    encrypted_client_id_iv: bytes
 | 
			
		||||
    encrypted_privacy_key: bytes
 | 
			
		||||
    provider_id: str
 | 
			
		||||
    service_certificate_serial_number: bytes
 | 
			
		||||
    def __init__(self, provider_id: _Optional[str] = ..., service_certificate_serial_number: _Optional[bytes] = ..., encrypted_client_id: _Optional[bytes] = ..., encrypted_client_id_iv: _Optional[bytes] = ..., encrypted_privacy_key: _Optional[bytes] = ...) -> None: ...
 | 
			
		||||
 | 
			
		||||
class FileHashes(_message.Message):
 | 
			
		||||
    __slots__ = ["signatures", "signer"]
 | 
			
		||||
    class Signature(_message.Message):
 | 
			
		||||
        __slots__ = ["SHA512Hash", "filename", "main_exe", "signature", "test_signing"]
 | 
			
		||||
        FILENAME_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        MAIN_EXE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        SHA512HASH_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        SHA512Hash: bytes
 | 
			
		||||
        SIGNATURE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        TEST_SIGNING_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        filename: str
 | 
			
		||||
        main_exe: bool
 | 
			
		||||
        signature: bytes
 | 
			
		||||
        test_signing: bool
 | 
			
		||||
        def __init__(self, filename: _Optional[str] = ..., test_signing: bool = ..., SHA512Hash: _Optional[bytes] = ..., main_exe: bool = ..., signature: _Optional[bytes] = ...) -> None: ...
 | 
			
		||||
    SIGNATURES_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    SIGNER_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    signatures: _containers.RepeatedCompositeFieldContainer[FileHashes.Signature]
 | 
			
		||||
    signer: bytes
 | 
			
		||||
    def __init__(self, signer: _Optional[bytes] = ..., signatures: _Optional[_Iterable[_Union[FileHashes.Signature, _Mapping]]] = ...) -> None: ...
 | 
			
		||||
 | 
			
		||||
class License(_message.Message):
 | 
			
		||||
    __slots__ = ["group_ids", "id", "key", "license_start_time", "platform_verification_status", "policy", "protection_scheme", "provider_client_token", "remote_attestation_verified", "srm_requirement", "srm_update"]
 | 
			
		||||
    class KeyContainer(_message.Message):
 | 
			
		||||
        __slots__ = ["anti_rollback_usage_table", "id", "iv", "key", "key_control", "level", "operator_session_key_permissions", "requested_protection", "required_protection", "track_label", "type", "video_resolution_constraints"]
 | 
			
		||||
        class KeyType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
            __slots__ = []
 | 
			
		||||
        class SecurityLevel(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
            __slots__ = []
 | 
			
		||||
        class KeyControl(_message.Message):
 | 
			
		||||
            __slots__ = ["iv", "key_control_block"]
 | 
			
		||||
            IV_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            KEY_CONTROL_BLOCK_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            iv: bytes
 | 
			
		||||
            key_control_block: bytes
 | 
			
		||||
            def __init__(self, key_control_block: _Optional[bytes] = ..., iv: _Optional[bytes] = ...) -> None: ...
 | 
			
		||||
        class OperatorSessionKeyPermissions(_message.Message):
 | 
			
		||||
            __slots__ = ["allow_decrypt", "allow_encrypt", "allow_sign", "allow_signature_verify"]
 | 
			
		||||
            ALLOW_DECRYPT_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            ALLOW_ENCRYPT_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            ALLOW_SIGNATURE_VERIFY_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            ALLOW_SIGN_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            allow_decrypt: bool
 | 
			
		||||
            allow_encrypt: bool
 | 
			
		||||
            allow_sign: bool
 | 
			
		||||
            allow_signature_verify: bool
 | 
			
		||||
            def __init__(self, allow_encrypt: bool = ..., allow_decrypt: bool = ..., allow_sign: bool = ..., allow_signature_verify: bool = ...) -> None: ...
 | 
			
		||||
        class OutputProtection(_message.Message):
 | 
			
		||||
            __slots__ = ["cgms_flags", "disable_analog_output", "disable_digital_output", "hdcp", "hdcp_srm_rule"]
 | 
			
		||||
            class CGMS(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
                __slots__ = []
 | 
			
		||||
            class HDCP(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
                __slots__ = []
 | 
			
		||||
            class HdcpSrmRule(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
                __slots__ = []
 | 
			
		||||
            CGMS_FLAGS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            CGMS_NONE: License.KeyContainer.OutputProtection.CGMS
 | 
			
		||||
            COPY_FREE: License.KeyContainer.OutputProtection.CGMS
 | 
			
		||||
            COPY_NEVER: License.KeyContainer.OutputProtection.CGMS
 | 
			
		||||
            COPY_ONCE: License.KeyContainer.OutputProtection.CGMS
 | 
			
		||||
            CURRENT_SRM: License.KeyContainer.OutputProtection.HdcpSrmRule
 | 
			
		||||
            DISABLE_ANALOG_OUTPUT_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            DISABLE_DIGITAL_OUTPUT_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            HDCP_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            HDCP_NONE: License.KeyContainer.OutputProtection.HDCP
 | 
			
		||||
            HDCP_NO_DIGITAL_OUTPUT: License.KeyContainer.OutputProtection.HDCP
 | 
			
		||||
            HDCP_SRM_RULE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            HDCP_SRM_RULE_NONE: License.KeyContainer.OutputProtection.HdcpSrmRule
 | 
			
		||||
            HDCP_V1: License.KeyContainer.OutputProtection.HDCP
 | 
			
		||||
            HDCP_V2: License.KeyContainer.OutputProtection.HDCP
 | 
			
		||||
            HDCP_V2_1: License.KeyContainer.OutputProtection.HDCP
 | 
			
		||||
            HDCP_V2_2: License.KeyContainer.OutputProtection.HDCP
 | 
			
		||||
            HDCP_V2_3: License.KeyContainer.OutputProtection.HDCP
 | 
			
		||||
            cgms_flags: License.KeyContainer.OutputProtection.CGMS
 | 
			
		||||
            disable_analog_output: bool
 | 
			
		||||
            disable_digital_output: bool
 | 
			
		||||
            hdcp: License.KeyContainer.OutputProtection.HDCP
 | 
			
		||||
            hdcp_srm_rule: License.KeyContainer.OutputProtection.HdcpSrmRule
 | 
			
		||||
            def __init__(self, hdcp: _Optional[_Union[License.KeyContainer.OutputProtection.HDCP, str]] = ..., cgms_flags: _Optional[_Union[License.KeyContainer.OutputProtection.CGMS, str]] = ..., hdcp_srm_rule: _Optional[_Union[License.KeyContainer.OutputProtection.HdcpSrmRule, str]] = ..., disable_analog_output: bool = ..., disable_digital_output: bool = ...) -> None: ...
 | 
			
		||||
        class VideoResolutionConstraint(_message.Message):
 | 
			
		||||
            __slots__ = ["max_resolution_pixels", "min_resolution_pixels", "required_protection"]
 | 
			
		||||
            MAX_RESOLUTION_PIXELS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            MIN_RESOLUTION_PIXELS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            REQUIRED_PROTECTION_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            max_resolution_pixels: int
 | 
			
		||||
            min_resolution_pixels: int
 | 
			
		||||
            required_protection: License.KeyContainer.OutputProtection
 | 
			
		||||
            def __init__(self, min_resolution_pixels: _Optional[int] = ..., max_resolution_pixels: _Optional[int] = ..., required_protection: _Optional[_Union[License.KeyContainer.OutputProtection, _Mapping]] = ...) -> None: ...
 | 
			
		||||
        ANTI_ROLLBACK_USAGE_TABLE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        CONTENT: License.KeyContainer.KeyType
 | 
			
		||||
        ENTITLEMENT: License.KeyContainer.KeyType
 | 
			
		||||
        HW_SECURE_ALL: License.KeyContainer.SecurityLevel
 | 
			
		||||
        HW_SECURE_CRYPTO: License.KeyContainer.SecurityLevel
 | 
			
		||||
        HW_SECURE_DECODE: License.KeyContainer.SecurityLevel
 | 
			
		||||
        ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        IV_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        KEY_CONTROL: License.KeyContainer.KeyType
 | 
			
		||||
        KEY_CONTROL_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        KEY_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        LEVEL_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        OEM_CONTENT: License.KeyContainer.KeyType
 | 
			
		||||
        OPERATOR_SESSION: License.KeyContainer.KeyType
 | 
			
		||||
        OPERATOR_SESSION_KEY_PERMISSIONS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        REQUESTED_PROTECTION_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        REQUIRED_PROTECTION_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        SIGNING: License.KeyContainer.KeyType
 | 
			
		||||
        SW_SECURE_CRYPTO: License.KeyContainer.SecurityLevel
 | 
			
		||||
        SW_SECURE_DECODE: License.KeyContainer.SecurityLevel
 | 
			
		||||
        TRACK_LABEL_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        TYPE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        VIDEO_RESOLUTION_CONSTRAINTS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        anti_rollback_usage_table: bool
 | 
			
		||||
        id: bytes
 | 
			
		||||
        iv: bytes
 | 
			
		||||
        key: bytes
 | 
			
		||||
        key_control: License.KeyContainer.KeyControl
 | 
			
		||||
        level: License.KeyContainer.SecurityLevel
 | 
			
		||||
        operator_session_key_permissions: License.KeyContainer.OperatorSessionKeyPermissions
 | 
			
		||||
        requested_protection: License.KeyContainer.OutputProtection
 | 
			
		||||
        required_protection: License.KeyContainer.OutputProtection
 | 
			
		||||
        track_label: str
 | 
			
		||||
        type: License.KeyContainer.KeyType
 | 
			
		||||
        video_resolution_constraints: _containers.RepeatedCompositeFieldContainer[License.KeyContainer.VideoResolutionConstraint]
 | 
			
		||||
        def __init__(self, id: _Optional[bytes] = ..., iv: _Optional[bytes] = ..., key: _Optional[bytes] = ..., type: _Optional[_Union[License.KeyContainer.KeyType, str]] = ..., level: _Optional[_Union[License.KeyContainer.SecurityLevel, str]] = ..., required_protection: _Optional[_Union[License.KeyContainer.OutputProtection, _Mapping]] = ..., requested_protection: _Optional[_Union[License.KeyContainer.OutputProtection, _Mapping]] = ..., key_control: _Optional[_Union[License.KeyContainer.KeyControl, _Mapping]] = ..., operator_session_key_permissions: _Optional[_Union[License.KeyContainer.OperatorSessionKeyPermissions, _Mapping]] = ..., video_resolution_constraints: _Optional[_Iterable[_Union[License.KeyContainer.VideoResolutionConstraint, _Mapping]]] = ..., anti_rollback_usage_table: bool = ..., track_label: _Optional[str] = ...) -> None: ...
 | 
			
		||||
    class Policy(_message.Message):
 | 
			
		||||
        __slots__ = ["always_include_client_id", "can_persist", "can_play", "can_renew", "license_duration_seconds", "play_start_grace_period_seconds", "playback_duration_seconds", "renew_with_usage", "renewal_delay_seconds", "renewal_recovery_duration_seconds", "renewal_retry_interval_seconds", "renewal_server_url", "rental_duration_seconds", "soft_enforce_playback_duration", "soft_enforce_rental_duration"]
 | 
			
		||||
        ALWAYS_INCLUDE_CLIENT_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        CAN_PERSIST_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        CAN_PLAY_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        CAN_RENEW_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        LICENSE_DURATION_SECONDS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        PLAYBACK_DURATION_SECONDS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        PLAY_START_GRACE_PERIOD_SECONDS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        RENEWAL_DELAY_SECONDS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        RENEWAL_RECOVERY_DURATION_SECONDS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        RENEWAL_RETRY_INTERVAL_SECONDS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        RENEWAL_SERVER_URL_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        RENEW_WITH_USAGE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        RENTAL_DURATION_SECONDS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        SOFT_ENFORCE_PLAYBACK_DURATION_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        SOFT_ENFORCE_RENTAL_DURATION_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        always_include_client_id: bool
 | 
			
		||||
        can_persist: bool
 | 
			
		||||
        can_play: bool
 | 
			
		||||
        can_renew: bool
 | 
			
		||||
        license_duration_seconds: int
 | 
			
		||||
        play_start_grace_period_seconds: int
 | 
			
		||||
        playback_duration_seconds: int
 | 
			
		||||
        renew_with_usage: bool
 | 
			
		||||
        renewal_delay_seconds: int
 | 
			
		||||
        renewal_recovery_duration_seconds: int
 | 
			
		||||
        renewal_retry_interval_seconds: int
 | 
			
		||||
        renewal_server_url: str
 | 
			
		||||
        rental_duration_seconds: int
 | 
			
		||||
        soft_enforce_playback_duration: bool
 | 
			
		||||
        soft_enforce_rental_duration: bool
 | 
			
		||||
        def __init__(self, can_play: bool = ..., can_persist: bool = ..., can_renew: bool = ..., rental_duration_seconds: _Optional[int] = ..., playback_duration_seconds: _Optional[int] = ..., license_duration_seconds: _Optional[int] = ..., renewal_recovery_duration_seconds: _Optional[int] = ..., renewal_server_url: _Optional[str] = ..., renewal_delay_seconds: _Optional[int] = ..., renewal_retry_interval_seconds: _Optional[int] = ..., renew_with_usage: bool = ..., always_include_client_id: bool = ..., play_start_grace_period_seconds: _Optional[int] = ..., soft_enforce_playback_duration: bool = ..., soft_enforce_rental_duration: bool = ...) -> None: ...
 | 
			
		||||
    GROUP_IDS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    KEY_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    LICENSE_START_TIME_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    PLATFORM_VERIFICATION_STATUS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    POLICY_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    PROTECTION_SCHEME_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    PROVIDER_CLIENT_TOKEN_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    REMOTE_ATTESTATION_VERIFIED_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    SRM_REQUIREMENT_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    SRM_UPDATE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    group_ids: _containers.RepeatedScalarFieldContainer[bytes]
 | 
			
		||||
    id: LicenseIdentification
 | 
			
		||||
    key: _containers.RepeatedCompositeFieldContainer[License.KeyContainer]
 | 
			
		||||
    license_start_time: int
 | 
			
		||||
    platform_verification_status: PlatformVerificationStatus
 | 
			
		||||
    policy: License.Policy
 | 
			
		||||
    protection_scheme: int
 | 
			
		||||
    provider_client_token: bytes
 | 
			
		||||
    remote_attestation_verified: bool
 | 
			
		||||
    srm_requirement: bytes
 | 
			
		||||
    srm_update: bytes
 | 
			
		||||
    def __init__(self, id: _Optional[_Union[LicenseIdentification, _Mapping]] = ..., policy: _Optional[_Union[License.Policy, _Mapping]] = ..., key: _Optional[_Iterable[_Union[License.KeyContainer, _Mapping]]] = ..., license_start_time: _Optional[int] = ..., remote_attestation_verified: bool = ..., provider_client_token: _Optional[bytes] = ..., protection_scheme: _Optional[int] = ..., srm_requirement: _Optional[bytes] = ..., srm_update: _Optional[bytes] = ..., platform_verification_status: _Optional[_Union[PlatformVerificationStatus, str]] = ..., group_ids: _Optional[_Iterable[bytes]] = ...) -> None: ...
 | 
			
		||||
 | 
			
		||||
class LicenseIdentification(_message.Message):
 | 
			
		||||
    __slots__ = ["provider_session_token", "purchase_id", "request_id", "session_id", "type", "version"]
 | 
			
		||||
    PROVIDER_SESSION_TOKEN_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    PURCHASE_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    REQUEST_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    SESSION_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    TYPE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    VERSION_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    provider_session_token: bytes
 | 
			
		||||
    purchase_id: bytes
 | 
			
		||||
    request_id: bytes
 | 
			
		||||
    session_id: bytes
 | 
			
		||||
    type: LicenseType
 | 
			
		||||
    version: int
 | 
			
		||||
    def __init__(self, request_id: _Optional[bytes] = ..., session_id: _Optional[bytes] = ..., purchase_id: _Optional[bytes] = ..., type: _Optional[_Union[LicenseType, str]] = ..., version: _Optional[int] = ..., provider_session_token: _Optional[bytes] = ...) -> None: ...
 | 
			
		||||
 | 
			
		||||
class LicenseRequest(_message.Message):
 | 
			
		||||
    __slots__ = ["client_id", "content_id", "encrypted_client_id", "key_control_nonce", "key_control_nonce_deprecated", "protocol_version", "request_time", "type"]
 | 
			
		||||
    class RequestType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
        __slots__ = []
 | 
			
		||||
    class ContentIdentification(_message.Message):
 | 
			
		||||
        __slots__ = ["existing_license", "init_data", "webm_key_id", "widevine_pssh_data"]
 | 
			
		||||
        class ExistingLicense(_message.Message):
 | 
			
		||||
            __slots__ = ["license_id", "seconds_since_last_played", "seconds_since_started", "session_usage_table_entry"]
 | 
			
		||||
            LICENSE_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            SECONDS_SINCE_LAST_PLAYED_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            SECONDS_SINCE_STARTED_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            SESSION_USAGE_TABLE_ENTRY_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            license_id: LicenseIdentification
 | 
			
		||||
            seconds_since_last_played: int
 | 
			
		||||
            seconds_since_started: int
 | 
			
		||||
            session_usage_table_entry: bytes
 | 
			
		||||
            def __init__(self, license_id: _Optional[_Union[LicenseIdentification, _Mapping]] = ..., seconds_since_started: _Optional[int] = ..., seconds_since_last_played: _Optional[int] = ..., session_usage_table_entry: _Optional[bytes] = ...) -> None: ...
 | 
			
		||||
        class InitData(_message.Message):
 | 
			
		||||
            __slots__ = ["init_data", "init_data_type", "license_type", "request_id"]
 | 
			
		||||
            class InitDataType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
                __slots__ = []
 | 
			
		||||
            CENC: LicenseRequest.ContentIdentification.InitData.InitDataType
 | 
			
		||||
            INIT_DATA_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            INIT_DATA_TYPE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            LICENSE_TYPE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            REQUEST_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            WEBM: LicenseRequest.ContentIdentification.InitData.InitDataType
 | 
			
		||||
            init_data: bytes
 | 
			
		||||
            init_data_type: LicenseRequest.ContentIdentification.InitData.InitDataType
 | 
			
		||||
            license_type: LicenseType
 | 
			
		||||
            request_id: bytes
 | 
			
		||||
            def __init__(self, init_data_type: _Optional[_Union[LicenseRequest.ContentIdentification.InitData.InitDataType, str]] = ..., init_data: _Optional[bytes] = ..., license_type: _Optional[_Union[LicenseType, str]] = ..., request_id: _Optional[bytes] = ...) -> None: ...
 | 
			
		||||
        class WebmKeyId(_message.Message):
 | 
			
		||||
            __slots__ = ["header", "license_type", "request_id"]
 | 
			
		||||
            HEADER_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            LICENSE_TYPE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            REQUEST_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            header: bytes
 | 
			
		||||
            license_type: LicenseType
 | 
			
		||||
            request_id: bytes
 | 
			
		||||
            def __init__(self, header: _Optional[bytes] = ..., license_type: _Optional[_Union[LicenseType, str]] = ..., request_id: _Optional[bytes] = ...) -> None: ...
 | 
			
		||||
        class WidevinePsshData(_message.Message):
 | 
			
		||||
            __slots__ = ["license_type", "pssh_data", "request_id"]
 | 
			
		||||
            LICENSE_TYPE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            PSSH_DATA_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            REQUEST_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
            license_type: LicenseType
 | 
			
		||||
            pssh_data: _containers.RepeatedScalarFieldContainer[bytes]
 | 
			
		||||
            request_id: bytes
 | 
			
		||||
            def __init__(self, pssh_data: _Optional[_Iterable[bytes]] = ..., license_type: _Optional[_Union[LicenseType, str]] = ..., request_id: _Optional[bytes] = ...) -> None: ...
 | 
			
		||||
        EXISTING_LICENSE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        INIT_DATA_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        WEBM_KEY_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        WIDEVINE_PSSH_DATA_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        existing_license: LicenseRequest.ContentIdentification.ExistingLicense
 | 
			
		||||
        init_data: LicenseRequest.ContentIdentification.InitData
 | 
			
		||||
        webm_key_id: LicenseRequest.ContentIdentification.WebmKeyId
 | 
			
		||||
        widevine_pssh_data: LicenseRequest.ContentIdentification.WidevinePsshData
 | 
			
		||||
        def __init__(self, widevine_pssh_data: _Optional[_Union[LicenseRequest.ContentIdentification.WidevinePsshData, _Mapping]] = ..., webm_key_id: _Optional[_Union[LicenseRequest.ContentIdentification.WebmKeyId, _Mapping]] = ..., existing_license: _Optional[_Union[LicenseRequest.ContentIdentification.ExistingLicense, _Mapping]] = ..., init_data: _Optional[_Union[LicenseRequest.ContentIdentification.InitData, _Mapping]] = ...) -> None: ...
 | 
			
		||||
    CLIENT_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    CONTENT_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    ENCRYPTED_CLIENT_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    KEY_CONTROL_NONCE_DEPRECATED_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    KEY_CONTROL_NONCE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    NEW: LicenseRequest.RequestType
 | 
			
		||||
    PROTOCOL_VERSION_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    RELEASE: LicenseRequest.RequestType
 | 
			
		||||
    RENEWAL: LicenseRequest.RequestType
 | 
			
		||||
    REQUEST_TIME_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    TYPE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    client_id: ClientIdentification
 | 
			
		||||
    content_id: LicenseRequest.ContentIdentification
 | 
			
		||||
    encrypted_client_id: EncryptedClientIdentification
 | 
			
		||||
    key_control_nonce: int
 | 
			
		||||
    key_control_nonce_deprecated: bytes
 | 
			
		||||
    protocol_version: ProtocolVersion
 | 
			
		||||
    request_time: int
 | 
			
		||||
    type: LicenseRequest.RequestType
 | 
			
		||||
    def __init__(self, client_id: _Optional[_Union[ClientIdentification, _Mapping]] = ..., content_id: _Optional[_Union[LicenseRequest.ContentIdentification, _Mapping]] = ..., type: _Optional[_Union[LicenseRequest.RequestType, str]] = ..., request_time: _Optional[int] = ..., key_control_nonce_deprecated: _Optional[bytes] = ..., protocol_version: _Optional[_Union[ProtocolVersion, str]] = ..., key_control_nonce: _Optional[int] = ..., encrypted_client_id: _Optional[_Union[EncryptedClientIdentification, _Mapping]] = ...) -> None: ...
 | 
			
		||||
 | 
			
		||||
class MetricData(_message.Message):
 | 
			
		||||
    __slots__ = ["metric_data", "stage_name"]
 | 
			
		||||
    class MetricType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
        __slots__ = []
 | 
			
		||||
    class TypeValue(_message.Message):
 | 
			
		||||
        __slots__ = ["type", "value"]
 | 
			
		||||
        TYPE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        VALUE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        type: MetricData.MetricType
 | 
			
		||||
        value: int
 | 
			
		||||
        def __init__(self, type: _Optional[_Union[MetricData.MetricType, str]] = ..., value: _Optional[int] = ...) -> None: ...
 | 
			
		||||
    LATENCY: MetricData.MetricType
 | 
			
		||||
    METRIC_DATA_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    STAGE_NAME_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    TIMESTAMP: MetricData.MetricType
 | 
			
		||||
    metric_data: _containers.RepeatedCompositeFieldContainer[MetricData.TypeValue]
 | 
			
		||||
    stage_name: str
 | 
			
		||||
    def __init__(self, stage_name: _Optional[str] = ..., metric_data: _Optional[_Iterable[_Union[MetricData.TypeValue, _Mapping]]] = ...) -> None: ...
 | 
			
		||||
 | 
			
		||||
class SignedDrmCertificate(_message.Message):
 | 
			
		||||
    __slots__ = ["drm_certificate", "hash_algorithm", "signature", "signer"]
 | 
			
		||||
    DRM_CERTIFICATE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    HASH_ALGORITHM_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    SIGNATURE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    SIGNER_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    drm_certificate: bytes
 | 
			
		||||
    hash_algorithm: HashAlgorithmProto
 | 
			
		||||
    signature: bytes
 | 
			
		||||
    signer: SignedDrmCertificate
 | 
			
		||||
    def __init__(self, drm_certificate: _Optional[bytes] = ..., signature: _Optional[bytes] = ..., signer: _Optional[_Union[SignedDrmCertificate, _Mapping]] = ..., hash_algorithm: _Optional[_Union[HashAlgorithmProto, str]] = ...) -> None: ...
 | 
			
		||||
 | 
			
		||||
class SignedMessage(_message.Message):
 | 
			
		||||
    __slots__ = ["metric_data", "msg", "oemcrypto_core_message", "remote_attestation", "service_version_info", "session_key", "session_key_type", "signature", "type"]
 | 
			
		||||
    class MessageType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
        __slots__ = []
 | 
			
		||||
    class SessionKeyType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
        __slots__ = []
 | 
			
		||||
    CAS_LICENSE: SignedMessage.MessageType
 | 
			
		||||
    CAS_LICENSE_REQUEST: SignedMessage.MessageType
 | 
			
		||||
    EPHERMERAL_ECC_PUBLIC_KEY: SignedMessage.SessionKeyType
 | 
			
		||||
    ERROR_RESPONSE: SignedMessage.MessageType
 | 
			
		||||
    EXTERNAL_LICENSE: SignedMessage.MessageType
 | 
			
		||||
    EXTERNAL_LICENSE_REQUEST: SignedMessage.MessageType
 | 
			
		||||
    LICENSE: SignedMessage.MessageType
 | 
			
		||||
    LICENSE_REQUEST: SignedMessage.MessageType
 | 
			
		||||
    METRIC_DATA_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    MSG_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    OEMCRYPTO_CORE_MESSAGE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    REMOTE_ATTESTATION_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    SERVICE_CERTIFICATE: SignedMessage.MessageType
 | 
			
		||||
    SERVICE_CERTIFICATE_REQUEST: SignedMessage.MessageType
 | 
			
		||||
    SERVICE_VERSION_INFO_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    SESSION_KEY_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    SESSION_KEY_TYPE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    SIGNATURE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    SUB_LICENSE: SignedMessage.MessageType
 | 
			
		||||
    TYPE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    UNDEFINED: SignedMessage.SessionKeyType
 | 
			
		||||
    WRAPPED_AES_KEY: SignedMessage.SessionKeyType
 | 
			
		||||
    metric_data: _containers.RepeatedCompositeFieldContainer[MetricData]
 | 
			
		||||
    msg: bytes
 | 
			
		||||
    oemcrypto_core_message: bytes
 | 
			
		||||
    remote_attestation: bytes
 | 
			
		||||
    service_version_info: VersionInfo
 | 
			
		||||
    session_key: bytes
 | 
			
		||||
    session_key_type: SignedMessage.SessionKeyType
 | 
			
		||||
    signature: bytes
 | 
			
		||||
    type: SignedMessage.MessageType
 | 
			
		||||
    def __init__(self, type: _Optional[_Union[SignedMessage.MessageType, str]] = ..., msg: _Optional[bytes] = ..., signature: _Optional[bytes] = ..., session_key: _Optional[bytes] = ..., remote_attestation: _Optional[bytes] = ..., metric_data: _Optional[_Iterable[_Union[MetricData, _Mapping]]] = ..., service_version_info: _Optional[_Union[VersionInfo, _Mapping]] = ..., session_key_type: _Optional[_Union[SignedMessage.SessionKeyType, str]] = ..., oemcrypto_core_message: _Optional[bytes] = ...) -> None: ...
 | 
			
		||||
 | 
			
		||||
class VersionInfo(_message.Message):
 | 
			
		||||
    __slots__ = ["license_sdk_version", "license_service_version"]
 | 
			
		||||
    LICENSE_SDK_VERSION_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    LICENSE_SERVICE_VERSION_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    license_sdk_version: str
 | 
			
		||||
    license_service_version: str
 | 
			
		||||
    def __init__(self, license_sdk_version: _Optional[str] = ..., license_service_version: _Optional[str] = ...) -> None: ...
 | 
			
		||||
 | 
			
		||||
class WidevinePsshData(_message.Message):
 | 
			
		||||
    __slots__ = ["algorithm", "content_id", "crypto_period_index", "crypto_period_seconds", "entitled_keys", "group_ids", "grouped_license", "key_ids", "key_sequence", "policy", "protection_scheme", "provider", "track_type", "type", "video_feature"]
 | 
			
		||||
    class Algorithm(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
        __slots__ = []
 | 
			
		||||
    class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
        __slots__ = []
 | 
			
		||||
    class EntitledKey(_message.Message):
 | 
			
		||||
        __slots__ = ["entitlement_key_id", "entitlement_key_size_bytes", "iv", "key", "key_id"]
 | 
			
		||||
        ENTITLEMENT_KEY_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        ENTITLEMENT_KEY_SIZE_BYTES_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        IV_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        KEY_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        KEY_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
        entitlement_key_id: bytes
 | 
			
		||||
        entitlement_key_size_bytes: int
 | 
			
		||||
        iv: bytes
 | 
			
		||||
        key: bytes
 | 
			
		||||
        key_id: bytes
 | 
			
		||||
        def __init__(self, entitlement_key_id: _Optional[bytes] = ..., key_id: _Optional[bytes] = ..., key: _Optional[bytes] = ..., iv: _Optional[bytes] = ..., entitlement_key_size_bytes: _Optional[int] = ...) -> None: ...
 | 
			
		||||
    AESCTR: WidevinePsshData.Algorithm
 | 
			
		||||
    ALGORITHM_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    CONTENT_ID_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    CRYPTO_PERIOD_INDEX_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    CRYPTO_PERIOD_SECONDS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    ENTITLED_KEY: WidevinePsshData.Type
 | 
			
		||||
    ENTITLED_KEYS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    ENTITLEMENT: WidevinePsshData.Type
 | 
			
		||||
    GROUPED_LICENSE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    GROUP_IDS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    KEY_IDS_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    KEY_SEQUENCE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    POLICY_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    PROTECTION_SCHEME_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    PROVIDER_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    SINGLE: WidevinePsshData.Type
 | 
			
		||||
    TRACK_TYPE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    TYPE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    UNENCRYPTED: WidevinePsshData.Algorithm
 | 
			
		||||
    VIDEO_FEATURE_FIELD_NUMBER: _ClassVar[int]
 | 
			
		||||
    algorithm: WidevinePsshData.Algorithm
 | 
			
		||||
    content_id: bytes
 | 
			
		||||
    crypto_period_index: int
 | 
			
		||||
    crypto_period_seconds: int
 | 
			
		||||
    entitled_keys: _containers.RepeatedCompositeFieldContainer[WidevinePsshData.EntitledKey]
 | 
			
		||||
    group_ids: _containers.RepeatedScalarFieldContainer[bytes]
 | 
			
		||||
    grouped_license: bytes
 | 
			
		||||
    key_ids: _containers.RepeatedScalarFieldContainer[bytes]
 | 
			
		||||
    key_sequence: int
 | 
			
		||||
    policy: str
 | 
			
		||||
    protection_scheme: int
 | 
			
		||||
    provider: str
 | 
			
		||||
    track_type: str
 | 
			
		||||
    type: WidevinePsshData.Type
 | 
			
		||||
    video_feature: str
 | 
			
		||||
    def __init__(self, key_ids: _Optional[_Iterable[bytes]] = ..., content_id: _Optional[bytes] = ..., crypto_period_index: _Optional[int] = ..., protection_scheme: _Optional[int] = ..., crypto_period_seconds: _Optional[int] = ..., type: _Optional[_Union[WidevinePsshData.Type, str]] = ..., key_sequence: _Optional[int] = ..., group_ids: _Optional[_Iterable[bytes]] = ..., entitled_keys: _Optional[_Iterable[_Union[WidevinePsshData.EntitledKey, _Mapping]]] = ..., video_feature: _Optional[str] = ..., algorithm: _Optional[_Union[WidevinePsshData.Algorithm, str]] = ..., provider: _Optional[str] = ..., track_type: _Optional[str] = ..., policy: _Optional[str] = ..., grouped_license: _Optional[bytes] = ...) -> None: ...
 | 
			
		||||
 | 
			
		||||
class LicenseType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
    __slots__ = []
 | 
			
		||||
 | 
			
		||||
class PlatformVerificationStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
    __slots__ = []
 | 
			
		||||
 | 
			
		||||
class ProtocolVersion(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
    __slots__ = []
 | 
			
		||||
 | 
			
		||||
class HashAlgorithmProto(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
 | 
			
		||||
    __slots__ = []
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user