Update protobuf to v4.21.6 and recompile buffers
This commit is contained in:
parent
e001ef0291
commit
e585102798
|
@ -168,11 +168,11 @@ python-versions = ">=3.7"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "protobuf"
|
name = "protobuf"
|
||||||
version = "3.19.5"
|
version = "4.21.6"
|
||||||
description = "Protocol Buffers"
|
description = ""
|
||||||
category = "main"
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.5"
|
python-versions = ">=3.7"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pycryptodome"
|
name = "pycryptodome"
|
||||||
|
@ -279,7 +279,7 @@ serve = ["aiohttp", "PyYAML"]
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "1.1"
|
lock-version = "1.1"
|
||||||
python-versions = ">=3.7,<3.11"
|
python-versions = ">=3.7,<3.11"
|
||||||
content-hash = "35d7f614b5c080b48a15f6d299274ec399bb4e2cf6e8f2a79c00815e3bc57308"
|
content-hash = "d0658d6c8f08997e9ebd6a12e2613f76275c21b7c133e2e976d16f8b63c9437f"
|
||||||
|
|
||||||
[metadata.files]
|
[metadata.files]
|
||||||
aiohttp = [
|
aiohttp = [
|
||||||
|
@ -594,32 +594,20 @@ multidict = [
|
||||||
{file = "multidict-6.0.2.tar.gz", hash = "sha256:5ff3bd75f38e4c43f1f470f2df7a4d430b821c4ce22be384e1459cb57d6bb013"},
|
{file = "multidict-6.0.2.tar.gz", hash = "sha256:5ff3bd75f38e4c43f1f470f2df7a4d430b821c4ce22be384e1459cb57d6bb013"},
|
||||||
]
|
]
|
||||||
protobuf = [
|
protobuf = [
|
||||||
{file = "protobuf-3.19.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6eca9ae238ba615d702387a2ddea635d535d769994a9968c09a4ca920c487ab9"},
|
{file = "protobuf-4.21.6-cp310-abi3-win32.whl", hash = "sha256:49f88d56a9180dbb7f6199c920f5bb5c1dd0172f672983bb281298d57c2ac8eb"},
|
||||||
{file = "protobuf-3.19.5-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:f2b599a21c9a32e171ec29a2ac54e03297736c578698e11b099d031f79da114b"},
|
{file = "protobuf-4.21.6-cp310-abi3-win_amd64.whl", hash = "sha256:7a6cc8842257265bdfd6b74d088b829e44bcac3cca234c5fdd6052730017b9ea"},
|
||||||
{file = "protobuf-3.19.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f976234e20ab2785f54224bcdafa027674e23663b132fa3ca0caa291a6cfbde7"},
|
{file = "protobuf-4.21.6-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:ba596b9ffb85c909fcfe1b1a23136224ed678af3faf9912d3fa483d5f9813c4e"},
|
||||||
{file = "protobuf-3.19.5-cp310-cp310-win32.whl", hash = "sha256:4ee2af7051d3b10c8a4fe6fd1a2c69f201fea36aeee7086cf202a692e1b99ee1"},
|
{file = "protobuf-4.21.6-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:4143513c766db85b9d7c18dbf8339673c8a290131b2a0fe73855ab20770f72b0"},
|
||||||
{file = "protobuf-3.19.5-cp310-cp310-win_amd64.whl", hash = "sha256:dca2284378a5f2a86ffed35c6ac147d14c48b525eefcd1083e5a9ce28dfa8657"},
|
{file = "protobuf-4.21.6-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:b6cea204865595a92a7b240e4b65bcaaca3ad5d2ce25d9db3756eba06041138e"},
|
||||||
{file = "protobuf-3.19.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c0f80876a8ff0ae7064084ed094eb86497bd5a3812e6fc96a05318b92301674e"},
|
{file = "protobuf-4.21.6-cp37-cp37m-win32.whl", hash = "sha256:9666da97129138585b26afcb63ad4887f602e169cafe754a8258541c553b8b5d"},
|
||||||
{file = "protobuf-3.19.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c4160b601220627f7e91154e572baf5e161a9c3f445a8242d536ee3d0b7b17c"},
|
{file = "protobuf-4.21.6-cp37-cp37m-win_amd64.whl", hash = "sha256:308173d3e5a3528787bb8c93abea81d5a950bdce62840d9760effc84127fb39c"},
|
||||||
{file = "protobuf-3.19.5-cp36-cp36m-win32.whl", hash = "sha256:f2bde37667b18c2b5280df83bc799204394a5d2d774e4deaf9de0eb741df6833"},
|
{file = "protobuf-4.21.6-cp38-cp38-win32.whl", hash = "sha256:aa29113ec901281f29d9d27b01193407a98aa9658b8a777b0325e6d97149f5ce"},
|
||||||
{file = "protobuf-3.19.5-cp36-cp36m-win_amd64.whl", hash = "sha256:1867f93b06a183f87696871bb8d1e99ee71dbb69d468ce1f0cc8bf3d30f982f3"},
|
{file = "protobuf-4.21.6-cp38-cp38-win_amd64.whl", hash = "sha256:8f9e60f7d44592c66e7b332b6a7b4b6e8d8b889393c79dbc3a91f815118f8eac"},
|
||||||
{file = "protobuf-3.19.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a89aa0c042e61e11ade320b802d6db4ee5391d8d973e46d3a48172c1597789f8"},
|
{file = "protobuf-4.21.6-cp39-cp39-win32.whl", hash = "sha256:80e6540381080715fddac12690ee42d087d0d17395f8d0078dfd6f1181e7be4c"},
|
||||||
{file = "protobuf-3.19.5-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:f9cebda093c2f6bfed88f1c17cdade09d4d96096421b344026feee236532d4de"},
|
{file = "protobuf-4.21.6-cp39-cp39-win_amd64.whl", hash = "sha256:77b355c8604fe285536155286b28b0c4cbc57cf81b08d8357bf34829ea982860"},
|
||||||
{file = "protobuf-3.19.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67efb5d20618020aa9596e17bfc37ca068c28ec0c1507d9507f73c93d46c9855"},
|
{file = "protobuf-4.21.6-py2.py3-none-any.whl", hash = "sha256:07a0bb9cc6114f16a39c866dc28b6e3d96fa4ffb9cc1033057412547e6e75cb9"},
|
||||||
{file = "protobuf-3.19.5-cp37-cp37m-win32.whl", hash = "sha256:950abd6c00e7b51f87ae8b18a0ce4d69fea217f62f171426e77de5061f6d9850"},
|
{file = "protobuf-4.21.6-py3-none-any.whl", hash = "sha256:c7c864148a237f058c739ae7a05a2b403c0dfa4ce7d1f3e5213f352ad52d57c6"},
|
||||||
{file = "protobuf-3.19.5-cp37-cp37m-win_amd64.whl", hash = "sha256:d3973a2d58aefc7d1230725c2447ce7f86a71cbc094b86a77c6ee1505ac7cdb1"},
|
{file = "protobuf-4.21.6.tar.gz", hash = "sha256:6b1040a5661cd5f6e610cbca9cfaa2a17d60e2bb545309bc1b278bb05be44bdd"},
|
||||||
{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"},
|
|
||||||
]
|
]
|
||||||
pycryptodome = [
|
pycryptodome = [
|
||||||
{file = "pycryptodome-3.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ff7ae90e36c1715a54446e7872b76102baa5c63aa980917f4aa45e8c78d1a3ec"},
|
{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-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-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"},
|
||||||
{file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"},
|
{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-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_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"},
|
||||||
{file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"},
|
{file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"},
|
||||||
|
|
|
@ -28,7 +28,7 @@ classifiers = [
|
||||||
|
|
||||||
[tool.poetry.dependencies]
|
[tool.poetry.dependencies]
|
||||||
python = ">=3.7,<3.11"
|
python = ">=3.7,<3.11"
|
||||||
protobuf = "3.19.5"
|
protobuf = "4.21.6"
|
||||||
pymp4 = "^1.2.0"
|
pymp4 = "^1.2.0"
|
||||||
pycryptodome = "^3.15.0"
|
pycryptodome = "^3.15.0"
|
||||||
click = "^8.1.3"
|
click = "^8.1.3"
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
syntax = "proto2";
|
syntax = "proto2";
|
||||||
|
|
||||||
package video_widevine;
|
package pywidevine_license_protocol;
|
||||||
|
|
||||||
// need this if we are using libprotobuf-cpp-2.3.0-lite
|
// need this if we are using libprotobuf-cpp-2.3.0-lite
|
||||||
option optimize_for = LITE_RUNTIME;
|
option optimize_for = LITE_RUNTIME;
|
||||||
|
|
||||||
option java_package = "com.google.video.widevine.protos";
|
option java_package = "com.rlaphoenix.pywidevine.protos";
|
||||||
|
|
||||||
enum LicenseType {
|
enum LicenseType {
|
||||||
STREAMING = 1;
|
STREAMING = 1;
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -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…
Reference in New Issue